[Projekt] CM10.1 auf Ventos Surftab 8

  • 9 Antworten
  • Letztes Antwortdatum
TheSSJ

TheSSJ

Stamm-User
150
Hallo!

auch wenn die Community im 8er Bereich nicht sehr lebhaft ist (kein Vorwurf, gibt auch wenig revolutionäres hier :D ), habe ich mich entschlossen ein kleines Tagebuch zu führen über meine Fortschritte eine funktionierende CM10.1 für unsere Ventos 8 Tabs zu bauen! :)
Das kann möglicherweise als Basis für andere Tabs benutzt werden.

Verwendete Repos:
Zunächst hatte ich es mit dem Cyanogenmod repo versucht. Das flashen von Image-Dateien über RKAndroidTool bzw. TWRP Zip-Dateien haben das Tab ständig in Bootloops enden lassen...

Irgendwann habe ich dieses hier gesehen und gesynct:
https://github.com/crewrktablets/android_cm

Ein Build wurde hier auch als boot.img und system.img speziell für RK-Chips quittiert. Flashen über Rockchiptools brachte dennoch wie gewohnt keinen Erfolg.

Wie die CM geflasht wird:
Nach etwaigen Fehlversuchen kam ich zum Schluss, dass das Tab die System-Partition anscheinend nicht mounten konnte (dmesg und logcat gingen praktischerweise nicht :/ ). Recherchen brachten mich zum Schluss, dass das rkflashtool nichts taugt wenn es darum geht die system-Partition zu schreiben (vielleicht fehlende CRC checks?)...
Der Workaround ist nun die Dateien im TWRP als zip zu flashen. Klappt gut und ich behalte es so bei, denn dafür ist schließlich eine Custom Recovery da.

Derzeitiger Stand:
17.03.2014: "Broken alpha" :)
Das Tab kommt nun zur Bootanimation (nach hunderten Bootloops oder
panics)! Das heisst das die boot.img samt Ramdisk einigermaßen korrekt sind.
Leider stimmt irgendwas mit der Grafikausgabe nicht, da die Schriften und Farben etwas löchrig aussehen :D
Könnte sein, dass an irgendeiner init.rc-Datei noch gefeilt werden muss, aber ich denke heute bekomme ich das in den Griff. Danach kümmere ich mich darum, warum die CM10 nicht ins System booten möchte ^^

19.03.2014: Doch so viel Feedback? :D
Das ROM bootet nun bis zum Willkommensbildschirm, allerdings ebenfalls mit Gelbstich und die Auflösung stimmt auch nicht wirklich...
Das Problem konnte ich nun nach Tagen endlich (hoffentlich) identifizieren. Ich konnte soviel an den Framebuffern herumspielen wie ich wollte, es hatte nie etwas gebracht. Immer dieses löchrige, überdiemnsionierte Bild mit Gelbstich. fbset kam immer mit einer RGB565 Konfiguration mit folgenden (in meinem Falle falschen) Daten
Code:
info.bits_per_pixel = 16;
info.red.offset     = 11;
info.red.length     = 5;
info.green.offset   = 5;
info.green.length   = 6;
info.blue.offset    = 0;
info.blue.length    = 5;
info.transp.offset  = 0;
info.transp.length  = 0;
module->fbFormat = HAL_PIXEL_FORMAT_RGB_565;
RGB 5/11,6/5,5/0,0/0, falls das jemanden interessiert...
Irgendjemand hat das wohl hardgecoded, aber das Tablet kann irgendwie nicht damit umgehen...das Ventos 8 hat RGBA8888:

Code:
info.bits_per_pixel = 32;
info.red.offset     = 16;
info.red.length     = 8;
info.green.offset   = 8;
info.green.length   = 8;
info.blue.offset    = 0;
info.blue.length    = 8;
info.transp.offset  = 0;
info.transp.length  = 8;
module->fbFormat = HAL_PIXEL_FORMAT_RGB_888;
also (was das Stock ROM Tab auch ausspuckt via fbset -i): 8/16,8/8,8/0,0/0

Heute kompiliere ich mal eine neue Version mit diesen hardgecodeten Parametern...

19.03.2014_2: Eppur si muove!
Endlich habe ich die ganzen Leute verstanden, die sich über die Closed Source Politik der Chinesen aufgeregt haben :) eigentlich kann jedes Modul mit rk30board im Namen nicht selbst programmiert werden weil kein Sourcecode zur Verfügung steht :)

Nun, nach langem stöbern und herumprobieren habe ich das mit der Grafik endlich (!!!) hinbekommen...die ROM bootet endlich! Ich musste folgende Dateien von der Stock ROM kopieren, damit das Wunder geschehen konnte:

/system/lib/:
Code:
libEGL.so
libGLES_trace.so
libGLESv1_CM.so
libGLESv2.so
libmali.so
libump.so
egl/*
hw*
modules/*
Dann noch
Code:
/system/etc/firmware/WIFI_RAM_CODE
Fehlen noch ein paar. Ergänze ich sobald ich weiß, was fehlt ;)
Das wird für jeden wichtig, der mit dem crewrktablets repo eine eigene CM bauen möchte (derzeit "nur" Android 4.2.2, aber die rennt!)
Achso, habe ich erwähnt, dass das Tab nun Soft-Reboots macht (sporadisch, aber ich meine ein paar Gesetzmäßigkeiten entdeckt zu haben. Jedes Mal, wenn sich "automatisch" ein Fenster öffnet, macht das Tab die Grätsche, z.B. beim Einstecken eines USB-Kabels (wenn das Android-Männchen den Storage mounten möchte). Wenn ich da auf zurück klicke, kommt der Neustart. Ulkigerweise kommt nach dem Neustart dieses USB-Android-Männchen wieder, aber dann lässt er sich einfach weg klicken...Oo

23.03.2014: Geht, geht nicht, geht, geht nicht...
Ich bin schon seit einer Weile am Sinnieren und Probieren warum das mit dem WLAN nicht klappt. Nummer 1 war das Fehlen der WIFI_RAM_CODE Datei, das war relativ schnell gelöst...
Danach ist mir etwas beim Vergleich zwischen Stock und CM aufgefallen:
Der verwendete Driver für das WLAN war falsch!
Ich habe guten Gewissens die vorgeschriebene Boardconfig.mk benutzt, die WEXT als WLAN Treiber angab. Lange recherche (eher Zufall :) ) ergab aber, dass der WLAN Chip über einen Treiber names NL80211 angesteuert werden muss. Ebenfalls muss der wpa_supplicant Dienst so konfiguriert werden, dass eben nl80211 statt wext benutzt werden soll...
Habe auch schon die init.rc Dateien angepasst, dass kein wext mehr benutzt werden soll. Auch habe ich CM neu kompilieren lassen, damit eventuelle #define-Flags mitgenommen werden...

Nun, einen Schritt weiter, aber dann doch nicht...in den Einstellungen kann man das WLAN nicht einschalten. Macht man es über die klassische Linux-Schiene:
Code:
ifconfig wlan0 up
wpa_supplicant -Dnl80211 -iwlan0 -d/data/misc/wifi/wpa_supplicant.conf -e/data/misc/wifi/entropy.bin
Kauderwelsch...aber irgendwann prägt es sich ein :)

Sei es wie es sei, leider kann sich der wpa_supplicant nicht mit dem Interface wlan0 verbinden (logcat spuckt jede Menge Fehler aus), also alles zurück auf Anfang...ich muss schauen, ob die Treiber so wollen, wie ich es will...aber ich bin mir sicher, ich bin einen großen Schritt weiter gekommen.

25.03.2014: Der Wille ist ja da...
Nach weiteren zahlreichen Fehlversuchen habe ich das Projekt kurz schlummern lassen, da ich einfach nicht mehr weiter wusste...ich hatte parallel Trekstor angeschrieben mit der Bitte denn auch die Kernel Source Codes für das Ventos 8 zu teilen, welche bis dato noch unbeantwortet blieb...morgen oder übermorgen wollte ich mal einen Reminder schicken - wer weiß, vielleicht schaffe ich es auch etwas zu bewirken, auch wenn ich kein Senior Mod bin :)

Ich habe spaßeshalber nun den Kernel des Ventos 10.1 genommen (ist ja beinahe baugleich mit Ausnahme des Touchscreens z.B.) und habe ihn mal testweise versucht zu kompilieren - keine 10 Minuten später hat er mir die zImage ausgespuckt! Super :)
Ich muss nur noch herausfinden, welches exakte Touchscreen-Modell im Ventos verbaut ist, dann kann ich die config des Kernels anpassen und Daumen drücken, dass ich damit auch die WLAN-Treiberfrage gelöst hab! Der WLAN-Treiber (mit ein paar anderen) wäre bei erfolgreichem Build direkt im Kernel kompiliert, was mich auf die Idee bringt, die CM-Sources ein wenig radikal umzuschreiben, denn momentan braucht das Tab auch nur die wlan.ko, um seine Wunder zu bewirken, in der CM hingegen nimmt er den Treiber des WLAN-Chips (MT5931) als .ko Datei...das verursacht bestimmt IRQ Konflikte o.Ä....

- Daumen drücken Jungs und Mädels! :)

27.3.2014: WLAN geht! Nein, dieses Mal kein geistreicher (-armer) Spruch hierzu :p
Okay, wer hätte das gedacht! WLAN läuft - zumindest auf Linux-Ebene. Das heisst dass der wpa_supplicant mit dem WLAN-Chip kommunizieren kann und ich habe mich auch schon erfolgreich an meinen AP angeschlossen. Eine Adresse per DHCP hat er sich auch ohne Probleme ziehen können...
Einerseits habe ich es hinbekommen, indem ich die wpa_supplicant.conf in /etc/wifi/ so umgeschrieben habe
Code:
ctrl_interface=DIR=/data/misc/wifi GROUP=wifi
update_config=1
manufacturer=MediaTek Inc.
device_name=Wireless Client
model_name=MTK Wireless Model
model_number=1.0
serial_number=2.0
device_type=10-0050F204-5
os_version=01020300
config_methods=virtual_display virtual_push_button keypad
Andererseits habe ich den wpa_supplicant Service mit dem schon angesprochenen nl80211 Treiber starten müssen...

Hört sich zwar alles ganz gut an, aber irgendwie bekommt es Android nicht auf die Reihe das zu checken...die WifiStateMachine und WifiHW-Services beschweren sich, sie könnten nicht mit dem wpa_supplicant kommunizieren...wer weiß, vielleicht bringt es was am Code herumzuschrauben...

Aber wirklich schön zu sehen, dass ich es doch irgendwie hinbekommen habe den Adapter zu starten :)

/(EDIT)
ICH HAB'S GESCHAFFT! Android rafft endlich, dass das WLAN eigentlich doch funktioniert :) es lag einfach daran, dass der WIFI-Service von Android an einer anderen Stelle nach dem wlan-Socket geschaut hat als Linux es festgelegt hat! Ich habe die Datei libhardware_legacy.so so modifiziert, dass der richtige Pfad genommen wird und nach einem Reboot war das WLAN-Symbol nun endlich zu sehen! Auf zur nächsten Baustelle!

29.3.2014: Die Tests gehen fleißig weiter: 1 Step forward, 2 Steps back :D
Nun, folgender Status ist heute zu verkünden:
Das WLAN geht zwar, aber ich habe nicht bemerkt, dass er keine WLANs anzeigt in den Einstellungen (das heisst beim Scannen sieht er alle WLANs in den Logs, aber er schreibt diese nicht in die Settings unter WLAN, sodass man einfach nur sein WLAN antippen kann. Workaround ist momentan das manuelle anlegen per +-Zeichen...ich muss mal schauen wer hier nicht mit wem redet ^^)
Auch habe ich tagelang einen gravierenden Fehler gemacht, ohne es zu bemerken: in den "prebuilt" files war eine kaputte libhardware_legacy.so vorhanden, die verhinderte, dass das Tab überhaupt starten konnte. Das heisst jegliche (mehr oder minder) geistreiche Idee von mir, die in dieses dieses Modul floss, wurde gnadenlos mit der kaputten überschrieben!!! So viele Tage mit Kopfzerbrechen und dann lag der Fehler bei OSI Schicht 8...für einen IT-ler eine große Schande :sad:

Sei es wie es sei - ich habe *hoffentlich* den Grund für die random soft-boots des Tabs dabei ausgemerzt (wenn ich Glück habe)...der Fehler lag ebenfalls an bereits vorgebauten Modulen, die die kompilierten einfach überschrieben hatten (wenn man eine CM-Build per make triggert, kann man in einem Skript definieren, welche Dateien vom Stock-ROM 1:1 kopiert werden sollen, da waren eben diese unnötigen Module dabei)...
Ich muss es jedoch mal eingehend testen um zu sehen ob die soft-reboots nun Geschichte sind - das wäre ein RIESEN SCHRITT in Richtung Beta-Release für die Community :)

Nun, da ich mit dem WLAN momentan nicht so warm werde, widme ich mich nun dem Audio-Problem.

30.03.2014: Okay, vielleicht doch erstmal das WLAN hinkriegen
Ich habe einen ähnlichen Fehler entdeckt, wie oben mit der libhardware_legacy.so. Ich habe in meinen Anfängen wohl mal die Stock-wpa_supplicant in meinen prebuilt Ordner gesetzt. Mit dieser konnte sich das Tab mit meinem WLAN verbinden, es wurden aber keine WLANs gescannt (bzw. die gescannten angezeigt)...die kompilierte scannt zwar nun die WLANs (zeigt diese auch an), aber verbinden geht nicht mehr :D
Ich könnt kotzen ^^

04.04.2014: Ein paar source codes gefunden!
Ich habe diese Tablet-Geschichte ein wenig schleifen lassen, ich habe einfach irgendwann die Nerven verloren als weder WLAN, noch das Scannen nicht mehr funktionierten obwohl ich nichts brisantes geändert hatte...:( Nun denn, ich habe die Sources für CM komplett neu gezogen, alle Änderungen eingespielt und bin wieder dabei den alten Stand mit dem Anzeigen der WLANs wiederherzustellen (mit gutem Erfolg).
Was heute als wirklicher Durchbruch zu melden ist: Ich habe bei einem anderen Tablet-Hersteller (vorbildlich!) die Source Codes für RK3066 Kernel, Android UND die Treiber gefunden (für das rk30board)! Das heisst, wenn ich mich lange genug damit befasse kann es sein, dass ich alle Probleme (siehe unten) relativ zügig wegbekommen kann! Es gibt eine wpa_supplicant für Mediatek WLAN Chips, die ich nur einbinden muss, dann sollte das Verbinden problemlos funktionieren! Eines ist sicher: mein nächstes mögliches Tab wird definitiv eines sein, welches die Source Codes zum Download anbietet anstatt einen Wertscheck über 15€ zu verlangen (gell Trekstor? :p )!!

Stay tuned!

Folgende Baustellen sind aber noch offen:
1 WLAN - entweder scannen geht, aber verbinden schlägt fehl (4-way handshake), oder aber er verbindet sich, aber er zeigt keine Scans an :cursing:
2 Audio - kann den Soundchip nicht initialisieren
3 Bluetooth - Keine Ahnung :D
4 Rotation (ist um 90 Grad "verschoben". Workaround ist das Ausschalten der automatischen Drehung)
5 Zufällige Soft Reboots aufgrund des Absturz des Surfaceflinger Services...leider ist das Debuggen von dem Monster eher ein Problem - ist zwar nun weniger geworden, aber noch nicht komplett ausgemerzt...

Gruß
 
Zuletzt bearbeitet:
:thumbsup:Endlich:thumbsup:

Super das sich jemand mit diesem Tablet beschäftigt. Ich habe mich selbst schon halb tot gesucht nach einer Custom Rom auf 4.2.2 Basis, da ich aber so gut wie null Ahnung habe wie so etwas zu portieren ist, hab ich die Hoffnung schon fast aufgegeben.

Ich wünsche dir viel Erfolg und bedanke mich schon mal im Voraus, auch für die vielen anderen die dieses Tablet besitzen, das du diese Arbeit auf dich nimmst.
Hoffentlich schaffst du es.

:thumbup::thumbup:
Danke, Danke, Danke
:thumbsup::thumbsup::thumbsup:

PS: Solltest du einen Tester benötigen steh ich gern zur Verfügung.
 
Zuletzt bearbeitet:
Hi,

danke für die netten Worte :)
Ja, ich bin fleißig am Arbeiten und "Tagebuch" schreiben (dazu missbrauche ich diesen Thread ein wenig :D ), damit ich nicht vergesse, was ich alles tun musste, damit die CM läuft...^^

Sobald die 5 Punkte meiner Meinung nach behoben sein sollten, gebe ich die CM zum Beta-Test frei, vorher macht es denke ich wenig Sinn...
 
Juhu, vielen Dank im voraus für Deine Arbeit. Werde dann auch gern testen. Meins hängt sich gern auch mal auf und warte schon ewig auf was neues, da ist Trekstor wohl nicht so fit, Wollte das schon umtauschen aber dann hat mein Hund den Touch geschrottet und da war nichts mehr mit Garantie...hatte glück bei nem china shop und dort nen neuen Touch bekommen, jetzt hoffe ich das es mit neuer Software dann besser wird mit den Abstürzen.
Viel erfolg:thumbup:
 
vossimann schrieb:
hatte glück bei nem china shop und dort nen neuen Touch bekommen, jetzt hoffe ich das es mit neuer Software dann besser wird mit den Abstürzen.
Viel erfolg:thumbup:

Hi,

sag mal, weißt du noch das genaue TS-Modell? Ich wollte einen Kernel für das Ventos 8 bauen (auf Basis des Ventos 10 Kernels)...das würde die Ungereimtheiten zwischen CM10 und dem Stock-Kernel vielleicht sogar komplett beseitigen..
Ich meine es wäre ein ft0x0, aber ich habe keine Lust mein Tab aufzumachen...^^

Wäre super wenn du mir das mitteilen könntest!
 
Fleissig fleissig, ich schau täglich mal nach wie es läuft. Falls du noch mehr Infos brauchst über ggf die Hardware schrei einfach:scared:
 
Ja, hab es leider ein wenig schleifen lassen, dafür ist das neuste Update bis jetzt am vielversprechendsten :)
 
Keinen Stress, für mich sind das bömische Wälder lol, aber ich reparier all sowas gerne (Handy, Tablet,Spielekonsolen usw ):cool2:
Daumen hoch Du schaffst das!
 
Gibts was neues? :cool2:
 

Ähnliche Themen

S
Antworten
1
Aufrufe
942
Smarblay
S
tki
Antworten
2
Aufrufe
2.402
tki
tki
N
  • Gesperrt
  • nobody19
Antworten
2
Aufrufe
1.386
xminister
xminister
Zurück
Oben Unten