|
本帖最后由 anjoah 于 2018-7-23 01:20 编辑
请教:在你的脚本里:
- echo "Modify files for N1 emmc boot"
- /bin/sed -e "/usb [23]/d" -e 's/fatload mmc 0 \([^ ]*\) \([^;]*\)/ext4load mmc 1:c \1 \/boot\/\2/g' -i $DIR_INSTALL/boot/s905_autoscript.cmd
- /bin/sed -e 's/LABEL=ROOTFS/\/dev\/data/' -e "s/mac=.*/mac=${mac}/" -i $DIR_INSTALL/boot/uEnv.ini
- /usr/bin/mkimage -C none -A arm -T script -d $DIR_INSTALL/boot/s905_autoscript.cmd $DIR_INSTALL/boot/s905_autoscript
- echo "Emmc boot fixed end"
复制代码 这里的mmc 1:c 是uboot的语法吗?如果我想把系统装在/dev/system里, 除了修改:s/LABEL=ROOTFS/\/dev\/data/ 这个值以外,还需要改什么呢?是要把mmc 1:c 换成 mmc 1:b么?
我的想法是把 rootfs放在/dev/system下, 把/var 放在/dev/data下,把/opt 放在/dev/cache/下。。n1就用来跑容器了。 。
从刷好系统的/boot分区读到s905_autoscript.cmd 文件里看到如下的引导顺序。。按我的理解,把mmc 1:c 改成 /dev/system/对应的 mmc 对象,再把uEnv.ini的内容修改一下应该就可以了?
- setenv env_addr "0x10400000"
- setenv kernel_addr "0x11000000"
- setenv initrd_addr "0x13000000"
- setenv boot_start booti ${kernel_addr} ${initrd_addr} ${dtb_mem_addr}
- if ext4load mmc 1:c ${kernel_addr} /boot/zImage; then if ext4load mmc 1:c ${initrd_addr} /boot/uInitrd; then if ext4load mmc 1:c ${env_addr} /boot/uEnv.ini; then env import -t ${env_addr} ${filesize};fi; if ext4load mmc 1:c ${dtb_mem_addr} /boot/dtb.img; then run boot_start; else store dtb read ${dtb_mem_addr}; run boot_start;fi;fi;fi;
- if fatload usb 0 ${kernel_addr} zImage; then if fatload usb 0 ${initrd_addr} uInitrd; then if fatload usb 0 ${env_addr} uEnv.ini; then env import -t ${env_addr} ${filesize};fi; if fatload usb 0 ${dtb_mem_addr} dtb.img; then run boot_start; else store dtb read ${dtb_mem_addr}; run boot_start;fi;fi;fi;
- if fatload usb 1 ${kernel_addr} zImage; then if fatload usb 1 ${initrd_addr} uInitrd; then if fatload usb 1 ${env_addr} uEnv.ini; then env import -t ${env_addr} ${filesize};fi; if fatload usb 1 ${dtb_mem_addr} dtb.img; then run boot_start; else store dtb read ${dtb_mem_addr}; run boot_start;fi;fi;fi;
复制代码 另外,我看了下之前导出的uboot引导信息:
- SDIO Port B: 0, SDIO Port C: 1
- emmc/sd response timeout, cmd8, status=0x3ff2800
- emmc/sd response timeout, cmd55, status=0x3ff2800
- init_part() 293: PART_TYPE_AML
- [mmc_init] mmc init success
- dtb magic 71b104da
- aml log : R2048 check pass!
- Amlogic multi-dtb tool
- Multi dtb detected
- Multi dtb tool version: v2 .
- Support 2 dtbs.
- aml_dt soc: gxl platform: p230 variant: 2g
- dtb 0 soc: gxl plat: p230 vari: 1g
- dtb 1 soc: gxl plat: p230 vari: 2g
- Find match dtb: 1
- start dts,buffer=0000000073ede1b0,dt_addr=0000000073ee91b0
- Amlogic multi-dtb tool
- Multi dtb detected
- Multi dtb tool version: v2 .
- Support 2 dtbs.
- aml_dt soc: gxl platform: p230 variant: 2g
- dtb 0 soc: gxl plat: p230 vari: 1g
- dtb 1 soc: gxl plat: p230 vari: 2g
- Find match dtb: 1
- parts: 10
- 00: logo 0000000002000000 1
- 01: recovery 0000000002000000 1
- 02: rsv 0000000000800000 1
- 03: tee 0000000000800000 1
- 04: crypt 0000000002000000 1
- 05: misc 0000000002000000 1
- 06: boot 0000000002000000 1
- 07: system 0000000050000000 1
- 08: cache 0000000020000000 2
- 09: data ffffffffffffffff 4
- init_part() 293: PART_TYPE_AML
复制代码 我知道 mmc 1 是emmc ,但我不太清楚,mmc 1:c 和09: data 这个对应关系怎么换算出system的 设备号呢?
|
|