Grundsätzliche Frage zu Androidkerneln/WebOS

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
Frosch6669
Beiträge: 163
Registriert: 02.07.2003 23:16:49
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Hamburg
Kontaktdaten:

Grundsätzliche Frage zu Androidkerneln/WebOS

Beitrag von Frosch6669 » 10.04.2013 11:01:07

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ß

syssi
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

Beitrag von syssi » 10.04.2013 21:20:44

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:

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)
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

Benutzeravatar
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

Beitrag von Frosch6669 » 11.04.2013 10:52:13

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ß

syssi
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

Beitrag von syssi » 11.04.2013 11:28:33

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.

Benutzeravatar
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

Beitrag von schorsch_76 » 11.04.2013 14:20:22

Kurze Offtopic Frage: Wie sind deine Erfahrungen mit systemd unter wheezy? Unter squeeze ist es ja nicht vorhanden.

syssi
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

Beitrag von syssi » 11.04.2013 20:50:33

schorsch_76 hat geschrieben:Kurze Offtopic Frage: Wie sind deine Erfahrungen mit systemd unter wheezy? Unter squeeze ist es ja nicht vorhanden.
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:

Code: Alles auswählen

# $EDITOR /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/lib/systemd/systemd" <--- Change this line
( http://wiki.debian.org/systemd )

Sollte man Probleme feststellen, dann aendert man die Zeile einfach wieder zurueck.

Gruss syssi

Antworten