Puncte:1

update-grub nu adaugă toate nucleele la meniul grub

drapel au

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?

Amedee Van Gasse avatar
drapel au
Sintaxa corectă este `update-initramfs -u -k all` și nu, asta nu ajută, o voi adăuga la întrebare.
Doug Smythies avatar
drapel gn
Luați în considerare trecerea la nucleul principal pentru bisecția nucleului. Am împărțit nucleul de multe ori. Nu am avut niciodată succes în încercarea de a compila nucleul folosind metodele Ubuntu. Cu mainline puteți verifica cel mai recent candidat RC pentru a determina dacă problema dvs. a fost deja rezolvată. Totuși, va trebui să restabiliți punctele de pornire `git bisect good` și `git bisect bad`. Utilizarea liniei principale este, de asemenea, mai bună pentru escaladarea în amonte. Vezi metoda mea de compilare a nucleului principal [aici](https://askubuntu.com/questions/718381/how-to-compile-and-install-custom-mainline-kernel/718662#718662).
Doug Smythies avatar
drapel gn
Nu am avut niciodată o problemă cu update-grub cu compilațiile mele personalizate și nu știu ce este în neregulă acolo.
Amedee Van Gasse avatar
drapel au
Bună @DougSmythies, știu deja că problema specifică nu apare în cel mai recent nucleu principal sau în orice alt nucleu principal pe care l-am testat până acum. Am încercat deja asta. Apare numai cu nucleele din depozitele Ubuntu. Motivația mea principală este să învăț. Dacă aș trece doar la cel mai recent kernel, atunci ar fi ca și cum ar fi renunțat și nu aș învăța nimic.
Amedee Van Gasse avatar
drapel au
@DougSmythies Am citit metoda ta de compilare și văd că folosești `bindeb-pkg`. În cele din urmă, nu contează - ambele metode creează pachete `.deb`, iar cu ambele metode, fișierele kernel sunt copiate în `/boot`. Amândoi ajungem la același punct prin metode diferite. Voi încerca absolut cu repo-ul kernel-ului principal, doar pentru a vă umor și mă aștept să obțin același rezultat. Nu cred că este ceva cu nucleele, ci cu modul în care `update-grub` detectează fișierele în `/boot`.
Amedee Van Gasse avatar
drapel au
Înainte de a utiliza modul Ubuntu de a compila nucleul, am folosit această comandă: `time make --jobs=$(getconf _NPROCESSORS_ONLN) bindeb-pkg LOCALVERSION=-$(git describe | tr '[:upper:]' '[: mai jos:]')`. Rezultatul este același.
Doug Smythies avatar
drapel gn
BINE. destul de corect în ceea ce privește partea dorinței de a învăța. Sunt de acord cu grub-update-ul ar trebui să funcționeze. Eu folosesc 20.04, tu folosești 21.10 (cred).
Amedee Van Gasse avatar
drapel au
Este corect, voi adăuga asta la întrebare.
Doug Smythies avatar
drapel gn
Nu știu ce este: `Imaginea GRUB Invaders găsită: /boot/invaders.exec`. Încercați nume de nuclee mai scurte, doar ca test.
Amedee Van Gasse avatar
drapel au
Acesta este doar faimosul și legendarul joc Space Invaders, făcut să ruleze în interiorul GRUB, deci fără sistem de operare. Vedeți https://github.com/stokito/grub-invaders și un videoclip cu jocul https://www.youtube.com/watch?v=ZfddXQlF1vA
Amedee Van Gasse avatar
drapel au
Am dezinstalat grub-invaders, așa că nu trebuie să vă mai faceți griji pentru asta. Voi actualiza întrebarea în consecință.
Amedee Van Gasse avatar
drapel au
@karel Am găsit răspunsul cu 23 de ore înainte de a posta comentariul tău, vezi răspunsul de mai jos.
karel avatar
drapel sa
Heh heh, de acolo am luat-o.
Puncte:0
drapel au

Următoarele trei comenzi rezolvă această problemă, prin dezactivarea bitului executabil 09_latență redusă și pornind bitul pentru 10_linux, în conformitate cu textul din /etc/grub.d/README.lowlatency.

# chmod -x /etc/grub.d/09_lowlatency
# chmod +x /etc/grub.d/10_linux
# update-grub

Soluție găsită la https://askubuntu.com/a/1228269/149519.

Pentru a confirma că acum funcționează conform așteptărilor:

$ ls -hal /boot ; ecou; sudo update-grub
total 107 milioane
drwxr-xr-x 4 root root 4,0K 28 feb 04:42 .
drwxr-xr-x 20 root root 4,0K 26 februarie 01:13 ..
-rw-r--r-- 1 root root 252K nov 5 10:21 config-5.13.0-22-generic
-rw-r--r-- 1 root root 251K feb 26 02:15 config-5.13.19-ubuntu-5.13.0-22.22
drwx------ 4 root root 4,0K 1 ianuarie 1970 efi
drwxr-xr-x 5 root root 4,0K 28 februarie 04:42 grub
lrwxrwxrwx 1 rădăcină rădăcină 28 feb 28 04:26 initrd.img -> initrd.img-5.13.0-22-generic
-rw-r--r-- 1 rădăcină rădăcină 40M feb 26 13:55 initrd.img-5.13.0-22-generic
-rw-r--r-- 1 root root 37M feb 26 13:54 initrd.img-5.13.19-ubuntu-5.13.0-22.22
-rw------- 1 rădăcină rădăcină 5,7M nov 5 10:21 System.map-5.13.0-22-generic
-rw-r--r-- 1 root root 5,6M feb 26 02:15 System.map-5.13.19-ubuntu-5.13.0-22.22
lrwxrwxrwx 1 root root 25 feb 28 04:27 vmlinuz -> vmlinuz-5.13.0-22-generic
-rw------- 1 rădăcină rădăcină 9,8M nov 5 13:51 vmlinuz-5.13.0-22-generic
-rw-r--r-- 1 root root 8,5M feb 26 02:15 vmlinuz-5.13.19-ubuntu-5.13.0-22.22

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.19-ubuntu-5.13.0-22.22
Imaginea initrd găsită: /boot/initrd.img-5.13.19-ubuntu-5.13.0-22.22
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

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.