(gelöst) Kern für wheezy ohne initrd

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
guennid

(gelöst) Kern für wheezy ohne initrd

Beitrag von guennid » 25.03.2013 17:04:53

Ich möchte auf einem wheezy-Rechner die initrd vermeiden. Folgendes habe ich gemacht. Sourcen 3.2.1 von kernel.org gezogen. make oldconfig mit der config des 3.2.0er Standard-Kerns, danach make localyesconfig.
Kern wird gebaut und installiert. Danach lilo.conf angepasst und lilo ohne Fehlermeldung laufen gelassen. Rechner bootet nicht. Jemand eine Idee?

Ich bin über ein ähnliches Problem von TRex gestolpert, da war was mit unterschiedlichen Einträgen in der bootloader.conf (grub) und fstab. In meiner lilo.conf steht

Code: Alles auswählen

root=/devsda5
in der fstab ist die UUID benannt.

Dem Standard-Kern (3.2.0, mit initrd) scheint das nichts auszumachen.

Grüße, Günther

[edit:]
Und dann noch so'ne Frage am Rande: Warum kann ich beim Kern Bauen die Revision nicht mehr mit einem Buchstaben beginnen lassen? :twisted:
Zuletzt geändert von guennid am 26.03.2013 19:31:36, insgesamt 1-mal geändert.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: kern für wheezy ohne initrd

Beitrag von syssi » 25.03.2013 18:16:34

"Rechner bootet nicht" ist leider eine genauso schlechte Fehlerbeschreibung, wie "Kernel funktioniert nicht.". An welcher Stelle scheitert der Bootvorgang denn? Was hast du unternommen (angepasst), dass du auf eine Initrd verzichten kannst? Wird der Kernel vom Bootloader (lilo) gefunden? An welcher Stelle scheitert der Bootvorgang? Kann man nichts sehen, dann wirst du moeglicherweise einen Kernel-Paramter (quiet) in der lilo.conf entfernen muessen.

Guss syssi

pferdefreund
Beiträge: 3799
Registriert: 26.02.2009 14:35:56

Re: kern für wheezy ohne initrd

Beitrag von pferdefreund » 25.03.2013 19:14:07

Ich mach mir auch generell nen Kernel ohne initrd - ich hasse die. Du musst den Chipsatztreiber für SATA, SCSI-Unterstützung und SCSI-DIsk-Support sowie das Root-Filesystem (z. B ext3 )fest einkompilieren und gut ist. Mach ich so seit Jahren. Mit lspci sollte man den SATA-Treiber ermitteln können. Dann kann man noch so Zeug wie Amateurradio usw rausnehmen, so man es nicht braucht und auch andere nicht notwendige Dinge - Das reduziert die Compile-Time.
Und nicht vergessen - während der Komplierung das Grasen auf der Weide nicht vergessen. Eventuell sind ja auch ein paar Stuten da - grins..

guennid

Re: kern für wheezy ohne initrd

Beitrag von guennid » 25.03.2013 19:20:30

Du musst den Chipsatztreiber für SATA, SCSI-Unterstützung und SCSI-DIsk-Support sowie das Root-Filesystem (z. B ext3 )fest einkompilieren und gut ist.
Genau das sollte

Code: Alles auswählen

make localyesconfig
tun, wenn ich recht informiert bin! [1] Lest ihr eigentlich auch manchmal, bevor ihr euch über ungenaue Fehlerbeschreibungen beschwert? :evil: Auf TRex Erfahrungen hatte ich ebenfalls verwiesen. Eine Fehlermeldung hätte ich schon abgeschrieben beim hängengebliebenen Bootvorgang und werde das auch tun, aber das schien mir bisher wenig aussagekräftig.

Grüße, Günther

[1] http://wiki.ubuntuusers.de/Kernel/Kompilierung

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: kern für wheezy ohne initrd

Beitrag von syssi » 25.03.2013 19:43:04

guennid hat geschrieben:Eine Fehlermeldung hätte ich schon abgeschrieben beim hängengebliebenen Bootvorgang und werde das auch tun, aber das schien mir bisher wenig aussagekräftig.

Vermutlich aussagekraeftiger als "Rechner bootet nicht". :-P Ich freue mich immer, wenn das Telefon klingelt und es heisst: "DAS Fenster ist wieder da!"

Ueberpruefen, ob "make localyesconfig" gute Arbeit geleistet hat wuerde ich so:

Code: Alles auswählen

cd <in-das-verzeichnis-der-kernel-sourcen>
# diff -u .config <pfad-zur-standard-kernel-config/.config
diff -u .config /boot/config-3.2.0-4-amd64
Gruss syssi

guennid

Re: kern für wheezy ohne initrd

Beitrag von guennid » 26.03.2013 02:33:09

Nun denn, wenn man was damit anfangen kann: Die Meldung ist:

Code: Alles auswählen

List of all partitions:
No filesystem could mount root, tried:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block (8,5)
Für mich ist das zuviel output:
diff -u .config /boot/config-3.2.0
Durchgeführt im Verzeichnis der Sourcen von 3.2.1 Der Originalname der config für den Standardkern (3.2.0) ist beim Hin- und Herschieben verloren gegangen, ich bin mir aber eigentlich sicher, dass ich drin nichts geändert habe.

Grüße, Günther
Zuletzt geändert von guennid am 26.03.2013 08:59:50, insgesamt 1-mal geändert.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: kern für wheezy ohne initrd

Beitrag von Cae » 26.03.2013 03:51:47

Vermutlich sollte CONFIG_EXT2_FS auf y stehen, also fest einkompiliert. Momentan kann wohl / nicht gemountet werden, was insofern Sinn ergibt, weil das ext*-Modul darin liegt ("Tresorschluessel im Tresor").

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

guennid

Re: kern für wheezy ohne initrd

Beitrag von guennid » 26.03.2013 08:57:08

wheezy ist, soweit ich weiß, auf ext4. Trotztdem ext2? Meintest du das mit "Tresorschlüssel im Tresor"?

Ich schau's mir an und kompiliere gegebenenfalls neu. Danke für den Tipp!

Grüße, Günther

[edit]
ext4 war auch nur als Modul kompiliert! Ist localyesconfig buggy?
Ich fänd' eine Auflistung an prominenter Stelle wünschenswert, die mir sagt, welche Module zur Vermeidung einer initrd bei 'nem Popel-PC mindestens in einen Kern fest einkompiliert sein müssen. Viel ist das nicht. Und ich weiß seit 10 Jahren eigentlich, dass das root-Dateisystem dazugehört. Da ich das nicht täglich mache, weiß ich den Rest leider nicht. Nachschlagen konnte ich das leider auch nicht - jedenfalls habe ich nichts gefunden - und hatte deswegen auf localyesconfig gesetzt.

DeletedUserReAsG

Re: kern für wheezy ohne initrd

Beitrag von DeletedUserReAsG » 26.03.2013 09:57:39

Ich fänd' eine Auflistung an prominenter Stelle wünschenswert, die mir sagt, welche Module zur Vermeidung einer initrd bei 'nem Popel-PC mindestens in einen Kern fest einkompiliert sein müssen.
Hängt halt vom System und von der Hardware ab. lsmod bietet eigentlich einen guten Startpunkt.

cu,
niemand

guennid

Re: kern für wheezy ohne initrd

Beitrag von guennid » 26.03.2013 10:31:14

Hängt halt vom System und von der Hardware ab
Lass' ich so nicht gelten. Ich sprach bewusst vom "Popel-PC". Das Linux auch noch anderes bedient, ist mir klar.
lsmod bietet eigentlich einen guten Startpunkt.
Finde ich nicht. Aus dem Wust, der da bei einem Standard-Kern über den Bildschirm rauscht, kann ich jedenfalls nicht zweifelsfrei das diskriminieren, was er zum Booten effektiv fest im Kern braucht.

So, zur Sache: Das Einkompilieren von ext2/3/4 hat das Problem nicht gelöst.

Er findet nach wie vor kein root device, fordert mich auf, eine korrekte "root=" boot Option anzugeben und behauptet, dass er unfähig wäre, das root fs auf einem unbekannten Block einzuhängen. Den Block benennt er, je nachdem, ob ich in der lilo.conf den Kern-Bezeichner (sda5) für / verwende mit (8,5) und mit (0,0) wenn ich die UUID nehme.

Hier die config vom letzten Versuch.

Grüße, Günther

DeletedUserReAsG

Re: kern für wheezy ohne initrd

Beitrag von DeletedUserReAsG » 26.03.2013 10:46:58

Lass' ich so nicht gelten. Ich sprach bewusst vom "Popel-PC".
„Popel-PC“ definiert also ein bestimmtes Modell eines bestimmten Herstellers mit bestimmten Komponenten? Dann im Datenblatt nachsehen.
Finde ich nicht. Aus dem Wust, der da bei einem Standard-Kern über den Bildschirm rauscht, kann ich jedenfalls nicht zweifelsfrei das diskriminieren, was er zum Booten effektiv fest im Kern braucht.
Deswegen Startpunkt: wenn alles, was dort ausgegeben wird, erstmal eingebaut ist, sollte es mit einiger Sicherheit ohne Weiteres starten können. Sofern die Bootloader-Konfiguration okay ist, natürlich.

cu,
niemand

guennid

Re: kern für wheezy ohne initrd

Beitrag von guennid » 26.03.2013 10:58:19

@niemand
Das ist ein Nebenkriegsschauplatz. Den könnten wir unter Smalltalk weiter verfolgen.

Ich bitte darum, sich hier auf eine Lösung für das konkrete Problem zu beschränken.

Grüße, Günther

Benutzeravatar
schorsch_76
Beiträge: 2609
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: kern für wheezy ohne initrd

Beitrag von schorsch_76 » 26.03.2013 11:10:48

Poste doch mal die Konfig deines Static Kernels und die Ausgabe von

Code: Alles auswählen

lspci -n
im nopaste. Bitte auch noch

Code: Alles auswählen

 fdisk -l
.

Gruß
schorsch

DeletedUserReAsG

Re: kern für wheezy ohne initrd

Beitrag von DeletedUserReAsG » 26.03.2013 11:12:47

Kurz:

a) du hattest localyesconfig in den Ring geworfen. lsmod gibt genau das aus, was dieses Ziel eigentlich in den Kernel reinkonfigurieren sollte (warum auch immer das bei dir schiefgelaufen ist, die Ausgabe mochtest du ja nicht zeigen).

b) es gibt keinen Popel-PC im Sinne von „wenn ich den Kern dafür baue, startet er auf jedem handelsüblichen PC“

cu,
niemand

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: kern für wheezy ohne initrd

Beitrag von syssi » 26.03.2013 12:31:23

guennid hat geschrieben:
Hängt halt vom System und von der Hardware ab
Lass' ich so nicht gelten. Ich sprach bewusst vom "Popel-PC". Das Linux auch noch anderes bedient, ist mir klar.
Aber genau hier liegt der Hund begraben. Es ist gut moeglich, dass der IDE/SATA-Controller im Kernel fehlt, so dass beim Boot-Vorgang keinerlei Festplatten verfuegbar sind, weil ein Glied zwischen Kernel und Dateisystem fehlt.

Gruss syssi

guennid

Re: kern für wheezy ohne initrd

Beitrag von guennid » 26.03.2013 12:58:50

niemand hat geschrieben:die Ausgabe mochtest du ja nicht zeigen).
Da steh ich wieder auf dem Schlauch. Welche Ausgabe fehlt dir?

@schorsch_76
Mit config des "Static Kernels" meinst du wohl die des wheezy-Standard-Kerns. Falls ja, hier ist sie.

Ich habe die config, wie bereits erwähnt, einmal als .config aus /boot nach /usr/src/linux (3.2.1) verschoben, deswegen ging der originale Dateinamen verloren. Ich kann nicht ausschließen, dass ich jetzt eine falsche config poste. In ihrem Inneren vermag ich das nicht zu beurteilen. Die dritte Zeile mit

Code: Alles auswählen

# Linux/x86 3.2.35 Kernel Configuration
kommt mir nicht geheuer vor. Gibt es eine Möglichkeit, die config eines laufenden Kerns neu rekonstruieren zu lassen?

lspci -n:

Code: Alles auswählen

00:00.0 0500: 10de:03ea (rev a1)
00:01.0 0601: 10de:03e0 (rev a2)
00:01.1 0c05: 10de:03eb (rev a2)
00:01.2 0500: 10de:03f5 (rev a2)
00:02.0 0c03: 10de:03f1 (rev a3)
00:02.1 0c03: 10de:03f2 (rev a3)
00:04.0 0604: 10de:03f3 (rev a1)
00:05.0 0403: 10de:03f0 (rev a2)
00:06.0 0101: 10de:03ec (rev a2)
00:07.0 0680: 10de:03ef (rev a2)
00:08.0 0101: 10de:03f6 (rev a2)
00:08.1 0101: 10de:03f6 (rev a2)
00:09.0 0604: 10de:03e8 (rev a2)
00:0b.0 0604: 10de:03e9 (rev a2)
00:0c.0 0604: 10de:03e9 (rev a2)
00:18.0 0600: 1022:1200
00:18.1 0600: 1022:1201
00:18.2 0600: 1022:1202
00:18.3 0600: 1022:1203
00:18.4 0600: 1022:1204
02:00.0 0300: 1002:68f9
02:00.1 0403: 1002:aa68
04:00.0 0400: 14f1:8852 (rev 02)
fdsik -l:

Code: Alles auswählen

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00038e4e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     3905535     1951744   82  Linux swap / Solaris
/dev/sda2         3907582   976771071   486431745    5  Extended
/dev/sda5   *     3907584   976771071   486431744   83  Linux
@syssi
Weiß ich. Habe ich auch schon im Kopf gehabt und hingeguckt, aber ich bin halt in diesen Dingen ziemlich unsicher. Nennt mir die Stelle(n) in menuconfig oder der config und ich prüfe das erneut. Der Rechner ist nicht sehr alt (ca. 2Jahre. eine IDE-Platte hat der kaum.) Es ist der "Fernseher". :wink:

Nur so am Rande: Das ist wahnsinnig modell- und herstellerabhängig :wink:
Das sind meines Wissens nach 3 bis max. 6 Einstellungen die man gegenüber einem funktionierenden Standard-Kern ändern muss und dann bootet jeder "Popel-PC" auch ohne initrd wenigstens durch und man kann das Weitere prüfen.


Grüße, Günther

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: kern für wheezy ohne initrd

Beitrag von syssi » 26.03.2013 13:16:19

Den lspci-Output habe ich mal hier rein geworfen: http://kmuto.jp/debian/hcl/index.rhtmlx

In der Spalte Treiber findest du, was sich lohnt in den Kernel zu bauen: pata_amd (ide controller), sata_nv (sata controller), forcedeth (netzwerkkarte)

guennid

Re: kern für wheezy ohne initrd

Beitrag von guennid » 26.03.2013 13:39:17

Nicht schlecht! Kannte ich noch nicht! Danke!

Es läuft gerade ein neues Kompilat

pata_amd Wozu ist das gut? Sollte da wirklich noch eine 500er(!) IDE-Platte drinstecken?

forcedeath brauche ich nicht fest im Kern.


Grüße, Günther

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: kern für wheezy ohne initrd

Beitrag von syssi » 26.03.2013 13:54:25

guennid hat geschrieben:pata_amd Wozu ist das gut? Sollte da wirklich noch eine 500er(!) IDE-Platte drinstecken?
Das kann man daran nicht erkennen. Man erkennt lediglich, dass auf deinem Mainboard ein IDE-Controller und ein SATA-Controller sitzt. An welchem der beiden Controller deine Systemplatte haengt, musst du wissen oder in Erfahrung bringen.

Benutzeravatar
spiralnebelverdreher
Beiträge: 1298
Registriert: 23.12.2005 22:29:03
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Frankfurt am Main

Re: kern für wheezy ohne initrd

Beitrag von spiralnebelverdreher » 26.03.2013 14:40:38

guennid hat geschrieben:In meiner lilo.conf steht

Code: Alles auswählen

root=/devsda5
in der fstab ist die UUID benannt.
Vielleicht nur ein Schreibfehler in deinem Beitrag - sollte es nicht root=/dev/sda5 heißen? Was in der fstab steht, ist dem LILO Bootloader ziemlich egal. Ich erinnere mich noch dunkel, dass man LILO nach jeder Änderung in der Konfigurationsdatei aufrufen musste um die Änderungen in den Bootloader zu übernehmen. LILO kennt anfangs nur Speicherblöcke auf dem Bootmedium und kein Filesystem. Grub ist da komfortabler.

guennid

Re: kern für wheezy ohne initrd

Beitrag von guennid » 26.03.2013 15:36:16

Es war leider nur ein Schreibfehler. :wink: Danke für's Aufpassen!

Grüße, Günther

Benutzeravatar
spiralnebelverdreher
Beiträge: 1298
Registriert: 23.12.2005 22:29:03
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Frankfurt am Main

Re: kern für wheezy ohne initrd

Beitrag von spiralnebelverdreher » 26.03.2013 16:45:53

guennid hat geschrieben:Es war leider nur ein Schreibfehler. :wink: Danke für's Aufpassen!

Grüße, Günther
Poste doch mal deine lilo.conf datei und die Ausgabe vom "lilo -qv"

guennid

Re: kern für wheezy ohne initrd

Beitrag von guennid » 26.03.2013 17:02:55

Code: Alles auswählen

# lilo -qv
usage: lilo [ -C config_file ] -q [ -m map_file ] [ -v N | -v ... ]
       lilo [ -C config_file ] [ -b boot_device ] [ -c ] [ -g | -l | -L ]
            [ -F ] [ -i boot_loader ] [ -m map_file ] [ -d delay ]
            [ -v N | -v ... ] [ -t ] [ -s save_file | -S save_file ]
            [ -p ][ -P fix | -P ignore ] [ -r root_dir ] [ -w | -w+ ]
       lilo [ -C config_file ] [ -m map_file ] -R [ word ... ]
       lilo [ -C config_file ] -I name [ options ]
       lilo [ -C config_file ] [ -s save_file ] -u | -U [ boot_device ]
       lilo -H				install only to active discs (RAID-1)
       lilo -A /dev/XXX [ N ]		inquire/activate a partition
       lilo -M /dev/XXX [ mbr | ext ]	install master boot record
       lilo -T help 			list additional options
       lilo -X				internal compile-time options
       lilo -V [ -v ]			version information
lilo.conf

Das Verändern der 3.2.0-config habe ich aufgegeben. Ich versuche z.Z. eine neue config per defconfig aufzubauen.

Grüße, Günther

Benutzeravatar
spiralnebelverdreher
Beiträge: 1298
Registriert: 23.12.2005 22:29:03
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Frankfurt am Main

Re: kern für wheezy ohne initrd

Beitrag von spiralnebelverdreher » 26.03.2013 17:23:33

guennid hat geschrieben:

Code: Alles auswählen

# lilo -qv
usage: lilo [ -C config_file ] -q [ -m map_file ] [ -v N | -v ... ]
       lilo [ -C config_file ] [ -b boot_device ] [ -c ] [ -g | -l | -L ]
            [ -F ] [ -i boot_loader ] [ -m map_file ] [ -d delay ]
            [ -v N | -v ... ] [ -t ] [ -s save_file | -S save_file ]
            [ -p ][ -P fix | -P ignore ] [ -r root_dir ] [ -w | -w+ ]
       lilo [ -C config_file ] [ -m map_file ] -R [ word ... ]
       lilo [ -C config_file ] -I name [ options ]
       lilo [ -C config_file ] [ -s save_file ] -u | -U [ boot_device ]
       lilo -H				install only to active discs (RAID-1)
       lilo -A /dev/XXX [ N ]		inquire/activate a partition
       lilo -M /dev/XXX [ mbr | ext ]	install master boot record
       lilo -T help 			list additional options
       lilo -X				internal compile-time options
       lilo -V [ -v ]			version information
lilo.conf

Grüße, Günther
Und was sagt "lilo -q" ?

Benutzeravatar
schorsch_76
Beiträge: 2609
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: kern für wheezy ohne initrd

Beitrag von schorsch_76 » 26.03.2013 17:26:05

Das mit dem 3.2.35 ist ok. Die 3.2er Reihe ist LTS.

Was brauchst du im Kernel?
Laut der obigen Tabelle:
pata_amd (IDE)
sata_nv (Sata)
ext2/3/4 (Filesystem)

Falls du LVM einsetzt kommst du an einer initrd nicht vorbei. MSDOS/GPT Partitionstabellensupport. Dann sollte das Ding booten.

Gruß
schorsch

Antworten