【問題】
有時能開機成功,有時卻開機失敗,串口輸出卡在下面的的位置。
[ 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
