Dynamic Kernel Module Support
เกริ่นมา 2 บทความแล้ว หวังว่าผู้อ่านจะเข้าใจนะครับ สรุปง่ายๆ คือ เจ้าพระเอกของเรา DKMS คำสั่งนี้จะช่วยให้เราจะทำการไฟล์ติดตั้งไดว์เวอร์ให้เราอัตโนมัติ เมื่อมีการอัพเดต kernel ให้เรา ทำให้เราไม่เจอปัญหาเวลาอัพเดตระบบปฏิบัติการแล้วใช้งานไดว์เวอร์การ์ดแลนได้ ปล. มันไม่ใช้แค่ช่วยเรื่องไดว์เวอร์ ยังช่วยทำให้เราเพิ่มความสามารถให้กับ kernel อีกด้วย
ขั้นตอนการทำดังนี้
ก่อนทำ เราจะเช็คดูก่อนเพื่อสำรองไฟล์เดิมหรือทำการเช็คเวอร์ชั่นที่ใช้อยู่ได้ เช่น modinfo e1000e (เช็คตำแหน่งที่เก็บไฟล์ไดว์เวอร์) ethtool eth0 (ดูเวอร์ชั่นของไดว์เวอร์) ฯลฯ สามารถใช้ผู้ใช้งาน root ในการทำได้
และก่อนทำบนเครื่องต้องมีคำสั่งและ kernel header ด้วยในที่นี้ผู้เขียนทำตัวอย่างบนระบบปฏิบัติการ Debian ก็ได้ทำการติดตั้งดังนี้
apt-get install dkms deb-helper build-essential linux-headers-$(uname -r) make
- cd /usr/src/
- sudo wget https://downloadmirror.intel.com/15817/eng/e1000e-3.4.0.2.tar.gz
- sudo tar xvfz e1000e-3.4.0.2.tar.gz
- cd e1000e-3.4.0.2
- sudo nano dkms.conf
-----------------------------------------------------------------------------------------------------------------------------------
PACKAGE_NAME="e1000e"
PACKAGE_VERSION="3.4.0.2"
BUILT_MODULE_LOCATION[0]="src"
BUILT_MODULE_NAME[0]="e1000e"
DEST_MODULE_LOCATION[0]="/kernel/drivers/net/e1000e/"
AUTOINSTALL="yes"
MAKE[0]="BUILD_KERNEL=${kernelver} make -C src CFLAGS_EXTRA=-DDISABLE_PM"
CLEAN[0]="make -C src clean"
REMAKE_INITRD=yes
-----------------------------------------------------------------------------------------------------------------------------------
กรณีทำเป็นไฟล์ .deb เพื่อไปติดตั้งบนอุปกรณ์ตัวอื่นได้
- sudo dkms -m e1000e -v 3.4.0.2 add
- sudo dkms -m e1000e -v 3.4.0.2 build
- sudo dkms -m e1000e -v 3.4.0.2 mkdsc --source-only
- sudo dkms -m e1000e -v 3.4.0.2 mkdeb --source-only
- คำสั่งก็จะสร้างไฟล์ .deb ไว้ที่ /var/lib/dkms/e1000e/3.4.0.2/deb/xxx.deb เราก็นำมาติดตั้งได้ หรือนำไปใช้งานกับเครื่องอื่นได้
กรณีอยากจะติดตั้งเลย ไม่สร้างเป็นไฟล์ .deb
- sudo dkms -m e1000e -v 3.4.0.2 add
- sudo dkms -m e1000e -v 3.4.0.2 build
- sudo dkms -m e1000e -v 3.4.0.2 install
กรณีต้องการลบออก
- sudo dkms -m e1000e -v 3.4.0.2 uninstall --all
- sudo dkms -m e1000e -v 3.4.0.2 remove --all
จบบริบูรณ์ เดี่ยวจะมีบทความตัวอย่างเพิ่มเติม เช่น การติดตั้ง pf_ring โดยทำ dkms แบบนี้ละ ฯลฯ ค่อยติดตามกันนะครับ
บทความภาค 1 ได้ที่ https://thaidevnote.blogspot.com/2018/05/dynamic-kernel-module-support-dkms-1.html
บทความภาค 2 ได้ที่ https://thaidevnote.blogspot.com/2018/05/dynamic-kernel-module-support-dkms-2.html
ความคิดเห็น
แสดงความคิดเห็น