这里主要用于自己对安装过程的记录,中间可能记录比较粗糙。
参考链接:【环境搭建】基于linux的NanoPC-T6_LTS系统固件编译环境搭建
基于docker构建编译环境
docker run -it \
--privileged=true --cap-add=ALL \
--name nanopc_t6_lts_env \
-v /hdd_4t/nanopc_t6_lts_sdk:/work \
-v /lib/modules:/lib/modules \
-v /dev:/dev \
ubuntu:20.04 /bin/bash
安装基础工具
apt-get update #更新软件源
apt-get install git vim sudo wget curl #安装基础工具
安装编译环境
bash -c "$(curl -fsSL https://raw.githubusercontent.com/friendlyarm/build-env-on-ubuntu-bionic/master/install.sh)"
参见友善之臂github上搭建编译环境的说明:https://github.com/friendlyarm/build-env-on-ubuntu-bionic
参考NanoPC-T6Wiki说明重新编译内核
wiki说明:13.4.2 编译内核linux-v6.1.y
git clone https://github.com/friendlyarm/kernel-rockchip --single-branch --depth 1 -b nanopi6-v6.1.y kernel-rockchip
cd kernel-rockchip
export PATH=/opt/FriendlyARM/toolchain/11.3-aarch64/bin/:$PATH
touch .scmversion
# 配置内核
# option1: 加载Linux系统配置
make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 nanopi6_linux_defconfig
# option2: 加载FriendlyWrt系统配置
# make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 nanopi6_linux_defconfig friendlywrt.config
# 启动配置界面
make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 menuconfig
# 编译内核
make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 nanopi6-images -j$(nproc)
# 编译驱动模块
mkdir -p out-modules && rm -rf out-modules/*
make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 INSTALL_MOD_PATH="$PWD/out-modules" modules -j$(nproc)
make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 INSTALL_MOD_PATH="$PWD/out-modules" modules_install
KERNEL_VER=$(make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 kernelrelease)
[ ! -f "$PWD/out-modules/lib/modules/${KERNEL_VER}/modules.dep" ] && depmod -b $PWD/out-modules -E Module.symvers -F System.map -w ${KERNEL_VER}
(cd $PWD/out-modules && find . -name \*.ko | xargs aarch64-linux-strip --strip-unneeded)
启动配置界面后要打开如下内核配置
参考文章:https://blog.csdn.net/CNflysky/article/details/128751428
General Setup -> CPU/Task time and stats accounting -> Pressure stall information tracking
是否勾选上,没有的话需要勾选上。Device Drivers -> Android -> Android Drivers
勾上,然后将binder ipc driver
和binderfs filesystem
也勾上,这样binder模块就加进去了Staging Drivers->Android->Enable the Anonymous Shared Memory Subsystem
也勾上这样就加上了ashmem模块在上面重新编译的内核和设备树资源重新烧到板子上之后,启动新的系统。
通过执行下面指令,发现还是没有对应的模块,不过没有关系,后面可以继续安装redroid,不会有什么问题。
modprobe binder_linux devices="binder,hwbinder,vndbinder"
modprobe ashmem_linux
后面就是安装docker,然后安装arm64版本的redriod镜像。
这里安装的是这位大佬提供的镜像资源:https://github.com/CNflysky/redroid-rk3588