Kernel ohne initrd

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
moritzz
Beiträge: 185
Registriert: 12.09.2009 14:56:58
Wohnort: Münster
Kontaktdaten:

Kernel ohne initrd

Beitrag von moritzz » 08.11.2009 14:27:38

Moin!

Ich würde meinen Kernel gerne ohne initrd haben. Mein aktueller Kernel ist ein 2.6.30 und der kann es auch ruhig bleiben. In einer neuen Version habe ich fest reingebacken: ext3 und, sofern ich mich nicht vertue, den piix, welcher laut Doku mein SATA Controller sein sollte (lspci unten):
Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (ATA_PIIX)

This option enables support for ICH5/6/7/8 Serial ATA
and support for PATA on the Intel ESB/ICH/PIIX3/PIIX4 series
host controllers.
Außerdem habe ich den SATA Support auch noch fix reinkompiliert.
Serial ATA (prod) and Parallel ATA (experimental) drivers (ATA)

If you want to use a ATA hard disk, ATA tape drive, ATA CD-ROM or
any other ATA device under Linux, say Y and make sure that you know
the name of your ATA host adapter (the card inside your computer
that "speaks" the ATA protocol, also called ATA controller),
because you will be asked for it.
lsmod:

Code: Alles auswählen

Module                  Size  Used by                                                      
tun                    11116  0                                                            
radeon                133564  2                                                            
drm                   136916  3 radeon                                                     
ipv6                  232124  14                                                           
acpi_cpufreq            7568  0                                                            
cpufreq_userspace       2592  0                                                            
cpufreq_powersave       1208  0                                                            
cpufreq_stats           3564  0                                                            
fuse                   46900  1                                                            
loop                   13172  0                                                            
snd_hda_codec_analog    53428  1                                                           
snd_hda_intel          22348  3                                                            
snd_hda_codec          57356  2 snd_hda_codec_analog,snd_hda_intel                         
snd_pcm_oss            32332  0                                                            
arc4                    1504  2                                                            
snd_mixer_oss          13112  1 snd_pcm_oss                                                
ecb                     2312  2                                                            
snd_pcm                62956  4 snd_hda_intel,snd_hda_codec,snd_pcm_oss                    
pwc                    74524  0                                                            
videodev               31716  1 pwc                                                        
v4l1_compat            11716  1 videodev                                                   
snd_seq_dummy           2348  0                                                            
snd_seq_oss            22740  0                                                            
snd_seq_midi            5616  0
snd_rawmidi            18712  1 snd_seq_midi
iTCO_wdt                9676  0
iwl3945                63912  0
snd_seq_midi_event      6128  2 snd_seq_oss,snd_seq_midi
iwlcore                89964  1 iwl3945
i2c_i801                7668  0
i2c_core               20828  2 drm,i2c_i801
mac80211              142468  2 iwl3945,iwlcore
rng_core                3644  0
joydev                  8768  0
snd_seq                41832  6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
evdev                   8200  31
snd_timer              17616  3 snd_pcm,snd_seq
snd_seq_device          6184  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
thinkpad_acpi          55616  0
rfkill                  9516  4 iwlcore,thinkpad_acpi
led_class               3784  1 thinkpad_acpi
cfg80211               56108  3 iwl3945,iwlcore,mac80211
snd                    49092  15 snd_hda_codec_analog,snd_hda_intel,snd_hda_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
video                  18408  0
parport_pc             22404  0
soundcore               6116  1 snd
output                  2544  1 video
parport                30960  1 parport_pc
snd_page_alloc          7932  2 snd_hda_intel,snd_pcm
nvram                   6316  2 thinkpad_acpi
battery                 9984  0
ac                      3900  0
button                  5068  0
processor              34400  3 acpi_cpufreq
ext3                  106968  2
jbd                    40400  1 ext3
mbcache                 6860  1 ext3
usbhid                 31272  0
hid                    36016  1 usbhid
sd_mod                 23844  4
ata_generic             4268  0
uhci_hcd               18920  0
ide_pci_generic         3552  0
ahci                   29916  3
libata                150776  2 ata_generic,ahci
ehci_hcd               29896  0
piix                    5624  0
ide_core               87020  2 ide_pci_generic,piix
e1000e                 98288  0
scsi_mod              134816  2 sd_mod,libata
usbcore               125116  5 pwc,usbhid,uhci_hcd,ehci_hcd
intel_agp              22832  0
agpgart                30896  2 drm,intel_agp
thermal                12612  0
fan                     3988  0
thermal_sys            13372  4 video,processor,thermal,fan
lspci:

Code: Alles auswählen

00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X1400
02:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)
15:00.0 CardBus bridge: Texas Instruments PCI1510 PC card Cardbus Controller
Leider funktioniert es so nicht und ich bekomme nach wie vor die Meldung:

Code: Alles auswählen

VFS: Unable to mount root fs on unknown block(0,0)
Woher soll ich wissen was ich denke, bevor ich höre was ich sage?

Clio

Re: Kernel ohne initrd

Beitrag von Clio » 08.11.2009 14:38:55

Das muß bei der Konfiguration extra angegeben werden, wenn keine initrd verwendet werden soll
CONFIG_BLK_DEV_INITRD

moritzz
Beiträge: 185
Registriert: 12.09.2009 14:56:58
Wohnort: Münster
Kontaktdaten:

Re: Kernel ohne initrd

Beitrag von moritzz » 08.11.2009 15:10:25

Hat nichts geändert...
Woher soll ich wissen was ich denke, bevor ich höre was ich sage?

moritzz
Beiträge: 185
Registriert: 12.09.2009 14:56:58
Wohnort: Münster
Kontaktdaten:

Re: Kernel ohne initrd

Beitrag von moritzz » 09.11.2009 23:20:18

Keiner?
Woher soll ich wissen was ich denke, bevor ich höre was ich sage?

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Re: Kernel ohne initrd

Beitrag von DynaBlaster » 09.11.2009 23:22:44

Kann es sein, dass dir bei der Kernel-Config ein paar Sachen aus dem SCSI-Zweig fehlen? Ich meine, das man für SATA-Platten zusätzlich den den SCSI-Support für Disks aktivieren muss. Der Kernel erkennt SATA-Platten ja als /dev/sdx, Und /dev/sdx waren früher eigentlich nur SCSI-Geräte. Ich meine mich zu erinnern, dass ich bei meinem letzten Kernel den SCSI-Disk-Support auch brauchte, um USB-Festplatten und USB-Sticks anprechen zu können.

Was steht denn in den Bootmeldungen vor der "VFS: Unable to mount root fs on unknown block(0,0)"-Meldung ?

Hat der Kernel die Platte(n) und Partitionen erkannt?

moritzz
Beiträge: 185
Registriert: 12.09.2009 14:56:58
Wohnort: Münster
Kontaktdaten:

Re: Kernel ohne initrd

Beitrag von moritzz » 09.11.2009 23:32:59

Vor der Meldung steht gar nichts.
Woher soll ich wissen was ich denke, bevor ich höre was ich sage?

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Kernel ohne initrd

Beitrag von cirrussc » 10.11.2009 02:08:03

Hast Du nun eine PATA (IDE) oder SATA Root HDD?
Davon abhängig, was ist im BIOS eingestellt (SATA, AHCI, IDE)?

Ganz wichtig ist vor allem, dass du Treiber für einen Controller nicht aus dem alten ATA (CONFIG_IDE) UND dem neueren libata (CONFIG_ATA) einbaust!
D.h. nicht zu gleich hierin "ATA/ATAPI/MFM/RLL support" und "Serial ATA (prod) and Parallel ATA (experimental) drivers". Wenn die entsprechenden Module unterschiedliche Geräte unterstützen, ist das möglich.
CONFIG_BLK_DEV_INITRD gibt dem Kernel die Fähigkeit Initrd's zu handeln, es kann, muss aber nicht deaktiviert werden.

Hast Du die alle gesetzt (y)?
CONFIG_ATA
CONFIG_ATA_ACPI
CONFIG_SATA_AHCI
CONFIG_ATA_SFF
CONFIG_ATA_PIIX
Notfalls muss der Generic her:
CONFIG_ATA_GENERIC
Die Abhängigkeiten zum SCSI Subsystem sollte die Kernelkonfig bei Auswahl der entsprechenden Module selbst setzen (trotzdem prüfen).

Bei den FS:
CONFIG_EXT2_FS (ja ext2 sollte man immer bauen)
CONFIG_EXT3_FS

CONFIG_PARTITION_ADVANCED
CONFIG_MSDOS_PARTITION
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

moritzz
Beiträge: 185
Registriert: 12.09.2009 14:56:58
Wohnort: Münster
Kontaktdaten:

Re: Kernel ohne initrd

Beitrag von moritzz » 10.11.2009 09:59:40

Ich habe eine SATA Platte im AHCI Mode.

CONFIG_IDE ist jetzt als Module drin und CONFIG_ATA fest. Wenn ich es richtig sehe brauche ich CONFIG_IDE ja für mein DVD-Laufwerk, oder?

CONFIG_BLK_DEV_INITRD habe ich mal drin gelassen, wenn es eh nicht stört.

Fest drin sind auch:
CONFIG_ATA
CONFIG_ATA_ACPI
CONFIG_SATA_AHCI
CONFIG_ATA_SFF
CONFIG_ATA_PIIX
CONFIG_EXT2_FS
CONFIG_EXT3_FS
CONFIG_PARTITION_ADVANCED
CONFIG_MSDOS_PARTITION

Kompiliere dann jetzt mal und schaue ob es damit geht.

edit: Tut es leider nicht. Immer noch der selbe Fehler. Ich habe mal meine Kernelconfig ins nopaste gekippt: http://nopaste.debianforum.de/31292
Woher soll ich wissen was ich denke, bevor ich höre was ich sage?

Clio

Re: Kernel ohne initrd

Beitrag von Clio » 10.11.2009 15:56:56

Einen eigenen, abgespeckten Kernel ohne initrd zu erstellen, ist auch nicht so ganz einfach und klappt in den seltensten Fällen sofort.
Da braucht es schon mehrere Ansätze.
Letztlich weißt nur Du, welche Hardware Dein Rechner hat und welche Funktionen Du haben willst.
Was wichtig ist, hat cirrussc ja schon geschrieben.
Hier gibt es im Gentoo im-Wiki eine ganz gute Erklärung zu den einzelnen Parametern, ist aber natürlich auch nur ein Überblick:
http://gentoo-wiki.stefreak.de/de.gento ... 2.6-5.html

Mit welchem Kommando willst Du den Kernel eigentlich kompilieren?

moritzz
Beiträge: 185
Registriert: 12.09.2009 14:56:58
Wohnort: Münster
Kontaktdaten:

Re: Kernel ohne initrd

Beitrag von moritzz » 10.11.2009 16:04:20

Ich kompiliere immer mit

Code: Alles auswählen

make-kpkg --revison=$name kernel_image
Woher soll ich wissen was ich denke, bevor ich höre was ich sage?

moritzz
Beiträge: 185
Registriert: 12.09.2009 14:56:58
Wohnort: Münster
Kontaktdaten:

Re: Kernel ohne initrd

Beitrag von moritzz » 17.11.2009 16:12:28

So mittlerweile habe ich den Spaß im Griff. Welches Modul es jetzt genau war weiß ich allerdings nicht.

Eine weitere Frage: Wenn ich in Grub den entsprechenden Kernel auswähle, dann dauert es anschließend ein paar Sekunden bis es wirklich losgeht. Früher stand da halt immer "Loading...". Jetzt ist der Screen einfach schwarz. Was ist das für eine Gedankenpause und warum ist die "so lang"?
Woher soll ich wissen was ich denke, bevor ich höre was ich sage?

Clio

Re: Kernel ohne initrd

Beitrag von Clio » 17.11.2009 16:46:22

Na das ist ja schön, daß es jetzt läuft.
Ich hatte ja schon gesagt, manchmal braucht man mehrere Anläufe, bis man die richtigen Parameter zusammen hat.
Zu Deiner Frage:
Die "Denkpause" ist bei selbst erstellten Kerneln normal. Du kannst in der menu.lst mal das "quiet" herausnehmen, dann sind keine Meldungen mehr versteckt und Du kannst sehen, ob und an welcher Stelle eine längere Pause entsteht.

moritzz
Beiträge: 185
Registriert: 12.09.2009 14:56:58
Wohnort: Münster
Kontaktdaten:

Re: Kernel ohne initrd

Beitrag von moritzz » 17.11.2009 18:45:08

Er "steckt" relativ lange bei "setting the system clock". Lässt sich das beheben?
Woher soll ich wissen was ich denke, bevor ich höre was ich sage?

Clio

Re: Kernel ohne initrd

Beitrag von Clio » 17.11.2009 18:58:34

......ausgerechnet die Zeit.......
Da gibt es X verschiedene Ursachen, ist ein Timeserver eingerichtet oder UTC? Stimmt die BIOS Zeit...usw. usw.
Hier im Forum gibt es einige Beiträge dazu oder auch mal Google bemühen.

moritzz
Beiträge: 185
Registriert: 12.09.2009 14:56:58
Wohnort: Münster
Kontaktdaten:

Re: Kernel ohne initrd

Beitrag von moritzz » 18.11.2009 15:56:40

Also meine BIOS Uhr ist auf GMT gesetzt und der ntp startet erst deutlich später.
Woher soll ich wissen was ich denke, bevor ich höre was ich sage?

Clio

Re: Kernel ohne initrd

Beitrag von Clio » 18.11.2009 16:48:50

Stelle mal versuchshalber um auf UTC, vielleicht hilft es.
Aber hier klinke ich mich mal aus, da gibt es einfach zuviele Möglichkeiten.

moritzz
Beiträge: 185
Registriert: 12.09.2009 14:56:58
Wohnort: Münster
Kontaktdaten:

Re: Kernel ohne initrd

Beitrag von moritzz » 21.11.2009 16:11:03

Ähem kurze Verständnisfrage: BIOS Zeit auf UTC0 setzen, also unsere Zeit -1h oder auf UTC1, also unsere Zeit?
Woher soll ich wissen was ich denke, bevor ich höre was ich sage?

Clio

Re: Kernel ohne initrd

Beitrag von Clio » 21.11.2009 18:37:34

Im BIOS habe ich bei mir die jetzige Zeit eingestellt.
Mit

Code: Alles auswählen

dpkg-reconfigure tzdata -> Auswahl Etc -> Auswahl UTC
kannst Du das umstellen.
Denke auch daran, bei UTC mußt Du selbst die Sommer- bzw. Winterzeit umstellen.

Antworten