简介
按照官方的参考链接生成rock3a
镜像
源码
下载源码,github
源码下是各个外链,所以还得到子目录下去下载子目录的源码
git clone -b stable-4.19-rock3 https://github.com/radxa/rockchip-bsp.git
cd rockchip-bsp
git submodule init
git submodule update
工具链为aarch64-linux-gnu-gcc
uboot
编译uboot
./build/mk-uboot.sh rk3568-rock-3a
生成物
kernel
内核这边呢,先弄好默认配置文件
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
sudo make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- rockchip_linux_defconfig
make menuconfig
make savedefconfig
cp defconfig arch/arm64/configs/rockchip_linux_defconfig
如果想要让自己编译的内核支持串口调试的话,还得修改设备树,修改rk3568-rock-3a.dts
文件
可以看到这里的fiq_debugger
是disabled
的状态
把其改为okay
最后编译内核,如果还要编译驱动,那此部分可以到此为止不用看了,直接用下面的modules/headers
的方法去编译,sudo ./build/pack-kernel.sh -d rockchip_linux_defconfig -r 1
这条命令会编译一遍内核
./build/mk-kernel.sh rk3568-rock-3a
编译成功
生成产物
rootfs
先安装相关工具
export ARCH=arm64
cd rootfs/
sudo apt-get install binfmt-support qemu-user-static cpio gdisk
sudo dpkg -i ubuntu-build-service/packages/*
过程会报错,没关系,可以输入下面命令修复
sudo apt-get install -f
sudo RELEASE=buster TARGET=desktop ARCH=arm64 ./mk-base-debian.sh
制作rootfs
镜像
./mk-image.sh
打包
上述所有文件都生成之后,输出下面的命令打包
./build/mk-image.sh -c rk3568 -t system -r rootfs/linaro-rootfs.img
生成物为system.img
,该镜像包含了上述所有资源,可以直接烧写到SD卡,然后在rock3a板子上启动
启动成功
modules/headers
如果既要生成kernel
,也想要安装驱动包以及linux
的一些头文件,可以打deb
包。
先修改下build/kernel-package.mk
脚本中的交叉编译工具链的位置
我的工具链位置是/usr/bin/aarch64-linux-gnu-
输入命令生成deb
包
sudo ./build/pack-kernel.sh -d rockchip_linux_defconfig -r 1
成果物如下
把成果物复制到rock3a
板子中,然后输入以下命令
dpkg -i linux-headers-4.19.193-1-rockchip-*_arm64.deb
dpkg -i linux-image-4.19.193-1-rockchip-*_arm64.deb
解压完了后,比如要加载veth
驱动,先改下/lib/modules
下的文件夹名字
mv 4.19.193-1-rockchip-g3dec7e0 4.19.193
输入命令
depmod -a
modprobe veth
注意:modprobe
使用的时候,不要有后缀.ko
,不然会找不到。
参考链接
FEATURED TAGS
Ubuntu
markdown
stm32
OSDK
飞控
串口
Jscope
C
C++
bin
J-Flash
字符串
指针数组
malloc
vscode
svg
png
github
python
CMake
CMakeLists
Linux
拷贝构造函数
GIF
录屏
docker
操作系统
make
Makefile
文件操作
DSP
CCS
SQL
MySQL
shell
bochs
计算机网络
win10
SMTP
Socket
iOS
uxplay
投屏
证书错误
apt
nodesource
ELF
Typora
图床
fossil
sql
git
SecureCRT
windows
cygwin
blog
alsa
alsa-utils
alsa-lib
音频
USB
链接文件
内存
mmap
tcpdump
交叉编译
网络
防火墙
crontab
bond
Linux性能
udev
linux
pcie
wsl2
MMIO
wsl
qemu
raspi4
gdb
ssh
tun
tap
ifconfig
打印
gmac
phy
vim
组播
rock3a
win11
usb
sd
ubuntu
iptables
netfilter
wifi
veth
ipv6
wireshark
radvd
dhcpv6
dhcpv4
网络命名空间
br虚拟网卡
NDP
emmc
存储
raspi4b
baremental
jtag
buildroot
rootfs
ext4
调试
uboot
dropbear
raspi
ebpf
uart
baremetal
kernel
bringup
libbpf