1y第4章嵌入式Linux软件开发环境搭建1.1 体验嵌入式linux系统1. 获得光盘image目录提供的映像文件2. 使用h-jtag将u-boot.bin烧写进nor flash中3. 启动超级终端,设置bautrate为115200,8IN1。
重启开发板,将会进入u-boot的命令界面。
表明bootloader已正常运行Dennis Yang >4. 在PC机上安装usb驱动(安装文件位于光盘software\USB Download Driver.exe)5. 用usb线将PC机与开发板连接起来6. 在PC机上启动USB传输软件dnw(位于光盘software\dnw.exe)7. 在开发板上输入usbslave命令,让开发板进入等待接收数据状态Dennis Yang > usbslave 1 0x32000000USB host is connected. Waiting a download8. 在dnw软件界面,单击“USB Port”-->“Transmit/Restore”,找到image目录中的kernel 文件uImage(如果你使用的是天嵌tq2440,请选择uImage-embsky),进行传输。
这将导致uImage被传输到开发板内存的0x32000000处Dennis Yang > usbslave 1 0x32000000USB host is connected. Waiting a download.Now, Downloading [ADDRESS:32000000h,TOTAL:1518826]RECEIVED FILE SIZE: 1518826 (741KB/S, 2S)9. 在u-boot命令行输入命令,将nand flash的0x100000 -- 0x400000区间擦除(格式化)Dennis Yang > nand erase 0x100000 0x300000NAND erase: device 0 offset 0x100000, size 0x30000Erasing at 0x120000 -- 133% complete.OK10. 在u-boot命令行输入命令,将内存0x32000000处的kernel烧写到nand flash的0x100000-- 0x400000区间Dennis Yang > nand write.jffs2 0x32000000 0x100000 0x300000NAND write: device 0 offset 0x100000, size 0x300000Writing data at 0x3ff800 -- 100% complete.3145728 bytes written: OK11. 使用相同的方法将根文件系统(myfs-128M.jffs2,如果使用64M的nand flash,请选择myfs-64M.jffs2)烧写到nand flash的0x400000 -- 0x3c00000区间Dennis Yang > usbslave 1 0x30000000USB host is connected. Waiting a download.Now, Downloading [ADDRESS:30000000h,TOTAL:24594994]RECEIVED FILE SIZE:24594994 (667KB/S, 36S)Dennis Yang > nand erase 0x400000 0x3c00000NAND erase: device 0 offset 0x400000, size 0x3c00000Erasing at 0x3fe0000 -- 100% complete.OKDennis Yang > nand write.jffs2 0x30000000 0x400000 $(filesize)NAND write: device 0 offset 0x400000, size 0x1774a28Writing data at 0x1b74800 -- 100% complete.24594984 bytes written: OK12. 输入启动操作系统命令,将进入linux操作系统Dennis Yang > boot13. 使用触笔进行屏幕校正后,将进入qtopia图形系统如果由于屏幕校正不准确而不能正常使用触摸屏的话,请删除/etc/pointercal文件后,重启开发板,重新进行校正14. 在linux命令提示符下,播放歌曲# madplay /music/pianpianxihuanni.mp3MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.Title: Track 1Artist: 陳百強Orchestra: 陳百強Album: Best MemoryTrack: 15Genre: Other1.2 Linux操作系统安装1.2.1在Window上安装虚拟机本书基于ubuntu9.10进行开发,它是一个容易安装和使用的Linux发行版,光盘映像文件可以自由从互联网上获得,在配套光盘中提供了该文件(software/ubuntu-9.10-desktop-i386.iso)。
下面介绍在Window中通过vmware来安装ubuntu 的方法。
特别说明:本书在虚拟机中使用2个硬盘,40G的硬盘用于挂载root分区(/)并制作snapshot,这样可以在系统损坏时,快速的一键恢复;80G硬盘用于挂载work分区(/work),并设置为不受snapshot影响的独立硬盘,以后将在这个分区上编辑、编译软件,这样可以避免当系统出错后使用snapshot恢复时,不破坏学习成果。
请按照如下的一系列操作建立虚拟机。
1. 在window上安装vmware workstation 7.0软件该软件可以从wmware的官方网站下载2. 启动vmware,新建客户虚拟机。
选择File->New->Virtual Machine(1)在主机能联通互联网的情况下,图4 - 9选择虚拟机与主机的互联方式为NAT,使得虚拟机可以通过主机联通互联网(2)图4 - 13中选择“Split disk into 2GB files”,表示使用多个小于2GB的文件来表示一个很大的硬盘。
如果windows的硬盘格式为FAT32,请务必选择此选项,因为FAT32支持的最大文件大小为4GB,否则虚拟机将无法启动;如果是NTFS格式,就无需选择这个选项。
(3)图4 - 16中选择“Edit virtual machine settings”,可以增减、修改虚拟机的设备(4)图4 - 18用于新增第2个硬盘,大小80G,用于将来挂载work分区(5)图4 - 19设置新增的硬盘不受snapshot影响,即该硬盘上修改的内容不会被一键恢复(6)图4 - 20设置虚拟机使用光盘映像文件,这相当于将ubuntu的安装光盘插入了虚拟机的光驱。
请务必确保“connect at power on”选项被选中,这样当虚拟机启动时就能够从光盘启动,以便可以安装linux操作系统图4 - 1 选择新建虚拟机图4 - 2 选择定制虚拟机图4 - 3 选择虚拟机版本图4 - 4 选择虚拟机安装操作系统方式图4 - 5 选择虚拟机操作系统图4 - 6 设置虚拟机名字及存储位置图4 - 7 设置虚拟机CPU数目图4- 8 设置虚拟机内存数量图4 - 9 指定虚拟机同主机互联的方式图4 - 10 指定虚拟机硬盘控制器类型图4 - 11 选择创建新的虚拟硬盘图4 - 12 选择硬盘类型图4 - 13 指定虚拟硬盘容量图4 - 14 设置虚拟硬盘文件的名字(在windows下将新建一个文件来表示这个虚拟硬盘)图4 - 15 虚拟机设置总结图4 - 16 修改虚拟机属性图4 - 17 增加新硬件图4 - 18 选择增加新硬盘图4 - 19 设置硬盘不受snapshot影响图4 - 20 在虚拟机光驱上使用光盘映像文件1.2.2在虚拟机上安装Linux操作系统ubuntu9.10本书使用ubuntu9.10的光盘映像文件ubuntu9.10-desktop-i386.iso进行安装。
下面介绍关键步骤,其它步骤可以参见安装时出现的说明。
1. 单击vmware7.0的主菜单:VM->power->power on,启动虚拟机。
此时虚拟机会从ubuntu9.10的安装光盘启动,进入安装ubuntu 的界面图4 - 21 选择安装ubuntu2. 在图4 - 21中使用键盘选择“Install Ubuntu”,会进入ubuntu安装的图形界面,以后各个步骤中,大多数情况下只需选择“下一步”即可。
特别说明:此时鼠标和键盘被虚拟机接管,你将无法操作window主机。
如想从虚拟机退出到windows主机,按“ctrl+alt”即可;之后如想重新操控虚拟机,请用鼠标单击虚拟机的安装界面3. 安装过程中,当出现图4 - 22时,需要选择“specify partitions manually(advanced)”选项,以便手动对2个硬盘进行分区图4 - 22 指定手动对硬盘进行分区4. 在分区界面中,将第1个硬盘(/dev/sda)分为2个区:/dev/sda1分区大小39G,挂载root目录(/),文件系统为ext3;/dev/sda2分区大小1G,挂载交换分区(swap)。
将第2个硬盘(/dev/sdb)划分为1个分区(/dev/sdb1),大小80G,挂载/work目录,文件系统为ext3。
如图4 - 23所示。
特别说明:●在linux操作系统中,对于SCSI磁盘,用sdx来表示,第1个磁盘x为a,第2个磁盘x为b,依次类推●磁盘上的第1个分区编号为1,第2个分区编号为2,依次类推●ext3文件系统是linux在PC机上最常用的硬盘文件系统。
在嵌入式设备上则常用jffs2文件系统和yaffs2文件系统●swap分区,用于linux在运行期间的虚拟内存使用,其作用类似windows中的交换文件pagefile.sys图4 - 23 对虚拟机硬盘进行分区5. 当出现图4 - 24时,设置ubuntu的第1个普通用户登录名为dennis,密码为1234。
用户dennis将成为使用ubuntu操作系统的主要用户图4 - 24 设置ubuntu中第1个普通用户的登录名和密码6. 安装完成后,请务必在图4 - 20中去掉“Connect at power on”选项,以便使得虚拟机重启后从硬盘启动,而不是从光盘启动。