Son zamanlarda DKMS'den bahsettim ama sistemimde neler olduğu net değil.
DKMS gerçekte ne yapar ve nasıl kullanırım?
Son zamanlarda DKMS'den bahsettim ama sistemimde neler olduğu net değil.
DKMS gerçekte ne yapar ve nasıl kullanırım?
Yanıtlar:
DKMS (Dinamik Çekirdek Modülü Desteği) paketi ( http://linux.dell.com/dkms/ ), çekirdek modüllerinin ek sürümlerini kurmak için destek sağlar. Paket, çekirdek ağacına derlenir ve kurulur. Kaldırma önceki modülleri geri yükler. Varsayılan olarak, kurulum geçerli çekirdek ağacına yapılır, ancak herhangi bir çekirdek ağacı komut satırı seçenekleriyle seçilebilir. Ayrıca, yeni Ubuntu çekirdek görüntü paketlerinin kurulumu üzerine DKMS otomatik olarak çağrılır ve bu nedenle DKMS'ye eklenen modüller güncellemeler arasında otomatik olarak taşınır.
genel bakış
DKMS'li bir modül kullanmak için, modül kurulum dosyalarını (kaynak kod veya ikili olabilir) / usr / src / - içine, DKMS'ye modülün nasıl oluşturulacağını / yapılandırılacağını ve bunun ne yapılacağını söyleyen dkms.conf yapılandırma dosyası yerleştirilir. adı. Daha ileri senaryolar altında, koşullu derleme talimatları ve yamalamalar dkms sistemi tarafından yapılabilir, ancak durumunuz göz önüne alındığında bu gerekli olmayabilir.
Walk-yoluyla
Diyelim ki fantaziniz için bir modül kurmak istediğinizi varsayalım. Size bir kaynak verildi
tarball awesome-20091211-v1.1.tgz
.DKMS ile DKMS'ye uygun girişleri içeren bir dkms.conf dosyası oluşturarak sizin için nasıl yapacağımızı söyleriz. Örneğin, tarball'ı açtıktan sonra:
# cd awesome-20091211-v1.1/
# touch dkms.conf
# create dkms.conf file
# vi dkms.conf
İçinde
dkms.conf
, satırları ekleyebiliriz:
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
Tüm dizinler dkms.conf dosyasının konumuna göredir. Bu DKMS'ye söyler
- Modülü derleme komutu (run, src / dizininde make komutunu çalıştırın).
- Kaynak ağacı temizleme komutu (run, src / dizininde make clean).
- .O veya .ko uzantısı olmayan modülün adı. Bu aslında, eğer çoklu modüller yapılmışsa, bir modül dizisi olabilir, man dkms.
- DKMS'nin yerleşik modülü bulabileceği yer.
- DKMS ismi ve sürümü modül (ler) ile ilişkilendirilmelidir.
- Modülü kurduktan sonra initrd görüntüsünü yeniden düzenlemek için.
Ayrıca komut dosyalarını derleme veya yükleme işleminden önce veya sonra çağırmak, ek (koşullu) make komutları, yama komutları vb. Sağlamak için seçenekler ekleyebilirsiniz. Eğer gerekliyse. Bu seçenekler ve daha fazlası man dkms'daki dkms.conf bölümünde açıklanmaktadır.
Daha sonra, modül kurulum dosyalarını / usr / src / - çekirdek kaynak ağacına kopyalayarak modülü DKMS'ye yüklüyoruz ve DKMS'ye yeni modül hakkında bilgi veriyoruz:
# 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...
Bu kadar! DKMS, gelecek çekirdek kurulumları için inşa etmek üzere modülümüzü modül listesine ekledi. Çalıştığından emin olmak ve modülü mevcut çekirdeğimize takmak için, dkms'ye modülü kurup kurmasını söyleyebiliriz:
# 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
Biraz şansla modülünüz yüklenecek ve gelecekteki çekirdek güncellemelerine yeniden yüklenecektir.
Örnekler
DKMS adam sayfası DKMS ile kullanmak için favori çekirdek modülü kurma hakkında yararlı bilgiler vardır. Kapsamlı bir dokümantasyon değildir, ancak birçok soruyu cevaplayacaktır. Kullanılan modüller, kurmak istediğiniz modüller olmasa bile, aşağıdaki örnekleri not almanıza yardımcı olabilir:
- RocketRaid - Highpoint RocketRaid sürücüleri RR26xx ve RR62x'in DKMS ile nasıl kurulacağına dair iki örnek .
From: help.ubuntu.com
Daha fazla bilgi burada bulunabilir: