OrangePi_RK3399_Android6.0_V1.0 使用笔记(编译/烧写) @ Ubuntu 16.04

/ 1评 / 0

硬盘准备:至少120G.
内存准备:至少8G.
时间准备:至少1小时.
工具:波特率支持1500000的USB-UART(CP2102/CP2104)
下载链接:https://mega.nz/#F!jGhVCBbA (不保证长期有效)
不管是哪个系统,Android还是Linux,貌似都有点问题.Linux表现为官方镜像不Boot,Android首次启动要Reset系统.是不是好奇怪.
第一步,解压:

第二步,安装OpenJDK 1.7以及一大堆其他软件.

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-7-jdk git-core gnupg flex bison gperf libsdl1.2-dev 
libesd0-dev squashfs-tools build-essential zip curl 
libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils 
xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev 
lib32ncurses5-dev libwxgtk3.0-dev 
lib32readline6-dev gcc-multilib libswitch-perl vim
sudo apt-get install gcc-arm-linux-gnueabihf 
lzop libncurses5-dev 
libssl1.0.0 libssl-dev

第三步,编译安卓.
针对U-Boot

cd u-boot
make rk3399_defconfig
make ARCHV=aarch64 -j16

针对内核

cd kernel
make ARCH=arm64 orangepi_defconfig
make ARCH=arm64 rk3399-orangepi.img -j16

针对安卓

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
source build/envsetup.sh
lunch rk3399_mid_orangepi-userdebug
make -j16

安卓编译比较耗时,这样就是成功的.

使用mkimage.sh脚本打包.

复制打包结果到~/android/RKTools/linux/Linux_Pack_Firmware/rockdev_for_build/Image,接着执行打包生成单一下载文件.(MiniLoader 被无视了?RKTools可能需要自己下载放进去.)

安卓编译垃圾清理~  (清理后,下次编译耗时++)

make installclean

第四步,安装驱动,把目标复制出来,烧写.

接着调整好IMG路径.

按DC头隔壁的RECOVERY按键,插入TYPE-C到电脑,再插板子,再插入DC头(12V),然后开始烧写~ 这部分就好了~ (内置没程序就MASHROM,有程序就LOADER)

点升级开始~ (如果发现是MASKROM的话,还要烧写过程中按着RECOVERY,直到进入LOADER模式.)

注意:启动分辨率需要大于等于1280*800.(最好1080p,但是我没有)

第五步,Linux的编译
编译环境准备(主要是64位编译器,安卓编译自带编译器所以不用做)

sudo apt-get install git-core gitk git-gui gcc-arm-linux-gnueabihf 
u-boot-tools device-tree-compiler gcc-aarch64-linux-gnu mtools parted 
libudev-dev libusb-1.0-0-dev libssl-dev pv e2fsprogs build-essential 
fakeroot devscripts

接下来当然是编译.

./build/mk-uboot.sh rk3399-orangepi
./build/mk-kernel.sh rk3399-orangepi

rootfs他已经制作好不少.(要自己下载放到out目录.加起来将近10G.我只放最小的ubuntu-server试试.)

./build/mk-image.sh -c rk3399 -t system -s 4000 -r out/ubuntu-server.img

我在Windows这么烧写~ (带Loader下烧写,Loader位于/home/tater/linux/rkbin/rk33)

Linux下执行烧写~ (Linux虚拟机没能正常识别他,需要Maskrom烧写.)

./build/flash_tool.sh -c rk3399 -p system -i out/system.img

最后,制作自己的rootfs.(其实就是tar转IMG)

sudo apt-get install qemu-user-static
mkdir rootfs
sudo tar -xpf ubuntu-base-16.04-core-arm64.tar.gz -C rootfs
sudo cp -b /etc/resolv.conf rootfs/etc/resolv.conf
sudo cp /usr/bin/qemu-aarch64-static rootfs/usr/bin/
# 进入根文件系统
sudo chroot rootfs /bin/bash
# 更新软件仓库并安装软件
apt update
apt upgrade
# 根据自己需求安装功能(下面列出的两个一定要,第一个不装,串口什么没法用,第二个不装/sbin/init没有.)
apt install udev systemd
# 添加用户及设置密码
useradd -s '/bin/bash' -m -G adm,sudo tater
# 给用户 tater 设置密码,如果不新建用户,需要配置/etc/securetty文件才能root登录.
passwd tater
# 给用户 root 设置密码
passwd root
# 退出 Rootfs
exit
# 生成空白 image 文件(大小自己调节)
dd if=/dev/zero of=ubuntu-server.img bs=1M count=2048
# 格式化 image 文件为 ext4 格式
sudo mkfs.ext4 ubuntu-server.img
# 挂载 image 文件到 ubuntu-server 文件夹
mkdir ubuntu-server
sudo mount ubuntu-server.img ubuntu-server/
# 将刚才制作的 rootfs 的内容拷贝到 image 挂载的文件夹下
sudo cp -rfp rootfs/* ubuntu-server/
# 取消挂载
sudo umount ubuntu-server/
# 检查文件系统的正确性
e2fsck -p -f ubuntu-server.img
# 自动调整分区的大小
resize2fs -M ubuntu-server.img

最后,自制Ubuntu启动了~ (18.04 串口BUG没解决,没法用,现在启动了,需要获得所有可用空间,手动执行一次resize2fs /dev/mmcblk1p就可以.
)

  1. yangholmes说道:

    用 OrangePi_build 工具编译,其实也蛮好~

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注