




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、搭建嵌入式Linux开发环境 张黎明leeming1203主要内容:1.Linux开发环境的建立(Vmware虚拟机,fedora系统,VMwaretools的安装,交叉编译工具链)2. 网络文件系统的配置(主机端,开发板端)3.Minigui开发环境的建立(pc端,交叉编译)1.Linux开发环境的建立背景知识:Vmware虚拟机简介VMware Workstation虚拟机是一个在Windows或Linux计算机上运行的应用程序,它可以模拟一个基于x86的标准PC环境。这个环境和真实的计算机一样,都有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器、SCS
2、I控制器等设备,提供这个应用程序的窗口就是虚拟机的显示器。在使用上,这台虚拟机和真正的物理主机没有太大的区别,都需要分区、格式化、安装操作系统、安装应用程序和软件,总之,一切操作都跟一台真正的计算机一样。下面,就请大家根据我们的介绍,一步步操作,自己安装一台可以操作的虚拟机。1.1安装vmware workstation 虚拟机软件版本6.0.2-59824,虚拟机版本向下兼容选择典型安装单击Install继续按照默认安装即可背景知识:Fedora7简介Fedora(Fedora Linux,第七版以前为Fedora Core)是较具知名度的 Linux 发行包之一,由 Fedora Proj
3、ect 社群开发、红帽公司赞助,目标是建立一套新颖、多功能并且自由(开放源代码)的操作系统。Fedora 是奠基于 Red Hat Linux,在 Red Hat Linux 终止发行后,红帽公司计划以 Fedora 来取代 Red Hat Linux 在个人应用的领域,而另外发行的 Red Hat Enterprise Linux(Red Hat 企业版 Linux,RHEL)则取代 Red Hat Linux 在商业应用的领域。和经典的redhat9的操作习惯相同自身携带了大量开发工具包,是实验室的经验总结之后的最佳选择1.2在虚拟机中安装fedora7初始界面如下:点击File-New-
4、Virtual Machine选择典型安装选择操作系统类型应该选linux-other linux 2.6X kernel选择一个地方保存你的虚拟机注意:保存的地方空间要足够大 网络选择默认的brige模式背景知识:何为VMware中的bridge&nat?bridged(桥接模式):在这种模式下,虚拟系统就像是局域网中的一台独立的主机,与宿主计算机平等的存在于网络中,你必须像对待局域网中的其他真正的机子一样来对待它(比如分配你的局域网所要求的网络地址、子网掩码、网关等)。使用bridged模式的虚拟系统和宿主机器的关系:就像连接在同一个Hub上的两台电脑。虚拟系统与宿主计算机以及宿主计算机所
5、在网络的其他计算机都可以相互访问。如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。NAT(网络地址转换模式):这 种模式下,虚拟系统的网卡连接到宿主计算机的VMware Network Adapter VMnet8网卡上(宿主计算机安装了VMWare软件后会自动添加VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两个网卡,当然是在宿主计算机的网络连接里查看啰)。如果你希望你的虚拟系统连接外部网络,这种模式最简单,虚拟系统不用做任何网络设置 就可以访问外部网络。使用NAT模式
6、的虚拟系统和宿主计算机的关系:宿主计算机就相当于是开启了DHCP功能的路由器,虚拟系统就是内网中的一台实际的机器,通过路由器的DHCP服务获得网络参数。虚拟系统可以访问宿主计算机所在网络的其他计算机(反之不行),可以与宿主计算机互访。给虚拟机分配空间建议刚开始分配大一点,因为它是根据你的使用动态变大的,so dont worry it is too large for your disk.这里使用的是16G 点击完成,这个时候的界面应该如下 在点击start按钮之前,我们还需要做一些设置1)配置虚拟机的内存条件允许的话配大一点,会影响你后面的性能的,这里配的是540M2)在虚拟cdrom中插入
7、fedora的镜像文件(双击cdrom) (3)点击start,启动虚拟机:此时相当于一台没有装系统的虚拟PC 可能会出现诸如下图的提示,点击yes,忽略它,继续如果刚才正确装载了Fedora7的安装镜像会看到如下启动界面选择第一个并按回车注意这个时候开始,鼠标就会被锁在虚拟机里面,如果你想光标返回到windows下,可以使用组合键ctrl+alt。接下来按下列图片操作,没有说明的操作代表使用系统默认: 选择skip: 选择简体中文: 点击是 点击Remove Linux partitions,并在跳出对话框选择是 输入口令,这个口令是你以后以root用户登陆时使用的 将软件开发和网络服务器也
8、选上 紧接着就进入整个安装的过程,大概需要40分钟左右(视电脑配置不同),需要耐心等待。 安装完毕后会跳出对话框,按照下列操作继续进行:禁用防火墙 不发送profile 点击前进,不创建用户(我们将直接以root用户登陆) 点击继续 ,重新引导即可启动Fedora7!背景知识:VMware tools1. 更新虚拟机中的显卡驱动, 使虚拟机中的XWindows可以运行在SVGA模式下.2. 提供一个vmware-toolbox, 这个Xwindows下的工具可以让你修改一些VMWare的参数和功能.3. 同步虚拟机和Host的时间.4. 支持同一个分区的真实启动和从虚拟机中启动, 自动修改相应
9、的设置文件. 对于我们来说最重要的是:更好的解决虚拟机与主机的共享问题,通过VMWaretools,来实现文件共享。只要安装成功了VMware tools,Windows主机与Windows客户虚拟机之间的文件的共享就比较简单了。 1.3.1 vmware界面点击vm-install vmware tools,会出现下列界面,点击install1.3 安装vmware tools工具1.3.2 双击计算机,进入目录,双击cdrom,会跳出下列对话框:1.3.3 双击rpm包,选择无论如何都要安装,直到提示安装完毕1.3.4 打开一个终端(tips:终端拖到桌面上,因为会经常使用):在终端中依次
10、输入:cd空格/usr/bin,./vmware-config-tool.pl如图一路按回车,直到出现分辨率的时候,为你的虚拟机选择合适的分辨率,完成配置后重启虚拟机。安装vmtools的优点:1)分辨率可以按自己的设置变化;2)鼠标不用ctrl+alt出来,和windows无缝兼容;3)可以把windows下的东西直接拖拽进虚拟机的窗口看看,即能够直接交互文件了现在虚拟机就像windows的一个文件夹,这点使以后的开发非常方便。首先下载一个源码包:arm-linux-gcc-3.4.1.tar.bz2解压到目录/usr/local/arm下,解压后确认目录的顺序是否为/usr/local/a
11、rm/3.4.1/添加环境变量到系统中:打开/etc/bashrc,并在bashrc文件的最后一行添加:export PATH=/usr/local/arm/3.4.1/bin:$PATH,保存,此时环境变量已经添入系统。1.4 安装交叉编译工具此时只要在终端中输入arm-linux-gcc v,会出现一下信息的话代表交叉编译工具已经安装成功,如果没有下图信息,再检查前面几步有没有出错。此时将内核源码放在/根目录下,解压压缩包,进入解压后的文件,将当中的/linux-3.2复制到根目录底下# cd /linux-3.2#make menuconfig(配置内核选项,可选)#make可以看到能正
12、常make了具体的内核配置编译会在后面的课程中详细讲述,这里只是给大家一个交叉编译的概念。编译内核:为编译好的内核添加uboot引导信息:将mkimage文件拷贝至虚拟机的/bin目录底下;调整mkimage程序的权限:chmod 777 /bin/mkimage在终端中进入/linux-3.2目录,执行如下命令:mkimage -n Kernel 2.6.16 -A arm -O linux -T kernel -C none -a 30007fc0 -e 30008000 -d ./arch/arm/boot/zImage vmlinux.img将在/linux-3.2目录下生成的vmli
13、nux.img文件拷贝至tftp目录,就可以按照昨天讲的方法来运行了!2.网络文件系统的配置NFS文件系统的优点:1.空间无限大(内容是存储在主机上的,不受开发板存储大小限制)2.与开发板的交互方便(内容是存储在主机上的,只需要换个主机文件夹)3.使用cramfs作为根文件系统,开发起来很不方便,需要修改一点文件都要重新烧写nand,在开发时推荐挂载虚拟机下的NFS分区作为根文件系统。4.NFS文件系统可以虚拟pc机的一个目录作为嵌入式linux的文件系统,非常适合开发时使用。背景知识:NFS文件系统介绍 2.1主机端的nfs配置点击 系统-管理-网络 ,双击你的网络配置,选择静态设置ip地址
14、,填入你的ip,子网掩码和网关。(比如我的是;) 点击确认,再点击激活,会跳出下面对话框,再点击是完成后可以在终端下输入ifconfig eth0命令来查看是否配置好:在虚拟机下配置虚拟机的网卡edit-virtual network setting-Host virtual network mapping添加一个真实的网卡,并按应用,确认。编辑文件/etc/exports添加nfs目录的支持:/nfs (rw,sync,no_root_squash) 其中是开发板的ip,也可以使用*,这样就所有地址的开发板都能挂载。/ nfs表示 nfs 共享目录, 它可以作为开发板的根文件系统通过 nfs
15、 挂接; rw 表示挂接此目录的客户机对该目录有读写的权力 no_root_squash 表示允许挂接此目录的客户机享有该主机的 root 身份在终端下输入setup,将系统服务中的netconsole,netplugd,nfs服务选上,并按tab确认退出。也可以通过系统-管理-服务中选择在终端中输入service nfs restart 在/根目录下添加nfs文件夹(这个文件系统可在armfans网站上下到)重启电脑,主机端的nfs设置完成。 /bin目录下是常用的命令/dev目录下是所有设备/etc目录下是系统的配置文件/lib目录下是所有的库文件(glib,tslib,miniguili
16、b)/sbin目录下是一些高级命令/usr目录下存放了用户常用的文件/tmp是临时文件夹,断电后该文件夹内的所有文件将会消失背景资料:文件系统常用目录介绍开发板端的配置比较简单,主要是修改U-Boot的bootargs参数,修改后的参数应为:set bootargs root=/dev/nfs rw nfsroot=:/nfs ip=:sep4020:eth0:off console=ttyS0,115200 mem=32mb修改后敲入save命令,将开发板和主机用直连网线相连接,开启板子会看到已经把nfs文件系统挂载上去了: 2. 2 开发板端的nfs配置:至此,NFS服务配置完毕,下图为正
17、确加载NFS的启动画面:1.如果使用nfs的时候,发现错误为unable to open an initial console,如下图,补充说明:请检查你的主机/nfs/dev文件夹下是否有console这个文件,如果没有,请在终端下输入指令:mknod /nfs/dev/console c 5 1开发结束后应该把你的nfs做成cramfs文件系统,这里只需要简单的几步就能生成能烧录在板子上运行的cramfs文件系统。首先要将mkcramfs这个程序拷贝到/bin目录下,这个程序在上也能下到。可能直接拷进去会出现权限不够的提示,在终端下输入命令chmod 777 /bin/mkcramfscd
18、 / 进入根目录下输入命令:mkcramfs /nfs nfs.cramfs,这样在根目录上生成的一个后缀为cramfs的文件就是我们生成的cramfs文件系统。2.3. 将NFS文件系统转换成Cramfs文件系统3.Minigui开发环境的建立背景资料:miniguiMiniGUI是由北京飞漫软件技术有限公司创办的开源Linux图形用户界面支持系统,经过近些年的发展,MiniGUI已经发展成为比较成熟的性能优良的、功能丰富的跨操作系统的嵌入式图形界面支持系统。“小”是MiniGUI的特色,它目前已经广泛应用于通讯、医疗、工控、电子、机顶盒、多媒体等领域。目前,MiniGUI的最新版本为Min
19、iGUI 3.0。MiniGUI 起初仅仅是为了能够在 Linux 上显示中文而开发的,但是目前,MiniGUI 已发展为一个跨操作系统的嵌入式图形支持系统。目前MiniGUI 已经一步步发展成为跨操作系统的嵌入式图形中间件产品。下载原始文件:rootlocalhost /# mkdir -p /home/source/minigui/minigui1.3.3 将需要的几个文件拷贝到此目录下,所需文件为:libminigui-1.3.3.tar.gz,(MiniGUI的库文件)minigui-res-1.3.3.tar.gz,(MiniGUI的资源文件)mde-1.3.0.tar.gz,(Mi
20、niGUI的综合例程文件)mg-samples-1.3.0.tar.gz,(MiniGUI的具体例程文件)qvfb-1.0.tar.gz(qvfb模拟器软件)qt-devel-3.3.8-4.fc7.i386.rpm(qvfb安装的依赖软件)653.1 minigui的pc模拟开发环境的建立第一步:pc端的环境建立的准备工作解压:rootlocalhost minigui1.3.3# tar -zxvf libminigui-1.3.3.tar.gz rootlocalhost minigui1.3.3# tar -zxvf minigui-res-1.3.3.tar.gz rootlocal
21、host minigui1.3.3# tar -zxvf mde-1.3.0.tar.gz rootlocalhost minigui1.3.3# tar -zxvf mg-samples-1.3.0.tar.gz rootlocalhost minigui1.3.3# tar -zxvf qvfb-1.0.tar.gz66第二步:编译安装miniGUI 库libminigui-1.3.3rootlocalhost # cd /home/source/minigui/minigui1.3.3/ libminigui-1.3.3rootlocalhost libminigui-1.3.3# ma
22、ke menuconfig将“Font options”中的“Var bitmap font”选项去掉: * Raw bitmap font Var bitmap font * Incore font sansserif * Incore font courier * Incore font symbol * Incore font vgas * Qt Prerendered Font * TrueType font * Adobe Type1 font 67 * TreeView control * ListView control * Grid control * MonthCalenda
23、r control * SpinBox control * CoolBar control Full GIF98a support Skin support Library of VCOnGUI 68EXT LIBRARY OPTIONS部分配置为: (Linux) Platform (i386) Compiler (glibc) Libc - Installation options Path prefix: /usr/local - Additonal Compiler Flags CFLAGS: LDFLAGS: 69核对DEVELOPMENT ENVIROMENT OPTIONS开发环
24、境设置是否如下:完成上面操作后,推出并保存配置。注:使用键盘上下可以上下移动光标; 使用空格实现选中或取消; 使用Tab键实现切换。不心急make,先完成下面的操作!进入 /home/source/minigui/minigui1.3.3/libminigui-1.3.3/ext/control目录修改grid.c将所有类似这样的代码: (PGRIDCOLHDR)pCell*-pColHdr = pColHdr; (PGRIDROWHDR)pCell*-pRowHdr = pRow2;将前面的括号去掉就可以编译通过了。pCell*-pColHdr = pColHdr;pCell*-pRowHd
25、r = pRow2; pCell*指(pCell,pCell1,pCell2,pCell3)一共16处,分别在行数为626,627,638,639,667,668,680,681,733,734,745,746,774,775,788,789。请打开gedit的行数查看,方法:打开gedit-编辑-首选项-将显示行号打勾71除了修改make menuconfig还需要修改一下源代码:还需要改动:进入 home/source/minigui/minigui1.3.3/libminigui-1.3.3/ src/kernel/目录修改init.c将第435行 pthread_kill_other_
26、threads_np (); 注释掉/pthread_kill_other_threads_np ();进行编译:rootlocalhost kernel# cd /home/source/minigui/minigui1.3.3/libminigui-1.3.3rootlocalhost libminigui-1.3.3# makerootlocalhost libminigui-1.3.3# make install73第三步:编译安装miniGUI 资源包minigui-res-1.3.3rootlocalhost libminigui-1.3.3# cd /home/source/mi
27、nigui/minigui1.3.3/minigui-res-1.3.3rootlocalhost minigui-res-1.3.3# make install默认安装到/usr/local/lib/minigui/res 目录。74第四步:编译控件例子mg-samples-1.3.0rootlocalhost minigui-res-1.3.3# cd /home/source/minigui/minigui1.3.3/mg-samples-1.3.1/rootlocalhost mg-samples-1.3.1# ./configure rootlocalhost mg-samples-
28、1.3.1# make75第五步:编译综合例子mde-1.3.0rootlocalhost mg-samples-1.3.1# cd /home/source/minigui/minigui1.3.3/mde-1.3.0rootlocalhost mde-1.3.0# ./configure rootlocalhost mde-1.3.0# 进入/home/source/minigui/minigui1.3.3/mde-1.3.0 /tools/ 目录修改vcongui.c将第106行 VCOnMiniGUI (&ChildInfo); 注掉/VCOnMiniGUI (&ChildInfo);
29、rootlocalhost tools# cd /home/source/minigui/minigui1.3.3/mde-1.3.0rootlocalhost mde-1.3.0# make76第六步:编译安装qvfb在图形界面下进入/home/source/minigui/minigui1.3.3/目录,双击安装qt-devel-3.3.8-4.fc7.i386.rpm。(选择无论如何都安装)然后在终端中进入qvfb目录:rootlocalhost mde-1.3.0# cd /home/source/minigui/minigui1.3.3/qvfb-1.0rootlocalhost q
30、vfb-1.0# ./configure -with-qt-includes=/usr/lib/qt-3.3/include -with-qt-libraries=/usr/lib/qt-3.3/lib -with-qt-dir=/usr/lib/qt-3.3然后rootlocalhost qvfb-1.0# make最后rootlocalhost qvfb-1.0# make install77第七步 设置参数进入/usr/local/etc/,将MiniGUI.cfg修改为:rootlocalhost qvfb-1.0# cd /usr/local/etc/修改 MiniGUI.cfgsy
31、stem# GAL enginegal_engine=qvfb /这里修改,开发时使用qvfb 模拟# IAL engineial_engine=qvfb /这里修改 ,同上78参数设置进入/etc/ld.so.conf.d建一个minigui.conf,文件的内容为/usr/local/librootlocalhost etc# cd /etc/ld.so.conf.d/rootlocalhost ld.so.conf.d# gedit minigui.conf在minigui.conf中添加/usr/local/lib,保存退出最后要把系统共享库缓存刷新,将libminigui加载上,可以
32、使用命令rootlocalhost ld.so.conf.d# ldconfig79后台运行qvfb然后就可以使用qvfb体验MiniGUI了,进入qvfb1.0根目录下的qvfb文件夹: rootlocalhost ld.so.conf.d# cd /home/source/minigui/minigui1.3.3/qvfb-1.0输入下面命令:rootfedora7# qvfb &此时弹出窗口Virtual framebuffer 选择Fiel-Configure 在size栏选择640*480 “VGA” 在Depth栏选择16 bit 然后按回车(Enter)键 /qvfb运行起来后在
33、qvfb中设置虚拟显示器80第八步:调试程序先试一下具体例程:rootlocalhost qvfb-1.0# cd /home/source/minigui/minigui1.3.3/mg-samples-1.3.1/src/ rootlocalhost src# ./helloworld8182再试一下具体综合例程:rootlocalhost qvfb-1.0# cd /home/source/minigui/minigui1.3.3/mde-1.3.0/bomb/ rootlocalhost src# ./bomb上面部分讲的只是在pc机上的虚拟环境qvfb下运行,上面的minigui的编
34、译环境都是在i386 gcc下编译的,这些可执行程序只能在pc的fedora7下运行,而不能直接下载到板子上运行,要想在板子上运行gui应用程序,还得 用arm-linux-gcc进行交叉编译。3.2 minigui的交叉编译环境的建立 (1)首先安装 zlib 库,这个是后面的库的编译基础(2)安装 png 库(3)第三步:安装 jpeg 库(4)第四步:安装 libttf 库(5)第五步:编译安装 miniGUI 资源包 minigui-res-1.3.3(6)第六步:配置编译安装 miniGUI(7)安装 popt 库(8)编译综合例子 mde-1.3.0(9)添加对tslib的支持需要编译一下库文件:现在我们提供一种更加简洁的方式:/Linux%20SDK/minigui/minigui-arm/下载包含有minigui的arm-linux-gcc,用这个软件替换掉在/usr/local/arm/3.4.1的arm-linux-gcc,注意路径仍要和之前保持一致安装过程相当繁琐,有兴趣的参考上的minigui移植的帖子进行移植;为mg-samples-1.3.1重新
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文具安全教案课件
- 印刷业互联网+与融合发展考核试卷
- 冷藏车运输企业风险管理与内部控制系统考核试卷
- 天然气藏动态模拟与预测考核试卷
- 影视录放设备显示技术考核试卷
- 文化艺术与城市品牌建设考核试卷
- 木片干燥技术与木材应力释放考核试卷
- 健身器材行业企业文化建设与品牌形象提升考核试卷
- 保险业与新能源保险市场的机遇与挑战应对策略案例分析考核试卷
- 制糖业的可持续发展评估考核试卷
- 项目合作分润合同范例
- 2025年中国艾草行业市场现状、发展概况、未来前景分析报告
- 高中 人音版 音乐鉴赏 第二单元《汉族民歌》课件
- 射频消融在室性早搏治疗中的应用
- 2024年潍坊工程职业学院单招职业适应性测试题库完美版
- 人音版音乐七年级上册《友谊地久天长》课件
- 承包送货合同模板
- 第一章-社会心理学概论
- GB 26920-2024商用制冷器具能效限定值及能效等级
- 2024年江苏省中等职业学校学生学业水平考试机械CAD绘图试卷(含5张图)
- 2024年7天双方无责任试岗期协议书模板
评论
0/150
提交评论