[Source] Kernel 2.6.38.6 U8655

  • 157 Antworten
  • Letztes Antwortdatum
Joa, deine zip Pakete liefen bis jetzt auch immer. Eine frage hab ich dann noch, was ich so noch ned verstanden habe. Wo bekomme ich die ramdisk her, oder könnte die mir wer zur Verfügung stellen? Dann sollte ich das boot.img ja auch mit abootimg hin bekommen und das zip Paket erstelle ich dann nach deiner "Vorlage".
 
So, nach einigem herumprobieren ist es mir nun gelungen einen funktionierenden Kernel zu kompilieren. Weil ich eine Änderung vornehmen musste habe ich die Quellen gleich mal bei Github eingecheckt. Wer nicht selbst kompilieren will kann auch das fertige bootimage nehmen.

Nun zu den Problemen ;)
Warum funktionierte WLAN nicht ? Weil Huawei eine Software für mehrere Geräte gemacht hat, was erst mal begrüßenswert ist. Beim Start wird ein Tool namens wlan_detect aufgerufen das in /proc/app_info schaut und wenn dort unter wifi_chip der Name BROADCOM auftaucht die property wifi.chip.type auf "bcm" setzt was dann wiederum beim aktivieren von WLAN dazu führt das der dhd-Treiber geladen wird. Mit einem unmodifizierten, selbst gebauten Kernel steht in /proc/app_info aber der Text "1.2". Das führte dazu das der Atheros-Treiber geladen wurde und der führte dann beim aktivieren des Suspend-Mode zum Absturz des Gerätes. Ganz schön kompliziert ? Finde ich auch, vernünftige Hardwareabstraktion geht anders :D

Selber bauen:
- Code aus dem oben genannten Repository auschecken
- Config aus /proc/config.gz extrahieren und beim Bauen eventuelle Fragen nach Synaptics-RMI4 mit Nein beantworten oder /arch/arm/config/hw_msm7x27a_defconfig verwenden
- Beim Aufruf von make sollte ENABLE_BCM_4330=true mit übergeben werden. Ich habe es zwar nicht explizit getestet aber wenn man das weg lässt könnte Bluetooth nicht funktionieren.

Fazit:
Der Kernel der in der originalen Firmware läuft kann nicht aus diesen Quellen gebaut wurden sein. Wahrscheinlich ist bei Huawei wieder jemand zum erst besten Entwickler gerannt und hat dem gesagt er soll mal seine Arbeitskopie einpacken und irgendwo hochladen.

ps: Ich würde ja gerne noch weiter probieren aber leider ist mein Gerät schon nach zwei Tagen defekt *LOL*
 
  • Danke
Reaktionen: Androcity, dk9jh, frankie12 und 3 andere
Sehr gute Arbeit, im vorweg kannst du schonmal etwas zu deinen änderungen schreiben, die du im Kernel gemacht hast?

Gesendet von meinem U8655-1 mit Tapatalk 2
 
Leer

Gesendet von meinem U8655-1 mit Tapatalk 2
 
ich wusste doch, dass da einer ran muss, der weiß was er macht... :thumbsup:
aber schon merkwürdig, dass huawei den kernel freigibt und dann so nen stolperstein "einbaut"...
 
In der Überschrift der Kernel Sourcen steht ja U8815, die anderen stehen untendrunter klein geschrieben.
Deshalb bin ich überzeugt das der Kernel nach dem Compiler auf dem G300 läuft..
 
von der mitlesenden und staunenden Konsumer-Front: funktioniert mit diesem IMG jetzt der Swap-Mechanismus ?
 
Öhm.... Ihr wisst schon, das das Y200 den Codenamen U8655-1 trägt?
Vielleicht haut das deswegen nicht hin, weil der Kernel für nen anderes Gerät ist ? ? ?
 
Also der von fuchsteufel läuft bei mir seit gestern ohne Probleme.
swap und tun hatte er nicht aktiviert wie es ausschaut, für tun würden auch die module fehlen. swapon/off geht auch ned.

Ich habe dann wieder selber einen mit seinen sourcen gebaut, aber ich bin zu blöd ne lauffähige boot.img hinzubekommen, evtl falsche ramdisk?
 
@det-happy
das glaub ich nicht...die 1 steht wohl nur für europa...
war beim x3 auch schon so...da gabs auch ein u8510-0 (war glaub ich rein china oder asiatischer raum) und hier gabs das u8510-1...
aber tkis vermutung könnte evtl. passen, dass beim g300 ein anderer wlan-chip werkelt...

@tupac
hab die ramdisk mal in den anhang gehaun...
 

Anhänge

  • boot.img-ramdisk.zip
    1,3 MB · Aufrufe: 114
Zuletzt bearbeitet:
Ich habe mal swap aktivert und das bootimage aktualisiert. Wo bekommt man die tools swapon und swapoff her ? Busybox ?
Den Tunnel-Driver hatte ich nicht mitgebaut weil hier irgendwo schon jemand einen selbst gebauten hochgeladen hat aber der Vollständigkeit halber, hier isser.
 
  • Danke
Reaktionen: tki, JK1974, frankie12 und eine weitere Person
ja swapon/off ist in der busybox. und swap scheint zu tun, obwohl er das swapfile bei mir immer wieder disabled.

//EDIT
Musste in swapper2 nochmal reformat anschubsen, dann wurde das swapfile enabled.
 
Zuletzt bearbeitet:
Super Leute, ihr macht tolle Arbeit hier!

Nur so mal aus neugier gefragt (und bitte nicht lachen):
Wo befindet sich eigentlich der Kernel im Y200? Ich hatte eine Suche mit TC durchgeführt nach "kernel*" aber TC blieb da hängen in /data
(in Linux/Ubuntu is er ja unter /boot, das gibts hier gar nicht)

Jetzt noch zur gelösten(?) swap-Problematik noch einen Overclockfähigen Kernel und ich bin wunschlos glücklich :)
 
Zuletzt bearbeitet:
Auch von mir 1000 Dank und großes Lob für Eure Bemühungen.

Und ebenso eher einfache Fragen: Reicht es, das bootimage per fastboot zu flashen oder muss ich noch eine modules.zip hier aus dem Thread per CWM installieren? Sind zudem die Module des kompilierten Kernels nicht dieselben wie die des Stock-Kernels?
Oder werden die Module grundsätzlich nur zum Bauen eines update.zips benötigt, weil sie ansonsten z.B. durch Neubespielen der Boot-Partition durch das update.zip fehlen würden?

Kann ich das bootimage auch per "fastboot boot" laden? Wenn ja, wie erkenne ich (außer durch Installieren und Starten von Swapper2), dass es sich um den neuen Kernel handelt? Irgendwelche uname-Parameter? Und habe ich richtig verstanden, dass nach dem Neustart des Smartphones wieder der alte Kernel läuft? So richtig explizit habe ich nämlich bisher nicht gelesen, ob/dass "fastboot boot" einen Kernel nur temporär lädt und sich somit gut zum testen eignen könnte...
 
JK1974 schrieb:
Auch von mir 1000 Dank und großes Lob für Eure Bemühungen.

Und ebenso eher einfache Fragen: Reicht es, das bootimage per fastboot zu flashen oder muss ich noch eine modules.zip hier aus dem Thread per CWM installieren? Sind zudem die Module des kompilierten Kernels nicht dieselben wie die des Stock-Kernels?
Oder werden die Module grundsätzlich nur zum Bauen eines update.zips benötigt, weil sie ansonsten z.B. durch Neubespielen der Boot-Partition durch das update.zip fehlen würden?

Kann ich das bootimage auch per "fastboot boot" laden? Wenn ja, wie erkenne ich (außer durch Installieren und Starten von Swapper2), dass es sich um den neuen Kernel handelt? Irgendwelche uname-Parameter? Und habe ich richtig verstanden, dass nach dem Neustart des Smartphones wieder der alte Kernel läuft? So richtig explizit habe ich nämlich bisher nicht gelesen, ob/dass "fastboot boot" einen Kernel nur temporär lädt und sich somit gut zum testen eignen könnte...

modules zip brauchste nicht, nur evtl das tun.ko auf sdcard legen um zb openvpn zu nutzen.

Du kannst im Terminal Emulator mit uname -a gucken wann der kernel gebaut wurde, in diesem Fall wäre es der 17.06.2012.

@fuchsteufel kannst du mir evtl deine config überlassen, entweder ist mein zImage einfach zu gross (mein boot.image hat 4,7mb) oder ich bin zu blöd das boot.image richtig zusammen zu packen, denn beim booten bleibt das y200 immer hängen.
hier mal mein befehl zum boot.img packen:
Code:
gunzip boot-ok.img-ramdisk.gz
mv -f boot-ok.img-ramdisk ramdisk
abootimg --create build/boot.img -k build/kernel/zImage -r ramdisk
 
Zuletzt bearbeitet:
@opptupacshakur
Ich glaube mit abootimg wird das nix, du brauchst das Tool mkbootimg dafür. Ich weis nicht ob man das auch so irgendwo runter laden kann bei mir wurde es beim cyanogenmod mit gebaut. Ich habe die Tools mkbootimg und unpackbootimg mal hoch geladen, kannst du nur mal probieren ob sie bei dir laufen, alles weitere steht in diesem Post.

@androcity
Der Kernel liegt in einer separaten Partition im Flash auf die kann man nur mit speziellen Tools zu greifen. Dort gibt es auch kein Dateisystem also auch keine Datei "kernel*". Der Bootloader lädt einfach was sich in dieser Partition befindet in den RAM und führt es aus.

@jk1974
Leider funktioniert das laden per fastboot boot nicht, keine Ahnung was Huawei da am bootloader verfrikelt hat. Es liegt auch nicht am Image denn auch das booimage aus der originalen Firmware läst sich nicht auf diese Weise booten. Die einzige Möglichkeit ist zu flashen und hoffen das im Flash-Speicher nicht irgendwann die Sektoren kaputt gehen.
 
Dein Kernel:

Code:
$ uname -a
Linux localhost 2.6.38.6-perf #3 PREEMPT Mon Jun 18 22:30:38 CEST 2012 armv7l GNU/Linux

funktioniert!

swap habe ich mit swapper 2 erstellt und läuft:
Code:
$ free
free
             total         used         free       shared      buffers
Mem:        177864       175512         2352            0          392
-/+ buffers:             175120         2744
Swap:        32764          292        32472

kannst du auch die Übretakt-Möglichkeit in die Kernel-Sourcen patchen.
 
Sieht auch hier gut aus. Auf meiner Wunschliste wäre neben der Übertaktungsmöglichkeit die Beantwortung der Frage, ob sich die Absturz-Probleme mit Unity3D-Games (u.a. Temple Run) über Kernel-Parameter oder (Grafik-)Treiber-Updates beheben lassen.
 
Nachtrag, swapper finden ich besser, swapper 2 läuft immer im Hintergrund, swapper wird einmal beim Boot gestartet und beendet sich dann wieder!
Schönes widget für den swap und RAM verbrauch: limem widget

Gesendet von meinem U8655-1 mit Tapatalk 2
 
fuchsteufel schrieb:
@opptupacshakur
Ich glaube mit abootimg wird das nix, du brauchst das Tool mkbootimg dafür. Ich weis nicht ob man das auch so irgendwo runter laden kann bei mir wurde es beim cyanogenmod mit gebaut. Ich habe die Tools mkbootimg und unpackbootimg mal hoch geladen, kannst du nur mal probieren ob sie bei dir laufen, alles weitere steht in diesem Post.

Super, danke dafür, damit läuft mein kernel nun auch durch, leider geht dann kein wlan, bluetooth etc kein problem.

Ich schreibe einfach nochmal, wie ich den kernel aus deinen sourcen baue und hänge meine config mal an:
Code:
#!/bin/bash

export CCOMPILER=/usr/local/src/android/android-ndk-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-

echo "delete kernel dir"
rm -r kernel
echo "Download kernel source"
git clone git://github.com/supertoast/kernel-2.6.38.6-U8815-Gingerbread.git kernel
echo "copy config"
cp config kernel/.config
cd kernel
make ARCH=arm CROSS_COMPILE=$CCOMPILER ENABLE_BCM_4330=true
http://test.oppserver.net/android/huawei/u8655/config_20120617
 
Zuletzt bearbeitet:

Ähnliche Themen

No|Name
Antworten
219
Aufrufe
96.065
YuT666
Y
.Assassine*
  • Gesperrt
  • .Assassine*
Antworten
1
Aufrufe
1.603
.Assassine*
.Assassine*
C
Antworten
15
Aufrufe
6.423
maddin55
maddin55
Zurück
Oben Unten