Kompilujemy sobie kernel post scriptum
Data: 2016-11-13, autor: Michał MisztalPoniżej napiszę kilka słów post scriptum kompilacji kernela. Bo sama kompilacja to nie wszystko. Ale jak się okazuje system przy pewnej konfiguracji sprzętowej może nie działać. Opiszę wszystko na przykładzie swojego sprzętu.
Po pierwsze - zamiast zrzutu konfiguracji można użyć polecenia
[user@komputer ~]$ make localmodconfig
Polecenie to należy wykonać mając podłączone wszystkie możliwe urządzenia do komputera. W oparciu o aktualną konfigurację tworzony jest plik .config. W tym pliku uwzględniono tylko to czego faktycznie używamy. Wszelkie pozostałe rzeczy zostają wyłączone.
Ci którzy korzystają z własnościowych sterowników NVIDII muszą zainstalować wersję dkms modułów. To samo dotyczy Virtualboxa.
I to wszystko. Dostępne są również interaktywne narzędzia konfiguracji kernela. Ale to już zabawa dla profesjonalistów.
PS. Można sobie napisać skrypt który zaktualizuje kilka rzeczy. Ja zrobiłem dwa z podziałem na część dla zwykłego użytkownika i na część dla super użytkownika. Jedynym parametrem jest numer kernela jaki chcemy skompilować. Jako zwykły user wykonujemy skrypt
#!/bin/bash kernel=$1 folder=linux-$1 wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-`echo $kernel`.tar.xz && tar -xvJf linux-`echo $kernel`.tar.xz && cd $folder && make clean -j 4 && make mrproper -j 4 && make localmodconfig && make -j 4
A jako root
#!/bin/bash kernel=$1 initramfs="initramfs-csk.img" folder=linux-$kernel vmlinuz="vmlinuz-linux-csk" cd $folder && make modules_install && cp -v arch/x86_64/boot/bzImage /boot/`echo $vmlinuz` && mkinitcpio -k `echo $kernel`-ARCH -g /boot/`echo $initramfs`
Jak ktoś chce to może użyć funkcji sprawdzających poprawność przekazanych parametrów i ogólnie całego skryptu. Mnie jest to niepotrzebne. Wykonujemy to oczywiście jako sh skrypt nr_kernela.