設置 | 登錄 | 註冊

目前共有63篇帖子。

入手三块蓝色的RK3308B开发板

11樓 巨大八爪鱼 2026-7-29 17:34
参考资料:https://wiki.radxa.com/RockpiS/dev/kernel-4.4

【编译内核】
wget https://github.com/radxa/kernel/archive/refs/heads/stable-4.4-rockpis.zip
unzip -q stable-4.4-rockpis.zip
cd kernel-stable-4.4-rockpis
make rk3308_linux_defconfig
make ARCH=arm64 CROSS_COMPILE=/home/oct1158/Documents/Code/C/Luckfox_Nova_SDK_250430/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-

【解决报错】
  HOSTLD  scripts/dtc/dtc
/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [scripts/Makefile.host:100: scripts/dtc/dtc] Error 1
make[1]: *** [scripts/Makefile.build:484: scripts/dtc] Error 2
make: *** [Makefile:582: scripts] Error 2
解决办法:修改顶层Makefile文件,找到第323行
HOSTCFLAGS   := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89
在最后面添加-fcommon

  CC      arch/arm64/kernel/vdso.o
arch/arm64/kernel/vdso.c: In function 憊dso_init?
arch/arm64/kernel/vdso.c:119:6: warning: 憁emcmp?reading 4 bytes from a region of size 1 [-Wstringop-overflow=]
error, forbidden warning:vdso.c:119
  119 |  if (memcmp(&vdso_start, "\177ELF", 4)) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [scripts/Makefile.build:278: arch/arm64/kernel/vdso.o] Error 1
make: *** [Makefile:1029: arch/arm64/kernel] Error 2
解决办法:修改顶层Makefile文件,找到第420行
KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
           -fno-strict-aliasing -fno-common \
           -Werror-implicit-function-declaration \
           -Wno-format-security \
           -std=gnu89 $(call cc-option,-fno-PIE)
在最后面添加-Wno-stringop-overflow

为了避免其他的错误,另外还需要添加-Wno-attribute-alias -Wno-sizeof-pointer-memaccess -Wno-missing-attributes -Wno-address-of-packed-member -Wno-zero-length-bounds -Wno-packed-not-aligned -Wno-builtin-declaration-mismatch -Wno-array-bounds -Wno-restrict -Wno-stringop-truncation

/bin/sh: 1: mkimage: not found
make[3]: *** [scripts/Makefile.lib:343: arch/arm64/boot/dts/rockchip/overlay/rockchip-fixup.scr] Error 127
make[2]: *** [scripts/Makefile.build:484: arch/arm64/boot/dts/rockchip/overlay] Error 2
make[1]: *** [scripts/Makefile.build:484: arch/arm64/boot/dts/rockchip] Error 2
make: *** [arch/arm64/Makefile:127: dtbs] Error 2
解决办法:sudo apt-get install u-boot-tools
12樓 巨大八爪鱼 2026-7-29 17:34
13樓 巨大八爪鱼 2026-7-29 17:42
编译出来的内核镜像:
oct1158@oct1158-ubuntu:~/Documents/Code/C/kernel-stable-4.4-rockpis$ ls -lh arch/arm64/boot/Image
-rwxrwxr-x 1 oct1158 oct1158 12M Jul 29 17:29 arch/arm64/boot/Image
oct1158@oct1158-ubuntu:~/Documents/Code/C/kernel-stable-4.4-rockpis$

编译出来的设备树文件:
oct1158@oct1158-ubuntu:~/Documents/Code/C/kernel-stable-4.4-rockpis$ ls -lh arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dtb
-rw-rw-r-- 1 oct1158 oct1158 67K Jul 29 17:31 arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dtb
oct1158@oct1158-ubuntu:~/Documents/Code/C/kernel-stable-4.4-rockpis$
14樓 巨大八爪鱼 2026-7-29 17:43
dtbo(Device Tree Blob Overlay)是 Linux/Android 系统中用于‌动态叠加修改硬件配置的设备树覆盖层二进制文件‌,需与主设备树(.dtb)合并后由内核加载 。‌‌核心特征
    ‌本质‌:编译后的二进制文件(由 .dts 源文件经 dtc 工具生成),非独立运行,必须叠加到主 .dtb 上生效 。
    ‌作用‌:在不修改主设备树的前提下,实现对特定硬件节点(如外设启用、引脚复用、参数调整)的增量配置,常用于区分同一 SoC 下不同机型或模块配置 。
    ‌应用场景‌:Android 启动分区(dtbo.img)、树莓派 overlays/ 目录、嵌入式 BSP 定制 。
    ‌加载机制‌:引导加载程序(Bootloader)先将 .dtb 载入内存,再应用 .dtbo 进行节点合并,最终形成完整设备树传给内核 。‌‌

与相关概念区别
    ‌DTS/DTSI‌:设备树源码(文本格式),.dts 为主文件,.dtsi 为可复用片段 。
    ‌DTB‌:主设备树二进制,描述基础硬件架构,通常由 SoC 厂商提供 。
    ‌DTBO‌:设备树叠加层二进制,描述差异化配置,由板级厂商或定制方提供 。‌‌

若需查看或修改其内容,需使用 dtc 工具反编译为 DTS 格式处理,不可直接编辑二进制文件 。‌‌

oct1158@oct1158-ubuntu:~/Documents/Code/C/kernel-stable-4.4-rockpis$ ls -lh arch/arm64/boot/dts/rockchip/overlay/*.dtbo
-rw-rw-r-- 1 oct1158 oct1158 1.3K Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/i2c1-hym8563.dtbo
-rw-rw-r-- 1 oct1158 oct1158  546 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-console-on-uart0.dtbo
-rw-rw-r-- 1 oct1158 oct1158  788 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-console-on-uart1.dtbo
-rw-rw-r-- 1 oct1158 oct1158  669 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-console-on-uart2.dtbo
-rw-rw-r-- 1 oct1158 oct1158  505 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-i2c0.dtbo
-rw-rw-r-- 1 oct1158 oct1158  262 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-i2c1.dtbo
-rw-rw-r-- 1 oct1158 oct1158  383 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-i2c2.dtbo
-rw-rw-r-- 1 oct1158 oct1158  504 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-i2c3.dtbo
-rw-rw-r-- 1 oct1158 oct1158  624 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-i2c3-m0.dtbo
-rw-rw-r-- 1 oct1158 oct1158  624 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-i2c3-m1.dtbo
-rw-rw-r-- 1 oct1158 oct1158  262 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-pwm1.dtbo
-rw-rw-r-- 1 oct1158 oct1158  383 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-pwm2.dtbo
-rw-rw-r-- 1 oct1158 oct1158  383 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-pwm3.dtbo
-rw-rw-r-- 1 oct1158 oct1158  260 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-shajin-gt970.dtbo
-rw-rw-r-- 1 oct1158 oct1158  881 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-spi-spidev.dtbo
-rw-rw-r-- 1 oct1158 oct1158  382 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-uart0.dtbo
-rw-rw-r-- 1 oct1158 oct1158  624 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-uart1.dtbo
-rw-rw-r-- 1 oct1158 oct1158  384 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-uart2.dtbo
-rw-rw-r-- 1 oct1158 oct1158  624 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-uart3.dtbo
-rw-rw-r-- 1 oct1158 oct1158  295 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-usb20-host.dtbo
-rw-rw-r-- 1 oct1158 oct1158  491 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rk3308-w1-gpio.dtbo
-rw-rw-r-- 1 oct1158 oct1158 2.4K Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rockpis-dmic-8ch-pdm.dtbo
-rw-rw-r-- 1 oct1158 oct1158  963 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rockpis-i2s-out.dtbo
-rw-rw-r-- 1 oct1158 oct1158  966 Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rockpis-spdif-out.dtbo
-rw-rw-r-- 1 oct1158 oct1158 2.5K Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rockpis-v11-spi2-waveshare35b-v2.dtbo
-rw-rw-r-- 1 oct1158 oct1158 2.5K Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rockpis-v11-spi2-waveshare35c.dtbo
-rw-rw-r-- 1 oct1158 oct1158 2.5K Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rockpis-v12-spi2-waveshare35b-v2.dtbo
-rw-rw-r-- 1 oct1158 oct1158 2.5K Jul 29 17:29 arch/arm64/boot/dts/rockchip/overlay/rockpis-v12-spi2-waveshare35c.dtbo
oct1158@oct1158-ubuntu:~/Documents/Code/C/kernel-stable-4.4-rockpis$
15樓 巨大八爪鱼 2026-7-29 18:41
【打包】
lv=-999-rockchip
kv=$(make kernelversion)
make bindeb-pkg ARCH=arm64 CROSS_COMPILE=/home/oct1158/Documents/Code/C/Luckfox_Nova_SDK_250430/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- LOCALVERSION=$lv-g KDEB_PKGVERSION=$kv$lv

【上传到板子上】
adb push "Z:\Documents\Code\C\linux-headers-4.4.143-999-rockchip-g_4.4.143-999-rockchip_arm64.deb" /root
adb push "Z:\Documents\Code\C\linux-image-4.4.143-999-rockchip-g_4.4.143-999-rockchip_arm64.deb" /root
adb push "Z:\Documents\Code\C\linux-firmware-image-4.4.143-999-rockchip-g_4.4.143-999-rockchip_arm64.deb" /root

【在板子上解压】
adb shell
cd /root
dpkg -i linux-headers-4.4.143-999-rockchip-g_4.4.143-999-rockchip_arm64.deb
dpkg -i linux-image-4.4.143-999-rockchip-g_4.4.143-999-rockchip_arm64.deb
dpkg -i linux-firmware-image-4.4.143-999-rockchip-g_4.4.143-999-rockchip_arm64.deb
reboot

重启后再查看内核版本字符串,可以发现里面的日期已经变了。
# uname -a
Linux rockpis 4.4.143-999-rockchip-g #2 SMP PREEMPT Wed Jul 29 18:17:30 CST 2026
 aarch64 aarch64 aarch64 GNU/Linux
#

16樓 巨大八爪鱼 2026-7-29 19:38
串口连接:
17樓 巨大八爪鱼 2026-7-29 19:45
串口连线:
18樓 巨大八爪鱼 2026-7-29 19:46
串口波特率:1500000
19樓 巨大八爪鱼 2026-7-29 19:50
通过串口,可以看到uboot里面的所有环境变量的值。
通过修改环境变量,可以自己指定根文件系统所在的SD卡分区,以及设备树文件。
20樓 巨大八爪鱼 2026-7-29 19:59
u-boot packages for ROCK Pi S board
2017.09-2368-ga5dffc8fcf Latest
  dev-radxa released this 22 Jul 04:43
2017.09-2368-ga5dffc8fcf
a5dffc8

內容轉換:

回覆帖子
內容:
用戶名: 您目前是匿名發表。
驗證碼:
看不清?換一張