Astralix
Stamm-User
- 956
Hi!
Ich mache mal für exakt dieses Thema einen neuen Thread auf, da es in den anderen Threads zu bunt zugeht. Also hier ein neuenb Thread _nur_ für alles rund um den Kernel.
Der Thread soll zwei Dinge ermöglichen:
1) Reproduktiopn des originalen Kernels
Die originalen Quellen von Odys sollten kompilieren und auf dem Xpress oder Loox geflasht funktionieren.
Update 02.12:
Die Kernelquellen produzieren inzwischen einen lauffähigen Code für das Loox, defconfigs fehlen noch, ob auch Xpress und Cosmo aus diesen Quellen bedient werden können, ist noch nicht getestet.
2) Update auf eine neuere Version um einen Zugang zu Android 3.x oder 4.x zu ermöglichen.
Update 02.12:
Es ist erst einige Aufräumarbeit nötig, um dies zu bewerkstelligen.
Update 04.12:
Wir können inzwischen feststellen, dass wir sowohl über funktionierende 2.6.32.27 Kernel Quellen, al auch funktionierende 3.0.8 Kernel Quellen verfügen. Es gibt zwar noch immer einige Probleme mit der Code Qualität und etwas Arbeit an verschiedenen Stellen, aber es macht sich.
Identifizierte Module
... die auch beim Start des Systems an den Kernel angebunden werden:
LCD
Loox:
Das LCD scheint ein AT070SN02V0 zu sein. Nimmt man dieses als Grundlage, kann man mit angepassten Daten aus der lcd_AT070TNA2.c eine passende Initialisierung erzeugen.
Xpress:
Das LCD im XPress ist ein anderes, kann aber mit identischen Daten problemlos angesteuert werden.
PLL Setup
Der RK2918 besitzt eine Reihe PLLs die die Clocks für verschiedene Sektionen des Chips liefern. Aus diesen Clocks werden dann für einzelne Peripherie-Einheiten die nötigen lokalen Clocks erzeugt.
Es ist daher logisch, dass die PLLs und die Teiler auf vernünftigen Einstellungen stehen müssen, um eine Funktion aller peripheren Module zu garantieren.
Leider ist es so, dass sich mit dem Kernel die Einstellungen der PLLs nur teilweise vornehmen lassen, bzw. der Code an vielen Stellen rund um die PLLs und deren Teiler völlig undurchsichtig ist, da er nur als Object-Code vorliegt, nicht als Quellcode.
Daher liegt aktuell eine viel zu niedrige General PLL (gpll) Frequenz am System an, deren Frequenz auch noch unglücklich gewählt ist. So können die Teiler für z.B. USB und SD-Card Interface keine sauberen Frequenzen für sich erzeugen. Dadurch funktionieren diese Komponenten nur unzuverlässig. Auch I2C ist davon betroffen.
Update 02.12:
PLL Sourcecode ist jetzt identifiziert. Der original Code bremst Loxx und Xpress bei 1080MHz aus. Unsere Kernel schalten da noch einer Stufe mehr frei, also 1150MHz. Darüber werden alle Tablets mit RK2918 instabil.
Unsere Kernel lassen aber ausser 1080MHz und 400MHz auch noch 5..6 weitere Stufen zu, in die sie je nach Last schalten. Und wir gehen runter bis 24MHz.
RTL8188 WLAN Adapter (Realtek)
Tablet: Neuere Loox
Datenblatt: Nur unvollständig verfügbar
Quellen: Treiber bei Realtek vollständig vorhanden incl. Anpassungen für Android
Kommentar: Der Baustein ist am USB1.1 Controller des RK2918 angeschlossen. Jeder Versuch trotz 802.11b/g/n Unterstützung mehr als 12MBit/s Datenrate zu erhalten ist zwecklos. Für Videostreams ergeben sich bei optimalem Empfang etwa 8MBit/s downstream.
Update 02.12:
Sourcen jetzt vollständig vorhanden. Wird im Loox mit dem Treiber des RTL8192 genutzt. Fehlende GPIO Ansteuerung durch SDIO Treiber nun vorhanden.
Status: WORKING
8686 WLAN Adapter (Marvell)
Tablet: Ältere Loox?
Datenblatt: Nicht Verfügbar, Hersteller Marvell
Quellen: Unbekannt
Kommentar: Dieser Chipsatz wurde durch Zufall gefunden, da der Firmware-Blob im Odys Image vorhanden ist. Zudem gibt es bei z.B. Amazon in den Berichten einen Hinweis darauf, dass ab einem bestimmten Zeitpunkt ein anderer WLAN Chip verbaut ist, da die Empfangsqualität und die Datenrate deutlich schlechter geworden sind.
Dieser Chip ist am SDIO angeschlossen, wird also als SD-Card betrieben. Er kann vermutlich die volle Bandbreite des WLAN ausschöpfen.
Update 02.12:
Module im Kernel anwählbar. Ob auch funktionsfähig, kann erst getestet werden, wenn jemand ein Loox mit diesem Chipsatz hat und uns hilft ein paar Tests zu machen.
Status: TBD
BCM4329 WLAN Adapter (Broadcom)
Tablet: Xpress
Datenblatt: Nicht vollständig verfügbar
Quellen: In mehreren Versionen verfügbar.
Kommentar: Der im Xpress vorhandene Treiber schaltet vermutlich alle Extras in diesem Chipsatz aus. Denn der Chipsatz kann neben WLAN 802.11/b/g/n auch Bluetooth und FM-Radio. Es ist aber fraglich ob die passenden Antennen und die nötige externe Beschaltung am Chip vorhanden ist. Der Chipsatz ist in einem SWL-B33 verbaut. Das SWL-B23 ist in vielen Handies (SWL = Samsung WireLess, Verbaut in Samsung und HTC) und dort für diese Dienste zuständig. Das SWL-B33 ist vermutlich nur mit einem kleineren Bruder des BCM4329 bestückt, der nur WLAN kann.
Dieser Chip ist am SDIO angeschlossen, wird also als SD-Card betrieben. Das SDIO wird mit 25MHz betrieben und ist vermutlich 4-Bit breit. Hier sind also etwa 20MByte/s möglich.
Update 04.12:
Status: WORKING
HYM8563 RTC (Uhr) angeschlossen an I2C Bus 1
Tablet: Loox / Xpress
Datenblatt: scheint baugleich zu diversen 8563 RTCs zu sein, u.A. NXP.
Quellen: Treiber im Kernel 2.6.32.27 vorhanden
Status: WORKING
MMA8452 Beschleunigungssensor von Freescale, ebenfalls I2C, Bus vermutlich ebenfalls Bus 1
Tablet: Loox / Xpress
Datenblatt: MMA8452Q Product Summary Page
Quellen: Treiber im Kernel 2.6.32.27 vorhanden, LCD wird entsprechend der Tablet-Ausrichtung gedreht.
Status: WORKING
ALC5621 Multi-Channel-AudioCodec mit Mono 2.3W Ausgang und Stereo Line-Out.
Tablet: Loox
Datasheet: Realtek
Quellen: Treiber im Kernel 2.6.32.27 vorhanden.
Status: WORKING
WM8900 Multi-Channel-AudioCodec Stereo 2.3W Ausgang und Stereo Line-Out.
Tablet: Xpress
Datenblatt: CODECs | WM8900 | Wolfson Microelectronics
Quellen: Treiber im Kernel 2.6.32.27 vorhanden
Status: WORKING
OV7675 Front Kamera
Tablet: Loox / Xpress
Datasheet: OmniVision
Quellen: Treiber im Kernel 2.6.32.27 vorhanden
Kommentar: Cam wird erkannt und liefert video. Es gibt noch ein paar Fehlermeldungen bzgl. des Bildformates.
Status: WORKING
OV2655 Rear Kamera
Tablet: Xpress
Datenblatt: OmniVision
Quellen: Treiber im Kernel 2.6.32.27 vorhanden
Kommentar: Noch nicht getestet
Status: WORKING
ANX7150 HMAC HDMI Media Access Controller, nur im Xpress bestückt.
Tablet: Xpress
Datenblatt: Analogix
Quellen: Treiber im Kernel 2.6.32.27 vorhanden
Status: WORKING
LZ300MSF Resistive-Touch-Controller
Tablet: Loox
Datenblatt: Unbekannt
Quellen: Treiber im Kernel 2.6.32.27 vorhanden, im 3.0.8 vorhanden.
Kommentar: War viel Arbeit, vor allem von fr3ts0n. Nun auch mit funktionierender Kalibrierung.
Status: WORKING
SIS809 Capacitive-Touch-Controller
Tablet: Xpress
Datenblatt: Vorhanden
Kommentar: Der gemeldete Chip ist gelogen, in dem ganzen gerät gibt es keinen SIS809. Stattdessen ist dort ein Raydium RM31060 Touch Screen Controller mit SPI Interface verbaut. Dahinter auf der gleichen Anschlussfolie ist ein kleiner Controller, der SPI in Si2C übersetzt. Der Treiber, der ursprünglich mal für den SIS809 gedacht war, wurde gerupft und nicht umbenannt.Status: TBD
Status: WORKING
BQ27510 Battery-Manager
Tablet: Andypad Pro
Datenblatt: Bei TI hier zu finden
Quellen: Treiber im Kernel 2.6.32.27 vorhanden
Kommentar: Wird erkannt und ohne weitere Meldungen eingebunden. Allerdings habe ich das Tablet wegen dauerndem Flashen immer am Netzteil und kann noch nicht sagen, ob er auch vom System korrekt verwendet wird. Der Baustein ist eine 'Fuel Gauge' also eine reine Füllstandanzeige für den Akku. Die Ladeschaltung ist vermutlich diskret aufgebaut. Jedenfalls gibt es ein paar SMD Bauteile in der Umgebung, deren Code auf OPs hinweisen.
Status: Ongoing
ADC RK2918 ADC Eingänge
Tablet: Loox
Für das LiPo Management wird im Loox kein BQ27510 verwendet, sondern einer der ADC Kanäle vom SOC. Dabie wird ausschliesslich die Spannung gemessen, was jegliche Art der Kapazitätsanzeige zu einem reinen Lotteriespiel macht. Wenn wenigestens der Strom noch gemessen werden würde... Schade...
Status: WORKING
PWM RK2918 PWM Ausgang
Die LED Hintergrundbeleuchtung wir über eine PWM-Stufe des RK2918 gesteuert. Port/Pin und Anpassungsmöglichkeiten sind inzwischen bekannt.
Status: WORKING
TASTEN
Die Tasten am Tablet werden scheibar bei vielen Herstellern gleich belegt. Sie sind daher i.d.R. ansprechbar und werden korrekt ausgewertet.
Quellen: Board spezifische Dateien fehlen, daher ist hier raten angesagt. Die in den meisten Quellen vordefinierte Belegung scheint aber zu stimmen.
STATUS: WORKING
RK2918 CPU
Datenblatt: Unvollständig, kein Programmers-Manual verfügbar
Quellen: Im Kernel 2.6.32.27 zum grossen Teil vorhanden.
Kommentar: Im Kernel fehlen einige wichtige Sourcen um das DDR RAM zu initialisieren, die PLLs zu konfigurieren und ein paar andere Dinge. Stattdessen wurden uu-komprimierte .o Dateien mitgeliefert, die teilweise als Blob geladen werden. Diese Blobs werden beim Start zuerst in das interne SRAM des RK2918 kopiert. Erst dann werden sie verwendet.
Status: Er funktioniert... mehr kann man vorläufig nicht sagen
RK2918 GPU
Quellen: Im Kernel Code sind entsprechende uu-komprimierte Object-Dateien vorhanden, die Video-Beschleunigung zur Verfügung stellen (sollen).
Kommentar: Die sog. VPU relevanten Codes liegen nicht im Source vor, sondern sind als uu-comprimierte .o Dateien mitgeliefert. Interessant wird es, wenn man auf einen neueren Kernel umsteigt. Ausserdem sind bereits neuere Versionen dieser Dateien aufgetaucht, die vermutlich für ICS4 erforderlich sind.
Status: TBD
RK2918 VPU
Quellen: Im Kernel Code sind entsprechende uu-komprimierte Object-Dateien vorhanden, die Video-Beschleunigung zur Verfügung stellen (sollen).
Kommentar: Augenscheinlich funktionieren diese nicht im Source verfügbaren Dateien aber gut, denn das Xpress erreicht erstaunliche Laufzeiten bei reinem Videostreaming.
KERNEL
Quellen, die einen funktinonierenden Kernel für das Loox erzeugen sind inzwischen vorhanden. Die Qualität des Codes ist teilweise zweifelhaft.
Einige Dinge, u.A. CPU Speed, sind noch genauer zu untersuchen.
Einiges sollte überarbeitet werden, da z.B. beim Loox ebenso wie beim Xpress zwei Kameras eingebunden werden, obwohl das Loox nur eine besitzt. Ausserdem scheint das Kamera Interface vom RK28 abgeleitet worden zu sein, der nur eine Kamera unterstützt. Der Treiber ist jedenfalls so aufgebaut, dass er ein Device inbstalliert, welches aus zwei Kameras besteht, die sich nur in den GPIOs unterscheiden. Seltsamerweise wurde vergessen, die I2C Bus Konfiguration zu berücksichtigen. Dadurch wird auf dem Loox eine nicht existierende Kamera aktiviert.
Anmerkungen:
Für den Kernel selbst sollte es erst einmal uneerheblich sein, welcher Compiler genutzt wird. In vielen Foren wird jedoch darauf hingewiesen, dass man die Makefiles um einige Optionen ergänzen muss. Diese Hinweise beziehen sich auf gcc <= 4.4.x mit einem originalen Kernel.
Der von Odys gepatchte und um den RK29 erweiterte Kernel 2.6.32.27 wurde bereits um diese Modifikationen ergänzt. Die Mühe kann man sich also sparen.
Ich kompiliere den Kernel mit arm-linux-gnueabi mit einem gcc der Version 4.5.2.
Im Folgende ein paar Dinge, die dem geneigten Entwickler helfen können
-----------------------------------
Hier ein komplettes BootLog vom Odys Kernel selbst, also dem der auch startet:
In cap=512MB OUT BUILD[0006]=====374723 GetRemapTbl flag = 0 OK! Boot ver: - Pastebin.com
Habe mal ein vollständiges Bootlog eines selbst gebauten Kernels hier hin gestellt:
LooxBootLog_AstralixKernel - Pastebin.com
U9 Kernel 3.0.8 Bootlog auf dem Loox:
U9 Kernel on OdysLoox Bootlog - Pastebin.com
-----------------------------------
Grüsse
Astralix
Ich mache mal für exakt dieses Thema einen neuen Thread auf, da es in den anderen Threads zu bunt zugeht. Also hier ein neuenb Thread _nur_ für alles rund um den Kernel.
Der Thread soll zwei Dinge ermöglichen:
1) Reproduktiopn des originalen Kernels
Die originalen Quellen von Odys sollten kompilieren und auf dem Xpress oder Loox geflasht funktionieren.
Update 02.12:
Die Kernelquellen produzieren inzwischen einen lauffähigen Code für das Loox, defconfigs fehlen noch, ob auch Xpress und Cosmo aus diesen Quellen bedient werden können, ist noch nicht getestet.
2) Update auf eine neuere Version um einen Zugang zu Android 3.x oder 4.x zu ermöglichen.
Update 02.12:
Es ist erst einige Aufräumarbeit nötig, um dies zu bewerkstelligen.
Update 04.12:
Wir können inzwischen feststellen, dass wir sowohl über funktionierende 2.6.32.27 Kernel Quellen, al auch funktionierende 3.0.8 Kernel Quellen verfügen. Es gibt zwar noch immer einige Probleme mit der Code Qualität und etwas Arbeit an verschiedenen Stellen, aber es macht sich.
Identifizierte Module
... die auch beim Start des Systems an den Kernel angebunden werden:
LCD
Loox:
Das LCD scheint ein AT070SN02V0 zu sein. Nimmt man dieses als Grundlage, kann man mit angepassten Daten aus der lcd_AT070TNA2.c eine passende Initialisierung erzeugen.
Xpress:
Das LCD im XPress ist ein anderes, kann aber mit identischen Daten problemlos angesteuert werden.
PLL Setup
Der RK2918 besitzt eine Reihe PLLs die die Clocks für verschiedene Sektionen des Chips liefern. Aus diesen Clocks werden dann für einzelne Peripherie-Einheiten die nötigen lokalen Clocks erzeugt.
Es ist daher logisch, dass die PLLs und die Teiler auf vernünftigen Einstellungen stehen müssen, um eine Funktion aller peripheren Module zu garantieren.
Leider ist es so, dass sich mit dem Kernel die Einstellungen der PLLs nur teilweise vornehmen lassen, bzw. der Code an vielen Stellen rund um die PLLs und deren Teiler völlig undurchsichtig ist, da er nur als Object-Code vorliegt, nicht als Quellcode.
Daher liegt aktuell eine viel zu niedrige General PLL (gpll) Frequenz am System an, deren Frequenz auch noch unglücklich gewählt ist. So können die Teiler für z.B. USB und SD-Card Interface keine sauberen Frequenzen für sich erzeugen. Dadurch funktionieren diese Komponenten nur unzuverlässig. Auch I2C ist davon betroffen.
Update 02.12:
PLL Sourcecode ist jetzt identifiziert. Der original Code bremst Loxx und Xpress bei 1080MHz aus. Unsere Kernel schalten da noch einer Stufe mehr frei, also 1150MHz. Darüber werden alle Tablets mit RK2918 instabil.
Unsere Kernel lassen aber ausser 1080MHz und 400MHz auch noch 5..6 weitere Stufen zu, in die sie je nach Last schalten. Und wir gehen runter bis 24MHz.
RTL8188 WLAN Adapter (Realtek)
Tablet: Neuere Loox
Datenblatt: Nur unvollständig verfügbar
Quellen: Treiber bei Realtek vollständig vorhanden incl. Anpassungen für Android
Kommentar: Der Baustein ist am USB1.1 Controller des RK2918 angeschlossen. Jeder Versuch trotz 802.11b/g/n Unterstützung mehr als 12MBit/s Datenrate zu erhalten ist zwecklos. Für Videostreams ergeben sich bei optimalem Empfang etwa 8MBit/s downstream.
Update 02.12:
Sourcen jetzt vollständig vorhanden. Wird im Loox mit dem Treiber des RTL8192 genutzt. Fehlende GPIO Ansteuerung durch SDIO Treiber nun vorhanden.
Status: WORKING
8686 WLAN Adapter (Marvell)
Tablet: Ältere Loox?
Datenblatt: Nicht Verfügbar, Hersteller Marvell
Quellen: Unbekannt
Kommentar: Dieser Chipsatz wurde durch Zufall gefunden, da der Firmware-Blob im Odys Image vorhanden ist. Zudem gibt es bei z.B. Amazon in den Berichten einen Hinweis darauf, dass ab einem bestimmten Zeitpunkt ein anderer WLAN Chip verbaut ist, da die Empfangsqualität und die Datenrate deutlich schlechter geworden sind.
Dieser Chip ist am SDIO angeschlossen, wird also als SD-Card betrieben. Er kann vermutlich die volle Bandbreite des WLAN ausschöpfen.
Update 02.12:
Module im Kernel anwählbar. Ob auch funktionsfähig, kann erst getestet werden, wenn jemand ein Loox mit diesem Chipsatz hat und uns hilft ein paar Tests zu machen.
Status: TBD
BCM4329 WLAN Adapter (Broadcom)
Tablet: Xpress
Datenblatt: Nicht vollständig verfügbar
Quellen: In mehreren Versionen verfügbar.
Kommentar: Der im Xpress vorhandene Treiber schaltet vermutlich alle Extras in diesem Chipsatz aus. Denn der Chipsatz kann neben WLAN 802.11/b/g/n auch Bluetooth und FM-Radio. Es ist aber fraglich ob die passenden Antennen und die nötige externe Beschaltung am Chip vorhanden ist. Der Chipsatz ist in einem SWL-B33 verbaut. Das SWL-B23 ist in vielen Handies (SWL = Samsung WireLess, Verbaut in Samsung und HTC) und dort für diese Dienste zuständig. Das SWL-B33 ist vermutlich nur mit einem kleineren Bruder des BCM4329 bestückt, der nur WLAN kann.
Dieser Chip ist am SDIO angeschlossen, wird also als SD-Card betrieben. Das SDIO wird mit 25MHz betrieben und ist vermutlich 4-Bit breit. Hier sind also etwa 20MByte/s möglich.
Update 04.12:
Status: WORKING
HYM8563 RTC (Uhr) angeschlossen an I2C Bus 1
Tablet: Loox / Xpress
Datenblatt: scheint baugleich zu diversen 8563 RTCs zu sein, u.A. NXP.
Quellen: Treiber im Kernel 2.6.32.27 vorhanden
Status: WORKING
MMA8452 Beschleunigungssensor von Freescale, ebenfalls I2C, Bus vermutlich ebenfalls Bus 1
Tablet: Loox / Xpress
Datenblatt: MMA8452Q Product Summary Page
Quellen: Treiber im Kernel 2.6.32.27 vorhanden, LCD wird entsprechend der Tablet-Ausrichtung gedreht.
Status: WORKING
ALC5621 Multi-Channel-AudioCodec mit Mono 2.3W Ausgang und Stereo Line-Out.
Tablet: Loox
Datasheet: Realtek
Quellen: Treiber im Kernel 2.6.32.27 vorhanden.
Status: WORKING
WM8900 Multi-Channel-AudioCodec Stereo 2.3W Ausgang und Stereo Line-Out.
Tablet: Xpress
Datenblatt: CODECs | WM8900 | Wolfson Microelectronics
Quellen: Treiber im Kernel 2.6.32.27 vorhanden
Status: WORKING
OV7675 Front Kamera
Tablet: Loox / Xpress
Datasheet: OmniVision
Quellen: Treiber im Kernel 2.6.32.27 vorhanden
Kommentar: Cam wird erkannt und liefert video. Es gibt noch ein paar Fehlermeldungen bzgl. des Bildformates.
Status: WORKING
OV2655 Rear Kamera
Tablet: Xpress
Datenblatt: OmniVision
Quellen: Treiber im Kernel 2.6.32.27 vorhanden
Kommentar: Noch nicht getestet
Status: WORKING
ANX7150 HMAC HDMI Media Access Controller, nur im Xpress bestückt.
Tablet: Xpress
Datenblatt: Analogix
Quellen: Treiber im Kernel 2.6.32.27 vorhanden
Status: WORKING
LZ300MSF Resistive-Touch-Controller
Tablet: Loox
Datenblatt: Unbekannt
Quellen: Treiber im Kernel 2.6.32.27 vorhanden, im 3.0.8 vorhanden.
Kommentar: War viel Arbeit, vor allem von fr3ts0n. Nun auch mit funktionierender Kalibrierung.
Status: WORKING
SIS809 Capacitive-Touch-Controller
Tablet: Xpress
Datenblatt: Vorhanden
Kommentar: Der gemeldete Chip ist gelogen, in dem ganzen gerät gibt es keinen SIS809. Stattdessen ist dort ein Raydium RM31060 Touch Screen Controller mit SPI Interface verbaut. Dahinter auf der gleichen Anschlussfolie ist ein kleiner Controller, der SPI in Si2C übersetzt. Der Treiber, der ursprünglich mal für den SIS809 gedacht war, wurde gerupft und nicht umbenannt.Status: TBD
Status: WORKING
BQ27510 Battery-Manager
Tablet: Andypad Pro
Datenblatt: Bei TI hier zu finden
Quellen: Treiber im Kernel 2.6.32.27 vorhanden
Kommentar: Wird erkannt und ohne weitere Meldungen eingebunden. Allerdings habe ich das Tablet wegen dauerndem Flashen immer am Netzteil und kann noch nicht sagen, ob er auch vom System korrekt verwendet wird. Der Baustein ist eine 'Fuel Gauge' also eine reine Füllstandanzeige für den Akku. Die Ladeschaltung ist vermutlich diskret aufgebaut. Jedenfalls gibt es ein paar SMD Bauteile in der Umgebung, deren Code auf OPs hinweisen.
Status: Ongoing
ADC RK2918 ADC Eingänge
Tablet: Loox
Für das LiPo Management wird im Loox kein BQ27510 verwendet, sondern einer der ADC Kanäle vom SOC. Dabie wird ausschliesslich die Spannung gemessen, was jegliche Art der Kapazitätsanzeige zu einem reinen Lotteriespiel macht. Wenn wenigestens der Strom noch gemessen werden würde... Schade...
Status: WORKING
PWM RK2918 PWM Ausgang
Die LED Hintergrundbeleuchtung wir über eine PWM-Stufe des RK2918 gesteuert. Port/Pin und Anpassungsmöglichkeiten sind inzwischen bekannt.
Status: WORKING
TASTEN
Die Tasten am Tablet werden scheibar bei vielen Herstellern gleich belegt. Sie sind daher i.d.R. ansprechbar und werden korrekt ausgewertet.
Quellen: Board spezifische Dateien fehlen, daher ist hier raten angesagt. Die in den meisten Quellen vordefinierte Belegung scheint aber zu stimmen.
STATUS: WORKING
RK2918 CPU
Datenblatt: Unvollständig, kein Programmers-Manual verfügbar
Quellen: Im Kernel 2.6.32.27 zum grossen Teil vorhanden.
Kommentar: Im Kernel fehlen einige wichtige Sourcen um das DDR RAM zu initialisieren, die PLLs zu konfigurieren und ein paar andere Dinge. Stattdessen wurden uu-komprimierte .o Dateien mitgeliefert, die teilweise als Blob geladen werden. Diese Blobs werden beim Start zuerst in das interne SRAM des RK2918 kopiert. Erst dann werden sie verwendet.
Status: Er funktioniert... mehr kann man vorläufig nicht sagen
RK2918 GPU
Quellen: Im Kernel Code sind entsprechende uu-komprimierte Object-Dateien vorhanden, die Video-Beschleunigung zur Verfügung stellen (sollen).
Kommentar: Die sog. VPU relevanten Codes liegen nicht im Source vor, sondern sind als uu-comprimierte .o Dateien mitgeliefert. Interessant wird es, wenn man auf einen neueren Kernel umsteigt. Ausserdem sind bereits neuere Versionen dieser Dateien aufgetaucht, die vermutlich für ICS4 erforderlich sind.
Status: TBD
RK2918 VPU
Quellen: Im Kernel Code sind entsprechende uu-komprimierte Object-Dateien vorhanden, die Video-Beschleunigung zur Verfügung stellen (sollen).
Kommentar: Augenscheinlich funktionieren diese nicht im Source verfügbaren Dateien aber gut, denn das Xpress erreicht erstaunliche Laufzeiten bei reinem Videostreaming.
KERNEL
Quellen, die einen funktinonierenden Kernel für das Loox erzeugen sind inzwischen vorhanden. Die Qualität des Codes ist teilweise zweifelhaft.
Einige Dinge, u.A. CPU Speed, sind noch genauer zu untersuchen.
Einiges sollte überarbeitet werden, da z.B. beim Loox ebenso wie beim Xpress zwei Kameras eingebunden werden, obwohl das Loox nur eine besitzt. Ausserdem scheint das Kamera Interface vom RK28 abgeleitet worden zu sein, der nur eine Kamera unterstützt. Der Treiber ist jedenfalls so aufgebaut, dass er ein Device inbstalliert, welches aus zwei Kameras besteht, die sich nur in den GPIOs unterscheiden. Seltsamerweise wurde vergessen, die I2C Bus Konfiguration zu berücksichtigen. Dadurch wird auf dem Loox eine nicht existierende Kamera aktiviert.
Anmerkungen:
Für den Kernel selbst sollte es erst einmal uneerheblich sein, welcher Compiler genutzt wird. In vielen Foren wird jedoch darauf hingewiesen, dass man die Makefiles um einige Optionen ergänzen muss. Diese Hinweise beziehen sich auf gcc <= 4.4.x mit einem originalen Kernel.
Der von Odys gepatchte und um den RK29 erweiterte Kernel 2.6.32.27 wurde bereits um diese Modifikationen ergänzt. Die Mühe kann man sich also sparen.
Ich kompiliere den Kernel mit arm-linux-gnueabi mit einem gcc der Version 4.5.2.
Im Folgende ein paar Dinge, die dem geneigten Entwickler helfen können
-----------------------------------
Hier ein komplettes BootLog vom Odys Kernel selbst, also dem der auch startet:
In cap=512MB OUT BUILD[0006]=====374723 GetRemapTbl flag = 0 OK! Boot ver: - Pastebin.com
Habe mal ein vollständiges Bootlog eines selbst gebauten Kernels hier hin gestellt:
LooxBootLog_AstralixKernel - Pastebin.com
U9 Kernel 3.0.8 Bootlog auf dem Loox:
U9 Kernel on OdysLoox Bootlog - Pastebin.com
-----------------------------------
Grüsse
Astralix
Zuletzt bearbeitet: