Initrd jest niepotrzebny, jeśli 2 drivery: do dysku i systemu plików root (czyli powiedzmy ext3) wkomponujesz w jądro, nie jako moduły.
U Ciebie prawdopodobnie brak tych oznaczeń "uname", np.:
linux-image-2.6.29 i linux-headers.2.6.29.
Ja robiłem za pomocą
update-initramfs:
Jak nie podasz parametru po k, weźmie najnowszą (jak mu dam własną nazwę, to skąd będzie wiedział, po dacie?)
Zamiast c- create, może być u- update.
2.6.29-moja, to nazwa mojej wersji.
Make modules_install mi zrobił nazwę katalogu
/lib/modules/2.6.29, ja mu dodałem "moja". Tak samo nazwałem vmlinuz i System.map. Configa nie robiłem (nie wiem jak), jak i linków w katalogu głównym, bo w GRUB-ie podałem dokładne ścieżki.
Działa.
EDIT:
P.S. Co do poprzednich pytań, czy są wszystkie składniki: w katalogu z kodem Linuksa, który będziemy kompilować, jest podkatalog z przydatnymi skryptami ./scripts. Jest tam skrypt
ver_linux, który nam sprawdzi za jednym zamachem i wypisze, czy mamy wszystkie składniki, niezbędne do utworzenia danej wersji jądra.
Jeśli ktoś ma najnowszą wersję Ubuntu 9.04, to chyba kompilator języka C jest i wszystko niezbędne (nie pamiętam, bo jadę już bez instalacji ponad pół roku)
Jedynie konfiguracja modułów wymaga dociągnięcia bibliotek do wyświetlania grafiki dla danej metody - w wersji DEV.
-Make menuconfig wymaga libncurses5-dev
-Make xconfig wymaga libqt4-dev - ale to raczej nie dla użytkowników Ubuntu tylko Kubuntu, bo trzeba całą bibiotekę grafiki Qt z KDE dociągnąć.
-Make gconfig - to to samo co powyżej, tylko z gnomiastą grafiką. Czyli dużo lepszy ybór. Wymaga libgtk2.0-dev
-Make oldconfig- niczego nie wymaga, ale nie polecam tej metody, rodem z głębokiego średniowiecza i czasów panowania ośmiobitowego Atari...