/rpilinuxlab

Primary LanguageMakefile

AndroidModLab

Własne kompilacje androida i jego kernela

Aby zainstalować skompilowany kernel i system najpierw trzeba umieć zrootować telefon i zainstalować TWRP- uwaga ryzykowna operacja - uzywać metod i plików sprawdzonych najlepiej na forum xda https://forum.xda-developers.com lub android polska ma odnośniki do xda i komentarze https://forum.android.com.pl/.

Dodano katalogi z przepisami na kompilacje androida i kerneli.

Inne tutoriale

Raspberry Pi Lab

  1. install Gentoo Linux e.g. from UbuntuLiveDVD https://github.com/pwasiewi/gentools
  2. pull from github: git clone https://github.com/pwasiewi/rpilinuxlab
  3. cd rpilinuxlab
  4. mkdir dl
  5. cd make... np. make.armhfp jest dla raspberrypi2/3 32bit
  6. make emulate

Raspberry Pi Lab przygotowane na podstawie

  1. https://wiki.gentoo.org/wiki/Cross_build_environment
  2. http://mgalgs.github.io/2015/05/16/how-to-build-a-custom-linux-kernel-for-qemu-2015-edition.html
  3. środowiska Pawła Kraszewskiego z fragmentami z jego README

Przygotowanie środowiska programistycznego do procesorów ARM po system Gentoo "na piechotę":

Ścieżki w plikach .config przeznaczone są dla tego opisu poniżej. Dla przepisu w "Makefile" trzeba je poprawić.

  1. Instalacja pakietu CROSSDEV

emerge -av crossdev

  1. Generacja narzędzi dla platformy ARM
crossdev --target arm-softfloat-linux-gnueabi --stable  --gcc 7.3.0-r1 --libc 2.25-r11 --kernel 4.16.9 -oO /usr/portage

  1. Skrypt "armmake" wywołuje "make" z ustawieniem parametrów do kross-kompilacji narzędziami z p. 2

#!/bin/bash
export ARCH=arm
export CROSS_COMPILE=arm-softfloat-linux-gnueabi-
make $@

  1. Ściągamy i rozpakowujemy źródła kernela i busybox do podkatalogu src

mkdir -p src bin.kernel bin.busybox out.initrd emulacja
wget http://www.kernel.org/pub/linux/kernel/v4.0/linux-4.16.7.tar.xz
wget http://busybox.net/downloads/busybox-1.28.3.tar.bz2
tar xjf linux-4.16.7.tar.xz -C src
tar xjf busybox-1.28.3.tar.bz2 -C src

  1. Konfigurujemy kernel

cd src/linux-4.16.7
../../armmake O=../../bin.kernel menuconfig
cd ../..

  1. Kompilujemy kernel

cd bin.kernel
../armmake all
cd ..

  1. Konfigurujemy busybox

cd src/busybox-1.28.3
../../armmake O=../../bin.busybox menuconfig
cd ../..

  1. Kompilujemy busybox

cd bin.busybox
../armmake
../armmake install
cd ..

  1. Dopieszczamy INITRD

  2. Generujemy obraz INITRD


cd out.initrd
find . | cpio --quiet -H newc -o --owner=0.0 > ../emulacja/initrd
cd ..

  1. Linkujemy obraz jądra

ln -s ../bin.kernel/arch/arm/boot/zImage emulacja/vmlinuz

  1. Odpalamy emulator

qemu-system-arm -M versatilepb -m 256 -kernel emulacja/vmlinuz -initrd emulacja/initrd -append "init=/init" -serial=stdio

  1. Najlepiej jednak skorzystać z załączonych Makefile'ów dla x86_64, armsoft i raspberry2 armvh7
make emulate

i to by było na tyle!

Inne crossdev generowane crosscompilatory

The BeagleBone Black was needed:

    crossdev -v -S -t armv7-none-linux-gnueabi --env
    'EXTRA_ECONF="--with-arch=armv7-a
    --with-fpu=vfpv3-d16
    --with-float-abi=hard
    libc_cv_forced_unwind=yes
    libc_cv_ctors_header=yes
    libc_cv_c_cleanup=yes"'

For musl rpi3 (do not work!):

    crossdev --target armv7a-hardfloat-linux-musleabi  --stable  --gcc 7.3.0-r3  --kernel 4.16.12 -oO /usr/portage --env 'EXTRA_ECONF="--with-arch=armv7-a --with-fpu=neon-vfpv4 --with-float-abi=hard"'