https://wiki.radxa.com/mw/api.php?action=feedcontributions&user=Cx&feedformat=atom
Radxa Wiki - User contributions [en]
2024-03-28T20:52:43Z
User contributions
MediaWiki 1.23.3
https://wiki.radxa.com/Rock3/Android11
Rock3/Android11
2022-07-13T07:37:16Z
<p>Cx: /* Setup board environment */</p>
<hr />
<div>{{rock3_header}}<br />
<br />
{{Languages|rock3/Android11}}<br />
<br />
[[rock3 | ROCK 3]] > [[Rock3/Android11 | Andriod11]]<br />
<br />
<br />
<br />
This page is a step-by-step tutorial how to build Rock 3 serail board Android11 image. Including:<br />
<br />
* 3A<br><br />
* 3B<br><br />
* CM3IO<br><br />
<br />
Recommend build host is Ubuntu 20.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
<br />
<br />
=== Repo ===<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
=== DockerFile ===<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android11-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:11.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
=== Download source code ===<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk11 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
=== Build ===<br />
==== Use all-in-one build script ====<br />
<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
<br />
# for Rock 3A<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_r-userdebug<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_box-userdebug<br />
# for Rock 3B<br />
radxa:rock-android11 $ lunch rk356x_rock_3b_r-userdebug<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ lunch rk356x_rock_cm3_r-userdebug<br />
<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
==== Step by step Build ====<br />
If you dont' want to use "Use all-in-one build script", you can follow this way to build image step by step.<br />
<br />
===== Setup board environment =====<br />
<code bash><br />
# for Rock 3A<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_3a_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3a"<br />
<br />
# for Rock 3A box software<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_3a_box"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3a"<br />
<br />
# for Rock 3B<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_3b_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig android-11.config rock_3b.config"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3b"<br />
<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_cm3_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="rk3566"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig android-11.config rockcm3io.config"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3566-rock-cm3io"<br />
<br />
</code><br />
<br />
===== Build u-boot =====<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
radxa:rock-android11/u-boot $ ./make.sh ${PRODUCT_UBOOT_CONFIG}<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are '''idbloader.img''' , and '''uboot.img'''<br />
===== Building kernel =====<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 ${PRODUCT_KERNEL_CONFIG}<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 ${PRODUCT_KERNEL_DTS}.img -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
<br />
===== Building AOSP =====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
radxa:rock-android11 $ lunch ${PRODUCT_NAME}-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
<br />
===== Make images =====<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
<br />
===== Pack Image =====<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
radxa:rock-android11/rockdev $ rm -rf Image<br />
radxa:rock-android11/rockdev $ ln -s Image-${PRODUCT_NAME} Image<br />
<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rock-android11/rockdev $ ./mkupdate_rk356x.sh<br />
</code><br />
The images under rockdev/ are `update.img`<br />
<br />
2. gpt Image<br />
<code bash><br />
radxa:rock-android11/rockdev $ ./android-gpt.sh<br />
</code><br />
<br />
=== Installation ===<br />
* sdcard<br><br />
[https://wiki.radxa.com/Rock3/install/microSD Install on MicroSD]<br><br />
* emmc with reader<br><br />
[https://wiki.radxa.com/Rock3/install/eMMC Install on eMMC with USB to eMMC Reader]<br><br />
* emmc from usb port<br><br />
[https://wiki.radxa.com/Rock3/dev/usb-install Install on eMMC from USB port]</div>
Cx
https://wiki.radxa.com/Rock3/Android11
Rock3/Android11
2022-07-13T07:36:52Z
<p>Cx: /* Use all-in-one build script */</p>
<hr />
<div>{{rock3_header}}<br />
<br />
{{Languages|rock3/Android11}}<br />
<br />
[[rock3 | ROCK 3]] > [[Rock3/Android11 | Andriod11]]<br />
<br />
<br />
<br />
This page is a step-by-step tutorial how to build Rock 3 serail board Android11 image. Including:<br />
<br />
* 3A<br><br />
* 3B<br><br />
* CM3IO<br><br />
<br />
Recommend build host is Ubuntu 20.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
<br />
<br />
=== Repo ===<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
=== DockerFile ===<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android11-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:11.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
=== Download source code ===<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk11 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
=== Build ===<br />
==== Use all-in-one build script ====<br />
<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
<br />
# for Rock 3A<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_r-userdebug<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_box-userdebug<br />
# for Rock 3B<br />
radxa:rock-android11 $ lunch rk356x_rock_3b_r-userdebug<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ lunch rk356x_rock_cm3_r-userdebug<br />
<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
==== Step by step Build ====<br />
If you dont' want to use "Use all-in-one build script", you can follow this way to build image step by step.<br />
<br />
===== Setup board environment =====<br />
<code bash><br />
# for Rock 3A<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk3568_rock_3a_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3a"<br />
<br />
# for Rock 3A box software<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_3a_box"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3a"<br />
<br />
# for Rock 3B<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_3b_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig android-11.config rock_3b.config"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3b"<br />
<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_cm3_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="rk3566"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig android-11.config rockcm3io.config"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3566-rock-cm3io"<br />
<br />
</code><br />
<br />
<br />
===== Build u-boot =====<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
radxa:rock-android11/u-boot $ ./make.sh ${PRODUCT_UBOOT_CONFIG}<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are '''idbloader.img''' , and '''uboot.img'''<br />
===== Building kernel =====<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 ${PRODUCT_KERNEL_CONFIG}<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 ${PRODUCT_KERNEL_DTS}.img -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
<br />
===== Building AOSP =====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
radxa:rock-android11 $ lunch ${PRODUCT_NAME}-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
<br />
===== Make images =====<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
<br />
===== Pack Image =====<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
radxa:rock-android11/rockdev $ rm -rf Image<br />
radxa:rock-android11/rockdev $ ln -s Image-${PRODUCT_NAME} Image<br />
<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rock-android11/rockdev $ ./mkupdate_rk356x.sh<br />
</code><br />
The images under rockdev/ are `update.img`<br />
<br />
2. gpt Image<br />
<code bash><br />
radxa:rock-android11/rockdev $ ./android-gpt.sh<br />
</code><br />
<br />
=== Installation ===<br />
* sdcard<br><br />
[https://wiki.radxa.com/Rock3/install/microSD Install on MicroSD]<br><br />
* emmc with reader<br><br />
[https://wiki.radxa.com/Rock3/install/eMMC Install on eMMC with USB to eMMC Reader]<br><br />
* emmc from usb port<br><br />
[https://wiki.radxa.com/Rock3/dev/usb-install Install on eMMC from USB port]</div>
Cx
https://wiki.radxa.com/Rockpi4/rockpi-android11
Rockpi4/rockpi-android11
2022-06-21T02:35:30Z
<p>Cx: /* One Step build */</p>
<hr />
<div>__NOTOC__<br />
<br />
{{rockpi4_header}}<br />
<br />
{{Languages|Rockpi4/rockpi-android11}}<br />
<br />
[[rockpi4 | ROCK Pi 4]] > [[Rockpi4/rockpi-android11 | Android11]]<br />
<br />
<br />
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
=== Repo ===<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
=== DockerFile ===<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
#### for China <br />
RUN rm /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse" | tee /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse" >> /etc/apt/sources.list<br />
#### for Chine end<br />
<br />
ENV DEBIAN_FRONTEND noninteractive<br />
<br />
RUN apt-get update -y && apt-get install -y software-properties-common<br />
RUN add-apt-repository -y ppa:deadsnakes/ppa<br />
RUN apt-get update -y && apt-get install -y python3.8<br />
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 150<br />
RUN apt-get install -y python-pip && pip install pycrypto<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl gawk liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev sudo rsync python3-pyelftools cpio<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android11-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:10.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
=== Download source code ===<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk11 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
=== Build ===<br />
==== One Step build ====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
- if build Rock PI 4AB<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4B_Android11-userdebug<br />
- if build Rock PI 4C<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4C_Android11-userdebug<br />
- if build Rock PI 4C Plus<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4C_Plus_Android11-userdebug<br />
- if build Rock Fuhai<br />
radxa:rock-android11 $ lunch rk3399_ROCKPIFuhai_Android11-userdebug<br />
<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
==== Parts Build ====<br />
===== Build u-boot =====<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
- if build Rock PI 4AB or Rock Fuhai<br />
radxa:rock-android11/u-boot $ ./make.sh rockpi4b<br />
- else if build Rock PI 4C<br />
radxa:rock-android11/u-boot $ ./make.sh rockpi4c<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are **idbloader.img**<br />
<br />
===== Building kernel =====<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
- Rock PI 4AB<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4b.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-rockpi-4b.img -j$(nproc)<br />
- Rock PI 4C<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4c.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-rockpi-4c.img -j$(nproc)<br />
- Rock Fuhai<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4b.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-fuhai-evb.img -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
The generated images are **kernel.img** and **resource.img**:<br />
<br />
# kernel.img, kernel with rkcrc checksum<br />
# resource.img, contains dtb and boot logo, Rockchip format resource package<br />
<br />
===== Building AOSP =====<br />
<code bash><br />
radxa:rock-android11 $ source buile/envsetup.sh<br />
- Rock PI 4AB<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4B_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
- Rock PI 4C<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4C_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
- Rock Fuhai<br />
radxa:rock-android11 $ lunch rk3399_ROCKPIFuhai_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
<br />
===== Generate images =====<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
===== Generated Image =====<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
- Rock PI 4AB<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPI4B_Android11 Image<br />
- Rock PI 4C<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPI4C_Android11 Image<br />
- Rock Fuhai<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPIFuhai_Android11 Image<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rockpi4-android11/rockdev$ ./mkupdate_rk3399.sh<br />
</code><br />
get `update.img` from `Image` directroy<br />
<br />
2. GPT image<br />
<code><br />
radxa:rockpi4-android11/rockdev$ ./android-gpt.sh<br />
</code><br />
get `gpt.img` from `Image` directroy<br />
=== Installation ===<br />
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]<br></div>
Cx
https://wiki.radxa.com/Rockpi4/rockpi-android11
Rockpi4/rockpi-android11
2022-06-21T02:34:50Z
<p>Cx: /* Download source code */</p>
<hr />
<div>__NOTOC__<br />
<br />
{{rockpi4_header}}<br />
<br />
{{Languages|Rockpi4/rockpi-android11}}<br />
<br />
[[rockpi4 | ROCK Pi 4]] > [[Rockpi4/rockpi-android11 | Android11]]<br />
<br />
<br />
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
=== Repo ===<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
=== DockerFile ===<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
#### for China <br />
RUN rm /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse" | tee /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse" >> /etc/apt/sources.list<br />
#### for Chine end<br />
<br />
ENV DEBIAN_FRONTEND noninteractive<br />
<br />
RUN apt-get update -y && apt-get install -y software-properties-common<br />
RUN add-apt-repository -y ppa:deadsnakes/ppa<br />
RUN apt-get update -y && apt-get install -y python3.8<br />
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 150<br />
RUN apt-get install -y python-pip && pip install pycrypto<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl gawk liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev sudo rsync python3-pyelftools cpio<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android11-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:10.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
=== Download source code ===<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk11 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
=== Build ===<br />
==== One Step build ====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
- if build Rock PI 4AB<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4B_Android11-userdebug<br />
- if build Rock PI 4C<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4C_Android11-userdebug<br />
- if build Rock Fuhai<br />
radxa:rock-android11 $ lunch rk3399_ROCKPIFuhai_Android11-userdebug<br />
<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
==== Parts Build ====<br />
===== Build u-boot =====<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
- if build Rock PI 4AB or Rock Fuhai<br />
radxa:rock-android11/u-boot $ ./make.sh rockpi4b<br />
- else if build Rock PI 4C<br />
radxa:rock-android11/u-boot $ ./make.sh rockpi4c<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are **idbloader.img**<br />
<br />
===== Building kernel =====<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
- Rock PI 4AB<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4b.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-rockpi-4b.img -j$(nproc)<br />
- Rock PI 4C<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4c.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-rockpi-4c.img -j$(nproc)<br />
- Rock Fuhai<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4b.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-fuhai-evb.img -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
The generated images are **kernel.img** and **resource.img**:<br />
<br />
# kernel.img, kernel with rkcrc checksum<br />
# resource.img, contains dtb and boot logo, Rockchip format resource package<br />
<br />
===== Building AOSP =====<br />
<code bash><br />
radxa:rock-android11 $ source buile/envsetup.sh<br />
- Rock PI 4AB<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4B_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
- Rock PI 4C<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4C_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
- Rock Fuhai<br />
radxa:rock-android11 $ lunch rk3399_ROCKPIFuhai_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
<br />
===== Generate images =====<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
===== Generated Image =====<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
- Rock PI 4AB<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPI4B_Android11 Image<br />
- Rock PI 4C<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPI4C_Android11 Image<br />
- Rock Fuhai<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPIFuhai_Android11 Image<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rockpi4-android11/rockdev$ ./mkupdate_rk3399.sh<br />
</code><br />
get `update.img` from `Image` directroy<br />
<br />
2. GPT image<br />
<code><br />
radxa:rockpi4-android11/rockdev$ ./android-gpt.sh<br />
</code><br />
get `gpt.img` from `Image` directroy<br />
=== Installation ===<br />
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]<br></div>
Cx
https://wiki.radxa.com/Rockpi4/rockpi-android11
Rockpi4/rockpi-android11
2022-06-21T02:33:55Z
<p>Cx: /* DockerFile */</p>
<hr />
<div>__NOTOC__<br />
<br />
{{rockpi4_header}}<br />
<br />
{{Languages|Rockpi4/rockpi-android11}}<br />
<br />
[[rockpi4 | ROCK Pi 4]] > [[Rockpi4/rockpi-android11 | Android11]]<br />
<br />
<br />
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
=== Repo ===<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
=== DockerFile ===<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
#### for China <br />
RUN rm /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse" | tee /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse" >> /etc/apt/sources.list<br />
#### for Chine end<br />
<br />
ENV DEBIAN_FRONTEND noninteractive<br />
<br />
RUN apt-get update -y && apt-get install -y software-properties-common<br />
RUN add-apt-repository -y ppa:deadsnakes/ppa<br />
RUN apt-get update -y && apt-get install -y python3.8<br />
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 150<br />
RUN apt-get install -y python-pip && pip install pycrypto<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl gawk liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev sudo rsync python3-pyelftools cpio<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android11-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:10.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
=== Download source code ===<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk10.1 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
=== Build ===<br />
==== One Step build ====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
- if build Rock PI 4AB<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4B_Android11-userdebug<br />
- if build Rock PI 4C<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4C_Android11-userdebug<br />
- if build Rock Fuhai<br />
radxa:rock-android11 $ lunch rk3399_ROCKPIFuhai_Android11-userdebug<br />
<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
==== Parts Build ====<br />
===== Build u-boot =====<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
- if build Rock PI 4AB or Rock Fuhai<br />
radxa:rock-android11/u-boot $ ./make.sh rockpi4b<br />
- else if build Rock PI 4C<br />
radxa:rock-android11/u-boot $ ./make.sh rockpi4c<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are **idbloader.img**<br />
<br />
===== Building kernel =====<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
- Rock PI 4AB<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4b.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-rockpi-4b.img -j$(nproc)<br />
- Rock PI 4C<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4c.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-rockpi-4c.img -j$(nproc)<br />
- Rock Fuhai<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4b.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-fuhai-evb.img -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
The generated images are **kernel.img** and **resource.img**:<br />
<br />
# kernel.img, kernel with rkcrc checksum<br />
# resource.img, contains dtb and boot logo, Rockchip format resource package<br />
<br />
===== Building AOSP =====<br />
<code bash><br />
radxa:rock-android11 $ source buile/envsetup.sh<br />
- Rock PI 4AB<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4B_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
- Rock PI 4C<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4C_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
- Rock Fuhai<br />
radxa:rock-android11 $ lunch rk3399_ROCKPIFuhai_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
<br />
===== Generate images =====<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
===== Generated Image =====<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
- Rock PI 4AB<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPI4B_Android11 Image<br />
- Rock PI 4C<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPI4C_Android11 Image<br />
- Rock Fuhai<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPIFuhai_Android11 Image<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rockpi4-android11/rockdev$ ./mkupdate_rk3399.sh<br />
</code><br />
get `update.img` from `Image` directroy<br />
<br />
2. GPT image<br />
<code><br />
radxa:rockpi4-android11/rockdev$ ./android-gpt.sh<br />
</code><br />
get `gpt.img` from `Image` directroy<br />
=== Installation ===<br />
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]<br></div>
Cx
https://wiki.radxa.com/Rock3/Android11
Rock3/Android11
2022-05-25T11:05:15Z
<p>Cx: /* Step by step Build */</p>
<hr />
<div>{{rock3_header}}<br />
<br />
{{Languages|rock3/Android11}}<br />
<br />
[[rock3 | ROCK 3]] > [[Rock3/Android11 | Andriod11]]<br />
<br />
<br />
<br />
This page is a step-by-step tutorial how to build Rock 3 serail board Android11 image. Including:<br />
<br />
* 3A<br><br />
* 3B<br><br />
* CM3IO<br><br />
<br />
Recommend build host is Ubuntu 20.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
<br />
<br />
=== Repo ===<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
=== DockerFile ===<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android11-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:11.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
=== Download source code ===<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk11 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
=== Build ===<br />
==== Use all-in-one build script ====<br />
<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
<br />
# for Rock 3A<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_box-userdebug<br />
# for Rock 3B<br />
radxa:rock-android11 $ lunch rk3568_rock_3b_r-userdebug<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ lunch rk3566_rock_cm3_r-userdebug<br />
<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
==== Step by step Build ====<br />
If you dont' want to use "Use all-in-one build script", you can follow this way to build image step by step.<br />
<br />
===== Setup board environment =====<br />
<code bash><br />
# for Rock 3A<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk3568_rock_3a_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3a"<br />
<br />
# for Rock 3A box software<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_3a_box"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3a"<br />
<br />
# for Rock 3B<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_3b_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig android-11.config rock_3b.config"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3b"<br />
<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_cm3_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="rk3566"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig android-11.config rockcm3io.config"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3566-rock-cm3io"<br />
<br />
</code><br />
<br />
<br />
===== Build u-boot =====<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
radxa:rock-android11/u-boot $ ./make.sh ${PRODUCT_UBOOT_CONFIG}<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are '''idbloader.img''' , and '''uboot.img'''<br />
===== Building kernel =====<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 ${PRODUCT_KERNEL_CONFIG}<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 ${PRODUCT_KERNEL_DTS}.img -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
<br />
===== Building AOSP =====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
radxa:rock-android11 $ lunch ${PRODUCT_NAME}-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
<br />
===== Make images =====<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
<br />
===== Pack Image =====<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
radxa:rock-android11/rockdev $ rm -rf Image<br />
radxa:rock-android11/rockdev $ ln -s Image-${PRODUCT_NAME} Image<br />
<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rock-android11/rockdev $ ./mkupdate_rk356x.sh<br />
</code><br />
The images under rockdev/ are `update.img`<br />
<br />
2. gpt Image<br />
<code bash><br />
radxa:rock-android11/rockdev $ ./android-gpt.sh<br />
</code><br />
<br />
=== Installation ===<br />
* sdcard<br><br />
[https://wiki.radxa.com/Rock3/install/microSD Install on MicroSD]<br><br />
* emmc with reader<br><br />
[https://wiki.radxa.com/Rock3/install/eMMC Install on eMMC with USB to eMMC Reader]<br><br />
* emmc from usb port<br><br />
[https://wiki.radxa.com/Rock3/dev/usb-install Install on eMMC from USB port]</div>
Cx
https://wiki.radxa.com/Rock3/Android11
Rock3/Android11
2022-05-25T11:00:25Z
<p>Cx: /* DockerFile */</p>
<hr />
<div>{{rock3_header}}<br />
<br />
{{Languages|rock3/Android11}}<br />
<br />
[[rock3 | ROCK 3]] > [[Rock3/Android11 | Andriod11]]<br />
<br />
<br />
<br />
This page is a step-by-step tutorial how to build Rock 3 serail board Android11 image. Including:<br />
<br />
* 3A<br><br />
* 3B<br><br />
* CM3IO<br><br />
<br />
Recommend build host is Ubuntu 20.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
<br />
<br />
=== Repo ===<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
=== DockerFile ===<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android11-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:11.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
=== Download source code ===<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk11 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
=== Build ===<br />
==== Use all-in-one build script ====<br />
<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
<br />
# for Rock 3A<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_box-userdebug<br />
# for Rock 3B<br />
radxa:rock-android11 $ lunch rk3568_rock_3b_r-userdebug<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ lunch rk3566_rock_cm3_r-userdebug<br />
<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
==== Step by step Build ====<br />
<br />
===== Setup board environment =====<br />
<code bash><br />
# for Rock 3A<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk3568_rock_3a_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3a"<br />
<br />
# for Rock 3A box software<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_3a_box"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3a"<br />
<br />
# for Rock 3B<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_3b_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig android-11.config rock_3b.config"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3b"<br />
<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_cm3_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="rk3566"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig android-11.config rockcm3io.config"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3566-rock-cm3io"<br />
<br />
</code><br />
<br />
===== Build u-boot =====<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
radxa:rock-android11/u-boot $ ./make.sh ${PRODUCT_UBOOT_CONFIG}<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are '''idbloader.img''' , and '''uboot.img'''<br />
<br />
===== Building kernel =====<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 ${PRODUCT_KERNEL_CONFIG}<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 ${PRODUCT_KERNEL_DTS}.img -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
<br />
===== Building AOSP =====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
radxa:rock-android11 $ lunch ${PRODUCT_NAME}-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
===== Make images =====<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
===== Pack Image =====<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
radxa:rock-android11/rockdev $ rm -rf Image<br />
radxa:rock-android11/rockdev $ ln -s Image-${PRODUCT_NAME} Image<br />
<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rock-android11/rockdev $ ./mkupdate_rk356x.sh<br />
</code><br />
The images under rockdev/ are `update.img`<br />
<br />
2. gpt Image<br />
<code bash><br />
radxa:rock-android11/rockdev $ ./android-gpt.sh<br />
</code><br />
<br />
=== Installation ===<br />
* sdcard<br><br />
[https://wiki.radxa.com/Rock3/install/microSD Install on MicroSD]<br><br />
* emmc with reader<br><br />
[https://wiki.radxa.com/Rock3/install/eMMC Install on eMMC with USB to eMMC Reader]<br><br />
* emmc from usb port<br><br />
[https://wiki.radxa.com/Rock3/dev/usb-install Install on eMMC from USB port]</div>
Cx
https://wiki.radxa.com/Rock3/downloads
Rock3/downloads
2022-05-25T10:58:00Z
<p>Cx: /* Official Images */</p>
<hr />
<div>{{rock3_header}}<br />
{{Languages|rock3/downloads}}<br />
<br />
__NOTOC__<br />
<br />
Official ROCK Pi system images can also be downloaded from<br />
<br />
* '''[http://rock.sh/rockpi-baidupan ROCK Pi BaiduPan]'''<br />
* '''[https://github.com/radxa/debos-radxa/releases/latest ROCK 3 Image Release]''' - The latest system images.<br />
<br />
For usernames and passwords please check the [https://wiki.radxa.com/Rock/FAQ#What.27s_the_user_and_password_in_Lubuntu FAQ].<br />
<br />
<div class="col-md-12"><br />
====<span class="label forest"><i class="fa fa-wrench" ></i> Tools</span>====<br />
<div class="table-responsive"><br />
<table class="table table-hover table-bordered table-striped"><br />
<tr><br />
<th>Description</th><br />
<th>Linux</th><br />
<th>MacOS</th><br />
<th>Windows</th><br />
</tr><br />
<tr><br />
<td><small>Etcher - A user friendly Image Writer</small></td><br />
<td>[https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-x64.zip Linux 64bit] | [https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-ia32.zip Linux 32bit]</td><br />
<td>[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-1.4.9.dmg balenaEtcher-1.4.9.dmg]</td><br />
<td>[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-Setup-1.4.9-x86.exe balenaEtcher-Setup-1.4.9-x86.exe]</td><br />
</tr><br />
</table><br />
</div><br />
</div><br />
<br />
<div class="col-md-12"><br />
====<span class="label forest"><i class="fa fa-android" ></i> Official Images</span>====<br />
<div class="table-responsive"><br />
<table class="table table-hover table-bordered table-striped"><br />
<tr><br />
<th>Distribution</th><br />
<th>Supoprted Boards</th><br />
<th>Description</th><br />
</tr><br />
<br />
<tr><br />
<td>[[File:Android-Logo.jpg | 200px | link=https://github.com/radxa/manifests]]</td><br />
<br />
<td><br />
* [https://dl.radxa.com/rock3/images/android/rock3a-android11-20220408_1204-gpt.img.xz ROCK 3A]<br />
* [https://dl.radxa.com/rock3/images/android/rock3b-android11-20220408_1204-gpt.img.xz ROCK 3B]<br />
* [https://dl.radxa.com/rock3/images/android/rock_cm3io-android11-20220408_1204-gpt.img.xz Radxa CM3 IO]<br />
</td><br />
<td><br />
Version: Android11-20220408_1204<br />
<br />
ROCK 3A/3B [https://wiki.radxa.com/Rock3/install/usb-install Install Wiki.]<br />
<br />
CM3 IO [https://wiki.radxa.com/Rock3/installusb-install-radxa-cm3-io Install Wiki.]<br />
</td><br />
<br />
</tr><br />
<br />
<tr><br />
<td>[[File:Debian-logo.png | 200px | link=https://github.com/radxa-build]]</td><br />
<td><br />
* [https://github.com/radxa-build/rock-3a/releases/latest ROCK 3A]<br />
* [https://github.com/radxa-build/rock-3b/releases/latest ROCK 3B]<br />
* [https://github.com/radxa-build/radxa-cm3-io/releases/latest Radxa CM3 IO]<br />
* [https://github.com/radxa-build/radxa-cm3-io/releases/latest Radxa CM3 RASPCM4IO]*<br />
* [https://github.com/radxa-build/radxa-e23/releases/latest Radxa E23]<br />
* [https://github.com/radxa-build/radxa-e25/releases/latest Radxa E25]<br />
</td><br />
<td><br />
Debian Product.<br />
<br />
[https://wiki.radxa.com/Rock3/Debian Install Wiki.]<br />
<br />
Debian Buster (10).<br />
<br />
[https://github.com/radxa/debos-radxa/releases/latest Change Log].<br />
<br />
User of Radxa CM3 RASPCM4IO will need to manually update /boot/uEnv.txt to use rk3566-radxa-cm3-rpi-cm4-io.dtb.<br />
</td><br />
</tr><br />
<br />
<br />
<tr><br />
<td>[[File:Ubuntu_logo.png | 200px | link=https://github.com/radxa-build]]</td><br />
<td><br />
* [https://github.com/radxa-build/rock-3a/releases/latest ROCK 3A]<br />
* [https://github.com/radxa-build/rock-3b/releases/latest ROCK 3B]<br />
* [https://github.com/radxa-build/radxa-cm3-io/releases/latest Radxa CM3 IO]<br />
* [https://github.com/radxa-build/radxa-cm3-io/releases/latest Radxa CM3 RASPCM4IO]*<br />
* [https://github.com/radxa-build/radxa-e23/releases/latest Radxa E23]<br />
* [https://github.com/radxa-build/radxa-e25/releases/latest Radxa E25]<br />
</td><br />
<td><br />
Ubuntu Server Product.<br />
<br />
[https://wiki.radxa.com/Rock3/Ubuntu Install Wiki.]<br />
<br />
Ubuntu Server 20.04.<br />
<br />
[https://github.com/radxa/debos-radxa/releases/latest Change Log].<br />
<br />
User of Radxa CM3 RASPCM4IO will need to manually update /boot/uEnv.txt to use rk3566-radxa-cm3-rpi-cm4-io.dtb.<br />
</td><br />
</tr><br />
<br />
</table><br />
</div><br />
</div><br />
<br />
<div class="col-md-12"><br />
<br />
====<span class="label forest" style="margin-bottom:5px;"><i class="fa fa-linux"></i> Third Party Images</span>====<br />
<div class="table-responsive"><br />
<table align="center" class="table table-bordered table-striped"><br />
<br />
<!-- Armbian(Unofficial build) --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Armbian-logo.png | link=https://discord.com/channels/855634073376260096/888960277788393553/912495051010084895]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<h5 class="text-center" style="display: inline;"><br />
<p class="text-left" >Armbian(Unofficial build) [https://drive.google.com/file/d/1NPhL_dHIEeojgSllINjezKjUK_P3ktMh/view?usp=sharing Hirsute ARM XFCE]</p><br />
</h5><br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" >Build 2021-11-23.</p><br />
<p class="text-left" >user : pi , password : armbian</p><br />
<p class="text-left" >[https://discord.com/channels/855634073376260096/888960277788393553/912495237748899851 Discord discussion]</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<!-- CRUX-ARM --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Cruxlogo.png | link=http://dl.slarm64.org/crux/images/rock_3/]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<h5 class="text-center" style="display: inline;">[http://dl.slarm64.org/crux/images/rock_3/crux-arm-3.6-aarch64-core-rock_3-4.19.210-build-20211009.img.zst CRUX-ARM]</h5><br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" >Build 2021-10-09.</p><br />
<p class="text-left" >[http://dl.slarm64.org/slackware/images/rock_3/README.TXT README.TXT].</p><br />
<p class="text-left" >[https://forum.radxa.com/t/rock-3-crux-arm-aarch64/7183 Forum discussion]</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<br />
<!-- manjaro --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Logo.png | link=https://manjaro.org/download]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
=====[https://github.com/manjaro-arm/rock3-a-images/releases Manjaro Image Release]=====<br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" style="display: inline;">Manjaro Product.</p><br />
<p class="text-left" style="display: inline;">[https://www.manjaro.org/ Install Wiki]</p><br />
<p class="text-left" >[https://discord.com/channels/855634073376260096/866316562520473600/916175047390003270 Discussion Discord]</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<br />
<!-- Slackware --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Slackware-logo.png | link=http://dl.slarm64.org/slackware/images/rock_3/]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<h5 class="text-center" style="display: inline;"><br />
<p class="text-left" >[https://dl.slarm64.org/slackware/images/rock_3/slarm64-current-aarch64-server-rock_3-5.17.8-build-20220516.img.zst Slarm64 Server (unofficial slackware)]</p><br />
<p class="text-left" >[https://dl.slarm64.org/slackware/images/rock_3/slarm64-current-aarch64-xfce-rock_3-5.17.8-build-20220516.img.zst Slarm64 XFCE (unofficial slackware)]</p><br />
</h5><br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" >Build 2022-05-16.</p><br />
<p class="text-left" >[http://dl.slarm64.org/slackware/images/rock_3/README.TXT README.TXT].</p><br />
<p class="text-left" >[https://forum.radxa.com/t/rock-3-slarm64-aarch64-unofficial-slackware/7167/7 Forum discussion]</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
</table><br />
</div><br />
</div><br />
<br />
<div class="col-md-12"><br />
<br />
====<span class="label forest" style="margin-bottom:5px;"><i class="fa fa-linux"></i> Community Built Images</span>==== <br />
<div class="table-responsive"><br />
<table align="center" class="table table-bordered table-striped"><br />
<!-- community --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Community-logo.png | link=https://wiki.radxa.com/rock3/downloads/community_built_images]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<h5 class="text-center" style="display: inline;">[https://wiki.radxa.com/rock3/downloads/community_built_images Community Image]</h5><br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" style="display: inline;">Image built by Community members</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
</table><br />
</div><br />
</div></div>
Cx
https://wiki.radxa.com/Rock3/downloads
Rock3/downloads
2022-05-24T02:42:46Z
<p>Cx: /* Official Images */</p>
<hr />
<div>{{rock3_header}}<br />
{{Languages|rock3/downloads}}<br />
<br />
__NOTOC__<br />
<br />
Official ROCK Pi system images can also be downloaded from<br />
<br />
* '''[http://rock.sh/rockpi-baidupan ROCK Pi BaiduPan]'''<br />
* '''[https://github.com/radxa/debos-radxa/releases/latest ROCK 3 Image Release]''' - The latest system images.<br />
<br />
For usernames and passwords please check the [https://wiki.radxa.com/Rock/FAQ#What.27s_the_user_and_password_in_Lubuntu FAQ].<br />
<br />
<div class="col-md-12"><br />
====<span class="label forest"><i class="fa fa-wrench" ></i> Tools</span>====<br />
<div class="table-responsive"><br />
<table class="table table-hover table-bordered table-striped"><br />
<tr><br />
<th>Description</th><br />
<th>Linux</th><br />
<th>MacOS</th><br />
<th>Windows</th><br />
</tr><br />
<tr><br />
<td><small>Etcher - A user friendly Image Writer</small></td><br />
<td>[https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-x64.zip Linux 64bit] | [https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-electron-1.4.9-linux-ia32.zip Linux 32bit]</td><br />
<td>[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-1.4.9.dmg balenaEtcher-1.4.9.dmg]</td><br />
<td>[https://github.com/balena-io/etcher/releases/download/v1.4.9/balenaEtcher-Setup-1.4.9-x86.exe balenaEtcher-Setup-1.4.9-x86.exe]</td><br />
</tr><br />
</table><br />
</div><br />
</div><br />
<br />
<div class="col-md-12"><br />
====<span class="label forest"><i class="fa fa-android" ></i> Official Images</span>====<br />
<div class="table-responsive"><br />
<table class="table table-hover table-bordered table-striped"><br />
<tr><br />
<th>Distribution</th><br />
<th>Supoprted Boards</th><br />
<th>Description</th><br />
</tr><br />
<br />
<tr><br />
<td rowspan="3">[[File:Android-Logo.jpg | 200px | link=https://github.com/radxa/manifests]]</td><br />
<br />
<td><br />
* [https://dl.radxa.com/rock3/images/android/rock3a-android11-20220408_1204-gpt.img.xz ROCK 3A]<br />
</td><br />
<td><br />
ROCK 3A [https://wiki.radxa.com/Rock3/install/usb-install Install Wiki.]<br />
</td><br />
<br />
</tr><br />
<br />
<tr><br />
<td><br />
* [https://dl.radxa.com/rock3/images/android/rock3b-android11-20220408_1204-gpt.img.xz ROCK 3B]<br />
</td><br />
<td><br />
ROCK 3B [https://wiki.radxa.com/Rock3/install/usb-install-rock-3b Install Wiki.]<br />
</td><br />
</tr><br />
<br />
<tr><br />
<td><br />
* [https://dl.radxa.com/rock3/images/android/rock_cm3io-android11-20220408_1204-gpt.img.xz Radxa CM3 IO]<br />
</td><br />
<td><br />
CM3 IO [https://wiki.radxa.com/Rock3/installusb-install-radxa-cm3-io Install Wiki.]<br />
</td><br />
</tr><br />
<br />
<tr><br />
<td>[[File:Debian-logo.png | 200px | link=https://github.com/radxa-build]]</td><br />
<td><br />
* [https://github.com/radxa-build/rock-3a/releases/latest ROCK 3A]<br />
* [https://github.com/radxa-build/rock-3b/releases/latest ROCK 3B]<br />
* [https://github.com/radxa-build/radxa-cm3-io/releases/latest Radxa CM3 IO]<br />
* [https://github.com/radxa-build/radxa-cm3-io/releases/latest Radxa CM3 RASPCM4IO]*<br />
* [https://github.com/radxa-build/radxa-e23/releases/latest Radxa E23]<br />
* [https://github.com/radxa-build/radxa-e25/releases/latest Radxa E25]<br />
</td><br />
<td><br />
Debian Product.<br />
<br />
[https://wiki.radxa.com/Rock3/Debian Install Wiki.]<br />
<br />
Debian Buster (10).<br />
<br />
[https://github.com/radxa/debos-radxa/releases/latest Change Log].<br />
<br />
User of Radxa CM3 RASPCM4IO will need to manually update /boot/uEnv.txt to use rk3566-radxa-cm3-rpi-cm4-io.dtb.<br />
</td><br />
</tr><br />
<br />
<br />
<tr><br />
<td>[[File:Ubuntu_logo.png | 200px | link=https://github.com/radxa-build]]</td><br />
<td><br />
* [https://github.com/radxa-build/rock-3a/releases/latest ROCK 3A]<br />
* [https://github.com/radxa-build/rock-3b/releases/latest ROCK 3B]<br />
* [https://github.com/radxa-build/radxa-cm3-io/releases/latest Radxa CM3 IO]<br />
* [https://github.com/radxa-build/radxa-cm3-io/releases/latest Radxa CM3 RASPCM4IO]*<br />
* [https://github.com/radxa-build/radxa-e23/releases/latest Radxa E23]<br />
* [https://github.com/radxa-build/radxa-e25/releases/latest Radxa E25]<br />
</td><br />
<td><br />
Ubuntu Server Product.<br />
<br />
[https://wiki.radxa.com/Rock3/Ubuntu Install Wiki.]<br />
<br />
Ubuntu Server 20.04.<br />
<br />
[https://github.com/radxa/debos-radxa/releases/latest Change Log].<br />
<br />
User of Radxa CM3 RASPCM4IO will need to manually update /boot/uEnv.txt to use rk3566-radxa-cm3-rpi-cm4-io.dtb.<br />
</td><br />
</tr><br />
<br />
</table><br />
</div><br />
</div><br />
<br />
<div class="col-md-12"><br />
<br />
====<span class="label forest" style="margin-bottom:5px;"><i class="fa fa-linux"></i> Third Party Images</span>====<br />
<div class="table-responsive"><br />
<table align="center" class="table table-bordered table-striped"><br />
<br />
<!-- Armbian(Unofficial build) --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Armbian-logo.png | link=https://discord.com/channels/855634073376260096/888960277788393553/912495051010084895]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<h5 class="text-center" style="display: inline;"><br />
<p class="text-left" >Armbian(Unofficial build) [https://drive.google.com/file/d/1NPhL_dHIEeojgSllINjezKjUK_P3ktMh/view?usp=sharing Hirsute ARM XFCE]</p><br />
</h5><br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" >Build 2021-11-23.</p><br />
<p class="text-left" >user : pi , password : armbian</p><br />
<p class="text-left" >[https://discord.com/channels/855634073376260096/888960277788393553/912495237748899851 Discord discussion]</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<!-- CRUX-ARM --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Cruxlogo.png | link=http://dl.slarm64.org/crux/images/rock_3/]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<h5 class="text-center" style="display: inline;">[http://dl.slarm64.org/crux/images/rock_3/crux-arm-3.6-aarch64-core-rock_3-4.19.210-build-20211009.img.zst CRUX-ARM]</h5><br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" >Build 2021-10-09.</p><br />
<p class="text-left" >[http://dl.slarm64.org/slackware/images/rock_3/README.TXT README.TXT].</p><br />
<p class="text-left" >[https://forum.radxa.com/t/rock-3-crux-arm-aarch64/7183 Forum discussion]</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<br />
<!-- manjaro --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Logo.png | link=https://manjaro.org/download]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
=====[https://github.com/manjaro-arm/rock3-a-images/releases Manjaro Image Release]=====<br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" style="display: inline;">Manjaro Product.</p><br />
<p class="text-left" style="display: inline;">[https://www.manjaro.org/ Install Wiki]</p><br />
<p class="text-left" >[https://discord.com/channels/855634073376260096/866316562520473600/916175047390003270 Discussion Discord]</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<br />
<!-- Slackware --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Slackware-logo.png | link=http://dl.slarm64.org/slackware/images/rock_3/]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<h5 class="text-center" style="display: inline;"><br />
<p class="text-left" >[https://dl.slarm64.org/slackware/images/rock_3/slarm64-current-aarch64-server-rock_3-5.17.8-build-20220516.img.zst Slarm64 Server (unofficial slackware)]</p><br />
<p class="text-left" >[https://dl.slarm64.org/slackware/images/rock_3/slarm64-current-aarch64-xfce-rock_3-5.17.8-build-20220516.img.zst Slarm64 XFCE (unofficial slackware)]</p><br />
</h5><br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" >Build 2022-05-16.</p><br />
<p class="text-left" >[http://dl.slarm64.org/slackware/images/rock_3/README.TXT README.TXT].</p><br />
<p class="text-left" >[https://forum.radxa.com/t/rock-3-slarm64-aarch64-unofficial-slackware/7167/7 Forum discussion]</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
</table><br />
</div><br />
</div><br />
<br />
<div class="col-md-12"></div>
Cx
https://wiki.radxa.com/RockpiX/dev/libmraa
RockpiX/dev/libmraa
2022-05-10T07:42:20Z
<p>Cx: </p>
<hr />
<div>{{RockpiX_header}}<br />
{{Languages|RockpiX/dev/libmraa}}<br />
<br />
[[rockpiX | ROCK Pi X]] > [[RockpiX/dev/libmraa | Libmraa]]<br />
<br />
<br />
= Libmraa-rockpiX =<br />
<br />
== Install libmraa ==<br />
<br />
We need to download the deb installation package first, and then install it:<br />
<br />
vms@vms-ROCK-Pi-X:~$ sudo apt update && sudo apt upgrade<br />
vms@vms-ROCK-Pi-X:~$ wget https://dl.radxa.com/rockpix/packages/libmraa-rockpix_0.4_amd64.deb<br />
vms@vms-ROCK-Pi-X:~$ sudo apt install -f -y libc6 libjson-c4 libjson-c-dev libgtest-dev libgcc1 libstdc++6 python2.7 libpython2.7 python3.8 libpython3.8<br />
vms@vms-ROCK-Pi-X:~$ sudo dpkg -i libmraa-rockpix_0.4_amd64.deb<br />
vms@vms-ROCK-Pi-X:~$ sudo apt-get install -f -y<br />
<br />
== Enable interface ==<br />
See ROCK Pi X [[RockpiX/hardware/gpio | GPIO pintout]]. ROCK Pi X has one 40-pin expansion header. Each pin is distinguished by color.<br />
<br />
=== Hardware V1.0/V1.1 ===<br />
10 GPIO:<br />
PIN7 ISH_GPIO0<br />
PIN12 GPIO_DFX3<br />
PIN16 GPIO_DFX4<br />
PIN21 ISH_GPIO9<br />
PIN24 ISH_GPIO1<br />
PIN26 ISH_GPIO4<br />
PIN29 ISH_GPIO2<br />
PIN31 ISH_GPIO3<br />
PIN33 ISH_GPIO10<br />
PIN37 ISH_GPIO13<br />
<br />
I2C: x1, I2C1<br />
PIN3 I2C2_SDA<br />
PIN5 I2C2_SCL<br />
PIN19 ISH_I2C1_DATA<br />
PIN23 ISH_I2C1_CLK<br />
<br />
SPI: x1, SPI0(Pin#11/13/15/27)<br />
PIN11 SPI2_CLK<br />
PIN13 SPI2_MISO<br />
PIN15 SPI2_CS0<br />
PIN16 SPI2_MOSI<br />
<br />
UART: x1, UART1 and UART2<br />
PIN8 UART2_TX<br />
PIN10 UART2_RX<br />
PIN18 UART2_RTS<br />
PIN22 UART2_CTS<br />
<br />
PWM: x2, PWM0 and PWM1<br />
PIN32 PWM0<br />
PIN33 PWM1<br />
<br />
== Test ==<br />
=== test gpio ===<br />
Use '''mraa-gpio''' to test<br />
<br />
vms@vms-ROCK-Pi-X:~$ mraa-gpio list<br />
01 3.3v: <br />
02 5v: <br />
03 I2C2_SDA: I2C <br />
05 I2C2_SCL: I2C <br />
06 GND: <br />
07 ISH_GPIO0: GPIO I2C <br />
08 UART2_TX: UART <br />
09 GND: <br />
10 UART2_RX: UART <br />
11 SPI2_CLK: SPI UART <br />
12 GPIO_DFX3: GPIO <br />
13 SPI2_MISO: SPI UART <br />
14 GND: <br />
15 SPI2_CS0: SPI <br />
16 SPI2_MOSI: GPIO SPI <br />
17 +3.3V: <br />
18 UART2_RTS: UART <br />
19 SPI_MOSI: I2C SPI <br />
20 GND: <br />
21 SPI_MISO: GPIO SPI <br />
22 UART2_CTS: UART <br />
23 SPI_CLK: I2C SPI <br />
24 ISH_GPIO1: GPIO <br />
25 GND: <br />
26 ISH_GPIO4: GPIO <br />
27 I2C5_DATA: I2C <br />
28 I2C5_CLK: I2C <br />
29 ISH_GPIO2: GPIO <br />
31 ISH_GPIO3: GPIO <br />
32 PWM0: PWM <br />
33 PWM1: GPIO PWM UART <br />
34 GND: <br />
35 I2S1_FRM: <br />
36 I2S1_CLK: <br />
37 ISH_GPIO13: GPIO <br />
38 I2S1_RX: <br />
39 GND: <br />
40 I2S1_TX: <br />
vms@vms-ROCK-Pi-X:~$ <br />
vms@vms-ROCK-Pi-X:~$ sudo mraa-gpio set 7 1 //pin40 pull high<br />
vms@vms-ROCK-Pi-X:~$ cat /sys/class/gpio/gpio335/value<br />
1<br />
vms@vms-ROCK-Pi-X:~$ sudo mraa-gpio set 7 0 //pin40 pull low<br />
vms@vms-ROCK-Pi-X:~$ cat /sys/class/gpio/gpio335/value<br />
0<br />
<br />
=== test i2c ===<br />
Use '''mraa-i2c''' to test, we must have a i2c slave device , for example, we use I2C EEPROM:<br />
<br />
vms@vms-ROCK-Pi-X:~$ mraa-i2c list<br />
Bus 0: id=02 type=linux default<br />
Bus 1: id=05 type=linux<br />
vms@vms-ROCK-Pi-X:~$ sudo mraa-i2c detect 0 <br />
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- <br />
10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- -- <br />
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- <br />
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- <br />
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- <br />
50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- -- <br />
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- <br />
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- <br />
vms@vms-ROCK-Pi-X:~$ sudo mraa-i2c set 0 0x50 0x10 0x55<br />
Device 50, Register = 10, Value = 55<br />
vms@vms-ROCK-Pi-X:~$ sudo mraa-i2c get 0 0x50 0x10<br />
Register 0X10 = 0X55<br />
vms@vms-ROCK-Pi-X:~$ <br />
<br />
=== test Uart ===<br />
Connect Rock Pi X to PC via serial cable, Open minicom in PC :<br />
<br />
PC@MYPC:~$ sudo minicom /dev/ttyUSB0<br />
<br />
Use mraa-uart tool to send information on rockpix, and view the received information on pc :<br />
<br />
* On Rock Pi X<br />
<br />
vms@vms-ROCK-Pi-X:~$ sudo mraa-uart dev 0 baud 1500000 send data<br />
<br />
* In minicom of PC<br />
<br />
Welcome to minicom 2.7.1<br />
<br />
OPTIONS: I18n <br />
Compiled on Aug 13 2017, 15:25:34.<br />
Port /dev/ttyUSB0, 10:22:25<br />
<br />
Press CTRL-A Z for help on special keys<br />
<br />
'''data'''<br />
<br />
== Compilation example ==<br />
<br />
<br />
=== Example of running Pyhton ===<br />
<br />
Use two led to test a python example. <br />
You can get the '''.py''' file in /usr/local/share/mraa/examples/python <br />
<br />
One line of your led is grounded and another is connected to the gpio port.<br />
<br />
vms@vms-ROCK-Pi-X:/usr/local/share/mraa/examples/python$ cat gpio.py<br />
......<br />
# initialise gpio 29<br />
'''gpio_1 = mraa.Gpio(29)'''<br />
<br />
# initialise gpio 31<br />
'''gpio_2 = mraa.Gpio(31)'''<br />
......<br />
and then, <br />
<br />
vms@vms-ROCK-Pi-X:/usr/local/share/mraa/examples/python$ chmod +x gpio.py<br />
vms@vms-ROCK-Pi-X:/usr/local/share/mraa/examples/python$ sudo ./gpio.py<br />
<br />
Now, you can see your led flashing.<br />
<br />
=== Install compiler and project builder ===<br />
Install '''g++''' compiler and '''cmake''' project builder<br />
<br />
vms@vms-ROCK-Pi-X:~$ sudo apt-get install cmake g++<br />
<br />
Configure Java environment variables :<br />
<br />
vms@vms-ROCK-Pi-X:~$ sudo su #password: rock<br />
vms@vms-ROCK-Pi-X:~# vim ./.bashrc<br />
...<br />
export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-arm64<br />
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib<br />
export PATH=${JAVA_HOME}/bin:$PATH<br />
<br />
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib<br />
<br />
vms@vms-ROCK-Pi-X:~# source ./.bashrc<br />
vms@vms-ROCK-Pi-X:~# cp /usr/local/share/mraa . -r<br />
vms@vms-ROCK-Pi-X:~# cd mraa/examples/<br />
vms@vms-ROCK-Pi-X:~/mraa/examples# mkdir build <br />
vms@vms-ROCK-Pi-X:~/mraa/examples# cd build<br />
vms@vms-ROCK-Pi-X:~/mraa/examples/build# cmake ..; make<br />
...<br />
[ 97%] Building CXX object c++/CMakeFiles/i2c_cpp.dir/i2c.o<br />
[100%] Linking CXX executable i2c_cpp<br />
[100%] Built target i2c_cpp<br />
vms@vms-ROCK-Pi-X:~/mraa/examples/build# ls <br />
CMakeCache.txt CMakeFiles Makefile '''c''' '''c++''' cmake_install.cmake '''java'''<br />
<br />
After compiling, you can see that C, C + + and Java are generated. Let's take a look at the example of using Java.<br />
<br />
=== Example of running Java ===<br />
Go to the Java example directory and use the Java command to run the '''.jar''' package.<br/><br />
<br />
vms@vms-ROCK-Pi-X:~/mraa/examples/build# cd java/<br />
vms@vms-ROCK-Pi-X:~/mraa/examples/build/java# ls <br />
AioA0 CMakeFiles GpioMmapped Isr UartExample<br />
BlinkIO CyclePwm3 GpioRead6 Makefile cmake_install.cmake<br />
BlinkOnboard Example HelloEdison SpiMAX7219<br />
Bmp85 FTDITest I2cCompass SpiMCP4261<br />
vms@vms-ROCK-Pi-X:~/mraa/examples/build/java# java -jar GpioMmapped/GpioMmapped.jar<br />
hello mraa<br />
Version: v2.1.0-7-g9d7131e<br />
Platform: ROCK PI X<br />
<br />
<br />
Look, you have successfully run it. Next, you can try to write a Java demo yourself. Viewing these '''.hpp''' files can help you write '''your own demo'''<br />
<br />
vms@vms-ROCK-Pi-X:/usr/local/include/mraa# ls <br />
aio.h gpio.h iio.hpp led.hpp types.h uart_ow.hpp<br />
aio.hpp gpio.hpp iio_kernel_headers.h pwm.h types.hpp<br />
common.h i2c.h initio.h pwm.hpp uart.h<br />
common.hpp i2c.hpp initio.hpp spi.h uart.hpp<br />
firmata.h iio.h led.h spi.hpp uart_ow.h<br />
vms@vms-ROCK-Pi-X:/usr/local/include/mraa#<br />
<br />
=== More examples ===<br />
More examples (including examples written in python and c++) can be found at:<br />
<br />
/usr/local/share/mraa/examples/</div>
Cx
https://wiki.radxa.com/Rock3/Android11
Rock3/Android11
2022-04-08T07:43:51Z
<p>Cx: /* Build u-boot */</p>
<hr />
<div>{{rock3_header}}<br />
<br />
{{Languages|rock3/Android11}}<br />
<br />
[[rock3 | ROCK 3]] > [[Rock3/Android11 | Andriod11]]<br />
<br />
<br />
<br />
This page is a step-by-step tutorial how to build Rock 3 serail board Android11 image. Including:<br />
<br />
* 3A<br><br />
* 3B<br><br />
* CM3IO<br><br />
<br />
Recommend build host is Ubuntu 20.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
<br />
<br />
=== Repo ===<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
=== DockerFile ===<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android9-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:11.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
=== Download source code ===<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk11 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
=== Build ===<br />
==== One Step build ====<br />
<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
<br />
# for Rock 3A<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_box-userdebug<br />
# for Rock 3B<br />
radxa:rock-android11 $ lunch rk3568_rock_3b_r-userdebug<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ lunch rk3566_rock_cm3_r-userdebug<br />
<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
==== Parts Build ====<br />
<br />
===== Env preparation =====<br />
<code bash><br />
# for Rock 3A<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk3568_rock_3a_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3a"<br />
<br />
# for Rock 3A box software<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_3a_box"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3a"<br />
<br />
# for Rock 3B<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_3b_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig android-11.config rock_3b.config"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3b"<br />
<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_cm3_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="rk3566"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig android-11.config rockcm3io.config"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3566-rock-cm3io"<br />
<br />
</code><br />
===== Build u-boot =====<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
radxa:rock-android11/u-boot $ ./make.sh ${PRODUCT_UBOOT_CONFIG}<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are '''idbloader.img''' , and '''uboot.img'''<br />
<br />
===== Building kernel =====<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 ${PRODUCT_KERNEL_CONFIG}<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 ${PRODUCT_KERNEL_DTS}.img -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
<br />
===== Building AOSP =====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
radxa:rock-android11 $ lunch ${PRODUCT_NAME}-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
===== Make images =====<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
===== Integrate Image =====<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
radxa:rock-android11/rockdev $ rm -rf Image<br />
radxa:rock-android11/rockdev $ ln -s Image-${PRODUCT_NAME} Image<br />
<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rock-android11/rockdev $ ./mkupdate_rk356x.sh<br />
</code><br />
The images under rockdev/ are `update.img`<br />
<br />
2. gpt Image<br />
<code bash><br />
radxa:rock-android11/rockdev $ ./android-gpt.sh<br />
</code><br />
<br />
=== Installation ===<br />
* sdcard<br><br />
[https://wiki.radxa.com/Rock3/install/microSD Install on MicroSD]<br><br />
* emmc with reader<br><br />
[https://wiki.radxa.com/Rock3/install/eMMC Install on eMMC with USB to eMMC Reader]<br><br />
* emmc from usb port<br><br />
[https://wiki.radxa.com/Rock3/dev/usb-install Install on eMMC from USB port]</div>
Cx
https://wiki.radxa.com/Rock3/Android11
Rock3/Android11
2022-03-29T02:34:24Z
<p>Cx: </p>
<hr />
<div>{{rock3_header}}<br />
<br />
{{Languages|rock3/Android11}}<br />
<br />
[[rock3 | ROCK 3]] > [[Rock3/Android11 | Andriod11]]<br />
<br />
<br />
<br />
This page is a step-by-step tutorial how to build Rock 3 serail board Android11 image. Including:<br />
<br />
* 3A<br><br />
* 3B<br><br />
* CM3IO<br><br />
<br />
Recommend build host is Ubuntu 20.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
<br />
<br />
=== Repo ===<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
=== DockerFile ===<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android9-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:11.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
=== Download source code ===<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk11 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
=== Build ===<br />
==== One Step build ====<br />
<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
<br />
# for Rock 3A<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_box-userdebug<br />
# for Rock 3B<br />
radxa:rock-android11 $ lunch rk3568_rock_3b_r-userdebug<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ lunch rk3566_rock_cm3_r-userdebug<br />
<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
==== Parts Build ====<br />
<br />
===== Env preparation =====<br />
<code bash><br />
# for Rock 3A<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk3568_rock_3a_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3a"<br />
<br />
# for Rock 3A box software<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_3a_box"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3a"<br />
<br />
# for Rock 3B<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_3b_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="radxa_rock_3a_toybrick"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig android-11.config rock_3b.config"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3568-rock-3b"<br />
<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ export PRODUCT_NAME="rk356x_rock_cm3_r"<br />
radxa:rock-android11 $ export PRODUCT_UBOOT_CONFIG="rk3566"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_CONFIG="rockchip_defconfig android-11.config rockcm3io.config"<br />
radxa:rock-android11 $ export PRODUCT_KERNEL_DTS="rk3566-rock-cm3io"<br />
<br />
</code><br />
===== Build u-boot =====<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
radxa:rock-android11/u-boot $ ./make.sh ${PRODUCT_UBOOT_CONFIG}<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are '''idbloader.img''' , and '''uboot.img'''<br />
<br />
===== Building kernel =====<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 ${PRODUCT_KERNEL_CONFIG}<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 ${PRODUCT_KERNEL_DTS}.img -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
<br />
===== Building AOSP =====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
radxa:rock-android11 $ lunch ${PRODUCT_NAME}-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
===== Make images =====<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
===== Integrate Image =====<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
radxa:rock-android11/rockdev $ rm -rf Image<br />
radxa:rock-android11/rockdev $ ln -s Image-${PRODUCT_NAME} Image<br />
<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rock-android11/rockdev $ ./mkupdate_rk356x.sh<br />
</code><br />
The images under rockdev/ are `update.img`<br />
<br />
2. gpt Image<br />
<code bash><br />
radxa:rock-android11/rockdev $ ./android-gpt.sh<br />
</code><br />
<br />
=== Installation ===<br />
* sdcard<br><br />
[https://wiki.radxa.com/Rock3/install/microSD Install on MicroSD]<br><br />
* emmc with reader<br><br />
[https://wiki.radxa.com/Rock3/install/eMMC Install on eMMC with USB to eMMC Reader]<br><br />
* emmc from usb port<br><br />
[https://wiki.radxa.com/Rock3/dev/usb-install Install on eMMC from USB port]</div>
Cx
https://wiki.radxa.com/Rock3/Android11
Rock3/Android11
2022-03-28T02:09:20Z
<p>Cx: </p>
<hr />
<div>{{rock3_header}}<br />
<br />
{{Languages|rock3/Android11}}<br />
<br />
[[rock3 | ROCK 3]] > [[Rock3/Android11 | Andriod11]]<br />
<br />
<br />
<br />
This page is a step-by-step tutorial how to build Rock 3 serail board Android11 image. Including:<br />
<br />
* 3A<br><br />
* 3B<br><br />
* CM3IO<br><br />
<br />
Recommend build host is Ubuntu 20.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
<br />
<br />
==== Repo ====<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
==== DockerFile ====<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android9-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:11.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
==== Download source code ====<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk11 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
==== Build ====<br />
===== One Step build =====<br />
<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
<br />
# for Rock 3A<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_box-userdebug<br />
# for Rock 3B<br />
radxa:rock-android11 $ lunch rk3568_rock_3b_r-userdebug<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ lunch rk3566_rock_cm3_r-userdebug<br />
<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
===== Parts Build =====<br />
====== Build u-boot ======<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
<br />
# for Rock 3A & 3A box software & Rock 3B<br />
radxa:rock-android11/u-boot $ ./make.sh radxa_rock_3a_toybrick<br />
# for Rock CM3 IO<br />
radxa:rock-android11/u-boot $ ./make.sh rk3566<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are '''idbloader.img''' , and '''uboot.img'''<br />
<br />
====== Building kernel ======<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
<br />
# for Rock 3A & 3A box software<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3568-rock-3A-1.2.img -j$(nproc)<br />
# for Rock 3B<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rock_3b.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3568-rock-3-b.img -j$(nproc)<br />
# for Rock CM3 IO<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockcm3io.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3566-rock-cm3io -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
<br />
====== Building AOSP ======<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
<br />
# for Rock 3A<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_box-userdebug<br />
# for Rock 3B<br />
radxa:rock-android11 $ lunch rk3568_rock_3b_r-userdebug<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ lunch rk3566_rock_cm3_r-userdebug<br />
<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
====== Make images ======<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
====== Integrate Image ======<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
<br />
# for Rock 3A<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3568_rock_3a_r Image<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11/rockdev $ ln -s Image-rk356x_rock_3a_box Image<br />
# for Rock 3B<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3568_rock_3b_r Image<br />
# for Rock CM3 IO<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3566_rock_cm3_r Image<br />
<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rock-android11/rockdev $ ./mkupdate_rk368x.sh<br />
</code><br />
The images under rockdev/ are `update.img`<br />
<br />
2. gpt Image<br />
<code bash><br />
radxa:rock-android11/rockdev $ ./android-gpt.sh<br />
</code><br />
<br />
==== Installation ====<br />
* sdcard<br><br />
[https://wiki.radxa.com/Rock3/install/microSD Install on MicroSD]<br><br />
* emmc with reader<br><br />
[https://wiki.radxa.com/Rock3/install/eMMC Install on eMMC with USB to eMMC Reader]<br><br />
* emmc from usb port<br><br />
[https://wiki.radxa.com/Rock3/dev/usb-install Install on eMMC from USB port]</div>
Cx
https://wiki.radxa.com/Rock3/Android11
Rock3/Android11
2022-03-28T02:05:24Z
<p>Cx: </p>
<hr />
<div>{{rock3_header}}<br />
<br />
{{Languages|rock3/Android11}}<br />
<br />
[[rock3 | ROCK 3]] > [[Rock3/Android11 | Andriod11]]<br />
<br />
<br />
<br />
This page is a step-by-step tutorial how to build Rock 3 serail board Android11 image. Including <br />
- 3A<br />
- 3B<br />
- CM3IO<br />
<br />
Recommend build host is Ubuntu 20.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
==== Repo ====<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
==== DockerFile ====<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android9-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:11.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
==== Download source code ====<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk10.1 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
==== Build ====<br />
===== One Step build =====<br />
<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
<br />
# for Rock 3A<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_box-userdebug<br />
# for Rock 3B<br />
radxa:rock-android11 $ lunch rk3568_rock_3b_r-userdebug<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ lunch rk3566_rock_cm3_r-userdebug<br />
<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
===== Parts Build =====<br />
====== Build u-boot ======<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
<br />
# for Rock 3A & 3A box software & Rock 3B<br />
radxa:rock-android11/u-boot $ ./make.sh radxa_rock_3a_toybrick<br />
# for Rock CM3 IO<br />
radxa:rock-android11/u-boot $ ./make.sh rk3566<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are '''idbloader.img''' , and '''uboot.img'''<br />
<br />
====== Building kernel ======<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
<br />
# for Rock 3A & 3A box software<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3568-rock-3A-1.2.img -j$(nproc)<br />
# for Rock 3B<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rock_3b.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3568-rock-3-b.img -j$(nproc)<br />
# for Rock CM3 IO<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockcm3io.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3566-rock-cm3io -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
<br />
====== Building AOSP ======<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
<br />
# for Rock 3A<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_box-userdebug<br />
# for Rock 3B<br />
radxa:rock-android11 $ lunch rk3568_rock_3b_r-userdebug<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ lunch rk3566_rock_cm3_r-userdebug<br />
<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
====== Make images ======<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
====== Integrate Image ======<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
<br />
# for Rock 3A<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3568_rock_3a_r Image<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11/rockdev $ ln -s Image-rk356x_rock_3a_box Image<br />
# for Rock 3B<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3568_rock_3b_r Image<br />
# for Rock CM3 IO<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3566_rock_cm3_r Image<br />
<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rock-android11/rockdev $ ./mkupdate_rk368x.sh<br />
</code><br />
The images under rockdev/ are `update.img`<br />
<br />
2. gpt Image<br />
<code bash><br />
radxa:rock-android11/rockdev $ ./android-gpt.sh<br />
</code><br />
<br />
==== Installation ====<br />
* sdcard<br><br />
[https://wiki.radxa.com/Rock3/install/microSD Install on MicroSD]<br><br />
* emmc with reader<br><br />
[https://wiki.radxa.com/Rock3/install/eMMC Install on eMMC with USB to eMMC Reader]<br><br />
* emmc from usb port<br><br />
[https://wiki.radxa.com/Rock3/dev/usb-install Install on eMMC from USB port]</div>
Cx
https://wiki.radxa.com/Rock3/Android11
Rock3/Android11
2022-03-25T12:33:41Z
<p>Cx: </p>
<hr />
<div>{{rock3_header}}<br />
<br />
{{Languages|rock3/Android11}}<br />
<br />
[[rock3 | ROCK 3]] > [[Rock3/Android11 | Andriod11]]<br />
<br />
<br />
<br />
This page is a step-by-step tutorial how to build Rock 3 serail board Android11 image. Including 3A, 3B, CM3IO<br />
Recommend build host is Ubuntu 20.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
==== Repo ====<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
==== DockerFile ====<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android9-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:11.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
==== Download source code ====<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk10.1 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
==== Build ====<br />
===== One Step build =====<br />
<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
<br />
# for Rock 3A<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_box-userdebug<br />
# for Rock 3B<br />
radxa:rock-android11 $ lunch rk3568_rock_3b_r-userdebug<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ lunch rk3566_rock_cm3_r-userdebug<br />
<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
===== Parts Build =====<br />
====== Build u-boot ======<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
<br />
# for Rock 3A & 3A box software & Rock 3B<br />
radxa:rock-android11/u-boot $ ./make.sh radxa_rock_3a_toybrick<br />
# for Rock CM3 IO<br />
radxa:rock-android11/u-boot $ ./make.sh rk3566<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are '''idbloader.img''' , and '''uboot.img'''<br />
<br />
====== Building kernel ======<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
<br />
# for Rock 3A & 3A box software<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3568-rock-3A-1.2.img -j$(nproc)<br />
# for Rock 3B<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rock_3b.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3568-rock-3-b.img -j$(nproc)<br />
# for Rock CM3 IO<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockcm3io.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3566-rock-cm3io -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
<br />
====== Building AOSP ======<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
<br />
# for Rock 3A<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11 $ lunch rk356x_rock_3a_box-userdebug<br />
# for Rock 3B<br />
radxa:rock-android11 $ lunch rk3568_rock_3b_r-userdebug<br />
# for Rock CM3 IO<br />
radxa:rock-android11 $ lunch rk3566_rock_cm3_r-userdebug<br />
<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
====== Make images ======<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
====== Integrate Image ======<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
<br />
# for Rock 3A<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3568_rock_3a_r Image<br />
# for Rock 3A if you want a box software<br />
radxa:rock-android11/rockdev $ ln -s Image-rk356x_rock_3a_box Image<br />
# for Rock 3B<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3568_rock_3b_r Image<br />
# for Rock CM3 IO<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3566_rock_cm3_r Image<br />
<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rock-android11/rockdev $ ./mkupdate_rk368x.sh<br />
</code><br />
The images under rockdev/ are `update.img`<br />
<br />
2. gpt Image<br />
<code bash><br />
radxa:rock-android11/rockdev $ ./android-gpt.sh<br />
</code><br />
<br />
==== Installation ====<br />
* sdcard<br><br />
[https://wiki.radxa.com/Rock3/install/microSD Install on MicroSD]<br><br />
* emmc with reader<br><br />
[https://wiki.radxa.com/Rock3/install/eMMC Install on eMMC with USB to eMMC Reader]<br><br />
* emmc from usb port<br><br />
[https://wiki.radxa.com/Rock3/dev/usb-install Install on eMMC from USB port]</div>
Cx
https://wiki.radxa.com/Zero/downloads
Zero/downloads
2022-03-21T02:17:42Z
<p>Cx: </p>
<hr />
<div>{{zero_header}}<br />
{{Languages|zero/downloads}}<br />
<br />
__NOTOC__<br />
<br />
Official ROCK Pi system images can also be downloaded from '''[http://rock.sh/rockpi-baidupan ROCK Pi BaiduPan]''' or '''[https://github.com/radxa/radxa-zero-images-released/releases Radxa Github Release]'''.<br />
<br />
For user names and passwords please check the [https://wiki.radxa.com/Rock/FAQ#What.27s_the_user_and_password_in_Lubuntu FAQ].<br />
<br />
<div class="col-md-12"><br />
====<span class="label forest"><i class="fa fa-wrench" ></i> Tools</span>====<br />
<div class="table-responsive"><br />
<table class="table table-hover table-bordered table-striped"><br />
<tr><br />
<th>Description</th><br />
<th>Linux</th><br />
<th>MacOS</th><br />
<th>Windows</th><br />
</tr><br />
<tr><br />
<td><small>Etcher - A user friendly Image Writer</small></td><br />
<td>[https://github.com/balena-io/etcher/releases/download/v1.5.76/balena-etcher-electron-1.5.76-linux-x64.zip Linux 64bit] | [https://github.com/balena-io/etcher/releases/download/v1.5.76/balena-etcher-electron-1.5.76-linux-ia32.zip Linux 32bit]</td><br />
<td>[https://github.com/balena-io/etcher/releases/download/v1.5.76/balenaEtcher-1.5.76.dmg balenaEtcher-1.5.76.dmg]</td><br />
<td>[https://github.com/balena-io/etcher/releases/download/v1.5.76/balenaEtcher-Setup-1.5.76.exe balenaEtcher-Setup-1.5.76.exe]</td><br />
</tr><br />
</table><br />
</div><br />
</div><br />
<br />
<div class="col-md-12"><br />
<br />
====<span class="label forest" style="margin-bottom:5px;"><i class="fa fa-linux"></i> Official Images</span>====<br />
<div class="table-responsive"><br />
<table align="center" class="table table-bordered table-striped"><br />
<!-- Android --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div<br />
class="thumbnail" style="display: table-cell;">[[File:Android-Logo.jpg | 200px | link=https://dl.radxa.com/zero/images/android]] <br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" >[https://dl.radxa.com/zero/images/android/radxa_zero_android_9_20220311-fastboot.img.zip Android 9]</p><br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" style="display: inline;">Android</p><br />
<p class="text-left" style="display: inline;">[https://wiki.radxa.com/Zero/install/eMMC_Android Install Wiki].</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<!-- Ubuntu --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Ubuntu_logo.png | link=https://github.com/radxa/debos-radxa/releases/latest]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<h5 class="text-center" style="display: inline;">[https://github.com/radxa/debos-radxa/releases/latest Ubuntu Focal]</h5><br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" style="display: inline;">Ubuntu Product.</p><br />
<p class="text-left" style="display: inline;">[https://wiki.radxa.com/Zero/Ubuntu Install Wiki].</p><br />
<p class="text-left" >Ubuntu Focal (20.04).</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<!-- Debian --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Debian-logo.png | link=https://github.com/radxa/debos-radxa/releases/latest]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<h5 class="text-center" style="display: inline;">[https://github.com/radxa/debos-radxa/releases/latest Debian Buster]</h5><br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" style="display: inline;">Debian Product.</p><br />
<p class="text-left" style="display: inline;">[https://wiki.radxa.com/Zero/Debian Install Wiki].</p><br />
<p class="text-left" >Debian Buster(10).</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
</table><br />
</div><br />
</div><br />
<br />
<div class="col-md-12"><br />
<br />
====<span class="label forest" style="margin-bottom:5px;"><i class="fa fa-linux"></i> Third Party Images</span>====<br />
<div class="table-responsive"><br />
<table align="center" class="table table-bordered table-striped"><br />
<br />
<!-- LineageOS --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:LineageOS_Logo.png | link=https://lineageos.org/]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<br />
<h5 class="text-center" style="display: inline;"><br />
<p class="text-left" >[https://download.ods.ninja/Android/firmware/radxa0/aml_upgrade_package.img LineageOS 18.1 ATV with Google APPs]</p><br />
<p class="text-left" >[https://images.stricted.net/test/radxa0/29092021/aml_upgrade_package.img LineageOS 18.1 ATV without Google APPs]</p><br />
</h5><br />
<br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" >Build 2021-09-30.</p><br />
<p class="text-left" >[https://youtu.be/TBo3CD95HMs Installation Video].</p><br />
<p class="text-left" >[https://forum.radxa.com/t/lineageos-for-radxa-zero/7411 Forum discussion]</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<br />
<!-- Slackware --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Slackware-logo.png | link=https://dl.slarm64.org/slackware/images/radxa_zero/]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<h5 class="text-center" style="display: inline;"><br />
<p class="text-left" >[https://dl.slarm64.org/slackware/images/radxa_zero/slarm64-current-aarch64-server-radxa_zero-5.16.14-build-20220312.img.zst Slarm64 Server (unofficial slackware)]</p><br />
<p class="text-left" >[https://dl.slarm64.org/slackware/images/radxa_zero/slarm64-current-aarch64-xfce-radxa_zero-5.16.14-build-20220312.img.zst Slarm64 XFCE (unofficial slackware)]</p><br />
<p class="text-left" >[https://dl.slarm64.org/slackware/images/radxa_zero/slarm64-current-aarch64-enlightenment-radxa_zero-5.14.5-build-20210917.img.zst Slarm64 Enlightenment (unofficial slackware)]</p><br />
</h5><br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" >Build 2022-03-12.</p><br />
<p class="text-left" >[https://dl.slarm64.org/slackware/images/radxa_zero/README.TXT README.TXT].</p><br />
<p class="text-left" >[https://forum.radxa.com/t/radxa-zero-slarm64-aarch64-unofficial-slackware/7011 Forum discussion]</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<!-- CRUX-ARM --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Cruxlogo.png | link=http://dl.slarm64.org/crux/images/radxa_zero/]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<h5 class="text-center" style="display: inline;">[http://dl.slarm64.org/crux/images/radxa_zero/crux-arm-3.6-aarch64-core-radxa_zero-5.15.2-build-20211117.img.zst CRUX-ARM]</h5><br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" >Build 2021-11-17.</p><br />
<p class="text-left" >[http://dl.slarm64.org/slackware/images/radxa_zero/README.TXT README.TXT].</p><br />
<p class="text-left" >[https://forum.radxa.com/t/radx-zero-crux-arm-aarch64/7043/2 Forum discussion]</p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<!-- manjaro --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Logo.png | link=https://manjaro.org/download]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
=====[https://github.com/manjaro-arm/radxa-zero-images/releases/download/21.12/Manjaro-ARM-gnome-radxa-zero-21.12.img.xz Manjaro Gnome]=====<br />
<br />
=====[https://github.com/manjaro-arm/radxa-zero-images/releases/download/21.12/Manjaro-ARM-kde-plasma-radxa-zero-21.12.img.xz Manjaro KDE]=====<br />
<br />
=====[https://github.com/manjaro-arm/radxa-zero-images/releases/download/21.12/Manjaro-ARM-minimal-radxa-zero-21.12.img.xz Manjaro Minimal]=====<br />
<br />
=====[https://github.com/manjaro-arm/radxa-zero-images/releases/tag/21.12 More Desktop Environment]=====<br />
<br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" style="display: inline;">Manjaro Product.</p><br />
<p class="text-left" style="display: inline;">[https://www.manjaro.org/ Install Wiki]</p><br />
<p class="text-left" >Manjaro ARM 21.12 </p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<!-- RetroPie --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Retropie-logo.jpg| link=https://retropie.org.uk/]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
=====[https://drive.google.com/file/d/1OTmNlOHlvDkFX0XA6VYzUV8syFuTo3Cx/view?usp=sharing RetroPie Test Image]=====<br />
<br />
<br />
<br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" style="display: inline;">By monka</p><br />
<p class="text-left" style="display: inline;">[https://discord.gg/Fh8sjmu Discussion Discord]</p><br />
<p class="text-left" >user:pi password: radxazero </p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<br />
<!-- TwisterOS --><br />
<tr><br />
<div class="col-md-2 mwbs-color-darker"><br />
<th width="8%"><br />
<div class="thumbnail" style="display: table-cell;">[[File:Twisteros-logo.png| link=https://twisteros.com/index.html]]<br />
</div><br />
</th><br />
<th width="45%" style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
=====[https://drive.google.com/file/d/1aqB7A_EuLGvL7pR8LhP6RatikxvJyy6i/view?usp=sharing TwisterOS Focal Beta4]=====<br />
<br />
<br />
<br />
</div><br />
</th><br />
<th style="vertical-align: middle;"><br />
<div class="caption" style="text-align: left;padding-left: 10px;"><br />
<p class="text-left" style="display: inline;">TwisterOS Product.</p><br />
<p class="text-left" style="display: inline;">[https://discord.gg/Fh8sjmu Discussion Discord]</p><br />
<p class="text-left" >TwisterOS Team Beta 4 Release 20210822 </p><br />
<p class="text-left" >user: pi password: root0815 </p><br />
</div><br />
</th><br />
</div><br />
</tr><br />
<br />
<br />
</table><br />
</div><br />
</div></div>
Cx
https://wiki.radxa.com/RockpiX/install/ubuntu
RockpiX/install/ubuntu
2022-02-14T09:56:17Z
<p>Cx: </p>
<hr />
<div>{{rockpiX_header}}<br />
{{Languages|RockpiX/install/Ubuntu}}<br />
<br />
[[rockpiX | ROCK Pi X]] > [[RockpiX/install | Install]] > [[RockpiX/install/Ubuntu | Install Ubuntu to ROCK Pi X (eMMC)]]<br />
<br />
== Introduction ==<br />
<br />
This article will teach you how to install ubuntu system to ROCK PI X.<br />
<br />
== Prepare ==<br />
* Ubuntu ISO image - You need a copy of the ubuntu ISO image, which can be downloaded from [https://ubuntu.com/download/desktop Ubuntu].<br />
* USB drive - We need this as the installation media<br />
* ROCK Pi X - It doesn't matter if the board has OS running already or not, as long as we have proper BIOS installed, we can install a new OS<br />
* Keyboard/mouse and HDMI monitor for ROCK Pi X - We need to operate on ROCK Pi X<br />
* Another PC(HOST PC) running Ubuntu - We need to make bootable USB drive from iso on this PC<br />
<br />
== Step 1: Make a bootable USB disk from Ubuntu ISO ==<br />
=== Linux Host ===<br />
<br />
Plug in the U disk and use the command to view the device node of the U disk:<br />
<br />
$ dmesg<br />
...<br />
[152495.190420] usb 2-1.1: new SuperSpeed Gen 1 USB device number 9 using xhci_hcd<br />
[152495.211005] usb 2-1.1: New USB device found, idVendor=2537, idProduct=1081, bcdDevice= 1.00<br />
[152495.211010] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3<br />
[152495.211013] usb 2-1.1: Product: NS1081<br />
[152495.211016] usb 2-1.1: Manufacturer: Norelsys<br />
[152495.211018] usb 2-1.1: SerialNumber: 81E22742AB574A1DAAB8A9FB1763CC<br />
[152495.213235] usb-storage 2-1.1:1.0: USB Mass Storage device detected<br />
[152495.213869] scsi host4: usb-storage 2-1.1:1.0<br />
[152498.161965] scsi 4:0:0:0: Direct-Access NORELSYS 1081 0 PQ: 0 ANSI: 6<br />
[152498.163651] scsi 4:0:0:0: Attached scsi generic sg2 type 0<br />
[152498.164259] sd 4:0:0:0: [sdc] 122683136 512-byte logical blocks: (62.8 GB/58.5 GiB)<br />
[152498.164602] sd 4:0:0:0: [sdc] Write Protect is off<br />
[152498.164606] sd 4:0:0:0: [sdc] Mode Sense: 43 00 00 00<br />
[152498.164874] sd 4:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA<br />
[152498.182278] sdc: sdc1 sdc2<br />
[152498.184061] sd 4:0:0:0: [sdc] Attached SCSI removable disk<br />
<br />
After querying that the device node is sdc, use the dd command to install the ubuntu ISO image file to the U disk:<br />
<br />
$ ls<br />
ubuntu-12.04.5-desktop-amd64.iso ubuntu-16.04.6-desktop-amd64.iso ubuntu-20.04-desktop-amd64.iso<br />
ubuntu-14.04.6-desktop-amd64.iso ubuntu-18.04.4-desktop-amd64.iso<br />
<br />
$ sudo dd if=ubuntu-20.04-desktop-amd64.iso of=/dev/sdc bs=8M status=progress<br />
301989888 bytes (302 MB, 288 MiB) copied, 8 s, 36.8 MB/s<br />
<br />
Wait for the installation is finished, U disk start disk production is completed.<br />
<br />
== Step 2: Boot from USB disk ==<br />
<br />
1. Plug the USB drive on ROCK Pi X, if your USB drive is USB 3.0, plug it to the ROCK Pi X USB 3.0 port is preferred.<br />
<br />
2. Plug keyboard and HDMI monitor on ROCK Pi X<br />
<br />
3. Power on the ROCK Pi X, keep pressing DEL on the keyboard until the BIOS screen is on HDMI<br />
<br />
4. Go the last tab [Save & Exit] -> [Boot Override] of BIOS menu, select your USB drive and press '''Enter''' to boot.<br />
<br />
[[File:Install_ubuntu_BIOS.png]]<br />
<br />
== Step 3: Installation ==<br />
<br />
Wait for some seconds and you see the familiar ubuntu installation screen, now you are ready to go.<br />
<br />
[[File:install_ubuntu_interface.png | 400px]]<br />
<br />
<br />
== FAQ ==<br />
1. [https://gist.github.com/cx-sawyer/f4f0a6198f738a986acbb71632af446a#file-readme-md How to enable AP6254 WiFi module]</div>
Cx
https://wiki.radxa.com/Rock3/Android11
Rock3/Android11
2022-01-10T08:32:47Z
<p>Cx: </p>
<hr />
<div>{{rock3_header}}<br />
<br />
{{Languages|rock3/Android11}}<br />
<br />
[[rock3 | ROCK 3]] > [[Rock3/Android11 | Andriod11]]<br />
<br />
<br />
<br />
<br />
Recommend build host is Ubuntu 20.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
==== Repo ====<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
==== DockerFile ====<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android9-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:11.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
==== Download source code ====<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk10.1 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
==== Build ====<br />
===== One Step build =====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
===== Parts Build =====<br />
====== Build u-boot ======<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
radxa:rock-android11/u-boot $ ./make.sh radxa_rock_3a_toybrick<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are '''idbloader.img''' , and '''uboot.img'''<br />
<br />
====== Building kernel ======<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3568-rock-3A-1.2.img -j$(nproc)<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
<br />
====== Building AOSP ======<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
====== Make images ======<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
====== Integrate Image ======<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3568_rock_3a_r Image<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rock-android11/rockdev $ ./mkupdate_rk368x.sh<br />
</code><br />
The images under rockdev/ are `update.img`<br />
<br />
2. gpt Image<br />
<code bash><br />
radxa:rock-android11/rockdev $ ./android-gpt.sh<br />
</code><br />
<br />
==== Installation ====<br />
* sdcard<br><br />
[https://wiki.radxa.com/Rock3/install/microSD Install on MicroSD]<br><br />
* emmc with reader<br><br />
[https://wiki.radxa.com/Rock3/install/eMMC Install on eMMC with USB to eMMC Reader]<br><br />
* emmc from usb port<br><br />
[https://wiki.radxa.com/Rock3/dev/usb-install Install on eMMC from USB port]</div>
Cx
https://wiki.radxa.com/Zero
Zero
2022-01-04T10:33:19Z
<p>Cx: </p>
<hr />
<div>{{Zero_header}}<br />
{{Languages|zero}}<br />
<br />
__NOTOC__<br />
<br />
<div class="col-md-12 "><br />
<div class="col-md-8 "><br />
= Radxa Zero=<br />
<br />
[[File:Zero-800px.png]]<br />
<br />
This is the Wiki page for Radxa Zero, written by Radxa Team with community contributions.<br />
<br />
Radxa Zero is an ultra thin SBC in small form factor with powerful performance based on Amlogic S905Y2. It can run Android and selected Linux distributions.<br />
<br />
Radxa Zero features a quad core 64-bit ARM processor, up to 4GB 32bit LPDDR4 memory, HDMI output at 4K@60, WiFi and Bluetooth connectivity, USB 3.0, and 40-pin GPIO header. Additionally, the power port can also be used for USB 2.0 OTG to connect more peripheral.<br />
<br />
Radxa Zero comes in multiple configurations to suit your need. Please check [[zero/hardware/models | Models & SKU]] for detail.<br />
<br />
</div> <!-- col-md-8 --> <br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-mango-white"><br />
<div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-star"></i> [[community_updates | What's new]]</h3> </div><br />
<div class="panel-body"><br />
<br />
{{Community_updates}}<br />
<br />
<br />
</div> <!-- panel-body --><br />
</div> <!-- panel panel-mango-white --><br />
</div> <!-- col-md-4 --><br />
<br />
</div> <!-- col-md-12 --><br />
<br />
<div class="col-md-12 "><br />
<br />
<div class="col-md-4"><br />
<div class="panel panel-hearts-white"> <br />
<div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-hand-o-up"></i> [[Zero/getting_started | Setup/Quick start ]]</h3> </div><br />
<div class="panel-body"><br />
* [[zero/getting_started | Getting started with your Radxa Zero]], including what you need and how to get it booted.<br />
* [[zero/hardware/gpio| GPIO pinout]]<br />
</div><br />
</div><br />
</div> <!-- col-md-4 --><br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-midnight-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-download"></i> [[zero/install | Installation]]</h3></div><br />
<div class="panel-body"><br />
<br />
Installing an operating system on your Zero. Booting from [[Zero/getting_started#Write_Image | micro SD]] or eMMC module are supported.<br />
<br />
* [[zero/install/eMMC_erase | Erase eMMC]]<br />
* [[Zero/install/eMMC | Install Linux to eMMC]]<br />
* [[Zero/install_eMMC_Android | Install Android to eMMC]]<br />
* [[Zero/install/Boot_Troubleshooting | Boot Troubleshooting]]<br />
<br />
</div> <!-- panel-body --><br />
</div> <!-- panel panel-mango-white --><br />
</div> <!-- col-md-4 --><br />
<br />
<div class="col-md-4"><br />
<div class="panel panel-mango-white"> <br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-cog"></i> [[zero/dev | Development]]</h3></div><br />
<div class="panel-body"><br />
<br />
* [https://github.com/radxa/debos-radxa debos-radxa] build Radxa official system images<br />
* [[zero/dev/serial-console | Attach to serial console]]<br />
* [[zero/dev/adb | Enable adb service in Linux]]<br />
* [[zero/dev/usb-mass-storage | Enable USB Mass Storage gadget in Linux]]<br />
* [[zero/dev/u-boot | Build U-Boot]]<br />
* [[zero/dev/kernel| Build kernel]]<br />
* [[zero/dev/libmraa | Install Libmraa]] to enable GPIO access and more<br />
<br />
[[zero/dev | > More...]]<br />
</div><br />
</div><br />
</div> <!-- col-md-4 --><br />
<br />
</div> <!-- col-md-12 --><br />
<br />
<div class="col-md-12 "><br />
<div class="col-md-4 "><br />
<div class="panel panel-cello-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-hdd-o"></i> [[zero/hardware | Hardware]] </h3></div><br />
<div class="panel-body"><br />
<br />
Technical specifications about the Radxa Zero hardware, including components datasheet, schematic, etc.<br />
<br />
* [[zero/hardware/zero | Main board]] - Hardware introduction of the Radxa Zero<br />
* [https://dl.radxa.com/zero/docs/hw/S905Y2%20Quick%20Reference%20Manual%20v0.7.pdf S905Y2 Quick Reference Manual] - The SoC datasheet of Radxa Zero<br />
* [[zero/hardware/models | Models and SKU]]<br />
* [[zero/hardware/display | Display]]<br />
* [[zero/hardware/camera/ | Camera module]]<br />
* [[Device-tree-overlays | Device Tree Overlays]]<br />
<br />
[[zero/hardware | > More...]]<br />
<br />
</div> <!-- panel-body --><br />
</div> <!-- panel panel-mango-white --><br />
</div> <!-- col-md-4 --><br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-gunmetal-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-linux"></i> [[zero/Linux | Working With Linux ]]</h3></div><br />
<div class="panel-body"><br />
Fundamental Linux usage for beginners and advanced use cases for power users.<br />
<br />
* [[zero/Debian | Debian]]<br />
* [[zero/Ubuntu | Ubuntu]]<br />
* [[zero/radxa-apt | Radxa APT repository]]<br />
* [[zero/downloads | Download images]]<br />
* [[Zero/Linux/usbnet | Enable USB Ethernet gadget]]<br />
</div> <!-- panel-body --><br />
</div> <!-- panel panel-mango-white --><br />
</div> <!-- col-md-4 --><br />
<br />
<div class="col-md-4"><br />
<div class="panel panel-meadow-white"> <br />
<div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-android"></i> [[zero/Android | Working With Android ]]</h3></div><br />
<div class="panel-body"><br />
Fundamental Android usage for beginners and more advanced information for power users.<br />
* [[Zero/Android9 | Android9]]<br />
<br />
</div><br />
</div><br />
</div><!-- col-md-4 --><br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-cocktail-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-users"></i> Community</h3></div><br />
<div class="panel-body"><br />
* Forum: https://forum.radxa.com/c/zero<br />
* Discord: https://rock.sh/go<br />
</div><br />
</div><br />
</div></div>
Cx
https://wiki.radxa.com/Zero/install_eMMC_Android
Zero/install eMMC Android
2022-01-04T10:33:06Z
<p>Cx: Created page with "{{Zero_header}} {{Languages|zero/install/eMMC_Android}} Radxa Zero > Installation > Install Android to eMMC..."</p>
<hr />
<div>{{Zero_header}}<br />
<br />
{{Languages|zero/install/eMMC_Android}}<br />
<br />
[[Zero | Radxa Zero]] > [[Zero/install | Installation]] > [[Zero/install/eMMC_Android | Install Android to eMMC]]<br />
<br />
=== How to install Android to Radxa Zero eMMC ===<br />
<br />
This guide describes how to install Android to Radxa Zero eMMC. Currently there are two types of Android image that can be flashed on Radxa Zero: Android OTA image, which is a zip archive with multiple smaller img files in it; and amlupdate image, which is just one big img file. Android OTA image is a standard image format that can be flashed by fastboot tool, while amlupdate image is a proprietary format and requires <code>aml-flash-tool</code>. This guide will only cover Android OTA image format. User of amlupdate image should follow [[Zero/install/eMMC_aml_tool| this guide]] instead.<br />
<br />
== Requirement ==<br />
<br />
* Radxa Zero<br />
* A PC/laptop running Windows, Linux, or macOS<br />
* USB A to C cable or C to C cable, depending on your host<br />
* [https://dl.radxa.com/zero/images/android/ Android 9 image], which should be unzipped after downloading, and you will find files like this in the folder:<br />
$ ls<br />
android-info.txt dtbo.img flash-all.sh product.img vbmeta.img<br />
boot.img dt.img logo.img recovery.img vendor.img<br />
bootloader.img flash-all.bat odm.img system.img<br />
<code>bootloader.img</code> will be needed later to run Zero in fastboot mode. Do not use <code>rz-fastboot-loader.bin</code> as it doesn't have the necessary partition info.<br />
<br />
== Windows ==<br />
<br />
Please follow [[Zero/dev/maskrom#Enable_maskrom | maskrom guide]] to load extracted <code>bootloader.img</code>. Google driver and nexus-tools are required so don't skip them.<br />
<br />
Execute <code>flash-all.bat</code> from your extracted Android folder to flash all partitions to eMMC. Some errors about missing file is normal.<br />
<br />
If command line cannot find adb/fastboot, you can add them to PATH variable with <code>set PATH='''YOUR_PATH_TO_ADB_FASTBOOT''';%PATH%;</code> and try again.<br />
<br />
You should unplug and replug USB cable after flashing. Otherwise your Radxa Zero will stay in maskrom mode.<br />
<br />
== Linux & macOS ==<br />
<br />
Please follow [[Zero/dev/maskrom#Enable_maskrom | maskrom guide]] to load extracted <code>bootloader.img</code>. nexus-tools is required so don't skip it.<br />
<br />
Execute <code>flash-all.sh</code> from your extracted Android folder to flash all partitions images to eMMC. Some errors about missing file is normal.<br />
<br />
If command line cannot find adb/fastboot, you can add them to PATH variable with <code>PATH='''YOUR_PATH_TO_ADB_FASTBOOT''':$PATH</code> and try again.<br />
<br />
You should unplug and replug USB cable after flashing. Otherwise your Radxa Zero will stay in maskrom mode.<br />
<br />
== FAQ ==<br />
===1. How to erase Android?===<br />
A:<br />
<br />
* To erase partitions, first load '''rz-udisk-loader.bin''' in maskrom mode, then run following command:<br />
<pre>dd if=/dev/zero of=/dev/<emmc device> bs=1M count=500</pre><br />
* [[Zero/install/eMMC_erase | To erase eMMC bootloader]]<br />
<br />
=== 2. Why is there no fastboot device? ===<br />
A: If the board not able to run into fastboot, please try:<br />
<br />
* If you can boot to android, try "adb reboot fastboot" or (uart console) "reboot fastboot"<br />
* If you can visit U-Boot console, execute command "fastboot"</div>
Cx
https://wiki.radxa.com/Zero/install/eMMC_Android
Zero/install/eMMC Android
2022-01-04T10:31:16Z
<p>Cx: </p>
<hr />
<div>{{Zero_header}}<br />
<br />
{{Languages|zero/install/eMMC_Android}}<br />
<br />
[[Zero | Radxa Zero]] > [[Zero/install | Installation]] > [[Zero/install/eMMC_Android | Install Android to eMMC]]<br />
<br />
=== How to install Android to Radxa Zero eMMC ===<br />
<br />
This guide describes how to install Android to Radxa Zero eMMC. Currently there are two types of Android image that can be flashed on Radxa Zero: Android OTA image, which is a zip archive with multiple smaller img files in it; and amlupdate image, which is just one big img file. Android OTA image is a standard image format that can be flashed by fastboot tool, while amlupdate image is a proprietary format and requires <code>aml-flash-tool</code>. This guide will only cover Android OTA image format. User of amlupdate image should follow [[Zero/install/eMMC_aml_tool| this guide]] instead.<br />
<br />
== Requirement ==<br />
<br />
* Radxa Zero<br />
* A PC/laptop running Windows, Linux, or macOS<br />
* USB A to C cable or C to C cable, depending on your host<br />
* [https://dl.radxa.com/zero/images/android/ Android 9 image], which should be unzipped after downloading, and you will find files like this in the folder:<br />
$ ls<br />
android-info.txt dtbo.img flash-all.sh product.img vbmeta.img<br />
boot.img dt.img logo.img recovery.img vendor.img<br />
bootloader.img flash-all.bat odm.img system.img<br />
<code>bootloader.img</code> will be needed later to run Zero in fastboot mode. Do not use <code>rz-fastboot-loader.bin</code> as it doesn't have the necessary partition info.<br />
<br />
== Windows ==<br />
<br />
Please follow [[Zero/dev/maskrom#Enable_maskrom | maskrom guide]] to load extracted <code>bootloader.img</code>. Google driver and nexus-tools are required so don't skip them.<br />
<br />
Execute <code>flash-all.bat</code> from your extracted Android folder to flash all partitions to eMMC. Some errors about missing file is normal.<br />
<br />
If command line cannot find adb/fastboot, you can add them to PATH variable with <code>set PATH='''YOUR_PATH_TO_ADB_FASTBOOT''';%PATH%;</code> and try again.<br />
<br />
You should unplug and replug USB cable after flashing. Otherwise your Radxa Zero will stay in maskrom mode.<br />
<br />
== Linux & macOS ==<br />
<br />
Please follow [[Zero/dev/maskrom#Enable_maskrom | maskrom guide]] to load extracted <code>bootloader.img</code>. nexus-tools is required so don't skip it.<br />
<br />
Execute <code>flash-all.sh</code> from your extracted Android folder to flash all partitions images to eMMC. Some errors about missing file is normal.<br />
<br />
If command line cannot find adb/fastboot, you can add them to PATH variable with <code>PATH='''YOUR_PATH_TO_ADB_FASTBOOT''':$PATH</code> and try again.<br />
<br />
You should unplug and replug USB cable after flashing. Otherwise your Radxa Zero will stay in maskrom mode.<br />
<br />
== FAQ ==<br />
===1. How to erase Android?===<br />
A:<br />
<br />
* To erase partitions, first load '''rz-udisk-loader.bin''' in maskrom mode, then run following command:<br />
<pre>dd if=/dev/zero of=/dev/<emmc device> bs=1M count=500</pre><br />
* [[Zero/install/eMMC_erase | To erase eMMC bootloader]]<br />
<br />
=== 2. Why is there no fastboot device? ===<br />
A: If the board not able to run into fastboot, please try:<br />
<br />
* If you can boot to android, try "adb reboot fastboot" or (uart console) "reboot fastboot"<br />
* If you can visit U-Boot console, execute command "fastboot"</div>
Cx
https://wiki.radxa.com/Zero/install/eMMC_Android
Zero/install/eMMC Android
2022-01-04T10:24:20Z
<p>Cx: </p>
<hr />
<div>{{Zero_header}}<br />
<br />
{{Languages|zero/install/eMMC_Android}}<br />
<br />
[[zero | Radxa Zero]] > [[zero/install | Installation]] > [[zero/install/eMMC_Android | Install Android to eMMC]]<br />
<br />
=== How to install Android to Radxa Zero eMMC ===<br />
<br />
This guide describes how to install Android to Radxa Zero eMMC. Currently there are two types of Android image that can be flashed on Radxa Zero: Android OTA image, which is a zip archive with multiple smaller img files in it; and amlupdate image, which is just one big img file. Android OTA image is a standard image format that can be flashed by fastboot tool, while amlupdate image is a proprietary format and requires <code>aml-flash-tool</code>. This guide will only cover Android OTA image format. User of amlupdate image should follow [[Zero/install/eMMC_aml_tool| this guide]] instead.<br />
<br />
== Requirement ==<br />
<br />
* Radxa Zero<br />
* A PC/laptop running Windows, Linux, or macOS<br />
* USB A to C cable or C to C cable, depending on your host<br />
* [https://dl.radxa.com/zero/images/android/ Android 9 image], which should be unzipped after downloading, and you will find files like this in the folder:<br />
$ ls<br />
android-info.txt dtbo.img flash-all.sh product.img vbmeta.img<br />
boot.img dt.img logo.img recovery.img vendor.img<br />
bootloader.img flash-all.bat odm.img system.img<br />
<code>bootloader.img</code> will be needed later to run Zero in fastboot mode. Do not use <code>rz-fastboot-loader.bin</code> as it doesn't have the necessary partition info.<br />
<br />
== Windows ==<br />
<br />
Please follow [[Zero/dev/maskrom#Enable_maskrom | maskrom guide]] to load extracted <code>bootloader.img</code>. Google driver and nexus-tools are required so don't skip them.<br />
<br />
Execute <code>flash-all.bat</code> from your extracted Android folder to flash all partitions to eMMC. Some errors about missing file is normal.<br />
<br />
If command line cannot find adb/fastboot, you can add them to PATH variable with <code>set PATH='''YOUR_PATH_TO_ADB_FASTBOOT''';%PATH%;</code> and try again.<br />
<br />
You should unplug and replug USB cable after flashing. Otherwise your Radxa Zero will stay in maskrom mode.<br />
<br />
== Linux & macOS ==<br />
<br />
Please follow [[Zero/dev/maskrom#Enable_maskrom | maskrom guide]] to load extracted <code>bootloader.img</code>. nexus-tools is required so don't skip it.<br />
<br />
Execute <code>flash-all.sh</code> from your extracted Android folder to flash all partitions images to eMMC. Some errors about missing file is normal.<br />
<br />
If command line cannot find adb/fastboot, you can add them to PATH variable with <code>PATH='''YOUR_PATH_TO_ADB_FASTBOOT''':$PATH</code> and try again.<br />
<br />
You should unplug and replug USB cable after flashing. Otherwise your Radxa Zero will stay in maskrom mode.<br />
<br />
== FAQ ==<br />
===1. How to erase Android?===<br />
A:<br />
<br />
* To erase partitions, first load '''rz-udisk-loader.bin''' in maskrom mode, then run following command:<br />
<pre>dd if=/dev/zero of=/dev/<emmc device> bs=1M count=500</pre><br />
* [[Zero/install/eMMC_erase | To erase eMMC bootloader]]<br />
<br />
=== 2. Why is there no fastboot device? ===<br />
A: If the board not able to run into fastboot, please try:<br />
<br />
* If you can boot to android, try "adb reboot fastboot" or (uart console) "reboot fastboot"<br />
* If you can visit U-Boot console, execute command "fastboot"</div>
Cx
https://wiki.radxa.com/Zero
Zero
2022-01-04T10:00:54Z
<p>Cx: </p>
<hr />
<div>{{Zero_header}}<br />
{{Languages|zero}}<br />
<br />
__NOTOC__<br />
<br />
<div class="col-md-12 "><br />
<div class="col-md-8 "><br />
= Radxa Zero=<br />
<br />
[[File:Zero-800px.png]]<br />
<br />
This is the Wiki page for Radxa Zero, written by Radxa Team with community contributions.<br />
<br />
Radxa Zero is an ultra thin SBC in small form factor with powerful performance based on Amlogic S905Y2. It can run Android and selected Linux distributions.<br />
<br />
Radxa Zero features a quad core 64-bit ARM processor, up to 4GB 32bit LPDDR4 memory, HDMI output at 4K@60, WiFi and Bluetooth connectivity, USB 3.0, and 40-pin GPIO header. Additionally, the power port can also be used for USB 2.0 OTG to connect more peripheral.<br />
<br />
Radxa Zero comes in multiple configurations to suit your need. Please check [[zero/hardware/models | Models & SKU]] for detail.<br />
<br />
</div> <!-- col-md-8 --> <br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-mango-white"><br />
<div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-star"></i> [[community_updates | What's new]]</h3> </div><br />
<div class="panel-body"><br />
<br />
{{Community_updates}}<br />
<br />
<br />
</div> <!-- panel-body --><br />
</div> <!-- panel panel-mango-white --><br />
</div> <!-- col-md-4 --><br />
<br />
</div> <!-- col-md-12 --><br />
<br />
<div class="col-md-12 "><br />
<br />
<div class="col-md-4"><br />
<div class="panel panel-hearts-white"> <br />
<div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-hand-o-up"></i> [[Zero/getting_started | Setup/Quick start ]]</h3> </div><br />
<div class="panel-body"><br />
* [[zero/getting_started | Getting started with your Radxa Zero]], including what you need and how to get it booted.<br />
* [[zero/hardware/gpio| GPIO pinout]]<br />
</div><br />
</div><br />
</div> <!-- col-md-4 --><br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-midnight-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-download"></i> [[zero/install | Installation]]</h3></div><br />
<div class="panel-body"><br />
<br />
Installing an operating system on your Zero. Booting from [[Zero/getting_started#Write_Image | micro SD]] or eMMC module are supported.<br />
<br />
* [[zero/install/eMMC_erase | Erase eMMC]]<br />
* [[Zero/install/eMMC | Install Linux to eMMC]]<br />
* [[Zero/install/eMMC_Android | Install Android to eMMC]]<br />
* [[Zero/install/Boot_Troubleshooting | Boot Troubleshooting]]<br />
<br />
</div> <!-- panel-body --><br />
</div> <!-- panel panel-mango-white --><br />
</div> <!-- col-md-4 --><br />
<br />
<div class="col-md-4"><br />
<div class="panel panel-mango-white"> <br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-cog"></i> [[zero/dev | Development]]</h3></div><br />
<div class="panel-body"><br />
<br />
* [https://github.com/radxa/debos-radxa debos-radxa] build Radxa official system images<br />
* [[zero/dev/serial-console | Attach to serial console]]<br />
* [[zero/dev/adb | Enable adb service in Linux]]<br />
* [[zero/dev/usb-mass-storage | Enable USB Mass Storage gadget in Linux]]<br />
* [[zero/dev/u-boot | Build U-Boot]]<br />
* [[zero/dev/kernel| Build kernel]]<br />
* [[zero/dev/libmraa | Install Libmraa]] to enable GPIO access and more<br />
<br />
[[zero/dev | > More...]]<br />
</div><br />
</div><br />
</div> <!-- col-md-4 --><br />
<br />
</div> <!-- col-md-12 --><br />
<br />
<div class="col-md-12 "><br />
<div class="col-md-4 "><br />
<div class="panel panel-cello-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-hdd-o"></i> [[zero/hardware | Hardware]] </h3></div><br />
<div class="panel-body"><br />
<br />
Technical specifications about the Radxa Zero hardware, including components datasheet, schematic, etc.<br />
<br />
* [[zero/hardware/zero | Main board]] - Hardware introduction of the Radxa Zero<br />
* [https://dl.radxa.com/zero/docs/hw/S905Y2%20Quick%20Reference%20Manual%20v0.7.pdf S905Y2 Quick Reference Manual] - The SoC datasheet of Radxa Zero<br />
* [[zero/hardware/models | Models and SKU]]<br />
* [[zero/hardware/display | Display]]<br />
* [[zero/hardware/camera/ | Camera module]]<br />
* [[Device-tree-overlays | Device Tree Overlays]]<br />
<br />
[[zero/hardware | > More...]]<br />
<br />
</div> <!-- panel-body --><br />
</div> <!-- panel panel-mango-white --><br />
</div> <!-- col-md-4 --><br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-gunmetal-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-linux"></i> [[zero/Linux | Working With Linux ]]</h3></div><br />
<div class="panel-body"><br />
Fundamental Linux usage for beginners and advanced use cases for power users.<br />
<br />
* [[zero/Debian | Debian]]<br />
* [[zero/Ubuntu | Ubuntu]]<br />
* [[zero/radxa-apt | Radxa APT repository]]<br />
* [[zero/downloads | Download images]]<br />
* [[Zero/Linux/usbnet | Enable USB Ethernet gadget]]<br />
</div> <!-- panel-body --><br />
</div> <!-- panel panel-mango-white --><br />
</div> <!-- col-md-4 --><br />
<br />
<div class="col-md-4"><br />
<div class="panel panel-meadow-white"> <br />
<div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-android"></i> [[zero/Android | Working With Android ]]</h3></div><br />
<div class="panel-body"><br />
Fundamental Android usage for beginners and more advanced information for power users.<br />
* [[Zero/Android9 | Android9]]<br />
<br />
</div><br />
</div><br />
</div><!-- col-md-4 --><br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-cocktail-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-users"></i> Community</h3></div><br />
<div class="panel-body"><br />
* Forum: https://forum.radxa.com/c/zero<br />
* Discord: https://rock.sh/go<br />
</div><br />
</div><br />
</div></div>
Cx
https://wiki.radxa.com/Zero/Android9
Zero/Android9
2022-01-04T10:00:48Z
<p>Cx: </p>
<hr />
<div>{{Zero_header}}<br />
<br />
{{Languages|zero/Android9}}<br />
<br />
[[Zero | Radxa Zero]] > [[zero/Android9 | Android9]]<br />
<br />
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
==== Repo ====<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
==== Init Environment ====<br />
Android's source code primarily consists of Java, C++, and XML files.<br><br />
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.<br />
<code bash><br />
radxa$ apt-get update -y && apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev lzop rsync<br />
radxa$ pip install pycrypto<br />
</code><br />
Configure the JAVA environment<br />
<code bash><br />
radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64<br />
radxa$ export PATH=$JAVA_HOME/bin:$PATH<br />
radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar<br />
</code><br />
<br />
==== DockerFile ====<br />
<code><br />
FROM ubuntu:xenial<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev lzop rsync<br />
RUN pip install pycrypto<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo<br />
<br />
RUN which repo<br />
<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android9-docker<br />
<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android9-docker<br />
<br />
# git config<br />
RUN echo "[user]" > /home/android9-docker/.gitconfig"<br />
RUN echo " name = android9-docker" >> /home/android9-docker/.gitconfig<br />
RUN echo " email = android9-docker@radxa.com" >> /home/android9-docker/.gitconfig<br />
<br />
USER android9-docker<br />
<br />
<br />
</code><br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:9.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
==== Download source code ====<br />
<code bash><br />
radxa$ mkdir zero-android9<br />
radxa$ cd zero-android9<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:zero-android9$ repo init -u https://gitlab.com/amlogic-android/manifests.git -b p-amlogic -m radxa-w2-p-release.xml<br />
radxa:zero-android9$ repo sync -d --no-tags -j4<br />
</code><br />
It might take quite a bit of time to fetch the entire AOSP source code(more than 50GB)!<br />
<br />
==== One Step Build ====<br />
<code bash><br />
./device/amlogic/common/quick_compile.sh 14 1<br />
</code bash><br />
==== Build u-boot ====<br />
<code bash><br />
radxa:zero-android9 $ cd bootloader/uboot-repo<br />
radxa:zero-android9/bootloader/uboot-repo$ ./mk radxa_zero --systemroot<br />
cp build/u-boot.bin ../../device/amlogic/$project_path/bootloader.img;<br />
<br />
cp build/u-boot.bin.usb.bl2 ../../device/amlogic/faraday/upgrade/u-boot.bin.usb.bl2;<br />
cp build/u-boot.bin.usb.tpl ../../device/amlogic/faraday/upgrade/u-boot.bin.usb.tpl;<br />
cp build/u-boot.bin.sd.bin ../../device/device/amlogic/faraday/upgrade/u-boot.bin.sd.bin;<br />
<br />
radxa:zero-android9/bootloader/uboot-repo$ cd -<br />
</code><br />
<br />
==== Building AOSP ====<br />
<code bash><br />
radxa:zero-android9$ source build/envsetup.sh<br />
radxa:zero-android9$ lunch faraday-userdebug<br />
radxa:zero-android9$ make otapackage -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br/><br />
Image will be saved as a zip archive in directory <b>out/target/product/faraday</b>.<br/><br />
The format of file name will be like this <b>faraday-fastboot-flashall-20211104.zip</b><br />
<br />
==== Installation ====<br />
<br />
See https://wiki.radxa.com/Zero/install/eMMC_Android</div>
Cx
https://wiki.radxa.com/Zero/Android9
Zero/Android9
2022-01-04T10:00:19Z
<p>Cx: Created page with "{{Zero_header}} {{Languages|zero/Android9}} Radxa Zero > Android9 Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer o..."</p>
<hr />
<div>{{Zero_header}}<br />
<br />
{{Languages|zero/Android9}}<br />
<br />
[[Zero | Radxa Zero]] > [[zero/Android9 | Android9]]<br />
<br />
<br />
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
==== Repo ====<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
==== Init Environment ====<br />
Android's source code primarily consists of Java, C++, and XML files.<br><br />
To compile the source code, you'll need to install OpenJDK 8, GNU C and C++ compilers, XML parsing libraries, ImageMagick, and several other related packages.<br />
<code bash><br />
radxa$ apt-get update -y && apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev lzop rsync<br />
radxa$ pip install pycrypto<br />
</code><br />
Configure the JAVA environment<br />
<code bash><br />
radxa$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64<br />
radxa$ export PATH=$JAVA_HOME/bin:$PATH<br />
radxa$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar<br />
</code><br />
<br />
==== DockerFile ====<br />
<code><br />
FROM ubuntu:xenial<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python python-pip git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev lzop rsync<br />
RUN pip install pycrypto<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo<br />
<br />
RUN which repo<br />
<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' USER=android9-docker<br />
<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android9-docker<br />
<br />
# git config<br />
RUN echo "[user]" > /home/android9-docker/.gitconfig"<br />
RUN echo " name = android9-docker" >> /home/android9-docker/.gitconfig<br />
RUN echo " email = android9-docker@radxa.com" >> /home/android9-docker/.gitconfig<br />
<br />
USER android9-docker<br />
<br />
<br />
</code><br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:9.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
==== Download source code ====<br />
<code bash><br />
radxa$ mkdir zero-android9<br />
radxa$ cd zero-android9<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:zero-android9$ repo init -u https://gitlab.com/amlogic-android/manifests.git -b p-amlogic -m radxa-w2-p-release.xml<br />
radxa:zero-android9$ repo sync -d --no-tags -j4<br />
</code><br />
It might take quite a bit of time to fetch the entire AOSP source code(more than 50GB)!<br />
<br />
==== One Step Build ====<br />
<code bash><br />
./device/amlogic/common/quick_compile.sh 14 1<br />
</code bash><br />
==== Build u-boot ====<br />
<code bash><br />
radxa:zero-android9 $ cd bootloader/uboot-repo<br />
radxa:zero-android9/bootloader/uboot-repo$ ./mk radxa_zero --systemroot<br />
cp build/u-boot.bin ../../device/amlogic/$project_path/bootloader.img;<br />
<br />
cp build/u-boot.bin.usb.bl2 ../../device/amlogic/faraday/upgrade/u-boot.bin.usb.bl2;<br />
cp build/u-boot.bin.usb.tpl ../../device/amlogic/faraday/upgrade/u-boot.bin.usb.tpl;<br />
cp build/u-boot.bin.sd.bin ../../device/device/amlogic/faraday/upgrade/u-boot.bin.sd.bin;<br />
<br />
radxa:zero-android9/bootloader/uboot-repo$ cd -<br />
</code><br />
<br />
==== Building AOSP ====<br />
<code bash><br />
radxa:zero-android9$ source build/envsetup.sh<br />
radxa:zero-android9$ lunch faraday-userdebug<br />
radxa:zero-android9$ make otapackage -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br/><br />
Image will be saved as a zip archive in directory <b>out/target/product/faraday</b>.<br/><br />
The format of file name will be like this <b>faraday-fastboot-flashall-20211104.zip</b><br />
<br />
==== Installation ====<br />
<br />
See https://wiki.radxa.com/Zero/install/eMMC_Android</div>
Cx
https://wiki.radxa.com/Rockpi4/rockpi-android11
Rockpi4/rockpi-android11
2021-12-03T07:30:35Z
<p>Cx: </p>
<hr />
<div>__NOTOC__<br />
<br />
{{rockpi4_header}}<br />
<br />
{{Languages|Rockpi4/rockpi-android11}}<br />
<br />
[[rockpi4 | ROCK Pi 4]] > [[Rockpi4/rockpi-android11 | Android11]]<br />
<br />
<br />
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
=== Repo ===<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
=== DockerFile ===<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
#### for China <br />
RUN rm /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse" | tee /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse" >> /etc/apt/sources.list<br />
#### for Chine end<br />
<br />
ENV DEBIAN_FRONTEND noninteractive<br />
<br />
RUN apt-get update -y && apt-get install -y software-properties-common<br />
RUN add-apt-repository -y ppa:deadsnakes/ppa<br />
RUN apt-get update -y && apt-get install -y python3.8<br />
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 150<br />
RUN apt-get install -y python-pip && pip install pycrypto<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl gawk liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev sudo rsync python3-pyelftools cpio<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android11-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:10.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
=== Download source code ===<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk10.1 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
=== Build ===<br />
==== One Step build ====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
- if build Rock PI 4AB<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4B_Android11-userdebug<br />
- if build Rock PI 4C<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4C_Android11-userdebug<br />
- if build Rock Fuhai<br />
radxa:rock-android11 $ lunch rk3399_ROCKPIFuhai_Android11-userdebug<br />
<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
==== Parts Build ====<br />
===== Build u-boot =====<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
- if build Rock PI 4AB or Rock Fuhai<br />
radxa:rock-android11/u-boot $ ./make.sh rockpi4b<br />
- else if build Rock PI 4C<br />
radxa:rock-android11/u-boot $ ./make.sh rockpi4c<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are **idbloader.img**<br />
<br />
===== Building kernel =====<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
- Rock PI 4AB<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4b.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-rockpi-4b.img -j$(nproc)<br />
- Rock PI 4C<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4c.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-rockpi-4c.img -j$(nproc)<br />
- Rock Fuhai<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4b.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-fuhai-evb.img -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
The generated images are **kernel.img** and **resource.img**:<br />
<br />
# kernel.img, kernel with rkcrc checksum<br />
# resource.img, contains dtb and boot logo, Rockchip format resource package<br />
<br />
===== Building AOSP =====<br />
<code bash><br />
radxa:rock-android11 $ source buile/envsetup.sh<br />
- Rock PI 4AB<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4B_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
- Rock PI 4C<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4C_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
- Rock Fuhai<br />
radxa:rock-android11 $ lunch rk3399_ROCKPIFuhai_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
<br />
===== Generate images =====<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
===== Generated Image =====<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
- Rock PI 4AB<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPI4B_Android11 Image<br />
- Rock PI 4C<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPI4C_Android11 Image<br />
- Rock Fuhai<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPIFuhai_Android11 Image<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rockpi4-android11/rockdev$ ./mkupdate_rk3399.sh<br />
</code><br />
get `update.img` from `Image` directroy<br />
<br />
2. GPT image<br />
<code><br />
radxa:rockpi4-android11/rockdev$ ./android-gpt.sh<br />
</code><br />
get `gpt.img` from `Image` directroy<br />
=== Installation ===<br />
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]<br></div>
Cx
https://wiki.radxa.com/Rockpi4
Rockpi4
2021-12-03T07:03:39Z
<p>Cx: </p>
<hr />
<div>{{rockpi4_header}}<br />
<br />
{{Languages|rockpi4}}<br />
<br />
<br />
__NOTOC__<br />
<br />
<br />
<div class="col-md-12 "><br />
<div class="col-md-8 "><br />
= ROCK Pi 4=<br />
This is the documentation for ROCK Pi 4, written by Radxa Team with community contributions.<br />
<br />
ROCK Pi 4 is a Rockchip RK3399 based SBC(Single Board Computer) by [[Special:SpecialContact/| Radxa]]. It can run android or some Linux distributions.<br />
ROCK Pi 4 features a six core ARM processor, 64bit dual channel 3200Mb/s LPDDR4, up to 4K@60 HDMI, MIPI DSI, MIPI CSI, 3.5mm jack with mic, 802.11 ac WIFI, Bluetooth 5.0, USB Port, GbE LAN, 40-pin color expansion header, RTC. Also, ROCK Pi 4 supports USB PD and QC powering.<br />
<br />
ROCK Pi 4 comes in two models, Model A and Model B, each model has 1GB, 2GB or 4GB ram options. for detailed difference of Model A and Model B, please check [[Rockpi4/getting_started#get_start_specs | Specifications]].<br />
<br />
<div class="panel panel-mango-white"> <br />
<div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-star"></i> [[community_updates | What's new]]</h3> </div><br />
<div class="panel-body"><br />
<br />
{{Community_updates}}<br />
<br />
<br />
</div><br />
</div><br />
<br />
</div><br />
<div class="col-md-4 "><br />
[[File:Rockpi_4B_v13_breadboard_front_portrait.png |440px ]]<br />
</div><br />
</div><br />
<br />
<div class="col-md-12 "><br />
<div class="col-md-4"><br />
<div class="panel panel-hearts-white"> <br />
<div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-hand-o-up"></i> [[Rockpi4/getting_started | Setup/Quick start ]]</h3> </div><br />
<div class="panel-body"><br />
* [[Rockpi4/getting_started | Getting started with your ROCK Pi 4]], including what you need and how to get it booted.<br />
* [[Rockpi4/hardware/gpio| GPIO pinout]]<br />
* [[Rockpi4/backup | Backup and Restore your SD card or eMMC module]]<br />
* [[Rockpi4/hardware/M2_extend | How to mount SSD with M2 extension board]]<br />
<br />
</div><br />
</div><br />
</div><br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-midnight-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-download"></i> [[rockpi4/install | Installation]]</h3></div><br />
<div class="panel-body"><br />
Installing an operating system on your ROCK PI 4, including microSD card, eMMC module, USB drive and M.2 NVME SSD, <br />
<br />
* [[rockpi4/install/microSD | Install on microSD card]]<br />
* [[rockpi4/install/eMMC | Install on eMMC module]]<br />
* [[rockpi4/dev/spi-install | Install on SPI Flash]]<br />
* [[rockpi4/install/USB | Install on USB drive(wip)]]<br />
* [[rockpi4/install/NVME | Install on M.2 NVME SSD]]<br />
<div class="toccolours mw-collapsible mw-collapsed" style="overflow:auto;"><br />
[[rockpi4/install | > More...]]<br />
<div class="mw-collapsible-content"><br />
<br />
* [[rockpi4/radxa-apt | Update from Radxa Apt]]<br />
* [[rockpi4/partitions | Partition table]]<br />
</div><br />
</div><br />
</div><br />
</div><br />
</div><br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-mango-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-cog"></i> [[rockpi4/dev | Development]]</h3></div><br />
<div class="panel-body"><br />
Information about Linux and Android development, this is mostly for developers.<br />
* [[rockpi4/dev/usb-install | USB Installation]] - How to use PC tools to install image on ROCK Pi 4.<br />
* [[rockpi4/dev/serial-console | Serial Console]] - Serial console on GPIO header<br />
* [[rockpi4/dev/Debian | Build Debian]] - Build and generate Debian image<br />
* [[rockpi4/dev/kernel-4.4 | Build vendor kernel(Rockchip 4.4)]] - Build vendor kernel for ROCK Pi 4<br />
* [[rockpi4/dev/rockpi-android-tv | Build Android (nougat) TV]] - Build Android for ROCK Pi 4<br />
* [[Yocto-layer-for-radxa-boards | Build Yocto ]] - Build Yocto for ROCK Pi 4<br />
<div class="toccolours mw-collapsible mw-collapsed" style="overflow:auto;"><br />
[[rockpi4/dev | > More...]]<br />
<div class="mw-collapsible-content"><br />
* [[rockpi4/dev/spi-install | Install images to SPI flash]] describe how to write bootloader to SPI flash on ROCK Pi 4.<br />
* [[rockpi4/dev/kernel-mainline | Build mainline kernel(kernel 5.x)]]<br />
* [[rockpi4/dev/u-boot | U-boot ]]<br />
* [[rockpi4/dev/usbnet | USB Device Network]]<br />
* [[rockpi4/dev/install-opencv | Install OpenCV]]<br />
* [[rockpi4/dev/libmraa | Install Libmraa ]]<br />
* [[rockpi4/dev/install-opencl | Install OpenCL ]]<br />
</div><br />
</div><br />
</div><br />
</div><br />
</div><br />
<br />
</div><div class="clearfix"></div><br />
<br />
<div class="col-md-12 "><br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-cello-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-hdd-o"></i> [[rockpi4/hardware|Hardware]] </h3></div><br />
<div class="panel-body"><br />
Technical specifications about the ROCK Pi 4 hardware, including WI-FI, display, camera, etc.<br />
<br />
* [[News/2018/11/introduce-the-new-rockpi-4-hardware | Blog post]] from Radxa Team introducing the ROCK Pi hardware design<br />
* [[Rockpi4/hardware/rockpi4 | ROCK Pi 4]] - Introduction of the ROCK Pi 4 hardware<br />
* [[Rockpi4/hardware/display | Display]]<br />
* [[Rockpi4/hardware/camera/ | Camera module]]<br />
* [[Rockpi4/hardware/devtree_overlays | Device Tree Overlays]] - Use other HAT<br />
<div class="toccolours mw-collapsible mw-collapsed" style="overflow:auto;"><br />
[[rockpi4/hardware | > More...]]<br />
<div class="mw-collapsible-content"><br />
* [[Rockpi4/hardware/rockpi4 | ROCK Pi 4]] - Introduction of the ROCK Pi 4 hardware<br />
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v13_sch_20181112.pdf v1.3 schematic pdf] - Download Schematic of ROCK Pi 4 <br />
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/ROCK-Pi-4B-3D.stp.gz 3D drawing STP] - Download 3D model of ROCK Pi 4<br />
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v14_2d_201811122_bottom.dxf 2D Bottom dxf], [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v14_2d_201811122_top.dxf 2D Top dxf] - Download 2D CAD of ROCK Pi 4<br />
** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v14_components_reference_201811122.pdf v1.4 CAM pdf] - Download components Position Reference of ROCK Pi 4<br />
** [[Rockpi4/hardware/revision | Hardware Revision]] - Difference between each hardware revisions.<br />
<br />
<br />
* Datasheet<br />
** [http://rockchip.fr/RK3399%20datasheet%20V1.8.pdf RK3399 datasheet] - The SoC of ROCK Pi 4<br />
** RK3399 TRM(Technical Reference Manual) [http://rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part1.pdf Part] [http://rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part2.pdf Part2] - The detail about RK3399<br />
** [http://rockchip.fr/RK808%20datasheet%20V1.4.pdf RK808] - The PMIC<br />
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/AP6256%20datasheet_V1.3_12202017.pdf AP6256] - The wifi/bt combo<br />
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/LDR6015T%20Spec%20EN%20V1.0.pdf LDR6015] - The USB PD protocol IC<br />
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/ES8316%20PB.pdf ES8316] - The audio codec<br />
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/FORESEE_LPDDR4_200ball_NCLD4CXMAXXXM32_10x14.5_VFBGA_Spec_B1_20170802.pdf Foresee LPDDR4] - The DRAM chip <br />
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/RTL8211E(G)-VB(VL)-CG-DataSheet-1.7.pdf RTL8211E] - The ethernet phy<br />
<br />
-------<br />
<br />
* [[rockpi4/hardware/gpio | GPIO]]<br />
* [[rockpi4/hardware/emmc | eMMC module]]<br />
* [[Rockpi4/hardware/usb3_eMMC_reader | USB3 eMMC Reader]]<br />
* [[rockpi4/hardware/rtc | RTC battery]]<br />
<br />
* Official heatsink<br />
** [https://dl.radxa.com/rockpi4/docs/hw/heatsink-1225-al-1.stp 3D drawing] - 3D model of official heatsink<br />
* [[Rockpi4/hardware/display | Display]]<br />
* [[Rockpi4/hardware/camera/ | Camera module]]<br />
* [[Rockpi4/hardware/PoE | PoE module]]<br />
* [[Rockpi4/hardware/HATs | HATs]]<br />
* [[Rockpi4/hardware/M2_extend | M.2 extend board]]<br />
** 2D file for M.2 extend board - [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/PCIE_to_FPC_V1.4.dxf Connector to FPC board], [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/FPC_to_M2_V1.4.dxf SSD mount board]<br />
** Schematic of M.2 extend board - [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/rockpi4-m2-extend-sch_pcie_to_fpc_V1.4.pdf Connector to FPC board], [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/rockpi4-m2-extend-sch_fpc_to_m2_V1.4.pdf SSD mount board]<br />
* [[Rockpi4/hardware/spi_flash | SPI Flash]]<br />
<br />
* [[Rockpi4/hardware/devtree_overlays | Device Tree Overlays]]<br />
<br />
* Compliance<br />
** [https://dl.radxa.com/rockpi4/docs/hw/compliance/BCTC-FY190200673C_ROCK_PI_4_RED_certification.pdf CE RED] - EU<br />
<br />
</div><br />
</div><br />
</div><br />
</div><br />
</div><br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-gunmetal-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-linux"></i> [[Rockpi4/working-with-linux | Working With Linux ]]</h3></div><br />
<div class="panel-body"><br />
Fundamental Linux usage for beginners and more advanced information for power users.<br />
* [[Rockpi4/Debian | Debian Desktop]]<br />
* [[Rockpi4/Ubuntu | Ubuntu Server]]<br />
* [[Rockpi4/Linux system runs on M.2 NVME SSD | Linux system runs on M.2 NVME SSD]]<br />
* [[Rockpi4/radxa-apt | Radxa APT]]<br />
* [[Rockpi4/Docker | Docker]]<br />
* [[Rockpi4/Samba | Samba]]<br />
<div class="toccolours mw-collapsible mw-collapsed" style="overflow:auto;"><br />
> More...<br />
<div class="mw-collapsible-content"><br />
* [[Rockpi4/Sgminer | Sgminer - OpenCL GPU Miner ]]<br />
* [[Rockpi4/downloads | Images official/3rd party/community]]<br />
* [[rockpi4/CPU overclocking | CPU overclocking]]<br />
* [[rockpi4/MIPI Camera | Using MIPI Camera on ROCK Pi 4]]<br />
* [[rockpi4/Raspberry Pi official LCD | Using Raspberry Pi official LCD Screen]]<br />
* [[rockpi4/Use 4G Module on ROCK Pi 4 | Use 4G Module on ROCK Pi 4]]<br />
</div><br />
</div><br />
</div><br />
</div><br />
</div><br />
<br />
<div class="col-md-4"><br />
<div class="panel panel-meadow-white"> <br />
<div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-android"></i> [http://wiki.radxa.com/Rockpi4/Android Working With Android ]</h3></div><br />
<div class="panel-body"><br />
Fundamental Android usage for beginners and more advanced information for power users.<br />
* [[Rockpi4/rockpi-android7 | Android7 Tablet(Support Raspberry Pi official 7" Display)]]<br />
* [[Rockpi4/dev/rockpi-android-tv | Android7 TV]]<br />
* [[Rockpi4/rockpi-android9 | Android9 Tablet]]<br />
* [[Rockpi4/rockpi-android9 | Android9 TV]]<br />
* [[Rockpi4/install/android-NVME | Android9 Run on M.2 NVME SSD]]<br />
* [[Rockpi4/android-mraa | Android9 Mraa API]]<br />
* [[Rockpi4/rockpi-android10 | Android10 Tablet]]<br />
* [[Rockpi4/rockpi-android11 | Android11]]<br />
* [https://forum.radxa.com/t/solve-google-play-device-is-not-play-protect-certified-issue/229 Solve Google Play Device is not Play Protect certified issue]<br />
</div><br />
</div><br />
</div><br />
</div><div class="clearfix"></div><br />
<br />
<div class="col-md-12 "><br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-hearts-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-ban"></i> Remote Access</h3></div><br />
<div class="panel-body"><br />
* [https://wiki.radxa.com/Rockpi4/vnc Connected ROCK Pi via VNC]<br />
* Accessing your ROCK Pi 4 remotely via SSH or over the web.<br />
</div><br />
</div><br />
</div><br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-cocktail-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-question"></i> [[rockpi4/FAQs | FAQs]]</h3></div><br />
<div class="panel-body"><br />
* Answers to frequently asked technical questions<br />
* Answers to sale of ROCK Pi 4<br />
</div><br />
</div><br />
</div><br />
<br />
<div class="col-md-4 "><br />
<div class="panel panel-cocktail-white"><br />
<div class="panel-heading"><h3 class="panel-title"><i class="fa fa-users"></i> Community</h3></div><br />
<div class="panel-body"><br />
* Forum: http://forum.radxa.com<br />
* Discord: https://rock.sh/go<br />
* Telegram Group: https://t.me/rockpi4<br />
* [[rockpi4/contribute | How to contribute to this wiki]]<br />
</div><br />
</div><br />
</div><br />
</div><div class="clearfix"></div></div>
Cx
https://wiki.radxa.com/Rockpi4/rockpi-android11
Rockpi4/rockpi-android11
2021-12-03T06:48:59Z
<p>Cx: Created page with "__NOTOC__ {{rockpi4_header}} {{Languages|Rockpi4/rockpi-android11}} ROCK Pi 4 > Android11 Recommend build host is Ubuntu 16..."</p>
<hr />
<div>__NOTOC__<br />
<br />
{{rockpi4_header}}<br />
<br />
{{Languages|Rockpi4/rockpi-android11}}<br />
<br />
[[rockpi4 | ROCK Pi 4]] > [[Rockpi4/rockpi-android11 | Android11]]<br />
<br />
<br />
Recommend build host is Ubuntu 16.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
=== Repo ===<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
=== DockerFile ===<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
#### for China <br />
RUN rm /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse" | tee /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list<br />
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse" >> /etc/apt/sources.list<br />
#### for Chine end<br />
<br />
ENV DEBIAN_FRONTEND noninteractive<br />
<br />
RUN apt-get update -y && apt-get install -y software-properties-common<br />
RUN add-apt-repository -y ppa:deadsnakes/ppa<br />
RUN apt-get update -y && apt-get install -y python3.8<br />
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 150<br />
RUN apt-get install -y python-pip && pip install pycrypto<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl gawk liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev sudo rsync python3-pyelftools cpio<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android11-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:10.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
=== Download source code ===<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk10.1 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
=== Build ===<br />
==== One Step build ====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
- if build Rock PI 4AB<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4B_Android11-userdebug<br />
- if build Rock PI 4C<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4C_Android11-userdebug<br />
- if build Rock Fuhai<br />
radxa:rock-android11 $ lunch rk3399_ROCKPIFuhai_Android11-userdebug<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
<br />
# get images from IMAGE directory<br />
</code><br />
<br />
==== Parts Build ====<br />
===== Build u-boot =====<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
- if build Rock PI 4AB or Rock Fuhai<br />
radxa:rock-android11/u-boot $ ./make.sh rockpi4b<br />
- else if build Rock PI 4C<br />
radxa:rock-android11/u-boot $ ./make.sh rockpi4c<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are **idbloader.img**<br />
<br />
===== Building kernel =====<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
- Rock PI 4AB<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4b.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-rockpi-4b.img -j$(nproc)<br />
- Rock PI 4C<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4c.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-rockpi-4c.img -j$(nproc)<br />
- Rock Fuhai<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig android-11.config rockpi_4b.config<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3399-fuhai-evb.img -j$(nproc)<br />
<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
The generated images are **kernel.img** and **resource.img**:<br />
<br />
# kernel.img, kernel with rkcrc checksum<br />
# resource.img, contains dtb and boot logo, Rockchip format resource package<br />
<br />
===== Building AOSP =====<br />
<code bash><br />
radxa:rock-android11 $ source buile/envsetup.sh<br />
- Rock PI 4AB<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4B_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
- Rock PI 4C<br />
radxa:rock-android11 $ lunch rk3399_ROCKPI4C_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
- Rock Fuhai<br />
radxa:rock-android11 $ lunch rk3399_ROCKPIFuhai_Android11-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
<br />
===== Generate images =====<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
===== Generated Image =====<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
- Rock PI 4AB<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPI4B_Android11 Image<br />
- Rock PI 4C<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPI4C_Android11 Image<br />
- Rock Fuhai<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3399_ROCKPIFuhai_Android11 Image<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rockpi4-android11/rockdev$ ./mkupdate_rk3399.sh<br />
</code><br />
get `update.img` from `Image` directroy<br />
<br />
2. GPT image<br />
<code><br />
radxa:rockpi4-android11/rockdev$ ./android-gpt.sh<br />
</code><br />
get `gpt.img` from `Image` directroy<br />
=== Installation ===<br />
[https://wiki.radxa.com/Rockpi4/install/android-eMMC-rkupdate RkUpdate Image Install on eMMC module]<br></div>
Cx
https://wiki.radxa.com/Rock3/Android11
Rock3/Android11
2021-12-02T09:32:18Z
<p>Cx: </p>
<hr />
<div>{{rock3_header}}<br />
<br />
{{Languages|rock3/Android11}}<br />
<br />
[[rock3 | ROCK 3]] > [[Rock3/Android11 | Andriod11]]<br />
<br />
<br />
<br />
<br />
Recommend build host is Ubuntu 20.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
==== Repo ====<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
==== DockerFile ====<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android9-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:11.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
==== Download source code ====<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk10.1 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
==== Build ====<br />
===== One Step build =====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
===== Parts Build =====<br />
====== Build u-boot ======<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
radxa:rock-android11/u-boot $ ./make.sh radxa_rock_3a_toybrick<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are '''idbloader.img''' , and '''uboot.img'''<br />
<br />
====== Building kernel ======<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3568-rock-3A-1.2.img -j$(nproc)<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
<br />
====== Building AOSP ======<br />
<code bash><br />
radxa:rock-android11 $ source buile/envsetup.sh<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
====== Make images ======<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
====== Integrate Image ======<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3568_rock_3a_r Image<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rock-android11/rockdev $ ./mkupdate_rk368x.sh<br />
</code><br />
The images under rockdev/ are `update.img`<br />
<br />
2. gpt Image<br />
<code bash><br />
radxa:rock-android11/rockdev $ ./android-gpt.sh<br />
</code><br />
<br />
==== Installation ====<br />
* sdcard<br><br />
[https://wiki.radxa.com/Rock3/install/microSD Install on MicroSD]<br><br />
* emmc with reader<br><br />
[https://wiki.radxa.com/Rock3/install/eMMC Install on eMMC with USB to eMMC Reader]<br><br />
* emmc from usb port<br><br />
[https://wiki.radxa.com/Rock3/dev/usb-install Install on eMMC from USB port]</div>
Cx
https://wiki.radxa.com/Rock3/Android11
Rock3/Android11
2021-12-02T09:30:25Z
<p>Cx: </p>
<hr />
<div>{{rock3_header}}<br />
<br />
{{Languages|rock3/Android11}}<br />
<br />
[[rock3 | ROCK 3]] > [[Rock3/Android11 | Andriod11]]<br />
<br />
<br />
<br />
<br />
Recommend build host is Ubuntu 20.04 64bit, for other hosts, refer official Android documents [https://source.android.com/setup/build/initializing Establishing a Build Environment].<br />
<br />
==== Repo ====<br />
<code bash><br />
radxa$ wget 'https://storage.googleapis.com/git-repo-downloads/repo' -P /tmp/<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
In China Download Repo:<br />
<code bash><br />
radxa$ echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc<br />
radxa$ source ~/.bashrc<br />
radxa$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo<br />
radxa$ sudo cp /tmp/repo /usr/local/bin/repo<br />
radxa$ sudo chmod +x /usr/local/bin/repo<br />
</code><br />
<br />
==== DockerFile ====<br />
<code><br />
FROM ubuntu:xenial<br />
<br />
RUN apt-get update -y && apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \<br />
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \<br />
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \<br />
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \<br />
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \<br />
dosfstools vim-common parted udev libssl-dev python3 python-pip lzop swig<br />
<br />
#### For China<br />
RUN curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \<br />
chmod +x /usr/local/bin/repo && \<br />
which repo<br />
ENV REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'<br />
#### For China End<br />
<br />
RUN pip install pycrypto<br />
ENV USER=android11-docker<br />
ARG USER_ID=0<br />
ARG GROUP_ID=0<br />
RUN groupadd -g ${GROUP_ID} jenkins-docker && useradd -m -g jenkins-docker -u ${USER_ID} android9-docker<br />
<br />
USER android11-docker<br />
</code><br />
<br />
Build DockerFile<br />
<code><br />
radxa$ docker build -t android-builder:11.x --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g` $(which-dir-dockerfile-in)<br />
</code><br />
<br />
==== Download source code ====<br />
<code bash><br />
$ mkdir rock-android11<br />
$ cd rock-android11<br />
</code><br />
Then run:<br />
<code bash><br />
radxa:rock-android11 $ repo init -u https://github.com/radxa/manifests.git -b Android11_Radxa_rk10.1 -m rockchip-r-release.xml<br />
radxa:rock-android11 $ repo sync -d --no-tags -j4<br />
</code><br />
<br />
==== Build ====<br />
===== One Step build =====<br />
<code bash><br />
radxa:rock-android11 $ source build/envsetup.sh<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
radxa:rock-android11 $ ./build.sh -UACKup<br />
# get images from IMAGE directory<br />
</code><br />
<br />
===== Parts Build =====<br />
====== Build u-boot ======<br />
<code bash><br />
radxa:rock-android11 $ cd u-boot<br />
radxa:rock-android11/u-boot $ make clean<br />
radxa:rock-android11/u-boot $ make mrproper<br />
radxa:rock-android11/u-boot $ make distclean<br />
radxa:rock-android11/u-boot $ ./make.sh radxa_rock_3a_toybrick<br />
radxa:rock-android11 $ cd -<br />
</code><br />
The generated images are **idbloader.img** , and **uboot.img**<br />
<br />
====== Building kernel ======<br />
<code bash><br />
radxa:rock-android11 $ cd kernel<br />
radxa:rock-android11/kernel $ ADDON_ARGS="CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld"<br />
radxa:rock-android11/kernel $ make clean<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rockchip_defconfig<br />
radxa:rock-android11/kernel $ make $ADDON_ARGS ARCH=arm64 rk3568-rock-3A-1.2.img -j$(nproc)<br />
radxa:rock-android11 $ cd -<br />
</code><br />
<br />
<br />
====== Building AOSP ======<br />
<code bash><br />
radxa:rock-android11 $ source buile/envsetup.sh<br />
radxa:rock-android11 $ lunch rk3568_rock_3a_r-userdebug<br />
radxa:rock-android11 $ make -j$(nproc)<br />
</code><br />
It takes a long time, take a break and wait...<br />
<br />
====== Make images ======<br />
<code bash><br />
radxa:rock-android11 $ rm -rf rockdev<br />
radxa:rock-android11 $ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev .<br />
radxa:rock-android11 $ ./mkimage.sh<br />
</code><br />
<br />
====== Integrate Image ======<br />
<code bash><br />
radxa:rock-android11 $ cd rockdev<br />
radxa:rock-android11/rockdev $ ln -s Image-rk3568_rock_3a_r Image<br />
</code><br />
<br />
1. RkUpdate Image<br />
<code><br />
radxa:rock-android11/rockdev $ ./mkupdate_rk368x.sh<br />
</code><br />
The images under rockdev/ are `update.img`<br />
<br />
2. gpt Image<br />
<code bash><br />
radxa:rock-android11/rockdev $ ./android-gpt.sh<br />
</code><br />
<br />
==== Installation ====<br />
* sdcard<br><br />
[https://wiki.radxa.com/Rock3/install/microSD Install on MicroSD]<br><br />
* emmc with reader<br><br />
[https://wiki.radxa.com/Rock3/install/eMMC Install on eMMC with USB to eMMC Reader]<br><br />
* emmc from usb port<br><br />
[https://wiki.radxa.com/Rock3/dev/usb-install Install on eMMC from USB port]</div>
Cx