去掉内核中的NAND flash驱动
上次笔者制作的可启动SD卡虽然成功,但是重新从NAND启动启动Android时,并不能启动,具体的串口错误忘了记下来,主要是flash分区错误,所以想到制作可启动SD卡时,配置内核时把NAND驱动去掉即可。
修改内核配置
export PATH=$HOME/cubietruck-build/cubietruck-uboot/u-boot-sunxi/tools:$PATH
cd $HOME/cubietruck-build/cubietruck-kernel/linux-sunxi
rm -rv .config
cp ../cubie_configs/kernel-configs/3.4/cubietruck_defconfig .config
make ARCH=arm menuconfig
--->Device Drivers
--->Block Devices
--->SUNXI Nandflash Driver
--->Create old nand device names (nanda-nandz) (NEW)
--->Enable the block layer
--->Partition Types
--->sunxi nand partition table support
按序将下列选项选择N
1.Create old nand device names (nanda-nandz) (NEW)
2.SUNXI Nandflash Driver
3.sunxi nand partition table support
编译内核
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules
但是会有如下结果
Image Name: Linux-3.4.103+
Created: Sun Jan 4 15:18:37 2015
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4548312 Bytes = 4441.71 kB = 4.34 MB
Load Address: 40008000
Entry Point: 40008000
Image arch/arm/boot/uImage is ready
Building modules, stage 2.
MODPOST 1139 modules
WARNING: modpost: Found 1 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
不知道WARNING原因是什么,但是笔者测试过,
内核第一次编译成功之后,即使不改变config,再次编译也是上面的WARNING。
测试
如果已经制作好了可启动的SD卡,只需要用这次编译好的内核替换原来的内核即可。
用PhoenixSuit安装Android到Cubietruck,确认可以启动。
关机之后插入SD卡,Cubietruck从SD卡启动。
再关机之后,拔掉SD卡,Cubietruck从NAND启动安卓成功。