Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-12-26 23:19:51

  martes - Użytkownik

martes
Użytkownik
Zarejestrowany: 2005-09-26

[solved] kompilacja bez initrd po raz kolejny

Jacekalex napisał(-a):

Nie trzeba initrd, wystarczy wbudować moduly potrzebne do startu systemu statycznie w jajo.
to wystarczy wbudować na stałe system plików partycji root (a najlepiej wszystkich partycji na dysku) - czyli np  ext*, reiserfs, xfs, ntfs, i fat/dos.

To wszystko, żadna magia.
;-)

Podłącze się, bo mam identyczny problem i prawie stworzyłem niepotrzebny temat... I tak w ogóle to witam, ostatni raz na forum byłem 4-5 lat temu :).

@up
Czyli jeżeli dla / mam system plików ext4, to wystarczy, że na stałe wkompiluje w jądro jego obsługę? Chciałbym się pozbyć initrd, bo jeśli go używam, to mój "chudy" kernel nie chce się podnieść niestety. Walcze z tym już dwa dni non stop i głowa mnie już od tego rozbolała :(.

Jaki jest minimalny zestaw funkcji wkompilowanych w jądro, żeby system bootował się, zamontował sobie system plików i pozwolił wreszcie zalogować?

EDIT:
Próbowałem podejrzeć co jest włączone w konfiguracji "fabrycznego" jądra dostarczonego z Debianem, niestety nie jest to zbyt dydaktyczny materiał, bo prawie wszystko co się da ustawili jako [M]... ;d

// przeniesione z http://forum.dug.net.pl/viewtopic.php?id=17890 — ArnVaker

@ArnVaker - dzięki za wydzielenie ;)

Problem jest trochę bardziej złożony, ponieważ jajo nie wstaje niezależnie czy użyję initrd czy robię bez niego. W obu przypadkach sprowadza się do tego, że nie umie sobie podmontować / i albo kernel panic (bez initrd), albo wyrzuca mnie do busybox (z initrd). Widzi mój dysk, ale jako wielki blok danych, a nie zorganizowaną w partycje strukturę. W jednym z ostatnich postów wrzuciłem swój config. Mam nadzieję, że ktoś pomoże :).

Ostatnio edytowany przez straznik (2010-12-29 22:05:34)

Offline

 

#2  2010-12-26 23:26:56

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: [solved] kompilacja bez initrd po raz kolejny

straznik napisał(-a):

Jaki jest minimalny zestaw funkcji wkompilowanych w jądro, żeby system bootował się, zamontował sobie system plików i pozwolił wreszcie zalogować?

Nie ma takiego ;) Dla każdego kompa/usera będzie inny.

jeśli katalog boot masz na innej partycji to fs dla niego i dla / musisz mieć na stałe w jajku, a najlepiej to wkompilować na stałe wszystkie używane przy starcie systemu fsy. Ponadto pamiętaj o kontrolerach dysku żeby je na stałe w jajcu mieć.


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#3  2010-12-26 23:37:11

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [solved] kompilacja bez initrd po raz kolejny

winnetou napisał(-a):

jeśli katalog boot masz na innej partycji to fs dla niego i dla / musisz mieć na stałe w jajku

bootloader musi obsługiwać system plików z którego ładuje kernel, sam kernel niekoniecznie... tym bardziej na sztywno :P

Offline

 

#4  2010-12-26 23:37:34

  martes - Użytkownik

martes
Użytkownik
Zarejestrowany: 2005-09-26

Re: [solved] kompilacja bez initrd po raz kolejny

winnetou napisał(-a):

jeśli katalog boot masz na innej partycji to fs dla niego i dla / musisz mieć na stałe w jajku, a najlepiej to wkompilować na stałe wszystkie używane przy starcie systemu fsy. Ponadto pamiętaj o kontrolerach dysku żeby je na stałe w jajcu mieć.

Szczerze mówiąc, to przygotowałem sobie teoretycznie idealne środowisko do moich zabaw z kernelem - mam uproszczony układ partycji (swap i /), dość dobrze opisany w internecie sprzęt, bez egzotycznych części (Thinkpad R400) i świeżutki system Debian Testing z zainstalowanym jedynie podstawowym zestawem narzędzi, a mimo to są problemy.

1) / jest jako ext4 i mam jego obsługę wkompilowaną na stałe
2) SCSI device support, SCSI disk support oraz AHCI Sata support także na stałe (dysk SATA) <--- czy potrzebuję czegoś więcej do obsługi zwykłego, laptopowego dysku SATA?
3) jeśli utworzę paczkę make-dpkg --initrd, to udaje się coś tam załadować, ale zamiast

Kod:

kernel panic - not syncing: vfs: unable to mount root fs on unkown-block(8,7)

otrzymuję inny komunikat o błędzie

Kod:

Alert! /dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xx$ does not exist.  Dropping to a shell!

Chciałbym się już tym uporać...

Ostatnio edytowany przez straznik (2010-12-26 23:57:19)

Offline

 

#5  2010-12-26 23:41:23

  martes - Użytkownik

martes
Użytkownik
Zarejestrowany: 2005-09-26

Re: [solved] kompilacja bez initrd po raz kolejny

ArnVaker napisał(-a):

winnetou napisał(-a):

jeśli katalog boot masz na innej partycji to fs dla niego i dla / musisz mieć na stałe w jajku

bootloader musi obsługiwać system plików z którego ładuje kernel, sam kernel niekoniecznie... tym bardziej na sztywno :P

Ext4 support has been added in the 1.97 version of GRUB2

Mój GRUB jest w wersji 1.98, więc nie powinno być z tym problemu tak czy siak. Tym bardziej, że z fabrycznego jajka system ładuje się.

EDIT:
Sorry za dubla, nie wiedziałem, że to forum nie łączy automatycznie postów.


EDIT2:
Super, teraz to już nie zrobię nic kompletnie, bo genialny make-kpkg zamiast użyć configu stworzonego przez make menuconfig, zaczyna mi zadawać po kolei pytania odnośnie każdego modułu (oldconfig się odpala)...

Ostatnio edytowany przez straznik (2010-12-27 00:40:30)

Offline

 

#6  2010-12-27 01:41:50

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: [solved] kompilacja bez initrd po raz kolejny

jak masz montowanie partycji w fstabie? jak po uuid to, AFAIR, bez initrd się nie da

Kod:

kernel panic - not syncing: vfs: unable to mount root fs on unkown-block(8,7)

Dobrze masz skonfigurowanego gruba? I czy oby na 100% masz wkompilowane na stałe odpowiednie moduły do kontrolera ?


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#7  2010-12-27 08:59:45

  martes - Użytkownik

martes
Użytkownik
Zarejestrowany: 2005-09-26

Re: [solved] kompilacja bez initrd po raz kolejny

1) Gruba mam skonfigurowanego automatem z dpkg, sam nie ruszałem jego configu.
2) Na 100% modułów nie jestem pewien i dlatego chciałbym, żebyście mi napisali co wrzucić do jądra na stałe, żeby system się odpalał. Ogólnie, to jeśli stworzę paczkę z parametrem --initrd, to system przechodzi dalej, tylko że nie umie wtedy znaleźć sobie partycji: "Alert! /dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xx$ does not exist.  Dropping to a shell!".
3) Skompilowałem jądro w domyślnej konfiguracji dla 2.6.36.2 i system wstaje bez problemu - wniosek taki, że błąd leży po mojej stronie, bo definitywnie wyrzuciłem gdzieś o jeden moduł za dużo.
4) Teraz jednak moim największym problemem jest to, że gdy próbuję stworzyć paczkę z nowym jajkiem za pomocą make-kpkg, to załącza się oldconfig i zadaje mi po kolei pytania o konfigurację kernela, mimo, że chwilę wcześniej ustawiałem wszystko za pomocą menuconfig :(. Co może być przyczyną? Usunąłem folder ze źródłami i rozpakowałem na nowo, ale nie pomogło.

Offline

 

#8  2010-12-27 10:31:50

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: [solved] kompilacja bez initrd po raz kolejny

wrzuć wyniki dla

Kod:

lspci

i dla

Kod:

lsmod

z dystrybucyjnego jajka, i jak nie chcesz mieć initrd to zaktualizuj wpisy w fstabie na "normalne", tzn żeby byski były jako /dev/(h|s)da a nie po UUIDach


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#9  2010-12-27 10:43:41

  raven18 - Użytkownik

raven18
Użytkownik
Skąd: /home
Zarejestrowany: 2009-01-30

Re: [solved] kompilacja bez initrd po raz kolejny

winnetou napisał(-a):

straznik napisał(-a):

Jaki jest minimalny zestaw funkcji wkompilowanych w jądro, żeby system bootował się, zamontował sobie system plików i pozwolił wreszcie zalogować?

Nie ma takiego ;) Dla każdego kompa/usera będzie inny.

Są, nawet gotowe configi, no może trochę przerośnięte, wystarczy dodać  fs i stery ide/sata
http://kernel-seeds.org/index.html
w zalezności od architektury x86 i x86_64

winnetou napisał(-a):

i jak nie chcesz mieć initrd to zaktualizuj wpisy w fstabie na "normalne", tzn żeby byski były jako /dev/(h|s)da a nie po UUIDach

Dotyczy to gruba i niekoniecznie jest konieczne, w fstabie wszystko jedno


Windows 8.1

Offline

 

#10  2010-12-27 10:55:03

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: [solved] kompilacja bez initrd po raz kolejny

@raven - mea culpa - fakt grub w menu.list  nie łapie uuidów, potem to już wsio rawno.


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#11  2010-12-28 11:01:09

  martes - Użytkownik

martes
Użytkownik
Zarejestrowany: 2005-09-26

Re: [solved] kompilacja bez initrd po raz kolejny

Wybaczcie, że dopiero teraz odpisuje, ale wczoraj miałem przygodę z pieszą wędrówką z jednego końca miasta na drugi :/.

lsmod:

Kod:

Module                  Size  Used by
sco                     5857  2 
bridge                 33019  0 
stp                      996  1 bridge
bnep                    7444  2 
rfcomm                 25171  8 
l2cap                  21705  16 bnep,rfcomm
acpi_cpufreq            4951  1 
cpufreq_stats           1940  0 
cpufreq_conservative     4018  0 
cpufreq_powersave        602  0 
parport_pc             15799  0 
cpufreq_userspace       1480  0 
ppdev                   4058  0 
lp                      5570  0 
parport                22554  3 parport_pc,ppdev,lp
uinput                  4796  1 
loop                    9765  0 
snd_hda_codec_conexant    16345  1 
arc4                     974  2 
snd_hda_intel          16787  0 
btusb                   8077  2 
bluetooth              36319  9 sco,bnep,rfcomm,l2cap,btusb
snd_hda_codec          46002  2 snd_hda_codec_conexant,snd_hda_intel
ecb                     1405  2 
i915                  222064  0 
iwlagn                 63451  0 
pcmcia                 16194  0 
snd_hwdep               4054  1 snd_hda_codec
drm_kms_helper         18301  1 i915
joydev                  6739  0 
iwlcore                67478  1 iwlagn
snd_pcm                47222  2 snd_hda_intel,snd_hda_codec
drm                   112088  2 i915,drm_kms_helper
sdhci_pci               4525  0 
snd_timer              12258  1 snd_pcm
sdhci                  12147  1 sdhci_pci
uhci_hcd               16057  0 
snd                    34375  6 snd_hda_codec_conexant,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
ehci_hcd               27851  0 
i2c_algo_bit            3497  1 i915
yenta_socket           16403  1 
mmc_core               38665  1 sdhci
mac80211              123574  2 iwlagn,iwlcore
usbcore                98453  4 btusb,uhci_hcd,ehci_hcd
rsrc_nonstatic          7057  1 yenta_socket
thinkpad_acpi          41975  0 
soundcore               3450  1 snd
video                  14605  1 i915
i2c_i801                6462  0 
pcmcia_core            20450  3 pcmcia,yenta_socket,rsrc_nonstatic
ricoh_mmc               2561  0 
sg                     15968  0 
led_class               1757  3 iwlcore,sdhci,thinkpad_acpi
snd_page_alloc          5045  2 snd_hda_intel,snd_pcm
cfg80211               87657  3 iwlagn,iwlcore,mac80211
nls_base                4541  1 usbcore
output                  1204  1 video
e1000e                 97725  0 
nvram                   3985  1 thinkpad_acpi
i2c_core               12696  5 i915,drm_kms_helper,drm,i2c_algo_bit,i2c_i801
rfkill                 10264  4 bluetooth,thinkpad_acpi,cfg80211
sr_mod                 10770  0 
ac                      1640  0 
battery                 3782  0 
cdrom                  26487  1 sr_mod
button                  3598  1 i915
processor              26327  3 acpi_cpufreq
wmi                     3575  0 
evdev                   5609  6 
pcspkr                  1207  0 
psmouse                44657  0 
serio_raw               2916  0 
ext4                  257803  1 
mbcache                 3762  1 ext4
jbd2                   56155  1 ext4
crc16                   1027  2 l2cap,ext4
sd_mod                 25969  3 
crc_t10dif              1012  1 sd_mod
ahci                   27270  2 
libata                115753  1 ahci
thermal                 9206  0 
thermal_sys             9378  3 video,processor,thermal
scsi_mod              101421  4 sg,sr_mod,sd_mod,libata

lspci:

Kod:

00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
00:02.1 Display controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
00:03.0 Communication controller: Intel Corporation Mobile 4 Series Chipset MEI Controller (rev 07)
00:19.0 Ethernet controller: Intel Corporation 82567LM Gigabit Network Connection (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03)
00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 (rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93)
00:1f.0 ISA bridge: Intel Corporation ICH9M-E LPC Interface Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation ICH9M/M-E SATA AHCI Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03)
03:00.0 Network controller: Intel Corporation PRO/Wireless 5100 AGN [Shiloh] Network Connection
15:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ba)
15:00.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 21)
15:00.3 System peripheral: Ricoh Co Ltd R5C843 MMC Host Controller (rev ff)
15:00.4 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 11)
15:00.5 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 11)

Komputer to IBM/Lenovo Thinkpad R400. System plików ext4, na początku dysku partycje Windows 7, a później linuksowe /swap i /.

Najlepszym rozwiązaniem byłoby obejrzeć jakieś minimalistyczny, działający konfig dla w miarę podobnego sprzętu, a resztę modułów bym pododawał już wg własnego uznania.


EDIT:
Przejrzałem kernel-seeds i chyba mniej więcej wiem gdzie robię błąd, niestety nie mogę tego sprawdzić, bo przy próbie tworzenia paczki z kernelem dostaję komunikat "* Restart config..." i załącza się oldconfig który zadaje mi od nowa pytania o konfigurację :/. Nie widzi po prostu mojej konfiguracji. Co można na to poradzić?

Ostatnio edytowany przez straznik (2010-12-28 16:45:51)

Offline

 

#12  2010-12-28 17:54:11

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [solved] kompilacja bez initrd po raz kolejny

Odnośnie make-kpkg... Nie wiem czemu tak robi i nie mam jak w tej chwili sprawdzić, ale możesz go po prostu usunąć razem z konfigami (apt-get/aptitude purge kernel-package) i zainstalować jeszcze raz. Albo po prostu kompilować klasycznie :)

Offline

 

#13  2010-12-28 18:09:32

  martes - Użytkownik

martes
Użytkownik
Zarejestrowany: 2005-09-26

Re: [solved] kompilacja bez initrd po raz kolejny

"Windowsowy" sposób reinstalacji make-kpkg zadziałał :).

Niestety, po kompilacji dalej widzę:

http://priv.ckp.pl/martes/kpanic.jpg

Wydaje mi się, że tym razem niczego w samym konfigu nie przeoczyłem. Zaznaczam, że staram się stworzyć kernel BEZ initrd. W Grubie (jeśli nie użyję parametru make-kpkg --initrd) wpisy mają klasyczną postać /dev/sdaX, natomiast w fstab po UUID. Może wrzucę tu swój konfig i komuś chciałoby się rzucić okiem na niego?

Ostatnio edytowany przez straznik (2010-12-28 18:09:54)

Offline

 

#14  2010-12-28 18:16:41

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [solved] kompilacja bez initrd po raz kolejny

Systemy plików wbuduj statycznie w jajo (te systemy, które masz na partycjach Linuxa), do tego wszystko, co potrzebne do startu systemu też na stałe w jajo.
Wtedy initrd nie będzie specjalnie potrzebny.

Najprościej  uruchom system na dystrybucyjnym jaju, i odpal

Kod:

make localyesconfig

w źródłach kernela.

Wtedy w configu znajdą  się  (zaznaczone do wbudowania na stałe) wszystkie moduły załadowane w czasie wydania komendy.

I pokaż tu initrd :)

Kod:

 ~ $ head -n12 /boot/grub/grub.conf
default 0
timeout 15
splashimage=(hd0,0)/boot/grub/splash.xpm.gz


title         System 2.6.37-rc7 (hd0,1) vesa 792
root          (hd0,0)
kernel        /boot/vmlinuz-2.6.37-rc7 root=/dev/sda1 vga=792 nosplash acpi=force ro quiet

title         System 2.6.36-gen4 (hd0,1)
root          (hd0,0)
kernel        /boot/vmlinuz-2.6.36-gen4  root=/dev/sda1 video=uvesafb:1024x768-32@85,mtrr:3,ywrap nosplash acpi=force pax_softmode=1 ro quiet

Sznurek:
http://forum.dug.net.pl/viewtopic.php?pid=153575#p153575



To by było na tyle
;-)

Ostatnio edytowany przez Jacekalex (2010-12-28 18:44:11)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#15  2010-12-28 18:27:46

  martes - Użytkownik

martes
Użytkownik
Zarejestrowany: 2005-09-26

Re: [solved] kompilacja bez initrd po raz kolejny

Próbuję z make localyesconfig, oby zadziałało. :)

System plików mam ext4 i jest wbudowany, natomiast nie jestem pewny co do "wszystko, co ptorzebne do startu systemu". Najpierw poczekam jaki rezultat da twoja metoda i potem będę dalej kombinować.

/boot/grub/grub.cfg:

Dla mojeg kernela, wygenerowane automatycznie przez dpkg:

Kod:

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 2.6.36.2-martes-test' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set 8be99a7c-d2cd-410e-80fc-454a20350625
    echo    'Loading Linux 2.6.36.2-martes-test ...'
    linux    /boot/vmlinuz-2.6.36.2-martes-test root=/dev/sda7 ro  quiet
}

menuentry 'Debian GNU/Linux, with Linux 2.6.36.2-martes-test (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set 8be99a7c-d2cd-410e-80fc-454a20350625
    echo    'Loading Linux 2.6.36.2-martes-test ...'
    linux    /boot/vmlinuz-2.6.36.2-martes-test root=/dev/sda7 ro single 
}

Dla kernela dystrybucyjnego:

Kod:

menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set 8be99a7c-d2cd-410e-80fc-454a20350625
    echo    'Loading Linux 2.6.32-5-686 ...'
    linux    /boot/vmlinuz-2.6.32-5-686 root=UUID=8be99a7c-d2cd-410e-80fc-454a20350625 ro  quiet
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32-5-686
}

menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set 8be99a7c-d2cd-410e-80fc-454a20350625
    echo    'Loading Linux 2.6.32-5-686 ...'
    linux    /boot/vmlinuz-2.6.32-5-686 root=UUID=8be99a7c-d2cd-410e-80fc-454a20350625 ro single 
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32-5-686
}
### END /etc/grub.d/10_linux ###

EDIT:
make localyesconfig niestety nie pomogło - system nadal nie wstaje...

EDIT2:
Odpaliłem używając "recovery mode" i widzę teraz więcej informacji - przed błędem VFS, system sugeruje mi ustawienie dla parametru root= urządzenia sda lub sr0.

EDIT3:
Mimo powyższego, ustawienie:

Kod:

linux    /boot/vmlinuz-2.6.36.2-martes-test root=/dev/sr0 ro single

Kod:

linux    /boot/vmlinuz-2.6.36.2-martes-test root=/dev/sda ro single

zamiast:

Kod:

linux    /boot/vmlinuz-2.6.36.2-martes-test root=/dev/sda7 ro single

Powoduje jedynie zmianę numerku unkown-block(x,y) w błędzie:

Kod:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(x,y)

EDIT4:
Załączam swój config, żebyście wykluczyli/potwierdzili czy może być on winowajcą zamieszania:
http://priv.ckp.pl/martes/config-2.6.36.2-martes-test
Jest on trochę rozgrzebany i nieoptymalny, ale to przez to, że chwytałem się dodawania najróżniejszych komponentów do kernela, byle tylko ruszył.


EDIT5:
Zastanawiają mnie wpisy:

Kod:

insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'

w grub.cfg... skąd ten msdos i ext2, skoro partycja jest ext4? Po co mu to? Czyżbym miał coś namieszane z podziałem dysku na tyle, że bez initrd się nie obejdzie?


Przy okazji prosiłbym autora wątku o usunięcie [SOLVED] z tematu, bo być może przez to mnie ludzi tu zagląda, a w moim przypadku problem nie jest rozwiązany.



// trzeba było się nie podpinać... :P wydzieliłem do osobnego wątku — ArnVaker

Ostatnio edytowany przez straznik (2010-12-28 19:52:43)

Offline

 

#16  2010-12-28 23:10:50

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [solved] kompilacja bez initrd po raz kolejny

straznik napisał(-a):

w grub.cfg... skąd ten msdos i ext2, skoro partycja jest ext4? Po co mu to?

Nie wiem po co to, ale grub2 tak ma po prostu ;) raczej normalne. Próbowałeś wyłączyć ATA_PIIX i zostawić tylko SATA_AHCI? Choć w sumie wątpię żeby to pomogło... Jeszcze pytanie — masz tylko jeden dysk w kompie? Żadnych ustrojstw podpiętych pod usb itp.?


EDIT: Wrzuć jeszcze:

Kod:

fdisk -l

Offline

 

#17  2010-12-28 23:22:45

  martes - Użytkownik

martes
Użytkownik
Zarejestrowany: 2005-09-26

Re: [solved] kompilacja bez initrd po raz kolejny

Nie mam nic na USB, dysk twardy jest jeden. Ot, zwykły laptop. Wynik fdisk wrzucę za chwilkę, jak zgram go na pendrive, bo nie mam GUI jeszcze zainstalowanego na Debianie. ;)

EDIT:
Jest i fdisk -l:

Kod:

Dysk /dev/sda: 160.0 GB, bajtów: 160041885696
głowic: 255, sektorów/ścieżkę: 63, cylindrów: 19457
Jednostka = cylindrów, czyli 16065 * 512 = 8225280 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Identyfikator dysku: 0x9f5cd1e4

Urządzenie Rozruch   Początek      Koniec   Bloków   ID  System
/dev/sda1               1        2938    23594728    7  HPFS/NTFS
Partycja 1 nie kończy się na granicy cylindra.
/dev/sda2           18670       19457     6327720   12  Compaq diagnostics
Partycja 2 nie kończy się na granicy cylindra.
/dev/sda3            2938       18670   126364889+   5  Rozszerzona
/dev/sda5            2938       10770    62914288+   7  HPFS/NTFS
/dev/sda6           10770       16645    47189488+   7  HPFS/NTFS
/dev/sda7   *       16645       18581    15547392   83  Linux
/dev/sda8           18581       18670      711680   82  Linux swap / Solaris

Wpisy w tablicy partycji nie są w tej kolejności, co na dysku

EDIT2:
Udało mi się wystartować mój config z użyciem initrd :). Pokombinowanie w opcjach konfiguracji jednak coś dało. Średnio działa, bo pendrive nie chce mi wykrywać, ale startuje. Mimo to, bez initrd jak sie sypał tak dalej się sypie i nie mogę go zmusić do działania, a o to przecież chodzi mi od początku.

Ostatnio edytowany przez straznik (2010-12-28 23:41:53)

Offline

 

#18  2010-12-28 23:43:21

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [solved] kompilacja bez initrd po raz kolejny

Coś mi się to sda7 nie zgadzało z tym co wcześniej pisałeś o partycjach, ale jednak jest ok...
Dobra, spróbuj skompilować jajo na konfigu z tej stronki: http://vminko.org/gentoo_manuals/thinkpad_x200

bezpośredni link: http://vminko.org/storage/x200/configs/config-2.6.35


EDIT: tylko to jest 64bit w sumie... ale możesz załadować i przejrzeć chociaż ;)

Offline

 

#19  2010-12-28 23:53:56

  martes - Użytkownik

martes
Użytkownik
Zarejestrowany: 2005-09-26

Re: [solved] kompilacja bez initrd po raz kolejny

Kompiluje się. Tak na marginesie:
1) Jak wyłączyć PCSpeakera, który strasznie daje mi się we znaki, gdy chcę wyświetlić podpowiedzi tabulatorem, itp.?
2) Zainstalowałem ccache, żeby niby szybciej kernel kompilować, ale coś nie widzę wzrostu wydajności. Trzeba użyć jakiegoś przełącznika, żeby zadziałało?

Ostatnio edytowany przez straznik (2010-12-28 23:55:21)

Offline

 

#20  2010-12-28 23:58:15

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [solved] kompilacja bez initrd po raz kolejny

@pcspkr

na dystrybucyjnym jaju: wyładuj lub zblacklistuj moduł pcspkr
na własnym: odznacz w konfigu

@ccache

na Debianie nie używałem i nie wiem czy trzeba go dodatkowo konfigurować, natomiast na Gentoo po prostu kompilowałem tak:

Kod:

make CC="ccache gcc" -j2 && make install && make modules_install

Offline

 

#21  2010-12-29 00:09:33

  martes - Użytkownik

martes
Użytkownik
Zarejestrowany: 2005-09-26

Re: [solved] kompilacja bez initrd po raz kolejny

ArnVaker napisał(-a):

moduł pcspkr

Nie wiem czemu o tym nie pomyśłałem wcześniej, dzięki. :)


Co do configu który podałeś - z paroma failami, ale ruszył bez initrd i z większą, wygodniejszą rozdzielczością w trybie tekstowym. Poczułem się przez to głupi... Teraz muszę jakoś dojść co jest w tej konfiguracji takiego czego nie ma w mojej.

Ostatnio edytowany przez straznik (2010-12-29 00:11:44)

Offline

 

#22  2010-12-29 00:10:39

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [solved] kompilacja bez initrd po raz kolejny

heh, no to luz... tylko napisz potem dokładnie o co szło, bo sam jestem ciekaw :)

Offline

 

#23  2010-12-29 00:13:58

  martes - Użytkownik

martes
Użytkownik
Zarejestrowany: 2005-09-26

Re: [solved] kompilacja bez initrd po raz kolejny

Wydaje mi się, że istniał kiedyś skrypt porównujący dwa pliki i pokazujący różnicę. To by znacznie przyśpieszyło pracę. Pamiętasz coś takiego?

Offline

 

#24  2010-12-29 00:16:22

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [solved] kompilacja bez initrd po raz kolejny

diff?

Offline

 

#25  2010-12-29 16:53:22

  martes - Użytkownik

martes
Użytkownik
Zarejestrowany: 2005-09-26

Re: [solved] kompilacja bez initrd po raz kolejny

Kod:

Linux 2.6.36.2-martes Wed Dec 29 16:28:06 CET 2010 i686 GNU/Linux

:D jupikajej! :D

Działa i to bez initrd! Wielkie dzięki ArnVaker za tamten przykładowy config, bo na spółkę z kernel-seeds bardzo mi pomógł.

Co było bezpośrednią przyczyną trudno mi powiedzieć, bo nie bawiłem się w rekompilację po każdej zmianie jakiegoś przełącznika. W każdym razie musiała to być jedna z następujących rzeczy:
1) wkompilowanie w paru miejscach "legacy support'u", np. dla /proc/scsi
2) pozostawienie w konfiguracji SATA "AHCI SATA support" jako jedynego zaznaczonego elementu
3) dodatnie obsługi "PC BIOS (MSDOS partition tables) support" - przez te zastanawiające wpisy msdos7 w grub.cfg

Wprowadziłem zmiany też w paru innych miejscach, ale nie sądzę by dodanie obsługi np. bluetooth miało wpływ na bootowanie systemu. ;p


BTW.
Czemu paczka z jądrem ma końcówkę i386, skoro nawet uname pokazuje, że jądro jest i686?

Ostatnio edytowany przez straznik (2010-12-29 16:54:00)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)