設置 | 登錄 | 註冊

目前共有63篇帖子。

入手三块蓝色的RK3308B开发板

21樓 巨大八爪鱼 2026-7-29 20:33
SD卡分区情况:
/dev/mmcblk0p1  112M   59M   54M  53% /boot
/dev/mmcblk0p2   58G  831M   55G   2% /

Device          Start       End   Sectors  Size Type
/dev/mmcblk0p1  32768    262143    229376  112M EFI System
/dev/mmcblk0p2 262144 122151007 121888864 58.1G Linux filesystem
第一个分区是挂载到/boot目录下的,第二个分区是挂载到/目录下的。

uboot bootcmd启动命令:
load mmc 0:1 0x00500000 /boot.scr
source 0x00500000
就是把第一个分区(/boot)里面的boot.scr文件加载到0x00500000内存里面,然后执行文件里面的内容。
巨大八爪鱼mmc 0:1就是第0张sd卡的第1个分区(/dev/mmcblk0p1)。
22樓 巨大八爪鱼 2026-7-29 20:34
boot.scr文件的内容:
'V+瓮m^膝?
        営nJ                                   
        # DO NOT EDIT THIS FILE
#
# Please edit /boot/uEnv.txt to set supported parameters
#

setenv load_addr "0x05000000"
setenv overlay_error "false"
# default values
setenv overlay_prefix "rockchip"
setenv rootdev "/dev/mmcblk0p1"
setenv verbosity "1"
setenv console " "
setenv overlays " "
setenv rootfstype "ext4"
setenv docker_optimizations "off"

echo "Boot script loaded from ${devtype} ${devnum}"

if test -e ${devtype} ${devnum} ${prefix}uEnv.txt; then
    load ${devtype} ${devnum} ${load_addr} ${prefix}uEnv.txt
    env import -t ${load_addr} ${filesize}
fi

setenv bootargs "initrd=${initrdimg} root=UUID=${rootuuid} rootwait rw rootfstype=${rootfstype} console=tty1 console=${console} panic=10 consoleblank=0 loglevel=${verbosity} ${extraargs} ${extraboardargs}"

if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1"; fi

load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}${initrdimg}
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}${kernelimg}

load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtbs/${kernelversion}/${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
for overlay_file in ${overlays}; do
    if load ${devtype} ${devnum} ${load_addr} ${prefix}dtbs/${kernelversion}/rockchip/overlay/${overlay_file}.dtbo; then
        echo "Applying kernel provided DT overlay ${overlay_file}.dtbo"
        fdt apply ${load_addr} || setenv overlay_error "true"
    fi
done
for overlay_file in ${user_overlays}; do
    if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
        echo "Applying user provided DT overlay ${overlay_file}.dtbo"
        fdt apply ${load_addr} || setenv overlay_error "true"
    fi
done
if test "${overlay_error}" = "true"; then
    echo "Error applying DT overlays, restoring original DT"
    load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtbs/${kernelversion}/${fdtfile}
else
    if load ${devtype} ${devnum} ${load_addr} ${prefix}dtbs/${kernelversion}/rockchip/overlay/${overlay_prefix}-fixup.scr; then
        echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
        source ${load_addr}
    fi
    if test -e ${devtype} ${devnum} ${prefix}overlay-user/fixup.scr; then
        load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/fixup.scr
        echo "Applying user provided fixup script (overlay-user/fixup.scr)"
        source ${load_addr}
    fi
fi
echo "initrdsize = $initrdsize"
booti ${kernel_addr_r} ${ramdisk_addr_r}:${initrdsize} ${fdt_addr_r}
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

23樓 巨大八爪鱼 2026-7-30 11:14
/boot/uEnv.txt文件的内容:
verbosity=7
fdtfile=rockchip/rk3308-rock-pi-s.dtb
console=ttyS0,1500000n8
overlays=rk3308-uart0
rootuuid=d99ac41e-e8cc-4c73-a420-e71f15e42042
initrdsize=0x8387a9
kernelversion=4.4.143-999-rockchip-g
initrdimg=initrd.img-4.4.143-999-rockchip-g
kernelimg=vmlinuz-4.4.143-999-rockchip-g
24樓 巨大八爪鱼 2026-7-30 11:35
【完整的bootcmd启动命令】
setenv bootargs "initrd=initrd.img-4.4.143-999-rockchip-g root=UUID=d99ac41e-e8cc-4c73-a420-e71f15e42042 rootwait rw rootfstype=ext4 console=tty1 console=ttyS0,1500000n8 panic=10 consoleblank=0 loglevel=7"
load mmc 0:1 0x04000000 /initrd.img-4.4.143-999-rockchip-g
load mmc 0:1 0x00280000 /vmlinuz-4.4.143-999-rockchip-g
load mmc 0:1 0x01f00000 /dtbs/4.4.143-999-rockchip-g/rockchip/rk3308-rock-pi-s.dtb
fdt addr 0x01f00000
fdt resize 65536
load mmc 0:1 0x05000000 /dtbs/4.4.143-999-rockchip-g/rockchip/overlay/rk3308-uart0.dtbo
fdt apply 0x05000000
load mmc 0:1 0x05000000 /dtbs/4.4.143-999-rockchip-g/rockchip/overlay/rockchip-fixup.scr
source 0x05000000
booti 0x00280000 0x04000000:0x8387a9 0x01f00000
巨大八爪鱼load mmc 0:1 0x05000000 /dtbs/4.4.143-999-rockchip-g/rockchip/overlay/rockchip-fixup.scr
source 0x05000000
这两句话没有用,可以删掉。
25樓 巨大八爪鱼 2026-7-30 11:36
/boot/dtbs/4.4.143-999-rockchip-g/rockchip/overlay/rockchip-fixup.scr文件的内容:
'V諱Wji萾謆? overlays fixup script
# implements (or rather substitutes) overlay arguments functionality
# using u-boot scripting, environment variables and "fdt" command

setenv decompose_pin 'setexpr tmp_pinctrl sub "GPIO(0|1|2|3|4)_\\S\\d+" "\\1";
setexpr tmp_bank sub "GPIO\\d_(\\S)\\d+" "\\1";
test "${tmp_bank}" = "A" && setenv tmp_bank 0;
test "${tmp_bank}" = "B" && setenv tmp_bank 1;
test "${tmp_bank}" = "C" && setenv tmp_bank 2;
test "${tmp_bank}" = "D" && setenv tmp_bank 3;
setexpr tmp_pin sub "GPIO\\d_\\S(\\d+)" "\\1";
setexpr tmp_bank ${tmp_bank} * 8;
setexpr tmp_pin ${tmp_bank} + ${tmp_pin}'

if test -n "${param_spidev_spi_bus}"; then
        test "${param_spidev_spi_bus}" = "0" && setenv tmp_spi_path "spi@ff120000"
        test "${param_spidev_spi_bus}" = "1" && setenv tmp_spi_path "spi@ff130000"
        test "${param_spidev_spi_bus}" = "2" && setenv tmp_spi_path "spi@ff140000"
        fdt set /${tmp_spi_path} status "okay"
        fdt set /${tmp_spi_path}/spidev status "okay"
        if test -n "${param_spidev_max_freq}"; then
                fdt set /${tmp_spi_path}/spidev spi-max-frequency "<${param_spidev_max_freq}>"
        fi
fi

if test -n "${param_w1_pin}"; then
        setenv tmp_pinctrl "${param_w1_pin}"
        setenv tmp_bank "${param_w1_pin}"
        setenv tmp_pin "${param_w1_pin}"
        run decompose_pin
        echo "${param_w1_pin} ---> pinctrl = ${tmp_pinctrl}"
        echo "${param_w1_pin} ---> bank = ${tmp_bank}"
        echo "${param_w1_pin} ---> pin = ${tmp_pin}"
        fdt get value tmp_pinctrl /__symbols__  gpio${tmp_pinctrl}
        echo "${param_w1_pin} ---> tmp_pinctrl = ${tmp_pinctrl}"
        fdt get value tmp_phandle ${tmp_pinctrl} phandle
        echo "${param_w1_pin} ---> tmp_phandle = ${tmp_phandle}"
        fdt set /onewire@0 gpios "<${tmp_phandle} ${tmp_pin} 0 0>"
        env delete tmp_pinctrl tmp_bank tmp_pin tmp_phandle
fi

巨大八爪鱼=> printenv param_spidev_spi_bus
## Error: "param_spidev_spi_bus" not defined
=> printenv param_w1_pin
## Error: "param_w1_pin" not defined
=>
decompose_pin环境变量定义了但没有用到。
param_spidev_spi_bus和param_w1_pin环境变量不存在。
所以这个脚本没有任何用处。
26樓 巨大八爪鱼 2026-7-30 12:50
【简化的bootcmd启动命令】
setenv bootargs root=/dev/mmcblk0p2 rootwait rw rootfstype=ext4 console=ttyS0,1500000n8
load mmc 0:1 0x00280000 vmlinuz-4.4.143-999-rockchip-g
load mmc 0:1 0x01f00000 dtbs/4.4.143-999-rockchip-g/rockchip/rk3308-rock-pi-s.dtb
fdt addr 0x01f00000
fdt resize 65536
load mmc 0:1 0x05000000 dtbs/4.4.143-999-rockchip-g/rockchip/overlay/rk3308-uart0.dtbo
fdt apply 0x05000000
booti 0x00280000 - 0x01f00000
27樓 巨大八爪鱼 2026-7-30 17:30
川宇读卡器
28樓 巨大八爪鱼 2026-7-30 20:16
【启动幸狐的Linux 5.10.198内核】
将Z:\Documents\Code\C\kernel-stable-4.4-rockpis\arch\arm64\boot\dts\rockchip\rk3308-rock-pi-s.dts复制到Z:\Documents\Code\C\Luckfox_Nova_SDK_250430\kernel\arch\arm64\boot\dts\rockchip\rk3308-rock-pi-s.dts,并重命名为luckfox-rk3308b-evb-v10.dts。
打开复制后的luckfox-rk3308b-evb-v10.dts文件,在末尾添加
&uart0 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&uart0_xfer>;
};
用/**/注释掉第146-155行的整个wireless-bluetooth节点。
重新编译内核和设备树:
cd Luckfox_Nova_SDK_250430
./build.sh

将内核和设备树上传到板子的/boot目录下:
adb push "Z:\Documents\Code\C\Luckfox_Nova_SDK_250430\kernel\arch\arm64\boot\Image" /boot
adb push "Z:\Documents\Code\C\Luckfox_Nova_SDK_250430\kernel\arch\arm64\boot\dts\rockchip\luckfox-rk3308b-evb-v10.dtb" /boot

重启板子进入uboot命令行:
sudo reboot
然后按住Ctrl+C不放。

在uboot命令行中启动新内核,使用新设备树:
setenv bootargs root=/dev/mmcblk1p2 rootwait rw rootfstype=ext4 console=ttyS0,1500000n8
load mmc 0:1 0x00280000 Image
load mmc 0:1 0x01f00000 luckfox-rk3308b-evb-v10.dtb
booti 0x00280000 - 0x01f00000
巨大八爪鱼Luckfox_Nova_SDK_250430.tar.gz源码包下载地址:https://pan.baidu.com/s/11OZSQAi2Ypez_wK_jEK-eQ?pwd=4rtn#list/path=%2Fsharelink173862823-1082421354829138%2FLuckfox%20Nova%2FSDK&parentPath=%2Fsharelink173862823-1082421354829138
29樓 巨大八爪鱼 2026-7-30 20:17
30樓 巨大八爪鱼 2026-7-30 20:18
启动幸狐内核后,adb shell不可用。
巨大八爪鱼rock@rockpis:~$ sudo systemctl status rockchip-adbd.service
[sudo] password for rock:
? rockchip-adbd.service - Rockchip adb
     Loaded: loaded (/lib/systemd/system/rockchip-adbd.service; enabled; vendor
preset: enabled)
     Active: failed (Result: exit-code) since Thu 2026-07-30 12:08:30
 UTC; 9min ago
       Docs: https://wiki.radxa.com/Template:Rockpi_apt
    Process: 201 ExecStart=/etc/init.d/adbd.sh start (code=exited, statu
s=1/FAILURE)

Jul 30 12:08:30 rockpis systemd[1]: Starting Rockchip adb...
Jul 30 12:08:30 rockpis adbd.sh[204]: modprobe: FATAL: Module usb_f_fs not found
 in directory /lib/modules/5.10.198
Jul 30 12:08:30 rockpis systemd[1]: rockchip-adbd.servic
e: Control process exited, code=exited, status=1/FAILURE
Jul 30 12:08:30 rockpis systemd[1]: rockchip
-adbd.service: Failed with result 'exit-code'.
Jul 30 12:08:30 rockpis systemd[1]: Failed to start Rock
chip adb.
rock@rockpis:~$
巨大八爪鱼主要是根文件系统还是用的rockpis的ubuntu 20.04,不是幸狐的根文件系统,所以adb服务启动不了,用不了adb。

內容轉換:

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