Forum: Mikrocontroller und Digitale Elektronik Meizu Pro 5 Kernel kompilieren


von Daniel A. (daniel-a)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Ich versuche den Kernel für das Meizu Pro 5 zu kompilieren und auf das 
Handy zu flashen.

Ich verwende den Kernel von hier: https://github.com/meizuosc/m576

Ich habe den kernel mit dem Compiler aus dem Compiler aus dem Packet 
gcc-aarch64-linux-gnu aus dem Ubuntu xenial repo kompiliert, 
"aarch64-linux-gnu-gcc -v" liefert folgendes:
1
daniel@Daniels-Surface-Pro-3:~/projects/m576$ aarch64-linux-gnu-gcc -v
2
Using built-in specs.
3
COLLECT_GCC=aarch64-linux-gnu-gcc
4
COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/aarch64-linux-gnu/5/lto-wrapper
5
Target: aarch64-linux-gnu
6
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-arm64-cross/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-arm64-cross --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-arm64-cross --with-arch-directory=aarch64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libgcj --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=aarch64-linux-gnu --program-prefix=aarch64-linux-gnu- --includedir=/usr/aarch64-linux-gnu/include
7
Thread model: posix
8
gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.1)

Ist das der richtige Crosscompiler?

Den Kernel habe ich mit folgender Kommandozeile kompiliert:
1
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- pro5_defconfig
2
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

Ich verwende "abootimg" (ebenfals aus dem repo), um das bootimage zu 
erstellen. Ich habe dazu zuerst mit dd eine Kopie des momentanen 
boot.img vom handy gemacht, und dann mit "abootimg -x boot.img" die 
Dateien "initrd.img" "zImage" und "bootimg.cfg" extrahiert. bootimg.cfg 
habe ich noch leicht angepasst, sieht nun so aus:
1
pagesize = 0x1000
2
kerneladdr = 0x40080000
3
ramdiskaddr = 0x42000000
4
tagsaddr = 0x40000100
5
name = Custom 1
6
cmdline = debug systempart=/dev/disk/by-partlabel/system datapart=/dev/disk/by-partlabel/userdata
Ich habe zuerst mit diesen Dateien ein neues bootimg erstellt, geflasht 
und gestartet:
1
abootimg --create bootimg.img -f bootimg.cfg -k zImage -r initrd.img
2
fastboot flash recovery bootimg.img
3
fastboot oem reboot recovery

Das hat noch funktioniert. Dann habe ich das erstellte Image, 
arch/amd64/boot/Image nach zImage kopiert und das ganze wiederholt. Aber 
danach ist es direkt nach Anzeige des Meizu logos (wird vom bootloader 
angezeigt) eingefroren. Ich habe keine Ahnung warum, und ich habe noch 
keinen Weg gefunden beim Booten die Kernelmessages anzuzeigen. Es ist 
echt zum verzweifeln.

Hat irgendjemand einen Tipp, was ich noch versuchen könnte, oder was ich 
falsch mache?


PS: Weil ich eine neueren Compilerversion verwende als damals als der 
Kernel erstellt wurde (den Compiler konnte ich noch nicht finden), 
musste ich minimale Anpassungen am kernel machen damit dieser 
Kompiliert. Allerdings nichts was die Funktionsweise beeinflussen würde. 
Die Änderungen sind als Patch im Anhang.

von Daniel A. (daniel-a)


Lesenswert?

Ich habe es nochmal den Patch und mit dem Compiler von hier versucht: 
https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9

Selbes Ergebnis...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.