DKMS ne yapar? Bunu nasıl kullanabilirim?


23

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:


25

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

  1. Modülü derleme komutu (run, src / dizininde make komutunu çalıştırın).
  2. Kaynak ağacı temizleme komutu (run, src / dizininde make clean).
  3. .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.
  4. DKMS'nin yerleşik modülü bulabileceği yer.
  5. DKMS ismi ve sürümü modül (ler) ile ilişkilendirilmelidir.
  6. 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:


2
FWIW DKMS projesi Github üzerinde yeni bir ev vardır github.com/dell/dkms
DDay
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.