Difference between revisions of "Rockpi4/rockpi-android10"
< Rockpi4
(Created page with "__NOTOC__ {{rockpi4_header}} {{Languages|Rockpi4/rockpi-android10}} ROCK Pi 4 > Android10 Recommend build host is Ubuntu 16...") |
(→Download source code) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 28: | Line 28: | ||
==== DockerFile ==== | ==== DockerFile ==== | ||
<code> | <code> | ||
− | FROM ubuntu:xenial | + | FROM ubuntu:xenial |
− | RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \ | + | RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \ |
− | + | zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \ | |
− | + | lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \ | |
− | + | libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \ | |
− | + | htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \ | |
− | + | dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig | |
− | #### For China | + | #### For China |
− | RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \ | + | RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \ |
− | + | chmod +x /usr/local/bin/repo && \ | |
− | + | which repo | |
− | ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' | + | ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' |
− | #### For China End | + | #### For China End |
− | RUN pip install pycrypto | + | RUN pip install pycrypto |
− | ENV USER=android10-docker | + | ENV USER=android10-docker |
− | ARG USER_ID=0 | + | ARG USER_ID=0 |
− | ARG GROUP_ID=0 | + | ARG GROUP_ID=0 |
− | RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android9-docker | + | RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android9-docker |
− | USER android10-docker | + | USER android10-docker |
</code> | </code> | ||
Line 59: | Line 59: | ||
==== Download source code ==== | ==== Download source code ==== | ||
+ | <code bash> | ||
+ | $ mkdir rockpi4-android-10 | ||
+ | $ cd rockpi4-android-10 | ||
+ | </code> | ||
+ | Then run: | ||
+ | <code bash> | ||
+ | $ repo init -u https://github.com/radxa/manifests.git -b rockchip-android-10 -m rockchip-q-release.xml | ||
+ | $ repo sync -d --no-tags -j4 | ||
+ | </code> | ||
==== Build u-boot ==== | ==== Build u-boot ==== |
Latest revision as of 03:45, 23 April 2021
ROCK Pi 4 > Android10
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents Establishing a Build Environment.
Repo
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/ radxa$ sudo cp /tmp/repo /usr/local/bin/repo radxa$ sudo chmod +x /usr/local/bin/repo
In China Download Repo:
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc radxa$ source ~/.bashrc radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo radxa$ sudo cp /tmp/repo /usr/local/bin/repo radxa$ sudo chmod +x /usr/local/bin/repo
DockerFile
FROM ubuntu:xenial
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \ zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \ lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \ libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \ htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \ dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig
#### For China RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \ chmod +x /usr/local/bin/repo && \ which repo ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' #### For China End
RUN pip install pycrypto ENV USER=android10-docker ARG USER_ID=0 ARG GROUP_ID=0 RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android9-docker
USER android10-docker
Build DockerFile
radxa$ docker build -t android-builder:10.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)
Download source code
$ mkdir rockpi4-android-10 $ cd rockpi4-android-10
Then run:
$ repo init -u https://github.com/radxa/manifests.git -b rockchip-android-10 -m rockchip-q-release.xml $ repo sync -d --no-tags -j4
Build u-boot
radxa:rockpi4-android10 $ cd u-boot radxa:rockpi4-android10/u-boot$ ./make.sh rk3399 radxa:rockpi4-android10/u-boot$ cd ..
The generated images are **rk3399_loader_v_xxx.bin** , and **uboot.img**
Building kernel
For HDMI 4K
radxa:rockpi4-android10 $ cd kernel radxa:rockpi4-android10/kernel$ make rockchip_defconfig radxa:rockpi4-android10/kernel$ make rk3399-rockpi-4b.img -j$(nproc) radxa:rockpi4-android10/kernel$ cd ..
The generated images are **kernel.img** and **resource.img**:
- kernel.img, kernel with rkcrc checksum
- resource.img, contains dtb and boot logo, Rockchip format resource package
Building AOSP
Android Tablet:
radxa:rockpi4-android10$ source build/envsetup.sh radxa:rockpi4-android10$ lunch rk3399_Android10-userdebug radxa:rockpi4-android10$ make -j$(nproc)
It takes a long time, take a break and wait...
Generate images
radxa:rockpi4-android10$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev radxa:rockpi4-android10$ ./mkimage.sh
Generated Image
Android Tablet
radxa:rockpi4-android10 $ cd rockdev radxa:rockpi4-android10/rockdev$ ln -s Image-rk3399_Android10 Image
1. RkUpdate Image
radxa:rockpi4-android10/rockdev$ ./mkupdate.sh
The images under rockdev/ are `update.img`