ฉันได้เห็นไม่กี่คนที่พูดถึง DKMS เมื่อเร็ว ๆ นี้ แต่มันไม่ชัดเจนว่ามันทำอะไรกับระบบของฉัน
DKMS ทำอะไรได้จริงและฉันจะใช้มันอย่างไร
ฉันได้เห็นไม่กี่คนที่พูดถึง DKMS เมื่อเร็ว ๆ นี้ แต่มันไม่ชัดเจนว่ามันทำอะไรกับระบบของฉัน
DKMS ทำอะไรได้จริงและฉันจะใช้มันอย่างไร
คำตอบ:
แพ็คเกจDKMS (การสนับสนุนโมดูลเคอร์เนลแบบไดนามิก) ( http://linux.dell.com/dkms/ ) ให้การสนับสนุนสำหรับการติดตั้งโมดูลเคอร์เนลเวอร์ชันเสริม แพคเกจรวบรวมและติดตั้งลงในแผนผังเคอร์เนล การถอนการติดตั้งคืนค่าโมดูลก่อนหน้า ตามค่าเริ่มต้นการติดตั้งจะอยู่ในแผนผังเคอร์เนลปัจจุบัน แต่สามารถเลือกแผนผังเคอร์เนลใดก็ได้พร้อมตัวเลือกบรรทัดคำสั่ง นอกจากนี้ DKMS จะถูกเรียกโดยอัตโนมัติเมื่อมีการติดตั้งแพ็คเกจเคอร์เนลภาพใหม่ของ Ubuntu และดังนั้นโมดูลที่เพิ่มใน DKMS จะถูกนำไปใช้โดยอัตโนมัติในการอัปเดต
ภาพรวม
ในการใช้โมดูลที่มี DKMS จะวางไฟล์การติดตั้งโมดูล (อาจเป็นซอร์สโค้ดหรือไบนารี) ใน / usr / src / - พร้อมกับไฟล์การกำหนดค่า dkms.conf ที่บอก DKMS ถึงวิธีการสร้าง / กำหนดค่าโมดูลและสิ่งที่ ชื่อคือ. ภายใต้สถานการณ์ขั้นสูงเพิ่มเติมคำแนะนำการสร้างแบบมีเงื่อนไขและการแพตช์สามารถทำได้โดยระบบ dkms แต่การพิจารณาในกรณีของคุณอาจไม่จำเป็น
เดินผ่าน
สมมติว่าคุณต้องการติดตั้งโมดูลสำหรับอะแดปเตอร์ "Awesome Adapter"
tarball awesome-20091211-v1.1.tgz
คุณจะได้รับมาด้วย DKMS เราจะบอก DKMS ถึงวิธีการทำสิ่งนี้ให้คุณโดยการสร้างไฟล์ dkms.conf ด้วยรายการที่เหมาะสม ตัวอย่างเช่นหลังจากเราแกะกล่องทาร์บอลออกแล้ว:
# cd awesome-20091211-v1.1/
# touch dkms.conf
# create dkms.conf file
# vi dkms.conf
ข้างใน
dkms.conf
เราอาจเพิ่มบรรทัด:
MAKE="make -C src/ KERNELDIR=/lib/modules/${kernelver}/build"
CLEAN="make -C src/ clean"
BUILT_MODULE_NAME=awesome
BUILT_MODULE_LOCATION=src/
PACKAGE_NAME=awesome
PACKAGE_VERSION=1.1
REMAKE_INITRD=yes
ไดเร็กทอรีทั้งหมดเกี่ยวข้องกับตำแหน่งของไฟล์ dkms.conf นี่บอก DKMS
- คำสั่งเพื่อสร้างโมดูล (เรียกใช้ make ในไดเรกทอรี src /)
- คำสั่งเพื่อล้างทรีของซอร์ส (ให้รัน clean ในไดเร็กทอรี src /)
- ชื่อของโมดูลที่ไม่มีส่วนขยาย. o หรือ .ko นี่อาจเป็นอาร์เรย์ของโมดูลหากสร้างหลายโมดูลดู man dkms
- ที่ DKMS สามารถหาโมดูลที่สร้างขึ้น
- ชื่อและเวอร์ชั่น DKMS ควรเชื่อมโยงกับโมดูล
- ในการสร้างภาพเริ่มต้นใหม่หลังจากติดตั้งโมดูล
นอกจากนี้คุณยังสามารถเพิ่มตัวเลือกในการโทรสคริปต์ก่อนหรือหลังการสร้างหรือติดตั้งให้เพิ่มเติม (เงื่อนไข) คำสั่งคำสั่งแก้ไข ฯลฯ dkms.conf จริง ๆ แล้วเป็นแหล่งที่มาลงในเปลือกสคริปต์ ในกรณีที่จำเป็น. ตัวเลือกเหล่านี้และอื่น ๆ มีการอธิบายไว้ในส่วน dkms.conf ใน man dkms
ต่อไปเราจะติดตั้งโมดูลลงใน DKMS โดยคัดลอกไฟล์การติดตั้งโมดูลลงในแผนผังต้นทางของเคอร์เนล / usr / src / - และบอก DKMS เกี่ยวกับโมดูลใหม่:
# ls
README dkms.conf lib src
# sudo cp -R . /usr/src/awesome-1.1
# sudo dkms add -m awesome -v 1.1
dkms does its thing...
แค่นั้นแหละ! DKMS ได้เพิ่มโมดูลของเราในรายการโมดูลเพื่อสร้างสำหรับการติดตั้งเคอร์เนลในอนาคต เพื่อให้แน่ใจว่าใช้งานได้และติดตั้งโมดูลลงในเคอร์เนลปัจจุบันของเราเราสามารถสั่ง dkms เพื่อสร้างและติดตั้งโมดูล:
# sudo dkms build -m awesome -v 1.1
dkms does its thing.... watch for build errors... you may need to tweak dkms.conf
# sudo dkms install -m awesome -v 1.1
dkms does its thing.... module is copied into current kernel module tree
โชคดีที่โมดูลของคุณจะถูกติดตั้งและติดตั้งใหม่ในการปรับปรุงเคอร์เนลในอนาคต
ตัวอย่าง
หน้าคน DKMSมีข้อมูลที่เป็นประโยชน์ในการตั้งค่าเคอร์เนลโมดูลที่คุณชื่นชอบสำหรับใช้กับ DKMS เอกสารนี้ไม่ครอบคลุม แต่จะตอบคำถามมากมาย มันอาจช่วยให้คุณจดบันทึกตัวอย่างต่อไปนี้แม้ว่าโมดูลที่ใช้ไม่ใช่สิ่งที่คุณต้องการตั้งค่า:
- RocketRaid - สองตัวอย่างเกี่ยวกับวิธีการตั้งค่าไดรเวอร์Highpoint RocketRaid RR26xx และ RR62x ด้วย DKMS
จาก: help.ubuntu.com
ข้อมูลเพิ่มเติมสามารถดูได้ที่นี่: