“จากเด็กอายุ 12 สู่ผู้ร่วมพัฒนาเคอร์เนล: Lifebook S2110 จุดประกายการแก้ไขไดรเวอร์ Linux ครั้งแรก”
Valtteri Koskivuori นักพัฒนาสาย Linux ได้แชร์ประสบการณ์การส่ง patch แรกเข้าสู่เคอร์เนล Linux อย่างเป็นทางการ โดยเริ่มต้นจากความหลงใหลในโน้ตบุ๊กเก่ารุ่น Fujitsu Lifebook S2110 ที่เขาใช้มาตั้งแต่ปี 2005 แม้เครื่องจะมี RAM เพียง 2GB และใช้ฮาร์ดดิสก์แบบจานหมุน แต่ยังสามารถรัน Arch Linux รุ่นล่าสุดได้อย่างลื่นไหล
แรงบันดาลใจของเขาเริ่มจากการสังเกตว่า “ปุ่ม hotkey” บนเครื่องทำงานได้เพียงครึ่งเดียว — โหมด Application ใช้งานได้ แต่โหมด Player กลับไม่มีการตอบสนองใด ๆ และมีข้อความแปลก ๆ ปรากฏใน kernel log ซึ่งนำไปสู่การสืบค้นโค้ดของไดรเวอร์ fujitsu-laptop.c ในเคอร์เนล
หลังจากวิเคราะห์โค้ดอย่างละเอียด เขาพบว่าเครื่องของเขาไม่ได้อยู่ใน DMI table ที่ใช้เลือก keymap เฉพาะรุ่น จึงตัดสินใจสร้าง keymap ใหม่สำหรับ S2110 โดยเพิ่ม scancode ที่หายไป และแมปปุ่มให้ตรงกับฟังก์ชัน เช่น เล่นเพลง หยุดเพลง ย้อนเพลง และข้ามเพลง
เมื่อทดสอบกับ xev และ playerctl พบว่าปุ่มทั้งหมดทำงานได้สมบูรณ์ เขาจึงส่ง patch นี้ไปยัง maintainer ของเคอร์เนลผ่านระบบ mailing list และในเวลาเพียงไม่กี่สัปดาห์ patch ก็ถูก merge เข้าสู่ Linux 6.15 และถูก backport ไปยังเวอร์ชัน LTS หลายรุ่น
ข้อมูลสำคัญจากข่าว
Valtteri Koskivuori ส่ง patch แรกเข้าสู่เคอร์เนล Linux เพื่อแก้ไข hotkey บน Lifebook S2110
ปุ่ม hotkey ทำงานได้ในโหมด Application แต่ไม่ตอบสนองในโหมด Player
พบข้อความ “Unknown GIRB result” ใน kernel log เมื่อกดปุ่มในโหมด Player
วิเคราะห์โค้ดใน fujitsu-laptop.c และพบว่าเครื่องไม่ได้อยู่ใน DMI table
สร้าง keymap ใหม่ keymap_s2110 และเพิ่ม scancode สำหรับปุ่มที่หายไป
ทดสอบด้วย xev และ playerctl พบว่าปุ่มทำงานได้ครบทุกฟังก์ชัน
ส่ง patch ผ่าน git send-email ไปยัง maintainer และ mailing list
Patch ถูก merge เข้าสู่ Linux 6.15 และ backport ไปยัง LTS หลายรุ่น
ข้อมูลเสริมจากภายนอก
DMI table ใช้ระบุรุ่นของเครื่องเพื่อเลือก keymap ที่เหมาะสม
sparse_keymap_setup() เป็นฟังก์ชันที่ใช้แมป scancode กับ keycode
ACPI notify ใช้รับเหตุการณ์จาก firmware และส่งไปยัง input subsystem
playerctl ใช้ควบคุม media player ผ่าน D-Bus ด้วยโปรโตคอล MPRIS
การส่ง patch ผ่าน mailing list เป็นวิธีดั้งเดิมที่ยังใช้ในเคอร์เนล Linux
https://vkoskiv.com/first-linux-patch/
Valtteri Koskivuori นักพัฒนาสาย Linux ได้แชร์ประสบการณ์การส่ง patch แรกเข้าสู่เคอร์เนล Linux อย่างเป็นทางการ โดยเริ่มต้นจากความหลงใหลในโน้ตบุ๊กเก่ารุ่น Fujitsu Lifebook S2110 ที่เขาใช้มาตั้งแต่ปี 2005 แม้เครื่องจะมี RAM เพียง 2GB และใช้ฮาร์ดดิสก์แบบจานหมุน แต่ยังสามารถรัน Arch Linux รุ่นล่าสุดได้อย่างลื่นไหล
แรงบันดาลใจของเขาเริ่มจากการสังเกตว่า “ปุ่ม hotkey” บนเครื่องทำงานได้เพียงครึ่งเดียว — โหมด Application ใช้งานได้ แต่โหมด Player กลับไม่มีการตอบสนองใด ๆ และมีข้อความแปลก ๆ ปรากฏใน kernel log ซึ่งนำไปสู่การสืบค้นโค้ดของไดรเวอร์ fujitsu-laptop.c ในเคอร์เนล
หลังจากวิเคราะห์โค้ดอย่างละเอียด เขาพบว่าเครื่องของเขาไม่ได้อยู่ใน DMI table ที่ใช้เลือก keymap เฉพาะรุ่น จึงตัดสินใจสร้าง keymap ใหม่สำหรับ S2110 โดยเพิ่ม scancode ที่หายไป และแมปปุ่มให้ตรงกับฟังก์ชัน เช่น เล่นเพลง หยุดเพลง ย้อนเพลง และข้ามเพลง
เมื่อทดสอบกับ xev และ playerctl พบว่าปุ่มทั้งหมดทำงานได้สมบูรณ์ เขาจึงส่ง patch นี้ไปยัง maintainer ของเคอร์เนลผ่านระบบ mailing list และในเวลาเพียงไม่กี่สัปดาห์ patch ก็ถูก merge เข้าสู่ Linux 6.15 และถูก backport ไปยังเวอร์ชัน LTS หลายรุ่น
ข้อมูลสำคัญจากข่าว
Valtteri Koskivuori ส่ง patch แรกเข้าสู่เคอร์เนล Linux เพื่อแก้ไข hotkey บน Lifebook S2110
ปุ่ม hotkey ทำงานได้ในโหมด Application แต่ไม่ตอบสนองในโหมด Player
พบข้อความ “Unknown GIRB result” ใน kernel log เมื่อกดปุ่มในโหมด Player
วิเคราะห์โค้ดใน fujitsu-laptop.c และพบว่าเครื่องไม่ได้อยู่ใน DMI table
สร้าง keymap ใหม่ keymap_s2110 และเพิ่ม scancode สำหรับปุ่มที่หายไป
ทดสอบด้วย xev และ playerctl พบว่าปุ่มทำงานได้ครบทุกฟังก์ชัน
ส่ง patch ผ่าน git send-email ไปยัง maintainer และ mailing list
Patch ถูก merge เข้าสู่ Linux 6.15 และ backport ไปยัง LTS หลายรุ่น
ข้อมูลเสริมจากภายนอก
DMI table ใช้ระบุรุ่นของเครื่องเพื่อเลือก keymap ที่เหมาะสม
sparse_keymap_setup() เป็นฟังก์ชันที่ใช้แมป scancode กับ keycode
ACPI notify ใช้รับเหตุการณ์จาก firmware และส่งไปยัง input subsystem
playerctl ใช้ควบคุม media player ผ่าน D-Bus ด้วยโปรโตคอล MPRIS
การส่ง patch ผ่าน mailing list เป็นวิธีดั้งเดิมที่ยังใช้ในเคอร์เนล Linux
https://vkoskiv.com/first-linux-patch/
🧑💻 “จากเด็กอายุ 12 สู่ผู้ร่วมพัฒนาเคอร์เนล: Lifebook S2110 จุดประกายการแก้ไขไดรเวอร์ Linux ครั้งแรก”
Valtteri Koskivuori นักพัฒนาสาย Linux ได้แชร์ประสบการณ์การส่ง patch แรกเข้าสู่เคอร์เนล Linux อย่างเป็นทางการ โดยเริ่มต้นจากความหลงใหลในโน้ตบุ๊กเก่ารุ่น Fujitsu Lifebook S2110 ที่เขาใช้มาตั้งแต่ปี 2005 แม้เครื่องจะมี RAM เพียง 2GB และใช้ฮาร์ดดิสก์แบบจานหมุน แต่ยังสามารถรัน Arch Linux รุ่นล่าสุดได้อย่างลื่นไหล
แรงบันดาลใจของเขาเริ่มจากการสังเกตว่า “ปุ่ม hotkey” บนเครื่องทำงานได้เพียงครึ่งเดียว — โหมด Application ใช้งานได้ แต่โหมด Player กลับไม่มีการตอบสนองใด ๆ และมีข้อความแปลก ๆ ปรากฏใน kernel log ซึ่งนำไปสู่การสืบค้นโค้ดของไดรเวอร์ fujitsu-laptop.c ในเคอร์เนล
หลังจากวิเคราะห์โค้ดอย่างละเอียด เขาพบว่าเครื่องของเขาไม่ได้อยู่ใน DMI table ที่ใช้เลือก keymap เฉพาะรุ่น จึงตัดสินใจสร้าง keymap ใหม่สำหรับ S2110 โดยเพิ่ม scancode ที่หายไป และแมปปุ่มให้ตรงกับฟังก์ชัน เช่น เล่นเพลง หยุดเพลง ย้อนเพลง และข้ามเพลง
เมื่อทดสอบกับ xev และ playerctl พบว่าปุ่มทั้งหมดทำงานได้สมบูรณ์ เขาจึงส่ง patch นี้ไปยัง maintainer ของเคอร์เนลผ่านระบบ mailing list และในเวลาเพียงไม่กี่สัปดาห์ patch ก็ถูก merge เข้าสู่ Linux 6.15 และถูก backport ไปยังเวอร์ชัน LTS หลายรุ่น
✅ ข้อมูลสำคัญจากข่าว
➡️ Valtteri Koskivuori ส่ง patch แรกเข้าสู่เคอร์เนล Linux เพื่อแก้ไข hotkey บน Lifebook S2110
➡️ ปุ่ม hotkey ทำงานได้ในโหมด Application แต่ไม่ตอบสนองในโหมด Player
➡️ พบข้อความ “Unknown GIRB result” ใน kernel log เมื่อกดปุ่มในโหมด Player
➡️ วิเคราะห์โค้ดใน fujitsu-laptop.c และพบว่าเครื่องไม่ได้อยู่ใน DMI table
➡️ สร้าง keymap ใหม่ keymap_s2110 และเพิ่ม scancode สำหรับปุ่มที่หายไป
➡️ ทดสอบด้วย xev และ playerctl พบว่าปุ่มทำงานได้ครบทุกฟังก์ชัน
➡️ ส่ง patch ผ่าน git send-email ไปยัง maintainer และ mailing list
➡️ Patch ถูก merge เข้าสู่ Linux 6.15 และ backport ไปยัง LTS หลายรุ่น
✅ ข้อมูลเสริมจากภายนอก
➡️ DMI table ใช้ระบุรุ่นของเครื่องเพื่อเลือก keymap ที่เหมาะสม
➡️ sparse_keymap_setup() เป็นฟังก์ชันที่ใช้แมป scancode กับ keycode
➡️ ACPI notify ใช้รับเหตุการณ์จาก firmware และส่งไปยัง input subsystem
➡️ playerctl ใช้ควบคุม media player ผ่าน D-Bus ด้วยโปรโตคอล MPRIS
➡️ การส่ง patch ผ่าน mailing list เป็นวิธีดั้งเดิมที่ยังใช้ในเคอร์เนล Linux
https://vkoskiv.com/first-linux-patch/
0 ความคิดเห็น
0 การแบ่งปัน
29 มุมมอง
0 รีวิว