我是在使用bbb板子,内核是3.8.13。遇到问题的现象是:sd卡和emmc要同时使用,但是文件系统要放在emmc中。这样,我起初设计环境变量uEnv.txt是“mmcroot=/dev/mmcblk1p2 ro”,但是当sd卡出了问题的时候,或者忘记插卡的时候,板子重新启动就无法找到文件系统啦! 我现在处理这个问题的思路是:修改设备树《am33xx.dtsi》: aliases {
serial0 = &uart1;
serial1 = &uart2;
serial2 = &uart3;
serial3 = &uart4;
serial4 = &uart5;
serial5 = &uart6;
mmc0 = &mmc2; //这两项是我后加上的
mmc1 = &mmc1; //
}; 。。。。。。 mmc2: mmc@481d8000 {
compatible = "ti,omap3-hsmmc";
ti,hwmods = "mmc2";
ti,needs-special-reset;
ti,needs-special-hs-handling;
dmas = <&edma 2
&edma 3>;
dma-names = "tx", "rx";
status = "disabled";
};
mmc1: mmc@48060000 {
compatible = "ti,omap3-hsmmc";
ti,hwmods = "mmc1";
ti,dual-volt;
ti,needs-special-reset;
ti,needs-special-hs-handling;
dmas = <&edma 24
&edma 25>;
dma-names = "tx", "rx";
status = "disabled";
};
mmc3: mmc@47810000 {
compatible = "ti,omap3-hsmmc";
ti,hwmods = "mmc3";
ti,needs-special-reset;
ti,needs-special-hs-handling;
status = "disabled";
}; 我的目的是想让系统启动后,把emmc注册为/dev/mmcblk0设备,这样我就可以把环境变量uEnv.txt设置为“mmcroot=/dev/mmcblk0p2 ro”,不管设备有没有检测到sd卡,emmc的设备名称都不会被修改,就可以解决这个问题了。 但是我这么修改之后,重新编译内核及设备树,替换了板子中相关的zImage和am335x-boneblack.dtb文件后,板子重新上电(板子有sd卡),emmc设备名还是/dev/mmcblk1。 请问,我怎么修改才可以保证不管设备有没有检测到sd卡,emmc的设备名称都不会被修改啊???
|