Alcatel One Touch 997D Kernel kompilieren

P

perpe

Gast
Den FPS Lock für den Bildschirm kann ich euch schon im Kernel ändern, der wäre dann jedoch hardcoded. Unter /proc/cmdline steht die aktuelle FPS, wenn ihr mir sie nennt und auf was ihr es geändert haben wollt, kann ich euch einen Kernel mit der neuen FPS erstellen, jedoch nehme ich da für nichts die Garantie, also wenn euer Display die FPS nicht verträgt.

Der ursprüngliche Beitrag von 00:09 Uhr wurde um 00:29 Uhr ergänzt:

@udo7777
Weiß du wie man einen Kernel kompiliert? Dann erkläre ich dir hier kurz was du beim eurem Kernel dafür ändern musst. Ist nur eine minimale Änderung, sollte jedoch gut getestet werden, da eine höhere fps aus eurem Display schaden kann
 
Hi

Ich hab nochmal nachgeschaut, die Framerate variiert (bei 3-mal Booten 3 verschiedene Framerates), scheinbar ziemlich zufällig, sie schwankt von ca 33,32 Hz - 33,45 Hz, keine Ahnung warum. Ich würde aber mal sagen, sicher wäre es, klein anzufangen, bei 34Hz zbsp.

Gruß
Thomas
 
Ein Pi mal Daumen Wert bringt mir nicht viel, ich wüsste schon gern den richtigen Wert. Dieser Wert wird über cmdline vom Bootloader an euren Kernel übergeben. Man kann das umgehen in dem man eine FPS im Kernel festlegt. Machbar ist es, um abzuwäge welchen neuen Wert man nehmen soll, sollte man den alten kennen.
Das Problem ist halt das ich kein Alcatel habe und somit auch nicht testen kann, mir wäre daher lieber jemand von euch, der den Kernel schon mal kompiliert hat macht das.
 
Mehr als den Wert der cmdline kann ich dir leider nicht nennen und wie schon geschrieben, der schwankt zwischen 3332 und 3345, zumindest bei meinem Gerät.

Gruß
Thomas
 
Komisch das sie variieren, lass uns mal warten was Udo schreibt, wenn er den Kernel kompilieren kann, schreibe ich ihm was er wo ändern muss.
 
Moin Mädels :D

Wenn mein privater Tester :flapper: soweit das OK gibt wird die Rom heut im lauf des Tages Frei gegeben :thumbsup:
Die Rom ist der Hammer!!
Perpe, der Takt bewegt sich auf der LEWA-Rom zwischen 3302 und 3304. Egal wie oft man neu startet.
Nun, ich kann ein Kernel kompilieren. Das ist kein Thema, aber, ich komme dann nicht weiter wenn ich vor folgende Datein stehe:

decompressionscode
initramfs.cpio
padding3
part3
piggy.gz
piggy_trailer
Kernel.img etc.

Wie man aber diese Datein öffnet weiß ich echt nicht :( Hab zwar mal was gelesen das da auch was mit dem Hex-editor geht jedoch ist das jenseits meines Wissens!
Viellecht kannst Du es mir mal erklären, was auch bestimmt andere User interessieren dürfte.


Gruß Udo7777
 
Zuletzt bearbeitet von einem Moderator:
@udo7777
Was hast du denn mit den Dateien vor? Die brauchst du eigentlich gar nicht. Wenn du den Kernel kompiliert hast befindet sich der Kernel im Ordner OT_997D/kernel/arch/arm/boot, dort die zImage Datei, das ist der fertig Kernel.
Erstell mal den Kernel, dann nimm die zImage und pack sie als Kernel in die boot.img. Flash das dann mal um zu schauen, ob es funktioniert. Wenns klappt, dann kannst mal nach der fps schauen. Öffne dazu die Datei OT_997D/mediatek/source/kernel/drivers/video/mtkfb.c und suche die Funktion mtkfb_probe
Code:
static int mtkfb_probe(struct device *dev)
{
    struct platform_device *pdev;
    struct mtkfb_device    *fbdev = NULL;
    struct fb_info         *fbi;
    int                    init_state;
    int                    r = 0;
	char *p = NULL;
    MSG_FUNC_ENTER();
	
	printk("%s, %s\n", __func__, saved_command_line);
	[b]p = strstr(saved_command_line, "fps=");
	if(p == NULL){
		lcd_fps = 6000;
		printk("[FB driver]can not get fps from uboot\n");	
	}
	else{
		p += 4;
		lcd_fps = simple_strtol(p, NULL, 10);
	}[/b]
	printk("[FB driver] fps = %d\n", lcd_fps);
an der fett markierten Stelle wird die fps aus der cmdline ausgelesen und der Variablen lcd_fps zu geordnet, diese Variable muss du mit einem eigenen Wert überschreiben, du kannst die gesamte if - else Abfrage herausnehmen oder danach einfach ein lcd_fps = dein Wert angeben.
Es scheint so, dass die fps an der Stelle festgelegt wird, ob er das dann auch nutzt kann man jedoch nur durch testen herausfinden. Also den Kernel kompilieren, booten und hoffen es wirkt.
 
@perpe,

dann hatte ich vom Kompilieren wohl eine andere Vorstellung!
So wie Du es sagst hab ich es noch nicht gemacht :unsure:
Kannst Du es mir mal genauer erklären wie das Kompilieren des Kernels geht? Ein fettes Danke :thumbup:


Gruß Udo7777
 
Schreiben wir hier weiter, damit der Überblick im ROM Thread nicht verloren geht.

Mit Kernel kompilieren meine ich immer vom Quellcode.
Du brauchst erst mal einen Linux PC, falls du Linux nicht installiert hast geht es auch z.B. Ubuntu in der VM. Wenn du das hast, dann brauchst du den Kernelquellcode, findest du auf alcatel - Browse Files at SourceForge.net, dort das Paket OT_997D_20121228.tar.xz runterladen und entpacken (auf dem Linux System)
Dann brauchst du noch die Android NDK, lädst du von Android NDK | Android Developers runter, natürlich die Linux Version. Das entpackst du auch.

Nun gehst du ins Terminal, da du noch ein paar Pakete brauchst, sie installierst du mit
Code:
sudo apt-get install build-essential libncurses5-dev make gcc-arm-linux-gnueabi[code] gcc-arm-linux-gnueabi brauchst du eigentlich nicht, da wir die Android NDK nutzen werden, aber installiere sie mal mit. Hoffentlich habe ich kein Paket vergessen.
wenn du das hast, dann gehst du im Terminal in den Kernel Ordner des Quellcodes
[code]cd 'deinPfad/OT_997D/kernel'
deinPfad ersetzt du dann halt passend, je nachdem wohin du es entpackt hast.
Nun musst du noch die Android NDK zu deinem Umgebungsvaribalen hinzufügen, das geht mit
Code:
 export PATH=deinPfad/android-ndk-r8e/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin:$PATH
deinPfad ersetzt du wieder passend. Du hast 3 verschiedene Kompilier Versionen in der NDK neben der 4.4.3 auch noch 4.6 und 4.7, wenn es später mit der 4.4.3 nicht durch läuft versuche es mit einer der anderen. Ich habe es noch mit eine älteren Version kompiliert, der Mediatek Code ist halt bissl zickig.
Nun kannst du den Kernel kompilieren, das geht mit:
Code:
TARGET_PRODUCT=jrdsh77_cu_ics2 MTK_ROOT_CUSTOM=../mediatek/custom make
Je nach deinem PC dauert es eine Weile bis er durchläuft. Wenn er ohne Error durchläuft, dann findest du den Kernel später im Verzeichnis OT_997D/kernel/arch/arm/boot, da halt das zImage.
nun kannst du dein Bootimage erstellen, mit dem repack-MT65xx.pl Script, hoffe das kennst du. Und eben das image testen, ob es denn auch bootet. Wenns klappt, kannst du an die Änderung der mtkfb.c gehen, wie ich es oben beschrieben habe.
Vor dem neu kompilieren säuberst du jedoch erst mit
Code:
TARGET_PRODUCT=jrdsh77_cu_ics2 MTK_ROOT_CUSTOM=../mediatek/custom make clean
Und dann mit
Code:
TARGET_PRODUCT=jrdsh77_cu_ics2 MTK_ROOT_CUSTOM=../mediatek/custom make
den Kernel wieder neu erstellen.
 
Zuletzt bearbeitet von einem Moderator:
Uihh, daß wird mein Doktor-Titel :scared:
Ich werde es mal intensiv durch gehen. Danke für die Beschreibung!


Gruß Udo7777
 
Hallo perpe

ich hab für VanillaLVL eine Übersetzung deines Tutorials zum Kernel Kompilieren geschrieben (ich hoffe du hast nichts dagegen), das Kernel kompilieren hat mit 4.7 auch geklappt, er weiß jetzt jedoch nicht wie er das zImage in die boot.img bekommt, es wäre sehr nett wenn du da mal einen Tip geben könntest :)

Gruß
Thomas
 
Hallo allerseits,
bis jetzt gibt es leider immer noch keinen Fortschritt bzw. fertigen Kernel, es scheinen aber Jelly Bean Sources für den MTK 6577 aufgetaucht zu sein.
Die Übersetzung der Anleitung ist ziemlich weit gekommen, ich hab sie über XDA-Developers von einem anderen Mitglied wieder erhalten, als ich dort nach Hilfe fragte.
Vielleicht kann es jemand noch einmal jemand versuchen?
Gruß Hummel!
 

Ähnliche Themen

M
  • Moonblast
Antworten
1
Aufrufe
1.118
swa00
swa00
C
Antworten
0
Aufrufe
1.199
Cortablo
C
F
Antworten
0
Aufrufe
1.244
Fr33l4nc3r
F
Zurück
Oben Unten