2016-03-26 18 views
0

Bir Ubuntu sunucusu için en yeni linux kripto sürücüleri oluşturmaya çalışıyorum. Ubuntu sunucusu çalışan bir çekirdek, ekstralar ve başlıklar yüklü. Ancak, kripto modülleri için kaynak kodu Torvald'ın GitHub'undan geliyor (Ubuntu değil).Çalışan çekirdeklere karşı harici modüller oluşturma

Ayrıca, çekirdek belgesi Building External Modules'dan da çalışıyorum. Ben en son çekirdek klonlanmış:

git clone --depth=1 https://github.com/torvalds/linux.git 
Sonra

:

cd linux 

Sonraki:

$ make -C /usr/src/linux-headers-4.2.0-34 M=$PWD crypto 
make: Entering directory '/usr/src/linux-headers-4.2.0-34' 

    ERROR: Kernel configuration is invalid. 
     include/generated/autoconf.h or include/config/auto.conf are missing. 
     Run 'make oldconfig && make prepare' on kernel src to fix it. 

make: Nothing to be done for 'crypto'. 
make: Leaving directory '/usr/src/linux-headers-4.2.0-34' 

Ve:

$ find /usr/src -name 'autoconf.h' 
/usr/src/linux-headers-4.2.0-34-generic/include/generated/autoconf.h 
$ find /usr/src -name 'auto.conf' 
/usr/src/linux-headers-4.2.0-34-generic/include/config/auto.conf 

Ve bu:

$ find /usr/src -type d -name 'build' 
/usr/src/linux-headers-4.2.0-34/tools/build 
/usr/src/linux-headers-4.2.0-34-generic/include/config/build 
aşağıdaki build dizin sonuçlarını kullanmaya çalışıyor: Açıkçası belirgin bir şey eksik

$ make -C /usr/src/linux-headers-4.2.0-34/tools/build M=$PWD crypto 
make: Entering directory '/usr/src/linux-headers-4.2.0-34/tools/build' 
make: *** No rule to make target 'crypto'. Stop. 
make: Leaving directory '/usr/src/linux-headers-4.2.0-34/tools/build' 

. Kbuild hakkında hiçbir şey bilmediğimden beri bu şaşırtıcı değil. /usr/src adresinden çıkıp çıkarılan bir yapılandırma ve kaynaklarım var ve $PWD/crypto numaralı yeni dosyalarım var. Mevcut bir yapılandırma için neden yeni bir yapılandırma oluşturduğumu açık değil.

Çekirdek kripto modüllerini, başkası tarafından sağlanan çalışan çekirdeğe karşı nasıl güncelleştiririm?

+0

Burada: 'make -C /usr/src/linux-headers-4.2.0-34 M = $ PWD kripto' yerine -' kripto' yerine 'modules' olmalıdır. – Tsyvarev

+0

Teşekkürler @Tsyvarev. Bu, aynı sorunla sonuçlanır: *** 'HATA: Çekirdek yapılandırması geçersiz. '*** Ve yeni bir sorun ekliyor: *** cc1: ölümcül hata: ern kernel/sınırlarını açamıyorum.s 'yazmak için: İzin reddedildi derleme sonlandırıldı.' *** – jww

+0

Normalde, Linux çekirdeği oluşturulmadan önce yapılandırılmalıdır. Çekirdek/sınırların yokluğu genellikle bu soruna işaret eder. 'Make menuconfig', 'oldconfig've diğer * configure * hedeflerini kullanın. – Tsyvarev

cevap

1

Aslında burada iki şey vardır umurumda şunlardır:

çalışan çekirdek sürümü aynı Kullandığımız kaynağın olan mı.
Daha önce derlenmiş çekirdek en son sürümde kullanılabilen tüm bağımlılıkları sahip olmayabilirken, en son çekirdek kaynağına sahip harici modülün derlenmesi, yalnızca en yeni sürümde bulunan kodun herhangi bir bölümüne bağlı olabilir. Bu nedenle, harici modülü kullandığımız en son sürüm çekirdeğin kullanılması tavsiye edilir.

İkinci olarak, çekirdek kaynak üst dizininde .config için dosya sisteminin /boot/config(current-version)* kopyalayabilirsiniz
çekirdek derleme için .config dosyası. Şu anki sürüm uname -r

'dan alınabilir. Bu nedenle, eğer çalışan sürüm (eğer uname -r ile kontrol et komutu -r) indirilen kaynağa eşit değilse, o zaman yeni kernel'i derlemeniz ve kullanmanız ya da aynı sürüm kernel sürümünü indirmeniz gerekir. çekirdeği olarak. Çekirdek derlemesi için önyükleme dizininde bulunan yapılandırma dosyasını kullanın, yukarıda belirtildiği gibi kopyalayın.

Ardından, harici modülü derlemek için normal bir şekilde devam edebilir ve herhangi bir sorun yaşamadan çekirdek çekirdeği ile yükleyebilirsiniz.

İlgili konular