Dynamic Kernel Module Support
เขียนต่อกันเลย เพราะผู้เขียนเองอยากจดเอาไว้ว่าทำอย่างไงกันลืม เข้าเรื่องต่อเลยกับ DKMS นี้และ พระเอกของเรา แต่ลืมไปนิดอีกละทำไมต้องทำ DKMS ละ ก็แค่คอนไพล์สิ่งที่เราทำเพิ่มที่เราต้องการก็จบแล้วนิ
ยกตัวอย่าง ผมมีซอฟต์แวร์งานตัวหนึ่งที่ทำบนอุปกรณ์ตัวนึงเมื่อ 3 ปีก่อน แต่เมื่อเวลาผ่านไปอุปกรณ์ตัวนั้นเลิกขาย และออกอุปกรณ์ตัวใหม่มา พอผมเอาระบบปฏิบัติการตัวเดิมที่ใช้กับอุปกรณ์ใหม่ พบว่าไม่สามารถใช้งานกับ LAN Card ที่อุปกรณ์ใหม่ได้ ซึ่งผมมีทางเลือกดังนี้
- ลงปฏิบัติการเป็นเวอร์ชั่นใหม่ล่าสุด เพราะไงก็รองรับ LAN Card ตัวใหม่แน่นอน แต่ปัญหาที่ตามมาคือ ผมต้องทดสอบระบบปฏิบัติการใหม่ทั้งหมดว่าสามารถใช้งานซอฟต์แวร์เดิมได้อย่างมีประสิทธิภาพรึไม่
- ลงเฉพาะไดว์เวอร์การ์ดแลนเป็นเวลาใหม่ แน่นอนว่าแค่เอาระบบปฏิบัติการเดิมที่เคยใช้มา Clone ลงแล้วแค่ลง Driver ก็เรียบร้อย ไม่ต้องทดสอบการทำงานระบบใหม่ทั้งหมด
ซึ่งจะเห็นว่าใครก็จะเลือกวิธีที่สอง เพราะไม่ต้องทดสอบระบบใหม่ทั้งหมด ซึ่งจะเห็นว่าวิธีการทำนั้นเราแค่ไปดาวน์โหลดไฟล์ Driver ใส่ USB แล้วนำไปเสียบลงบนอุปกรณ์ และติดตั้งก็เสร็จเรียบร้อยใช้งานได้ เช่น การ์ดแลนใช้ driver intel e1000e ฯลฯ
ขั้นตอนเบื้องต้นดังนี้
- ทำการดาวน์โหลดไฟล์ไดว์เวอร์ที่เว็บของ intel https://www.intel.com/content/www/us/en/support/articles/000005480/network-and-i-o/ethernet-products.html
- tar zxf e1000e-<x.x.x>.tar.gz
- cd e1000e-<x.x.x>/src/
- make install
- ไดว์เวอร์ก็จะถูกติดตั้งลงบน kernel ปัจจุบันที่เราใช้งาน เช่น /lib/modules/<KERNEL VERSION>/kernel/drivers/net/e1000e/e1000e.[k]o
- modprobe e1000e
- insmod e1000e
จบขั้นตอนติดตั้งไดว์เวอร์เรียบร้อย เราก็สามารถใช้งานอุปกรณ์ได้ตามปกติ อ้าวไม่เห็นมีเกี่ยวกับ DKMS เลยนิ แล้วผู้เขียนจะพูดถึงทำไม ถ้าจำบทความแรกกันได้
ซึ่งผมได้พูดว่าแต่ละระบบปฏิบัติการนั้นจะมีการดูแล Kernel ของตัวเอง จุดนี้และที่สำคัญ คือ เวลาที่ทางระบบปฏิบัติการมีการอัพเดต kernel ไม่ว่าจะเป็นการอัพเดต kernel เดิม หรืออัพไปใช้ kernel เวอร์ชั่นใหม่ก็ตาม ฯลฯ เจ้าไดว์เวอร์ที่เราได้คอมไพล์ก่อนนี้ มันไม่ได้ไปด้วยไงครับ ซึ่งจะทำให้การที่เราตั้งอัพเดตความปลอดภัยของระบบปฏิบัติการไว้ เมื่ออัพเดตเสร็จกับใช้เน็ตไม่ได้ เพราะไดว์เวอร์ที่ลงไว้ไม่ไปด้วย
ขอจบภาคนี้ไปก่อนครับ เริ่มยาวแล้วครับ
บทความภาค 1 ได้ที่ https://thaidevnote.blogspot.com/2018/05/dynamic-kernel-module-support-dkms-1.html
บทความภาค 3 ได้ที่ https://thaidevnote.blogspot.com/2018/05/dynamic-kernel-module-support-dkms-3.html
ความคิดเห็น
แสดงความคิดเห็น