Ramdisk vom USB-Stick einhängen unmöglich!
- king-crash
- Beiträge: 722
- Registriert: 08.08.2006 12:07:56
- Lizenz eigener Beiträge: MIT Lizenz
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Auf der ersten Partition sind dann Android und normaler Linux Kernel?
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Nee, dort ist nur der Linux Kernel (/dev/cardblksd1) 64 MB Größe die Partition.
Android, also das System auf /dev/cardblksd2 Größe 512 MB
Androids Cache /dev/block/cardblksd3 Größe 256 MB
Android Partition für die Apps /dev/block/cardblksd4 Größe 1 GB
Auf dem USB-Stick ist eine Partition mit Debian armhf System.
Android, also das System auf /dev/cardblksd2 Größe 512 MB
Androids Cache /dev/block/cardblksd3 Größe 256 MB
Android Partition für die Apps /dev/block/cardblksd4 Größe 1 GB
Auf dem USB-Stick ist eine Partition mit Debian armhf System.
- king-crash
- Beiträge: 722
- Registriert: 08.08.2006 12:07:56
- Lizenz eigener Beiträge: MIT Lizenz
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Was ist das eigentlich für ein seltsamer cardblk treiber. Ich kann den bei mir nirgendwo finden.
Ok root=/dev/cardblksd1 kann natürlich nicht funktionieren, da ist kein System drauf. Trotzdem sollte er es mounten können und dann melden dass keine init zu finden ist.
Ok root=/dev/cardblksd1 kann natürlich nicht funktionieren, da ist kein System drauf. Trotzdem sollte er es mounten können und dann melden dass keine init zu finden ist.
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Also soll ich jetzt das initrd.img.gz komplett entpackt bei INITRAMFS_SOURCE= packen und dann die root=/dev/sda1 angeben?
Habe dann custom Kernel mit initramfs armhf und root=/dev/sda1.
Der custom Kernel bootet garnicht erst durch, das initramfs ist zu groß?
Anscheinend liegt es an das initramfs, sobald ich eins von Android entpackt in den Ordner des CONFIG_INITRAMFS_SOURCE= packe, zeigt das Tablet Fehler an, welche nach /system/bin etc. suchen. Also Android typische Fehler.
Habe dann custom Kernel mit initramfs armhf und root=/dev/sda1.
Der custom Kernel bootet garnicht erst durch, das initramfs ist zu groß?
Code: Alles auswählen
[ 1.476900@1] UDP hash table entries: 256 (order: 1, 8192 bytes)
[ 1.482879@1] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[ 1.489623@1] NET: Registered protocol family 1
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Wie eggy schon sagte: nicht die Begriffe durcheinanderbringen! Ich sprach von initrd (CONFIG_BLK_DEV_INITRD), nicht von initramfs.king-crash hat geschrieben:- Meine config vom aktuellen kernel
- Alles raus: initrams support, loadable module support
Ein Kern ohne
Code: Alles auswählen
CONFIG_BLK_DEV_INITRD=yes
Ich sage nicht, dass er auf eine initrd verzichten soll. Ich weise nur darauf hin, dass es alles andere als trivial ist, das so einrichten zu wollen.
Grüße, Günther
- king-crash
- Beiträge: 722
- Registriert: 08.08.2006 12:07:56
- Lizenz eigener Beiträge: MIT Lizenz
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Es braucht zum booten ganz sicher kein udev.
Das ist schlicht nicht wahr.
Gerade noch mal im Kernel geschaut:
Edit: Ich muss einschränken, dass ich das nur für Kernel 4.14 und 5.1 sagen kann. Ich gehe allerdings von Allgemeingültigkeit aus bis jemand den Gegenbeweis antritt.
Es ist im Übrigen sogar möglich ein Dateisystem mit nur einer einzigen Binary darin, und ansonsten ohne weitere Dateien darin, zu starten. Die muss dann statisch gelinkt sein, aber es geht.
Das ist schlicht nicht wahr.
Gerade noch mal im Kernel geschaut:
Bitte informiere dich besser und behaupte nicht einfach irgend etwas ins Blaue.[]Initial RAM filesystem and RAM disk (initramfs/initrd) support
...
Symbol: BLK_DEV_INITRD
Edit: Ich muss einschränken, dass ich das nur für Kernel 4.14 und 5.1 sagen kann. Ich gehe allerdings von Allgemeingültigkeit aus bis jemand den Gegenbeweis antritt.
Es ist im Übrigen sogar möglich ein Dateisystem mit nur einer einzigen Binary darin, und ansonsten ohne weitere Dateien darin, zu starten. Die muss dann statisch gelinkt sein, aber es geht.
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Ich habe das Gegenteil nicht behauptet.king-crash hat geschrieben:Es braucht zum Booten ganz sicher kein udev.
Was jetzt: Dass man udev, oder dass man kein udev braucht?king-crash hat geschrieben:Das ist schlicht nicht wahr.
Code: Alles auswählen
Symbol: BLK_DEV_INITRD
Mir würde genügen, wenn ich die einsehen könnte. Ich hab's nicht so mit dem Plural maiestatis.king-crash hat geschrieben:schreibe bitte die .config deines Kernels nach nopaste, dass wir die einsehen können.
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Ist wohl SoC-spezifisch, in mainline nicht enthalten.king-crash hat geschrieben:24.06.2019 20:15:27Was ist das eigentlich für ein seltsamer cardblk treiber. Ich kann den bei mir nirgendwo finden.
EDIT:
Wie wäre es, anstatt wahllos nach irgendwelchen fehlenden gesetzten Optionen in der config zu suchen, lieber einen möglichst vollständigen, modularen (Debian?)Kernel mitsamt initrd zu booten.
- king-crash
- Beiträge: 722
- Registriert: 08.08.2006 12:07:56
- Lizenz eigener Beiträge: MIT Lizenz
Re: Ramdisk vom USB-Stick einhängen unmöglich!
In einem Forum lesen oft, wie in diesem Thread erkenbar, mehrere Personen.guennid hat geschrieben:24.06.2019 22:04:20Mir würde genügen, wenn ich die einsehen könnte. Ich hab's nicht so mit dem Plural maiestatis.
Und ich bitte dich nochmals wenn du mir nicht glaubst das einfach selber bei dir zu testen. Aus meiner Testconfig:
Code: Alles auswählen
# CONFIG_BLK_DEV_INITRD is not set
Es müssen natürlich die Treiber für die jeweilige Festplattenanbindung (SATA oä.) und Dateisystem vorhanden sein.
Und noch ein Hinweis: In der Config habe ich allerhand weggelassen, inklusive USB uvm. Das bedeutete bei mir zum Beenden, Resetknopf drücken, da keine Eingabe mehr möglich war.
Ich habe das nicht genau nachgeschaut aber udev ist wahrscheinlich deshalb nicht nötig, weil Treiber im Kernel selbst /dev Gerätedateien anlegen können.
http://opensourceforu.com/2011/04/chara ... perations/
- king-crash
- Beiträge: 722
- Registriert: 08.08.2006 12:07:56
- Lizenz eigener Beiträge: MIT Lizenz
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Das ist auf den ARM Systemen nicht so einfach möglich. Da muss bei UBOOT händisch Speicherbereich ausgewählt und dieser auch dem Kernel mitgeteilt werden. Das setzt ggf auch Kenntnisse der Speicherbelegung voraus. Im Wesentlichen ist die initrd auch nur für exotischere Sachen wie LVM, RAID, Netzwerkboot etc wirklich nützlich. Da beim TE eher nur grundlegende Kenntnisse vorhanden sind und seine Vorgehensweise, sagen wir eher wenig systematisch ist, möchte ich den einfachsten Weg empfehlen.Tintom hat geschrieben:25.06.2019 10:28:50Wie wäre es, anstatt wahllos nach irgendwelchen fehlenden gesetzten Optionen in der config zu suchen, lieber einen möglichst vollständigen, modularen (Debian?)Kernel mitsamt initrd zu booten.
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Guten Tag allerseits,
king-crash was muss ich machen, um den einfachen Weg zu nehmen und was, um systematisch vorzugehen?
MfG,
Joe
king-crash was muss ich machen, um den einfachen Weg zu nehmen und was, um systematisch vorzugehen?
MfG,
Joe
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Nicht nur wahrscheinlich, sondern faktisch. Und genau so habe ich's gesagt. Nur - die muss man kennen und, soweit ich weiß, händisch selbst der .config mitteilen. Im Debian-Standard sind sie nicht aktiviert. Und wenn man einen (recht) minimalen Vanilla-Kern über defconfig (es geht auch noch minimaler!) konfiguriert, sind sie defaultmäßig auch nicht drin. Ob's mittlerweile was Besseres als devtmpfs gibt, womit man die initrd umgehen kann, weiß ich nicht.king-crash hat geschrieben:udev ist wahrscheinlich deshalb nicht nötig, weil Treiber im Kernel selbst /dev Gerätedateien anlegen können.
Ich vermute, das wird nicht möglich, bzw sinnfrei sein, da ich über Geräte eurer Architektur nicht verfüge, weswegen ich mich hier auch nicht weiter einmischen wollte. Ich wollte lediglich darauf hinweisen, dass, wenn man einen eigenen, möglichst abgespeckten Kern ohne initrd bauen will, es nicht genügt, lediglich Module wegzulassen. Wie ihr den dann baut und was ihr für eure Architektur dabei alles benötigt, dazu kann und will ich nichts sagen.king-crash hat geschrieben:Und ich bitte dich nochmals wenn du mir nicht glaubst das einfach selber bei dir zu testen.
Grüße, Günther
- king-crash
- Beiträge: 722
- Registriert: 08.08.2006 12:07:56
- Lizenz eigener Beiträge: MIT Lizenz
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Immer ein Problem nach dem anderen Lösen und insbesondere bei Schwierigkeiten nicht sofort seinen bisherigen Weg komplett über den Haufen zu werfen.
Die genauen Vorgänge zu verstehen ist auch von Vorteil.
In vielen Fällen läuft der Bootvorgang wie folgt:
-SoC-ROM
-First stage Bootloader auf der 1. FAT Partition
-UBOOT auf der 1. FAT Partition
-Kernel auf der 1. FAT Partition
-rootfs auf weiterer ext Partition
In diesem Fall startet schon der Kernel und dieser findet auch die Partitionen. Er kann also die SD-Karte prinzipiell lesen und die richtig üblen Sachen bleiben dir also erspart. Mit dem Inhalt der angegebenen Partition fängt er allerdings wohl nichts an.
Zum weiteren Testen kannst du alle Partitionen bis auf die Erste löschen und dann eine leere ext3 oder ext4 Partition anlegen.
Als Bootparameter nimmst du.
Code: Alles auswählen
console=ttyS0,115200n8 hlt no_console_suspend vmalloc=256m mem=1024m logo=osd1,loaded,panel,debug hdmitx=vdacoff,powermode1,unplug_powerdown a9_clk_max=800000000 root=/dev/cardblksd2 rootdelay=5
- king-crash
- Beiträge: 722
- Registriert: 08.08.2006 12:07:56
- Lizenz eigener Beiträge: MIT Lizenz
Re: Ramdisk vom USB-Stick einhängen unmöglich!
bitte löschen
Zuletzt geändert von king-crash am 25.06.2019 11:54:38, insgesamt 1-mal geändert.
- king-crash
- Beiträge: 722
- Registriert: 08.08.2006 12:07:56
- Lizenz eigener Beiträge: MIT Lizenz
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Ok hier ist das Missverständnis. Ich habe den geposteten Kernel für meinen Desktop PC (x86-64) gebaut.king-crash hat geschrieben:25.06.2019 11:50:27Ich vermute, das wird nicht möglich, bzw sinnfrei sein, da ich über Geräte eurer Architektur nicht verfüge...
Edit: sry war bei dem Edit unten zu blöd.
Zuletzt geändert von king-crash am 25.06.2019 11:54:16, insgesamt 1-mal geändert.
Re: Ramdisk vom USB-Stick einhängen unmöglich!
@king-crash jetzt musst Du mir auch noch sagen, ob ich mein selbst kompilieren oder einen vorkompilierten Kernel vom Auslieferungszustand nehmen soll?
Und soll ich in das Kernel Image eine initramfs vom Kompiliervorgang einbauen lassen?
Und soll ich in das Kernel Image eine initramfs vom Kompiliervorgang einbauen lassen?
- king-crash
- Beiträge: 722
- Registriert: 08.08.2006 12:07:56
- Lizenz eigener Beiträge: MIT Lizenz
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Mit welchem Kernel hast du diese Ausgabe erhalten:
Code: Alles auswählen
[ 11.568137@0] fd00 15611904 cardblksd driver: cardblk
[ 11.573832@0] fd01 65536 cardblksd1 00000000-0000-0000-0000-000000000000cardblksd1
[ 11.582424@0] fd02 524288 cardblksd2 00000000-0000-0000-0000-000000000000cardblksd2
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Mit allen Kerneln, wobei dies der Kernel war vom baugleichem Tablet mit ClockworkMod Recovery Ramdisk (Android). Dieses Kernel Image hat einen großen Bereich frei für initramfs. Da habe für dann initrd.img.gz reingepackt und gebootet.
Alle Kernel sehen cardblksd und dessen Partitionen und die des USB-Sticks.
Alle Kernel sehen cardblksd und dessen Partitionen und die des USB-Sticks.
- king-crash
- Beiträge: 722
- Registriert: 08.08.2006 12:07:56
- Lizenz eigener Beiträge: MIT Lizenz
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Ok dann nimm deinen eigenen Kernel, da sind auf jeden Fall die Dateisystemtreiber fest einkompiliert. Und denk an die Bootparameter.
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Also ich habe jetzt meinen Kernel eben neu kompilieren lassen. Ich habe dort als initramfs das ClockworkMod Recovery (Android) einbauen lassen. Nun habe ich folgende Befehlszeile eingegeben, und jetzt im Kernel dmesg:
Ich habe auch fast alle Partitionen der µSD Karte gelöscht und eine neue ext3 Partition nach der FAT32 Partition erstellt.
Ich sehe jetzt bei dem Tablet das ClockworkMod Recovery, allerdings wird anscheinend die initramfs, bevorzugt behandelt, und das muss schon was heißen, oder?
Soll ich jetzt noch eben ein Kernel ohne irgendwas im initramfs kompilieren??
Code: Alles auswählen
[ 0.000000@0] Kernel command line: console=ttyS0,115200n8 hlt no_console_suspend vmalloc=256m mem=1024m logo=osd1,loaded,panel,debug hdmitx=vdacoff,powermode1,unplug_powerdown a9_clk_max=800000000 root=/dev/cardblksd2 rootdelay=5
Ich sehe jetzt bei dem Tablet das ClockworkMod Recovery, allerdings wird anscheinend die initramfs, bevorzugt behandelt, und das muss schon was heißen, oder?
Soll ich jetzt noch eben ein Kernel ohne irgendwas im initramfs kompilieren??
- king-crash
- Beiträge: 722
- Registriert: 08.08.2006 12:07:56
- Lizenz eigener Beiträge: MIT Lizenz
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Mach das Initramfs komplett raus.
Code: Alles auswählen
[ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support
Re: Ramdisk vom USB-Stick einhängen unmöglich!
So habe das initramfs komplett raus genommen, indem ich den Ordner des CONFIG_INITRAMFS_SOURCE komplett leer gemacht habe, also eben das CWM mit init Binary und sbin Ordner und res Ordner für die Bildchen gelöscht habe.
Nun kommt folgendes, bei Eingestecktem USB-Stick:
Kernel Befehlszeile dazu:
Nun kommt folgendes, bei Eingestecktem USB-Stick:
Code: Alles auswählen
[ 7.346336@1] Warning: unable to open an initial console.
[ 7.351665@1] Waiting 5sec before mounting root device...
[ 12.360138@1] VFS: Cannot open root device "cardblksd2" or unknown-block(253,2)
[ 12.361892@1] Please append a correct "root=" boot option; here are the available partitions:
[ 12.370432@1] fd00 15611904 cardblksd driver: cardblk
[ 12.376137@1] fd01 65536 cardblksd1 00000000-0000-0000-0000-000000000cardblksd1
[ 12.384468@1] fd02 1048576 cardblksd2 00000000-0000-0000-0000-000000000cardblksd2
[ 12.392799@1] 0800 984064 sda driver: sd
[ 12.397573@1] 0801 983040 sda1 00000000-0000-0000-0000-000000000sda1
[ 12.404860@1] ** enable watchdog
[ 12.408073@1] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(253,2)
Code: Alles auswählen
[ 0.000000@0] Kernel command line: console=ttyS0,115200n8 hlt no_console_suspend vmalloc=256m mem=1024m logo=osd1,loaded,panel,debug hdmitx=vdacoff,powermode1,unplug_powerdown a9_clk_max=800000000 root=/dev/cardblksd2 rootdelay=5
- king-crash
- Beiträge: 722
- Registriert: 08.08.2006 12:07:56
- Lizenz eigener Beiträge: MIT Lizenz
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Es reicht das Sternchen bei der genannten Option zu entfernen.
Ich schau mir deine config nochmal im Detail an.
Ich schau mir deine config nochmal im Detail an.
- king-crash
- Beiträge: 722
- Registriert: 08.08.2006 12:07:56
- Lizenz eigener Beiträge: MIT Lizenz
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Du kommunizierst über die serielle Schnittstelle oder?
Re: Ramdisk vom USB-Stick einhängen unmöglich!
Genau ich habe ein UART TTL Converter mit drei Leitungen an der GND, TX und RX Lötpads gelötet und per USB dann am Laptop und benutze picocom.