 |
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内存里面,然后执行文件里面的内容。
|
 |
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
|
 |
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
|
 |
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
|
 |
29樓
巨大八爪鱼
2026-7-30 20:17
|
 |
30樓
巨大八爪鱼
2026-7-30 20:18
|