Hallo Zusammen,
ich versuche gerade ein Open Webos durch einen Android Stock-Kernel laden zu lassen. Mir ist die grundsätzliche Funktionsweise aber nicht ganz klar. Ich hoffe, obwohl es mal nicht um Debian geht, das mir jemand ein wenig Licht ins Dunkel bringen kann. Also, was habe ich gemacht:
Android Boot.img auseinander genommen, initial Ram-Disk geöffnet, inhalt betrachtet.
Ubuntu Phone boot.img auseinander genommen, initial Ram-Disk geöffnen, Inhalt betrachtet.
Open Webos boot.img asueinander genommen, initial Ram-Disk geöffnet, Inhalt betrachtet.
UbunuPhone benutzt den Android Stock-kernel und die Ramdisk ist bis auf wenige unterschiede in machen Dateien relativ gleich. Bei Openwebos hingegen sieht es ziemlich anders aus. init.rc ist hier eine txt-datei, bei den beiden ersteren eine binärdatei. Meine Frage, wo steht eigentlich drin, welches binary nach dem erfolgreichen Kernelboot geladen wird, sobald das Root FS eingebunden ist. Hilfreich wäre hier auch, wie ich auf einem android telefon (nexus 4) die boot messages des kernels live angezeigt bekomme.
Hat sich mal jemand mit soetwas auseinander gesetzt? Mein Antrieb dabei ist OpenWebOS auf dem Nexus 4 zum laufen zu bekommen.
Falls das hier völlig fehl am platz ist, bitte verschieben, auch kurze links mit infos würden mir helfen..
Gruß
Grundsätzliche Frage zu Androidkerneln/WebOS
- Frosch6669
- Beiträge: 163
- Registriert: 02.07.2003 23:16:49
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Hamburg
-
Kontaktdaten:
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: Grundsätzliche Frage zu Androidkerneln/WebOS
Auf einem konventionellen System mit Grub konfigurierst du im Bootloader die Kernel-Parameter, in welcher in der Regel ein init=/sbin/init steht. Bei Embedded Systemen sind diese Parameter haeufig fest in den Kernel compiliert. Welche Bootparameter der Kernel erhalten hast kannst du per "dmesg" testen:
Auf diese Weise solltest du feststellen koennen, wie genau der init-Prozess bei deinen Geraet aussieht. Bei Android-Geraeten ist der Boot-Prozess ziemlich hartcodiert.
Gruss syssi
Code: Alles auswählen
dmesg | head -n10
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.2.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.6.3 (Debian 4.6.3-15) ) #1 SMP Debian 3.2.41-2
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.2.0-4-amd64 root=UUID=837646e4-b8c0-48c8-a6d6-51dfff221126 ro quiet init=/bin/systemd hpet=force acpi_sleep=s3_bios acpi_osi=Linux i915.modeset=1 video=1280x800 usbcore.autosuspend=1 snd_hda_intel.power_save=1 elevator=deadline thinkpad_acpi.fan_control=1 pcie_aspm=force i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 iwlwifi.wd_disable=1 iwlwifi.led_mode=1
[ 0.000000] Disabled fast string operations
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009ec00 (usable)
[ 0.000000] BIOS-e820: 000000000009ec00 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 00000000bd4a1000 (usable)
Gruss syssi
- Frosch6669
- Beiträge: 163
- Registriert: 02.07.2003 23:16:49
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Hamburg
-
Kontaktdaten:
Re: Grundsätzliche Frage zu Androidkerneln/WebOS
Hallo,
die Kernel-Command-line kenne ich, die wird im boot.img separat beim zusammenbauen des selben angegeben. in deinem beispiel müsste ist es nicht /sbin/init sondern /bin/systemd oder lese ich das falsch? Heißt das, das ich etwas beliebiges in der kernel command line angeben kann?
gruß
die Kernel-Command-line kenne ich, die wird im boot.img separat beim zusammenbauen des selben angegeben. in deinem beispiel müsste ist es nicht /sbin/init sondern /bin/systemd oder lese ich das falsch? Heißt das, das ich etwas beliebiges in der kernel command line angeben kann?
gruß
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: Grundsätzliche Frage zu Androidkerneln/WebOS
Richtig. Ich benutze systemd zum booten. Es gibt auch Leute, die zum aendern eines Root-Passworts einfach in die Bash booten: init=/bin/bash. Der Kernel startet also kein Startskript, sondern liefert einfach eine Shell nach dem Start.
- schorsch_76
- Beiträge: 2609
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Grundsätzliche Frage zu Androidkerneln/WebOS
Kurze Offtopic Frage: Wie sind deine Erfahrungen mit systemd unter wheezy? Unter squeeze ist es ja nicht vorhanden.
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: Grundsätzliche Frage zu Androidkerneln/WebOS
Ich war sehr positiv ueberrascht und benutze es auf jedem Desktop, der mehr als einen Kern hat. Der Bootvorgang ist verblueffend schnell. Probleme hatte ich bisher keine. Schoen ist auch, dass das als Init-System und das Neue nebeneinander leben koennen. Man muss lediglich die Bootparameter anpassen:schorsch_76 hat geschrieben:Kurze Offtopic Frage: Wie sind deine Erfahrungen mit systemd unter wheezy? Unter squeeze ist es ja nicht vorhanden.
Code: Alles auswählen
# $EDITOR /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/lib/systemd/systemd" <--- Change this line
Sollte man Probleme feststellen, dann aendert man die Zeile einfach wieder zurueck.
Gruss syssi