Ubuntu 21.10.
Construiesc nuclee așa cum este documentat la https://help.ubuntu.com/community/Kernel/Compile și https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel.
DEB_BUILD_OPTIONS=parallel=$(getconf _NPROCESSORS_ONLN) AUTOBUILD=1 NOEXTRAS=1 \
fakeroot debian/rules binary-arch
Această comandă de compilare are același rezultat:
make --jobs=$(getconf _NPROCESSORS_ONLN) bindeb-pkg \
LOCALVERSION=-custom-$(git describe | tr '[:upper:]' '[:lower:]')
Acest lucru creează unele .deb
pachete:
$ ls -hal ../*.deb
-rw-r--r-- 1 amedee amedee 8,2M feb 26 02:17 ../linux-headers-5.13.19-ubuntu-5.13.0-22.22_5.13.19-ubuntu-5.13.0-22.22- 6_amd64.deb
-rw-r--r-- 1 amedee amedee 70M feb 26 02:18 ../linux-image-5.13.19-ubuntu-5.13.0-22.22_5.13.19-ubuntu-5.13.0-22.22-6_am deb
-rw-r--r-- 1 amedee amedee 1,2M feb 26 02:17 ../linux-libc-dev_5.13.19-ubuntu-5.13.0-22.22-6_amd64.deb
Le instalez astfel:
sudo dpkg --install \
../linux-headers-5.13.19-ubuntu-5.13.0-22.22_5.13.19-ubuntu-5.13.0-22.22-6_amd64.deb \
../linux-image-5.13.19-ubuntu-5.13.0-22.22_5.13.19-ubuntu-5.13.0-22.22-6_amd64.deb
Acesta este atunci conținutul /boot
:
$ ls -hal /boot/*5.13*
-rw-r--r-- 1 root root 252K nov 5 10:21 /boot/config-5.13.0-22-generic
-rw-r--r-- 1 root root 251K 26 februarie 02:15 /boot/config-5.13.19-ubuntu-5.13.0-22.22
-rw-r--r-- 1 root root 40M 22 feb 16:21 /boot/initrd.img-5.13.0-22-generic
-rw-r--r-- 1 root root 37M 26 feb 02:20 /boot/initrd.img-5.13.19-ubuntu-5.13.0-22.22
-rw------- 1 root root 5,7M nov 5 10:21 /boot/System.map-5.13.0-22-generic
-rw-r--r-- 1 root root 5,6M feb 26 02:15 /boot/System.map-5.13.19-ubuntu-5.13.0-22.22
-rw------- 1 root root 9,8M nov 5 13:51 /boot/vmlinuz-5.13.0-22-generic
-rw-r--r-- 1 root root 8,5M feb 26 02:15 /boot/vmlinuz-5.13.19-ubuntu-5.13.0-22.22
Actualizați initramfs (ceea ce, strict vorbind, nu este necesar, deoarece asta a fost deja făcut, dar pentru o bună măsură):
$ sudo update-initramfs -u -k all
update-initramfs: se generează /boot/initrd.img-5.13.19-ubuntu-5.13.0-22.22
update-initramfs: se generează /boot/initrd.img-5.13.0-22-generic
Apoi fug update-grub
:
amedee@kerbol:~/repos/ubuntu-impish$ sudo update-grub
Fișierul sursă `/etc/default/grub'
Fișierul sursă `/etc/default/grub.d/init-select.cfg'
Se generează fișierul de configurare grub...
Imaginea Linux găsită: /boot/vmlinuz-5.13.0-22-generic
Imagine initrd găsită: /boot/initrd.img-5.13.0-22-generic
Imaginea Linux găsită: /boot/vmlinuz-5.13.0-22-generic
Imagine initrd găsită: /boot/initrd.img-5.13.0-22-generic
Adăugarea unei intrări din meniul de pornire pentru Setările firmware UEFI
Terminat
Nucleul meu compilat 5.13.19-ubuntu-5.13.0-22.22
nu este adăugat la meniul Grub de update-grub
. Știu că îl pot adăuga manual, dar există riscul de greșeli de scriere. De asemenea, trebuie să compilez o mulțime de nuclee pentru că încerc să găsesc o posibilă eroare folosind git bisect
. Problema kernel-ului pe care o rezolv nu apare în nucleele principale mai recente, doar în (unele, dar nu toate) nucleele Ubuntu 21.10, așa că fac asta doar pentru a învăța ceva și pentru a-mi satisface curiozitatea.
Ce trebuie să fac pentru asta update-grub
adaugă nucleul meu compilat din /boot
director în meniul Grub?