Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Android 10/11 device tree config for Raspberry Pi 4

NotificationsYou must be signed in to change notification settings

lohriialo/device_arpi_rpi4

 
 

Repository files navigation

  • Raspberry Pi 4
  • Android 11 in Tablet mode

Establish build environment :

Ubuntu 18.04.5 LTS (Bionic Beaver) is the recommended build environment, more details read through the AOSP guidehttps://source.android.com/setup/build/initializing

Required build tools :

  • sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig kpartx python-mako
  • git config --global user.name "Your Name"
  • git config --global user.email "you@example.com"

Installing Repo tool :

Repo tool is required to sync AOSP source code, more detailshttps://source.android.com/setup/develop/repo

  • cd HOME_DIR
  • mkdir ~/bin
  • PATH=~/bin:$PATH
  • curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
  • chmod a+x ~/bin/repo

Sync AOSP source code with Raspberry Pi 4 device tree :

Syncing Android 11 source code, more detailshttps://github.com/android-rpi/local_manifests

  • mkdir WORKING_DIRECTORY
  • cd WORKING_DIRECTORY
  • repo init -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r27
  • git clone https://github.com/android-rpi/local_manifests .repo/local_manifests -b arpi-11
  • repo sync -j4

(Optional) if network error :

More rarely, Linux clients experience connectivity issues, getting stuck in the middle of downloads (typically during receiving objects). It's been reported that tweaking the settings of the TCP/IP stack and using non-parallel commands can improve the situation. You need root access to modify the TCP setting:

  • sudo sysctl -w net.ipv4.tcp_window_scaling=0
  • repo sync -j1

Patch framework source

Now that we have the source code synced, we need to modify a few things for it to properly work with a Raspberry Pi 4

  • Apply arpi-11patch
  • Change to modify keyboard layout to include power menu, editkey 63 F5 tokey 63 POWER at/device/arpi/rpi4/Generic.kl

Patch boot from USB instead of SdCard

Default boot mode is via SD card but for better performance if you want to boot from a USB drive(SSD/Pendrive 3.0 etc), change the boot mode to USB. Modify the file at /device/arpi/rpi4/fstab.rpi4

  • edit/dev/block/mmcblk0p2 to/dev/block/sda2
  • edit/dev/block/mmcblk0p3 to/dev/block/sda3
  • edit/dev/block/mmcblk0p4 to/dev/block/sda4

Build Raspberry Pi 4 Kernel

This build uses the kernel fromarpi-5.4.y branch

  • If not already installed, make sure to install kernel build toolssudo apt install gcc-aarch64-linux-gnu libssl-dev
  • cd /kernel/arpi
  • ARCH=arm64 scripts/kconfig/merge_config.sh arch/arm64/configs/bcm2711_defconfig kernel/configs/android-base.config kernel/configs/android-recommended.config
  • ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make Image.gz
  • ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- DTC_FLAGS="-@" make broadcom/bcm2711-rpi-4-b.dtb
  • ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- DTC_FLAGS="-@" make overlays/vc4-kms-v3d-pi4.dtbo

Build AOSP source

Now that we have everything ready, let's build Android 10 image for Raspberry Pi 4. Usually it takes a couple of hours for the build to complete depending on the speed of your machine. For more details read AOSP build instructionshttp://source.android.com/source/building.html

  • cd WORKING_DIRECTORY
  • source build/envsetup.sh
  • lunch rpi4-eng
  • make ramdisk systemimage vendorimage
  • (Or a single command :source build/envsetup.sh && lunch rpi4-eng && make ramdisk systemimage vendorimage)

If build host machine has a good number of CPU cores, use -j[n] option with make to increase the build speed, example use 4 cpu core:

  • make -j4 ramdisk systemimage vendorimage

Build errors?

(Only if machine is 8GB RAM or less, allocate atleast 6GB to jvm else chances of running into build error

  • If error isException in thread "main" java.lang.OutOfMemoryError: Java heap space useexport _JAVA_OPTIONS="-Xmx8g"
  • If error isPicked up _JAVA_OPTIONS: -Xmx8g Killed use-j1

Create Android 11 Image

  • cd device/arpi/rpi4
  • sudo ./mkimg.sh

Note: Depending on system.img size, change system partition sizemkimg.sh

Flash Image to SD Card or USB pendrive or SSD


[8]ページ先頭

©2009-2025 Movatter.jp