http://blog.csdn.net/lwj103862095/article/details/8227474
1、首先拷贝TQ提供的已经移植好的内核到/usr/src/目录下。
cp /mnt/hgfs/share/linux-2.6.30.4_20100531.tar.bz2 /usr/src/
2、解压linux-2.6.30.4_20100531.tar.bz2压缩包
tar -xvjf linux-2.6.30.4_20100531.tar.bz2
3、进入linux-2.6.30.4这个目录 (一定要在这个目录下配置内核)
cd /opt/EmbedSky/linux-2.6.30.4
————————————————————————————————————
下面开始再PC机的虚拟机上配置、编译内核
————————————————————————————————————
4 、清除原有配置与中间文件
make distclean
5、将config_EmbedSky_W43的内容复制到 .config这个文件里。(至关重要)
如果没有做这一步,将导致,启动不了内核。
cp config_EmbedSky_W43 .config
6、配置内核
make menuconfig
因为TQ公司已经将顶层的Makefile里面的
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
修改成
ARCH ?= arm
CROSS_COMPILE ?=arm-linux-
故我们可以直接使用 make menuconfig 命令,而不用make menuconfig ARCH=arm 命令
其实这里不用做什么,直接exit退出。因为配置的结果就是为了产生 .config这个配置文件。
我们在第五步已经完成了这个配置。
7、编译内核
make zImage
同样道理,我们也不用使用make zImage CROSS_COMPILE=arm-linux- 命令。否则,会累死。
编译成功后,看到 Kernel: arch/arm/boot/zImage is ready
说明,已经在 arch/arm/boot/生成了 zImage 镜像。
8、拷贝zImage到/tftpboot/目录下
cp ach/arm/boot/zImage /tftp/
————————————————————————————————————
下面是烧写内核到开发板上。
首先,确保开发板已经烧写好了u-boot,我们通过u-boot的命令,通过tftp网络烧写内核
到开发板上。
其次,确保开发板能够ping通虚拟机。(因为是通过网络来烧写)。
————————————————————————————————————
9、EmbedSky> tftp 31000000 zImage
dm9000 i/o: 0x20000300, id: 0x90000a46
MAC: 0a:1b:2c:3d:4e:5f
TFTP from server 192.168.0.105; our IP address is 192.168.0.5
Filename 'zImage'.
Load address: 0x31000000
Loading: T #################################################################
#################################################################
#############################
done
Bytes transferred = 2314748 (2351fc hex)
10、擦除nand flash
EmbedSky> nand erase 200000 300000
NAND erase: device 0 offset 0x200000, size 0x300000
Erasing at 0x4e0000 -- 100% complete.
OK
11、烧写到nand flash里面去
EmbedSky> nand write 31000000 200000 300000
NAND write: device 0 offset 0x200000, size 0x300000
3145728 bytes written: OK
12、启动内核
EmbedSky> boot_zImage
Copy linux kernel from 0x00200000 to 0x30008000, size = 0x00300000 ... Copy Kernel to SDRAM done,NOW, Booting Linux......
Uncompressing Linux......................................................................................................................................................... done, booting the kernel.
Linux version 2.6.30.4-EmbedSky ([email protected]) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-176) ) #3 Mon Nov 26 20:19:27 CST 2012
CPU: ........
......
......
Please press Enter to activate this console. eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
到这里,内核就完全启动完毕了。
————————————————————————————————————
敲入Enter键后,出现类似于虚拟机里面的输入窗口命令行。
[root@EmbedSky /]#
[root@EmbedSky /]#
输入ls命令后,
这些就是一些存在于开发板上的文件系统啦。
这节就讲到这里,天气冷了,大家多穿点衣服,最后祝愿大家学习愉快咯。^_^