# Setup build envoronment https://source.android.com/setup/build/initializing # Download Android source https://github.com/android-risc-v/local_manifests # Build Android Refer to http://source.android.com/source/building.html $ source build/envsetup.sh $ lunch jh7100-eng $ make ramdisk systemimage vendorimage # Prepare sd card Partitions of the card should be set-up like followings p1: 128MB for /vendor : do fdisk p2: 1024MB for /system : do fdisk p3: 128MB for boot : do fdisk, set bootable and mkfs.ext4 p4: remainings for /data : do fdisk, mkfs.ext4 Set volume label of /data partition as userdata : use -L option for mkfs.ext4 # Write system & vendor partition $ cd out/target/product/jh7100 $ sudo dd if=vendor.img of=/dev/<p1> bs=1M $ sudo dd if=system.img of=/dev/<p2> bs=1M # Copy firmware & ramdisk to boot partition device/arv/jh7100/boot/* to p3:/ out/target/product/jh7100/ramdisk.img to p3:/ # Download & Build kernel Install cross-compiler $ sudo apt install gcc-riscv64-linux-gnu Git clone following kernel source under separate folder apart from Android https://github.com/android-risc-v/kernel_arv Build the kernel $ ARCH=riscv scripts/kconfig/merge_config.sh arch/riscv/configs/visionfive_defconfig kernel/configs/android-base.config kernel/configs/android-recommended.config $ ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- make Image.gz starfive/jh7100-starfive-visionfive-v1.dtb # Copy kernel binaries to boot partition <kernel directory>/arch/riscv/boot/Image.gz to p3:/ <kernel directory>/arch/riscv/boot/dts/starfive/jh7100-starfive-visionfive-v1.dtb to p3:/ Use -j[n] option for make command, if build host has a good number of CPU cores. # JH7100 hardware information: https://rvspace.org