was tun mit einem alten tablet?
was tun mit einem alten tablet?
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.
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?
reox hat geschrieben:15.08.2018 13:02:02Ich verwende derzeit cynogenmod 10 - ein build aus 2013...
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?
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.
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?
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:
Und diese zuordung:
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...
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
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
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?
Ich vermute, dass du mit deinen Fragen bei den Jungs von XDA besser aufgehoben bist als hier
Re: was tun mit einem alten tablet?
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...
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?
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:
Folgende Header files sind vorhanden:
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
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.
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
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
Re: was tun mit einem alten tablet?
Wie hast du gebaut? Einfach die .config kopiert und make aufgerufen? Oder doch mit make oldconfig?reox hat geschrieben:17.09.2018 18:15:12Ein test einen 4.18.8 zu nehmen und mit der config vom alten kernel zu kompilieren hat überraschenderweise ohne fehler funktioniert
Versuch macht kluuchreox hat geschrieben:17.09.2018 18:15:12nur so ganz trau ich mich nicht das mal aufs tabelt zu spielen
Re: was tun mit einem alten tablet?
die konfiguration kopiert:Tintom hat geschrieben:17.09.2018 20:07:21Wie hast du gebaut? Einfach die .config kopiert und make aufgerufen? Oder doch mit make oldconfig?
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
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?
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.
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?
Wurde im Eingangspost doch erwähnt BCT ist die Boot Configuration Table vom nvidia tegra chip. Die sollte beschreiben wo was wie gebootet wird.Benno007 hat geschrieben:18.09.2018 05:31:16Du könntest noch mehr Abkürzungen wie BCT einwerfen und noch mehr spezielle Fragen stellen, dann sinkt deine Antwortchance noch schneller gegen Null.
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?
Das würde jedenfalls erklären, warum bei LineageOS immer nur der alte Kernel verwendet wird und nie ein neuer.Benno007 hat geschrieben:18.09.2018 05:31:16Auf 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.
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.