一、 硬件要求
一般用PC机来开发Linux,它应满足如下要求:
① 有一个25针的并行接口,用它来连接H-JTAG
② 有一个9针的RS-232串行接口
③ 支持网络
④ 至少10G的硬盘空间,用来安装VMWare虚拟机和Linux
二、 VMWare虚拟机的安装和Ubuntu的安装
具体的安装方法可以参考《嵌入式Linux应用开发完全手册》---韦东山著,这里不做详述
三、 VMWareTools的安装
① 将media/cdrom/VMWareTools-7.8.4.tar.gz拷贝至 /temp下
② 进入/temp下,cd /temp
③ 解压缩上述压缩文件 tar zxvf VMWareTools-7.8.4.tar.gz
④ cd \VMWare-tools-distrib
⑤ ./VMWare-install.pl
以后一路回车,直到TOOLS安装完成
四、将光盘下提供的所有文件拷贝至windows的某个文件夹下,然后在虚拟机里面共享该文件夹,这就可以在Ubuntu下看到该文件,它在/mnt/hgfs/xxx
五、我们以root身份登录到Ubuntu,驱动Ubuntu 里面的超级终端,然后做如下动作:
sudo passwd root
xxxxxx(passwd)
xxxxxx(passwd)
xxxxxx(passwd)
sudo –s –H
到这,我们可以以root身份操作了
六、在根目录下建立自己的一个文件夹,用来编译uClinux,比如新建一个work文件夹 Mkdir /work
七、将/mnt/hgfs/xxx下的所有文件拷贝至 /work 下
cd /mnt/hgfs/xxx
cp arm-linux-tools-20061213.tar.gz /work
cp uClinux-dist-20070130.tar.gz /work
cp linux-2.6.21.tar.bz2 /work
cp ea-uClinux-081020.diff.gz /work
cp ea-v3_1_incr1.diff.gz /work
cp u-boot-1.1.6.tar.bz2 /work
cp u-boot-1.1.6-ea_v1_9_1.diff.gz /work
cp u-boot-1.1.6-ea_v1_9_1_incr1.diff.gz /work
cp mkcramfs /work
cp arm-elf-tools-20040427.sh /work
八、 进入/work 解压缩内核文件以及交叉编译工具链并编译内核
tar -xzvf /uClinux-dist-20070130.tar.gz
cd uClinux-dist
rm -rf linux-2.*
tar -xzvf /linux-2.6.21.tar.gz
mv linux-2.6.21 linux-2.6.x
gunzip -c /ea-uClinux-081020.diff.gz | patch -p1
patch –p0 </ea-v3_1_incr1.diff.gz
tar -xzvf /arm-linux-tools-20061213.tar.gz
sudo apt-get install mtd-tools
chgrp users /usr/sbin/mkfs.jffs2
cd /work/usr/local/bin
ln -s /usr/sbin/mkfs.jffs2 mkfs.jffs2
sudo apt-get install cramfsprogs
cd /work/usr/local/bin
ln -s /usr/sbin/mkcramfs mkcramfs
cd /work
cp mkcramfs /work/usr/local/bin
cp /work/u-boot-1.1.6/tools/mkimage /work/usr/local/bin
chgrp users /work/usr/local/bin/mkimage
chmod 755 /work/usr/local/bin/mkimage
sudo apt-get install zlib1g-dev
sudo apt-get install libncurses-dev
sudo apt-get install vim-full vim-runtime vim-gnome
安装arm-elf-tools-20040427.sh
① cd /work
② tail –n+43 arm-elf-tools-20040427.sh >> 1.tar.gz
③ tar zxvf 1.tar.gz
编译内核
cd /work/uClinux-dist
make menuconfig
Select Vendor/Product Selection--- EmbeddedArtists
Select LPC2478OEM_Board
Exit
Exit
Yes
make
Now ,you can see jffs2.img cramfs.img uLinux.bin at /images
九、解压缩U-BOOT并编译
tar zxvf /u-boot-1.1.6.tar.bz2
gunzip –c /u-boot-1.1.6-ea-v1_9_1.diff.gz
patch –p0 </u-boot-1.1.6-ea-v1_9_1_incr1.diff.gz
cd \u-boot-1.1.6
make distclean
make LPC2478OEM_Board_16bit_config
make
now,you can see the u-boot.bin at xxx
十、 文件的烧写和系统的启动
① 用H-JTAG工具将u-boot.bin文件烧写到LPC2478芯片内部Flash
② 烧写完成后重新上电
③ 按任意键,取消U-BOOT 的自动启动,做如下动作:我们用TFTP来传输影像文件----修改传递内核参数:
setenv bootargs root=/dev/mtdblock1 rootfstype=jffs2 console=ttyS0,115200N8
saveenv
④ 键入 run updata_nand 回车 等待写入完成
⑤ 键入 run nand_boot 回车 等待写入完成
到此内核已经启动,并挂载了JFFS2文件系统
⑥ 运行系统自带的测试程序
cd /bin 回车
./calibrate 回车
到此屏幕显示了一幅图片
⑦ 要想自动运行用户程序,在rc 文件的最后一行写入 /bin/calibrate,重新编译并下载至目标板运行即可。
十一、TFTPserver的安装
从网站上下载TFTPserver
① sudo apt-get install tftpd
② sudo apt-get install xinetd
③ 建立配置文件
cd /etc/xinetd.d/
vi tftp,输入
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
存盘退出
sudo chmod o+w tftpboot
④ 建立TFTP服务目录:Mkdir /tftpboot
⑤ 重新启动服务
⑥ 完成安装测试方法,将上述的JFFS2.IMG uLinux.bin 拷贝至/tftpboot目录
⑦ 执行---文件的烧写和系统的启动---步骤
参考文献:
《嵌入式Linux应用开发完全手册》韦东山编著,人民邮电出版社
《嵌入式Linux应用程序开发详解》华清远见嵌入式培训中心孙琼编著,人民邮电出版社
《嵌入式Linux系统开发技术详解---基于ARM》华清远见嵌入式培训中心 孙纪坤、张小全编著,人民邮电出版社
《嵌入式系统接口设计与Linux驱动程序开发》刘淼编著,北京航空航天大学出版社 |