DM3730linux系统构建.pdf_第1页
DM3730linux系统构建.pdf_第2页
DM3730linux系统构建.pdf_第3页
DM3730linux系统构建.pdf_第4页
DM3730linux系统构建.pdf_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

地 址:广州市天河区粤垦路 38 号广垦商务大厦一座 7 楼网 址:www.ema- 电 话 真1 DM3730 linux 开发环境搭建开发环境搭建 1.Linux 系统使用与系统使用与设置设置 1.1. Angstrom Angstrom 是一个界面友好的嵌入式发行版本,用于手持设备,机顶盒和网络存储设备等嵌入 式设备。 光盘的文件系统是定制的 The Angstrom Distribution Linux(简称 Angstrom)。 Angstrom 的相关资料可以登录 。 Angstrom Linux 是基于 OpenEmbedded 工具创建的嵌入式系统专用 Linux 发行版。关于 OE 的相关资料可以登录 。 相关构建 Angstrom 的工具和文档说明请参考光盘目录LinuxToolsopenembedded.rar。 1.2.Linux 软件开发环境概述软件开发环境概述 在开始开发使用之前,您需要构建SBC37x系统的开发环境。在这一章中概述了装载SBC37x系 统相关的软件到开发主机所需要的步骤。你将需要一张SBC37x系统附带的光盘,安装操作需要用 户对windows和Linux操作系统有一定的了解和应用的知识。能够在这样的环境下简单的操作。 作为一款开放的Linux系统,SBC37x所用到的软件一般均为免费和开源的,能在互联网上自由 下载,这些软件稍经配置和修改后,就可以在SBC37x上运行。系统附带的光盘上已经包含了这些 内容,可以免去下载过程。 地 址:广州市天河区粤垦路 38 号广垦商务大厦一座 7 楼网 址:www.ema- 电 话 真2 SBC37x系统提供一套较为完整的软件开发环境。当按照系统安装的步骤完成后,用户可以无 需另行安装下载多余的软件或组件,就可以立即开始进行应用程序的开发工作。开发环境以一台操 作系统的Windows XP主机为基础的的开发平台,进行开发操作和测试。 1.3. 构建软件开发构建软件开发环境环境 1.3.1.构建软件开发构建软件开发环境环境 本手册要求的开发环境为 Linux 操作系统,建议使用 Ubuntu10.04。 1.3.2.构建交叉编译器构建交叉编译器 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这 种编译器支持交叉编译,这个编译就是叫交叉编译,简单地说,就是在一个平台上生成另外一个平 台上的可执行代码。编译嵌入式 Linux 内核前,要先安装交叉编译工具,光盘已附带编译工具包。 在/usr/local/目录下面创建文件夹 arm 。命令为: #su #ema #mkdir /usr/local/arm 1) 复制光盘 arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 到 /home/ema/tool(压缩文件是在/mnt/hgfs/share 盘目录)。命令为: #cd /mnt/hgfs/share #cp arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2/home/ema/tool 2) 解压到/usr/local/arm 目录下。命令为: #cd /home/ema/tool #tar jxvf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 C /usr/local/arm 3) 设置环境变量。命令为: #export PATH= /usr/local/arm/arm-2009q1/bin:$PATH 4) 查看环境变量命令为: #echo $PATH 地 址:广州市天河区粤垦路 38 号广垦商务大厦一座 7 楼网 址:www.ema- 电 话 真3 1.3.3.串口终端软件的使用串口终端软件的使用 u 在 WindowsXP 桌面上选择菜单:开始-所有程序-附件-通讯-超级终端。 u 在“连接描述”窗口中输入名称:ema,选择“确定”。 u 在“连接到”窗口中确认“连接时使用”项为“COM1”,选择“确认”。 u 在“COM1 属性”窗口中设定:每秒位数=115200,数据位=8,奇偶校验=无,停止位 =1,数据流控制=无,选择“确定”。 u 在桌面上会自动打开“ema-超级终端”窗口。 u 在“ema-超级终端”窗口中选择菜单:文件-退出,在系统询问是否存储连接时回答 “是”。 u 在 WindowXP 桌面上展开并右键单击单项:开始-所有程序-附件-通讯-超级终端- ema,选择“发送到桌面快捷方式”,回到桌面将新建立的连接改名位“连接 ema”启 动超级终端。 u 在 WindowXP 桌面上双击“连接 ema”图标启动超级终端。 u建议使用 ZOC Terminal,请参考光盘目录LinuxToolsZOC。 1.4. 系统编译系统编译 1.4.1.一级启动代码一级启动代码 x-loader 编译编译 首先设置好环境变量,命令为: emaema3530:$ export PATH= /usr/local/arm/arm-2009q1/bin:$PATH 复制光盘 x-loader.tar.bz2 到/home/ema/source 目录下(压缩文件是在 share 盘目录) emaema3530:$ cd /mnt/hgfs/share emaema3530:/mnt/hgfs/share$ cp x-loader.tar.bz2 /home/ema/Source 解压 xloader.tar.bz2 压缩到当前文件夹 emaema3530: $ cd /home/ema/Source emaema3530:/Source$ sudo tar jxvf x-loader.tar.bz2 emaema3530:/Source$ cd xloader make distclean 命令除依赖关系并清除以前编译产生的文件 emaema3530:/Source/xloader$ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm distclean find . -type f ( -name core -o -name *.bak -o -name * -o -name *.o -o -name *.a ) -print | xargs rm -f find . -type f 地 址:广州市天河区粤垦路 38 号广垦商务大厦一座 7 楼网 址:www.ema- 电 话 真4 ( -name .depend -o -name *.srec -o -name *.bin ) -print | xargs rm -f rm -f *.bak tags TAGS rm -fr *.* rm -f x-load x-load.map rm -f include/asm/proc include/asm/arch rm -f include/config.h include/config.mk 接着配置和编译 emaema3530:/Source/xloader$ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm omap3stalker_config rm -f include/config.h include/config.mk Configuring for omap3530beagle board. emaema3530:/Source/xloader$ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm 编译完成后,xloader 目录下会生成新的 x-load.bin。 emaema3530:/Source/xloader$ ls arm_config.mk config.mk drivers libREADME System.map x-load.map boardcpufsMakefile scripts x-load commondiskinclude mkconfig signGP x-load.bin 转换成 SD 卡启动用程序:MLO emaema3530:/Source/xloader$ ./ signGP emaema3530:/Source/xloader$ ls arm_config.mk cpuinclude READMEx-load boarddisklibscriptsx-load.bin commondrivers Makefile signGPx-load.bin.ift config.mkfsmkconfig System.map x-load.map emaema3530:/Source/xloader$ cp x-load.bin.ift MLO 1.4.2.二级启动代码二级启动代码 u-boot 编译编译 首先设置好环境变量,命令为: emaema3530: $ export PATH= /usr/local/arm/arm-2009q1/bin:$PATH 复制光盘 u-boot-release.tar.bz2 到/home/ema/source 目录下(压缩文件是在 share 盘目录) emaema3530:$ cd /mnt/hgfs/share emaema3530:/mnt/hgfs/share$ cp u-boot-release.tar.bz2 /home/ema/Source 解压 u-boot-release.tar.bz2 压缩到当前文件夹 emaema3530:$ cd /home/ema/Source emaema3530:/Source$ sudo tar jxvf u-boot-release.tar.bz2 emaema3530:/Source$ cd u-boot-release 配置编译 emaema3530:/Source/u-boot-release$ make SBC37x_rev_a_config emaema3530:/Source/u-boot-release$ make 编译成功后就可以在当前目录下看到生成的 u-boot.bin。 备注:SBC37x_rev_a_config 文件在 u-boot 源码的 include/configs 文件夹下。 复制 mkimage 到/usr/bin,这是为了编译内核生成 uImage。 地 址:广州市天河区粤垦路 38 号广垦商务大厦一座 7 楼网 址:www.ema- 电 话 真5 emaema3530:/Source/u-boot-release$ cd tools/ emaema3530:/Source/u-boot-release/tools$ cp mkimage /usr/bin 1.4.3.内核编译内核编译 首先设置好环境变量,命令为: emaema3530: $ export PATH= /usr/local/arm/arm-2009q1/bin:$PATH 复制光盘 linux-03.00.01.06.tar.bz2 到/home/ema/source 目录下(压缩文件是在/share 盘目 录)。 emaema3530:$ cd /mnt/hgfs/share emaema3530:/mnt/hgfs/share$ cp linux-03.00.01.06.tar.bz2 /home/ema/Source 解压 linux-03.00.01.06.tar.bz2 压缩到当前文件夹。 emaema3530:/mnt/hgfs/share$ cd /home/ema/Source emaema3530:/Source$ sudo tar jxvf linux-03.00.01.06.tar.bz2 emaema3530:/Source$ cd linux-03.00.01.06 配置编译。 emaema3530:/Source/linux-03.00.01.06$ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm omap3_stalker_defconfig emaema3530:/Source/linux-03.00.01.06$ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm emaema3530:/Source/linux-03.00.01.06$ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm uImage 编译成功后就可以在 arch/arm/boot 目录下看到生成的 uImage。 1.4.4.制作文件系统镜像制作文件系统镜像 开发文件系统通常需要修改某些东西,这就需要重新制作 nandflsah 镜像。方法如下: u 将光盘目录 Linux/Tools 下的 make-ubifs.tar.bz2 解压到 ubuntu 的$HOME 目录下。 $ tar jxvf make-ubifs.tar.bz2 -C $HOME $ cd $HOME/make-ubifs/UBIFS_tools $ chomd +x mkfs.ubifs ubinize $ cd / u 将开发系统的所有文件拷贝到$HOME/make-ubifs/rootfs 中 u 假设系统在 SD 卡的 ext3 分区,且挂载在/media/rootfs/ $ sudo cp -a /media/rootfs/* $HOME/make-ubifs/rootfs/ u 假设你要做的 nandflash 为 256M,则如下运行脚本 $ cd $HOME/make-ubifs/ $ ./mkfs-256m.sh 地 址:广州市天河区粤垦路 38 号广垦商务大厦一座 7 楼网 址:www.ema- 电 话 真6 完成后将在当前目录生成 ubi 的 flash 镜像(ubi.img),ubifs.img 为中间文件。 同理,如需要的是 512M fash 的镜像,请运行脚本 mkfs-512m.sh 1.5. Linux 系统镜像系统镜像更新更新 1.5.1.制作制作 SD 系统启动卡系统启动卡 为了实现以后的各步骤操作,需要准备一张空白SD 卡(以下操作各步骤中涉及的均为此 卡),并且需要在它上面建立Fat32 分区和Ext3 分区。如果使用的是我们提供的SD卡,那么可 能SD卡已经有了这两个分区,可省去分区及格式化部分操作,只需要删除已有文件即可 (mkcard.sh脚本在光盘Linux/Tools文件夹里)。 将 SD 卡插入 Ubuntu 系统。 rootema3530:/home/ema# sudo ./mkcard.sh /dev/sdb 1024+0 records in 1024+0 records out 1048576 bytes (1.0 MB) copied, 0.652779 s, 1.6 MB/s Disk /dev/sdb doesnt contain a valid partition table DISK SIZE - 1995440128 bytes CYLINDERS - 242 Checking that no-one is using this disk right now . OK Disk /dev/sdb: 242 cylinders, 255 heads, 63 sectors/track sfdisk: ERROR: sector 0 does not have an msdos signature /dev/sdb: unrecognized partition table type Old situation: No partitions found New situation: Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot StartEnd #cyls#blocks Id System /dev/sdb1 *0+89-72261c W95 FAT32 (LBA) /dev/sdb292412331871572+ 83 Linux /dev/sdb30-000 Empty /dev/sdb40-000 Empty Successfully wrote the new partition table Re-reading the partition table . If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).) mkfs.vfat 2.11 (12 Mar 2005) mke2fs 1.40.8 (13-Mar-2008) Filesystem label=rootfs OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 117120 inodes, 467893 blocks 虚拟机断开 SD 卡连接随即又重新连接上,用“df”命令就可以看到已经分好两个分区。 地 址:广州市天河区粤垦路 38 号广垦商务大厦一座 7 楼网 址:www.ema- 电 话 真7 rootema3530:/home/ema# df Filesystem1K-blocksUsed Available Use% Mounted on /dev/sda160924160 7115212 50738528 13% / varrun25772088257632 1% /var/run varlock2577200257720 0% /var/lock udev25772056257664 1% /dev devshm2577200257720 0% /dev/shm .host:/62468720 6243009638624 100% /mnt/hgfs /dev/sdb171133171133 1% /media/boot /dev/sdb2185676435568 1727620 3% /media/rootfs 1.5.2.SD 卡的系统镜像更新卡的系统镜像更新 复制启动系统文件。 # sudo cp MLO /media/boot # sudo cp u-boot.bin /media/boot # sudo cp uImage /media/boot # sudo tar jxvf SBC37x-B2-FileSystem.tar.bz2 -C /media/rootfs # sync 卸载 SD 卡并等待“boot”和“rootfs”图标消失并且读卡器上指示灯不再闪烁。 1.5.3.NAND Flash 系统映像更新系统映像更新 u NAND FLASH 分区: * 0x00000000-0x00080000 : “X-Loader“ * 0x00080000-0x00260000 : “U-Boot“ * 0x00260000-0x00280000 : “U-Boot environment data“ * 0x00280000-0x00680000 : “Kernel“ 下面的指南是使用 SD 卡引导将镜像写入到 NAND FLASH 准备: (1)准备一个可启动的 SD 卡。 地 址:广州市天河区粤垦路 38 号广垦商务大厦一座 7 楼网 址:www.ema- 电 话 真8 (2)请确保以下文件在 FAT32 分区的 SD 卡里面: MLO (X-Loader) u-boot.bin (U-Boot) uImage (Linux kernel image) ubi.img (UBIFS file system image) X-Loader 是第一阶段引导加载程序 ,使用下面的命令烧写 X-Loader 到 NAND FLASH OMAP3 Stalker # mmc init OMAP3 Stalker # fatload mmc 0:1 80000000 MLO OMAP3 Stalker # nandecc hw OMAP3 Stalker # nand erase 0 80000 OMAP3 Stalker # nand write.i 80000000 0 80000 U-Boot 是第二阶段引导加载程序 ,使用下面的命令烧写 U-Boot 到 NAND FLASH OMAP3 Stalker # mmc init OMAP3 Stalker # fatload mmc 0:1 80000000 u-boot.bin OMAP3 Stalker # nandecc sw OMAP3 Stalker # nand erase 80000 160000 OMAP3 Stalker # nand write.i 80000000 80000 160000 使用下面的命令烧写内核镜像到 NAND FLASH OMAP3 Stalker # mmc init OMAP3 Stalker # fatload mmc 0:1 80000000 uImage OMAP3 Stalker # nandecc sw OMAP3 Stalker # nand erase 280000 400000 OMAP3 Stalker # nand write.i 80000000 280000 400000 我们使用的文件系统 UBIFS。使用下面的命令加载文件系统镜像到 RAM。这里举例的文件系统 镜像名是:ubi.img OMAP3 Stalker # mmc init OMAP3 Stalker # fatload mmc 0:1 84000000 ubi.img OMAP3 Stalker # nandecc sw 烧写文件系统镜像到 NAND FLASH。这里举例的文件系统镜像的大小是 0xD40000 (Bytes), 具体大小可根据实际镜像大小来调整。 OMAP3 Stalker # nand write.i 84000000 680000 D40000 备注:光盘上面有提供两个 ubi 镜像,一个是最小文件系统 ubi-console(拷贝到 SD 卡时应改名 为 ubi),大小为 0xD40000 (Bytes)。另一个 ubi 文件大小为 0x9480000 (Bytes)(注意 SD 卡的 boot 分区有足够空间),此文件系统功能较全。 当所有上述工作完成后就可以关掉电源,把 SD 卡拔出来,设置好拨码开关(111100),重新 上电启动开发板,在 U-BOOT 里设置好传给内核的参数就可以从 NAND FLASH 启动。 地 址:广州市天河区粤垦路 38 号广垦商务大厦一座 7 楼网 址:www.ema- 电 话 真9 1.6. TFTP 操作操作 TFTP(Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在客 户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。 1.6.1.Linux 下配置下配置 TFTP 安装 tftp 所需的软件。首先需要安装 tftp-hpa,tftpd-hpa,前者是客户端,后者是服务程序, 在终端下输入 sudo apt-get install tftp-hpa tftpd-hpa,安装 tftp-hpa 和 tftpd-hpa。然后还需 要安装 xinetd,在终端下输入 sudo apt-get install xinetd,安装好 xinetd。 配置相关服务文件。进入根目录下的 etc 文件夹(cd /etc/),首先看目录中有没有一个 xinetd.conf 文件,如果没有则新建一个,有的话查看内容,看是否与下面的一致,若不一致则修 改,内容如下: 配置 tftp 服务器 命令: sudo vim /etc/default/tftpd-hpa 将内容修改成 地 址:广州市天河区粤垦路 38 号广垦商务大厦一座 7 楼网 址:www.ema- 电 话 真10 其中 tftpboot 这是你 tftp 服务器的工作目录,自行修改,注意,在新建工作目录时,最好修 改其权限为 777,命令 sudo chmod 777 /tftpboot。 然后进入 xinetd.d 文件夹(cd xinetd.d),查看是否有一个 tftp 文件,如果没有就新建一个, 如果有的话就查看内容是否与下面的一致,不一致则修改,内容如下: service tftp socket_type = dgram wait = yes disable = no user = root protocol = udp server = /usr/sbin/in.tftpd server_args = -s /tftpboot per_source = 11 cps =100 2 flags =IPv4 修改所需文件夹的权限。需要修改的文件夹也就是上一步提到的那个服务器文件存放的文件 夹,以本手册的配置文件为例,创建一个文件夹(sudo mkdir /tftpboot),然后把它可以设置成 访问权限为 sudo chmod 777 /tftpboot。 重新启动服务。 sudo service tftpd-hpa restart sudo /etc/init.d/xinetd reload sudo /etc/init.d/xinetd restart 1.6.2.Windows 下配置下配置 TFTP 使用 tftp 软件做相关操作,在光盘目录LinuxToolstftp下。 1.6.3.开发板使用开发板使用 tftp 下载镜像到下载镜像到 Nand Flash 1)打开PC机tftp服务 地 址:广州市天河区粤垦路 38 号广垦商务大厦一座 7 楼网 址:www.ema- 电 话 真11 2)系统上电后进入uboot,设置开发板环境变量并下载。 OMAP3 Stalker # setenv serverip 6 (主机IP) OMAP3 Stalker # setenv ipaddr 41(评估板 IP) OMAP3 Stalker # saveenv 3)下载MLO #if tftpboot MLO; then nandecc hw; nand erase 0 80000; nand write 82000000 0 80000; fi; 4)下载u-boot.bin #if tftpboot u-boot.bin; then nandecc sw; nand erase 80000 160000; nand write $loadaddr 80000 160000; fi; 5)下载uImage #if tftpboot uImage; then nandecc sw; nand erase 280000 400000; nand write $loadaddr 280000 400000; fi; 6)下载ubi.img #if tftpboot ubi.img; then nandecc sw; nand erase 680000 1000000; nand write $loadaddr 680000 d40000; fi; 1.7. 挂载网络文件系统挂载网络文件系统 NFS NFS 服务就是将宿主机的一个目录通过网络可以被挂载到其他计算机上,并且作为其他计算机 的一个目录。在嵌入式开发中,通过 NFS 可以很方便的将修改的文件通过 NFS 传输到目标板上。 Ubuntu 默认是没有 NFS 服务的,所以需要自己安装。 安装 NFS 服务版。 emaema3530:$ sudo apt-get install nfs-kernel-server 修改 NFS 配置文件,vim /etc/exports。 emaema3530:$ vim /etc/exports 在文件中添加 NFS 的目录格式如下, 并存盘退出。 /home/ema/nfs_share *(rw,sync,no_root_squash) 在根目录下建立共享的目录,并创建 test 文件放在目录里。 emaema3530:$ mkdir /home/ema/nfs_share 地 址:广州市天河区粤垦路 38 号广垦商务大厦一座 7 楼网 址:www.ema- 电 话 真12 emaema3530:$ touch /home/ema/nfs_share/test 重新启动 NFS。 emaema3530:$ sudo /etc/init.d/nfs-kernel-server restart 查看宿主机 IP。 emaema3530:$ ifconfig 挂载本地目录,测试 NFS。 emaema3530:/$ sudo mount 62:/home/ema/nfs_share/ /tmp/ sudo password for ema: emaema3530:/$ ls /tmp/ aaa emaema3530:/$ sudo umount /tmp/ emaema3530:/$ ls /tmp/ gconfd-ema keyring-QhwEr7 orbit-ema ssh-oHsGDk5300 VMwareDnD vmware-root 目标板需要安装 nfs-utils-client。 rootbeagleboard:# opkg install nfs-utils-client Installing nfs-utils-client (1.1.2-2.1) to root. Downloading http:/www.angstrom- /feeds/2008/ipk/glibc/armv7a/base/nfs-utils-client_1.1.2-2.1_armv7a.ipk Configuring nfs-utils-client 目标板通过 NFS 挂载宿主机目录。 rootbeagleboard:# mount 62:/home/ema/nfs_share/ /tmp/ Cant set permissions on mtab: Operation not permitted rootbeagleboard:# ls /tmp/ test 2.Linux 系统操作系统操作 2.1. 设置开机自动运行程序设置开机自动运行程序 在/etc/init.d/rcS 文件里添加一个的 shell 脚本,开机就会执行这个脚本,例如 se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论