【问题】
有时能开机成功,有时却开机失败,串口输出卡在下面的的位置。
[ 0.881199] rockchip-suspend not set sleep-mode-config for mem-lite[ 0.881771] rockchip-suspend not set wakeup-config for mem-lite
[ 0.882324] rockchip-suspend not set sleep-mode-config for mem-ultra
[ 0.882889] rockchip-suspend not set wakeup-config for mem-ultra
[ 0.884741] ALSA device list:
[ 0.885053] #0: Loopback 1
[ 0.885317] #1: rockchip,rk3308-acodec
[ 0.885957] dw-apb-uart ff0a0000.serial: forbid DMA for kernel console
[ 0.886888] Waiting for root device /dev/mmcblk1p2...
[ 0.887644] dwmmc_rockchip ff4a0000.mmc: card claims to support voltages below defined range
[ 0.926701] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[ 0.928674] mmc0: new high speed SDIO card at address 0001
【原因】
EMMC或者TF卡对应的mmcblk0,mmcblk1,mmcblk2等不固定,对应应用软件不好区分具体哪个设备名是EMMC或者TF卡。
EMMC或者TF卡对应的mmcblk0,mmcblk1,mmcblk2等不固定,对应应用软件不好区分具体哪个设备名是EMMC或者TF卡。
【解决方案】
打开luckfox-rk3308b-evb-v10.dts文件,在/ {里面添加:
aliases {mmc0 = &sdmmc;
};
这样就能把sd卡的第二分区的名称固定为/dev/mmcblk0p2,和uboot里面保持一致。
重新编译内核和设备树:
cd ~/Documents/Code/C/Luckfox_Nova_SDK_250430
./build.sh
将编译好的设备树上传到板子上:
adb push "Z:\Documents\Code\C\Luckfox_Nova_SDK_250430\kernel\arch\arm64\boot\dts\rockchip\luckfox-rk3308b-evb-v10.dtb" /mnt/sdcard
修改bootcmd.txt,把第一行的/dev/mmcblk1p2改成/dev/mmcblk0p2:
setenv bootargs root=/dev/mmcblk0p2 rootwait rw rootfstype=ext4 console=ttyS0,1500000n8
打包成镜像:
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "luckfox_bootcmd" -d bootcmd.txt bootcmd.img
上传到板子上:
adb push "Z:\Documents\Code\C\test\bootcmd\bootcmd.img" /mnt/sdcard/boot.scr
重启板子:
reboot
