Seite 1 von 1

was tun mit einem alten tablet?

Verfasst: 15.08.2018 13:02:02
von reox
Ich habe mir vor Jahren ein lenovo thinkpad tablet gekauft, stifteingabe war damals der kaufgrund.
Leider ist die akkulaufzeit nicht ganz vorlesungsfreundlich gewesen, aka zu kurz, und mittlerweile lässt sich nicht mal mehr youtube auf dem gerät schauen, da libraries segfaulten.
Ich verwende derzeit cynogenmod 10 - ein build aus 2013...

Nun hatte ich mir mal gedacht, viel kaputt kann man ja nimmer machen und ich könnte ja mal probieren eine neue version von lineageos zu kompilieren.
Das erste problem ist, dass der bootloader gesperrt ist. Dh ich kann dort keine modifikationen vornehmen. Es gibt zwar eine petition die keys offen zu legen aber da ist nix passiert in den letzten jahren.
ich vermute aber man kann auch mit dem gelockten bootloader arbeiten, solange der kernel und initram am selben ort liegen?
Es gibt jedenfalls anleitungen wie man die BCT extrahiert und auch eine beschreibung des bootloaders: https://github.com/NVIDIA/cbootimage-configs und https://http.download.nvidia.com/tegra- ... -flow.html

Das nächste problem ist wohl der kenel. Die aktuelle version von lenovo ist veröffentlicht und ich habe mal ein git repo angelegt, in dem die änderungen ersichtlicht sind: https://github.com/reox/android_kernel_indigo_orig
Die frage ist jetzt wie man zb einen neuen kernel bauen kann... eigentlich muss man ja sehr genau schauen was die änderungen von lenovo bewirken und was genau bei einem vanilla kernel verändert werden muss. Hat jemand schonmal sowas gemacht? Ich frage mich warum die entwickler von custom roms immer den gleichen kernel verwenden und nicht einfach einen 4.x nehmen? Sind da zu viele abhängigkeiten von den userland apps / von android / vom bootloader zur kernel version?

Das dritte problem betrifft die weitren programme. Wie schwer ist es ein aktuelles debian drauf laufen zu lassen? Der erste schritt wäre wohl mal android zu kompilieren und sich dann an debian wagen. Ich hab schon gelesen, dass jemand ubuntu auf einem tegra tablrt installiert hat, also ganz abwegig ist das eh nicht...

Spannend wäre sicher mal android zu bauen, leider hat das bisher nicht richtig funktioniert... ein lineageos 14.1 hab ich mit dem alten device tree und kernel noch nicht geschafft. Vielleicht macht es auch mal sinn, erst mit der alten version anzufangen, wobei dss problem ist, dass sich das buildsystem zwischen cyanogen und linage ein wenig geändert hat.

Hat jemamd vllt brauchbare hinweise für mich, betreffend bootloader und wie der kernel dort eigentlich geladen wird, bzw wie ich das herausfindrn kann? BCT sollte ich mal versuchen zu dumpen,da müsste ja brauchbare information drin stehen.

Re: was tun mit einem alten tablet?

Verfasst: 15.08.2018 22:03:57
von Tintom
reox hat geschrieben: ↑ zum Beitrag ↑
15.08.2018 13:02:02
Ich verwende derzeit cynogenmod 10 - ein build aus 2013...
reox hat geschrieben: ↑ zum Beitrag ↑
15.08.2018 13:02:02
Das erste problem ist, dass der bootloader gesperrt ist.
Verstehe ich nicht. Custom ROMs brauchen einen entsperrten Bootloader. Oder wurde das Gerät damals direkt mit CM ausgeliefert?

Re: was tun mit einem alten tablet?

Verfasst: 15.08.2018 22:24:42
von reox
Sorry meinte gesperrtem boot rom...
Ich hab schon probiert mit nvflash diesem auszulesen, nur beendet sich die verbindung sofort.
Laut doku ist dies das zeichen dafür das er gesperrt war.

Soweit ich das beurteilen kann, muss ich also vom emmc booten, da ich ja im boot rom nichts verändern kann. Mir ist nur nicht ganz klar welche limitierung das wirklich ist. mir ist immer noch nicht ganz klar wie der bootprozess vom emmc funktioniert.
Alles was ich weiß ist, dass ich soweit zugriff habe den emmc zu beschreiben und jedemfalls nicht den BCT ändern kann. Heißt dasauch, dass ich den bootloader überschreiben kann - also liegt der am emmc?
Vermutlich bräuchte es ein dokument, was die system architektur besser beschreibt. Bisher hab ich sowas noch nicht gefunden.

Re: was tun mit einem alten tablet?

Verfasst: 16.08.2018 09:29:57
von reox
Noch ein nachtrag: ich glaube der bootloader ist ebenfalls gesperrt. Ich hab jetzt nochmal nachgesehen wie man damals den custom rom flashen konnte: dazu musste das tablet erst gerootet werden - da gab es mal einen exploit... danach konnte man mit dd das recovery image neu schreiben.

Sehe ich das richtig, dass der bootloader die adressen vom emmc speichert, an denen dann ein recovery image bzw der kernel liegt?
Folgende partionen gibt es:

Code: Alles auswählen

u0_a61@android:/ # cat /proc/partitions
major minor  #blocks  name

 179        0   15387648 mmcblk0
 179        1       6144 mmcblk0p1
 179        2       8192 mmcblk0p2
 179        3     786432 mmcblk0p3
 179        4     921600 mmcblk0p4
 179        5       2048 mmcblk0p5
 179        6     524288 mmcblk0p6
 179        7      20480 mmcblk0p7
 259        0     143360 mmcblk0p8
 259        1      20480 mmcblk0p9
 259        2   12939264 mmcblk0p10
Und diese zuordung:

Code: Alles auswählen

u_a61@android:/ # ls -al /dev/block/platform/sdhci-tegra.3/by-name/
lrwxrwxrwx root     root              2018-08-16 09:07 AP -> /dev/block/mmcblk0p3
lrwxrwxrwx root     root              2018-08-16 09:07 CC -> /dev/block/mmcblk0p4
lrwxrwxrwx root     root              2018-08-16 09:07 LX -> /dev/block/mmcblk0p2
lrwxrwxrwx root     root              2018-08-16 09:07 MC -> /dev/block/mmcblk0p5
lrwxrwxrwx root     root              2018-08-16 09:07 PA -> /dev/block/mmcblk0p6
lrwxrwxrwx root     root              2018-08-16 09:07 SC -> /dev/block/mmcblk0p7
lrwxrwxrwx root     root              2018-08-16 09:07 SS -> /dev/block/mmcblk0p1
lrwxrwxrwx root     root              2018-08-16 09:07 UA -> /dev/block/mmcblk0p10
lrwxrwxrwx root     root              2018-08-16 09:07 UP -> /dev/block/mmcblk0p8
Auf p1 sollte das recovery image liegen und auf p2 der kernel.
Das würde bedeuten, man muss einen neuen kernel auch auf die selbe größe bringen um das partitionslayout nicht zu verändern?
Weil sonst müsste man ja was am bootloader verändern...

Re: was tun mit einem alten tablet?

Verfasst: 16.08.2018 09:34:37
von Tintom
Ich vermute, dass du mit deinen Fragen bei den Jungs von XDA besser aufgehoben bist als hier :wink:

Re: was tun mit einem alten tablet?

Verfasst: 16.08.2018 16:16:47
von reox
Da magst du vielleicht recht haben :) im tpt forum ist aber irgendwie schon länger nix mehr los und auf nachfragen in dem thread reagiert auch gerade keiner.

Ich werd mal probieren den kernel zu bauen und auch das alte CM - das hatte bisher noch nicht so gut geklappt.

Ich glaube das problem ist wohl, dass man das tablet schneller bricken kann, da ich ja nur im laufenden system oder im recovery flashen kann. Weder nvflash noch fastboot gehen, was ein gewisses risiko ist. Im notfall müsste man dann wohl direkt an den emmc anlöten... ;)

Re: was tun mit einem alten tablet?

Verfasst: 17.09.2018 18:15:12
von reox
Also mir scheint, dass jegliche Fragen zum TPT auf xda zu gar nichts führen... Bisher habe ich dort 0 Feedback bekommen und es werden nur andere Themen besprochen. Scheinbar ist die Gemeinde der Anweder winzig klein geworden.

Daher nochmal hier mit einer Frage, welche auch mit Debian zu tun hat:
Alleine das kompilieren des alten Kernels ist schon eine große Aufgabe, denn dieser lässt sich wohl nur mit einem gcc3 oder 4 kompilieren. Ich erhalte folgende Fehlermeldung:

Code: Alles auswählen

In file included from include/linux/compiler.h:44,
                 from include/linux/stddef.h:4,
                 from include/linux/posix_types.h:4,
                 from include/linux/types.h:17,
                 from include/linux/page-flags.h:8,
                 from kernel/bounds.c:9:
include/linux/compiler-gcc.h:90:1: fatal error: linux/compiler-gcc8.h: No such file or directory
 #include gcc_header(__GNUC__)
 ^~~~
compilation terminated.
Folgende Header files sind vorhanden:

Code: Alles auswählen

$ ls -al include/linux/compiler*
-rw-rw-r-- 1 reox reox  823 Sep  8 11:27 include/linux/compiler-gcc3.h
-rw-rw-r-- 1 reox reox 2240 Sep  8 11:27 include/linux/compiler-gcc4.h
-rw-rw-r-- 1 reox reox 3450 Sep  8 11:27 include/linux/compiler-gcc.h
-rw-rw-r-- 1 reox reox 8523 Sep  8 11:27 include/linux/compiler.h
-rw-rw-r-- 1 reox reox  746 Sep  8 11:27 include/linux/compiler-intel.h
Schaut also so aus, als müsste ich entweder ein OS aus ~2014 auspacken oder gleich einen neuen Kernel verwenden. Nur da stehe ich ziemlich an.
Wie geht man am besten vor, wenn man einen aktuellen Kernel nimmt und jetzt das selbe Featureset vom alten verwenden will? Es gibt ja sicherlich patches, welche auch wieder eingespielt werden müssen aber andere Module welche im Mainline schon drin sind.
Ein test einen 4.18.8 zu nehmen und mit der config vom alten kernel zu kompilieren hat überraschenderweise ohne fehler funktioniert - nur so ganz trau ich mich nicht das mal aufs tabelt zu spielen :D

Re: was tun mit einem alten tablet?

Verfasst: 17.09.2018 20:07:21
von Tintom
reox hat geschrieben: ↑ zum Beitrag ↑
17.09.2018 18:15:12
Ein test einen 4.18.8 zu nehmen und mit der config vom alten kernel zu kompilieren hat überraschenderweise ohne fehler funktioniert
Wie hast du gebaut? Einfach die .config kopiert und make aufgerufen? Oder doch mit make oldconfig?
reox hat geschrieben: ↑ zum Beitrag ↑
17.09.2018 18:15:12
nur so ganz trau ich mich nicht das mal aufs tabelt zu spielen :D
Versuch macht kluuch :wink:

Re: was tun mit einem alten tablet?

Verfasst: 17.09.2018 21:01:32
von reox
Tintom hat geschrieben: ↑ zum Beitrag ↑
17.09.2018 20:07:21
Wie hast du gebaut? Einfach die .config kopiert und make aufgerufen? Oder doch mit make oldconfig?
die konfiguration kopiert:

Code: Alles auswählen

cp ../../android_kernel_indigo_orig/arch/arm/configs/tegra_compal_indigo_sit_defconfig arch/arm/configs/
export TARGET_PRODUCT=ventana
export ARCH=arm
export CROSS_COMPILE=/usr/bin/arm-linux-gnueabi-
export COMPAL_BOARD=sit
make tegra_compal_indigo_sit_defconfig
Naja ein gröberes Problem ist: Ich hab ja nur ein recovery rom... Wenn ich mich irgendwo vertue dann ist das ding ein ziegelstein. Der Bootloader selber ist ja gesperrt, normalerweise wäre das ja die option den eMMC neu zu flashen wenn was nicht passt.
Außerdem ist mir nicht ganz klar welche Rolle der BCT beim booten spielt und ob nur die Adresse am eMMC angesprungen wird oder dort noch mehr Logik sitzt welche dann das Booten von irgendeinem Kernel unterbindet.

Re: was tun mit einem alten tablet?

Verfasst: 18.09.2018 05:31:16
von Benno007
Du könntest noch mehr Abkürzungen wie BCT einwerfen und noch mehr spezielle Fragen stellen, dann sinkt deine Antwortchance noch schneller gegen Null. ;)

Auf ARM laufen meist nur die dafür angepassten alten Kernel, weil auch binäre Treiber genutzt werden, welche nur mit dieser Version zusammenpassen. Ohne Freigabe der Treiber bleibt es wohl dabei, bis auf Backports neuer Funktionen.

Re: was tun mit einem alten tablet?

Verfasst: 18.09.2018 07:50:18
von reox
Benno007 hat geschrieben: ↑ zum Beitrag ↑
18.09.2018 05:31:16
Du könntest noch mehr Abkürzungen wie BCT einwerfen und noch mehr spezielle Fragen stellen, dann sinkt deine Antwortchance noch schneller gegen Null. ;)
Wurde im Eingangspost doch erwähnt ;) BCT ist die Boot Configuration Table vom nvidia tegra chip. Die sollte beschreiben wo was wie gebootet wird.
Außerdem, die Frage ist doch ganz einfach: Wie kann ich einen neuen Kernel bauen und sicherstellen, dass die selbe funktionalität wie im alten drin ist?
Benno007 hat geschrieben: ↑ zum Beitrag ↑
18.09.2018 05:31:16
Auf ARM laufen meist nur die dafür angepassten alten Kernel, weil auch binäre Treiber genutzt werden, welche nur mit dieser Version zusammenpassen. Ohne Freigabe der Treiber bleibt es wohl dabei, bis auf Backports neuer Funktionen.
Das würde jedenfalls erklären, warum bei LineageOS immer nur der alte Kernel verwendet wird und nie ein neuer.
Tegra scheint mir jetzt schon eher besser unterstützt zu sein? Ansonsten rennt auf dem Board noch eine Broadcom (?) WLAN Karte, die allerdings mPCIe hat und somit wunderbar gegen was getauscht werden kann, was support hat. Ansonsten ist dort glaube ich nicht viel Closed Source HW drauf. Im Cyanogenmod repo gibts ein Script zum holen der Properitären Treiber, müsste ich noch nachschauen was da sonst noch rennt.
Ich vermute aber auch, dass Android selber Probleme haben wird mit einem neuen Kernel zu booten.