ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:1.81MB ,
资源ID:7120975      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7120975.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(linux开发环境建立内核的裁剪编译下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

linux开发环境建立内核的裁剪编译下载.docx

1、linux开发环境建立内核的裁剪编译下载第一章 嵌入式开发环境的建立嵌入式Linux 开发环境一般由如下几部分构成:Linux 服务器(宿主机)、个人PC机、嵌入式目标板和将它们连接在一起的网络环境,其具体结构如图1-1所示:图 1-1 linux 开发环境的结构如图1-1所示的嵌入式Linux 开发环境中,Linux 服务器作为嵌入式Linux 内核编译、应用程序编译的公共平台,一般由单独的一台PC 机充当,安装常用的桌面标准Linux 操作系统,如RedHat Linux 等。工作站即为普通的局域网络计算机,可以是一台或多台,以支持小组项目开发,工作站一般安装常用的Windows 操作系统

2、,仍然可以完成各种日常工作,当需要使用Linux 服务器资源时,可从工作站远程登录到Linux 服务器,以完成各项需要的操作。注意:本手册的环境是Windows XP+VMware的形式,在XP下安装VMware,并在VMware下虚拟安装RH9,两系统通过VMwareTools提供的共享目录交换文件。这样即方便又快捷。第1节 Linux安装 1、 在VM启动画面下按F2,进入Boot,选择光盘启动; 2、 在VM的Setting里选择光驱,并将其指向Linux的ISO; 3、 顺序安装完毕即可。 4、 在接下来的选项中,选择,定制,建议进入每个菜单,完全选择。 第2节 VM Tools安装

3、1、 启动Linux; 2、 在VM的Setting里选择Install VMware Tools; 3、 在Linux控制台中执行以下命令 Mount /dev/cdrom Mkdir /arm cp /mnt/cdrom/ VMwareTools-6.0.4-93057.tar.gz /arm/ VMwareTools-6.0.4-93057.tar.gz umount /dev/cdrom cd /arm ls tar zxf VMwareTools-6.0.4-93057.tar.gz ls cd vmware-tools-distrib ls ./vmware-install.pl(

4、注意前面的点) 然后一直回车。重启。 4、 在Setting./option里选择共享文件夹; 设置好共享即可实现LINUX与Windows下的文件共享。第三节 交叉编译环境安装嵌入式Linux 开发是宿主机目标机(HOST-TARGET)交叉开发,这样您的系统编译工具要换成交叉编译工具,对于这个,您只需要指明它的路径即可,需要交叉开发环境,并且建立交叉编译环境:您可以在我们的光盘中得到预先编译的交叉编译工具cross-2.95.3.tar.bz2。交叉编译工具一般由专门的机构负责维护,可以从网站http:/www.arm.linux.org.uk上免费下载,当然得需要编译,网站上一般提供原码

5、。以下描述已经编译好的交叉编译环境的建立过程:首先以Root 身份在Linux 服务器上新建一个用于嵌入式Linux 开发的工作目录:/home/work,以后所有的开发工作都在这个目录下进行。编译工具以压缩包的形式,由恒颐提供,文件名为:cross-2.95.3.tar.bz2,包括linux-arm-gcc编译器和一些实用程序,位于光盘的目录:SoftwareArm-LinuxTools,我们要把交叉编译工具安装在Linux服务器的/usr/local/目录下。当拿到压缩文件后,在Linux服务器的/usr/local目录新建子目录arm:# cd /usr/local# mkdir ar

6、m ;建立ARM目录从PC 机上通过FTP 方式或VMware 的共享目录的方式,将光盘中的文件cross-2.95.3.tar.bz2 传输到Linux 服务器的/usr/local/arm 目录,然后在Linux 服务器上进行将其解压缩:# tar jxvf cross-2.95.3.tar.bz2当以上的工作完成以后,就会在当前目录生成一个名为2.95.3的子目录,表明交叉编译器已经成功安装到了/usr/local/arm下。进入/usr/local/arm/2.95.3子目录,列表查看目录所包含的内容。# cd /usr/local/arm/2.95.3# lsarm-linux bi

7、n include info lib man share test-if-write嵌入式编译工具就安装在这个目录中,可以完成源代码的编译。这样您的开发环境已经建立在/usr/local/arm/2.95.3/bin 下面,当然您需要使用的时候,应该指出编译器的位置。然后修改修改PATH 变量:为了可以方便使用arm-linux-gcc编译器系统, 把arm-linux工具链目录加入到环境变量PATH中:修改/etc/profile文件,添加pathmunge /usr/local/arm/2.95.3/bin即可。# Path manipulation if id -u = 0 ; then

8、 pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin pathmunge /usr/local/arm/2.95.3/bin fi pathmunge /usr/X11R6/bin after 设置环境变量后,最好是重启或注销一下,这样设置的环境变量才能生效。第二章 编译Uboot我们提供给用户Uboot 的源代码,共包含三个压缩格式的文件,位于光盘:Softwareubootsource 目录下,当用户需要对Uboot 进行修改和编译时,可以按照如下的操作步骤进行:1、编译LOADER将文件AT91RM9200-Load

9、er.tar.gz 拷贝到Linux 服务器的某个目录,执行如下命令解压文件:#tar xzvf AT91RM9200-Loader.tar.gz当文件解压完成以后,会自动生成AT91RM9200-Loader 目录,进入该目录进行编译,命令如下:#cd AT91RM9200-Loader#make clean#make执行完上述命令以后,就会在当前目录下生成新的loader.bin 文件。2、编译BOOT将文件AT91RM9200-Boot.tar.gz 拷贝到Linux 服务器的某个目录,执行如下命令解压:#tar xzvf AT91RM9200-Boot.tar.gz当文件解压完成以后,

10、会自动生成AT91RM9200-Boot 目录,进入该目录进行编译,命令如下:#cd AT91RM9200-Boot#make clean#make执行完上述命令以后,就会在当前目录下生成新的boot.bin 文件。3、编译UBOOT将文件u-boot-1.0.0.tar.gz 拷贝到Linux 服务器的某个目录,执行如下命令解压:#tar xzvf u-boot-1.0.0.tar.gz当文件解压完成以后,会自动生成u-boot-1.0.0 目录,进入该目录进行编译,命令如下:#cd u-boot-1.0.0#make clean#make all执行完上述命令以后,就会在当前目录下生成新的

11、uboot.bin 文件,执行如下命令对uboot.bin 进行压缩:#gzip -c u-boot.binu-boot.gz注意:以上的操作可能需要超级用户权限。压缩完成以后,在当前目录下生成u-boot.gz,接下来该怎么做您都知道了吧?对,就是按照第三章已经描述过的步骤,将生成的各个文件烧写到Flash 里就可以了。第三章 嵌入式Linux内核的配置与编译Linux之所以能成为一种流行的嵌入式操作系统,除具有功能强大、高性能、稳定性好以及源代码开发等优势以外,其最大的特点是Linux内核具有非常良好的结构,可由用户根据特定的系统需求,对内核进行配置或裁减,而这一特点恰恰满足了嵌入式应用的

12、差异性需求。嵌入式系统最大的特征是差异性,几乎每一个嵌入式应用都是唯一的,这种差异性体现在硬件方面,就表现为系统可以采用不同的微处理器架构,如X86、ARM、PowerPC、MIPS等,同时,即使采用同一种微处理器架构,不同生产商生产的微处理器也会有不小的差异,运行在这些嵌入式微处理器上的操作系统也会有所相同,因此,如何得到一个适合在某个特定的嵌入式系统上运行的Linux内核,是我们首先要解决的问题。我们提供可以稳定运行在H9200F的嵌入式Linux内核包,位于光盘目录:SoftwareArm-LinuxSourceKernel。将该Linux内核源代码包linux-2.4.27-xxxxx

13、x-AT91RM9200.tar.bz2 和stand_config 拷贝到Linux服务器上我们约定的工作目录:/home/work,然后执行如下命令解压:#tar jxvf linux-2.4.27- xxxxxx -AT91RM9200.tar.bz2该命令执行完毕后,生成目录linux-2.4.27-xxxxxx-AT91RM9200。然后将stand_config拷入此目录,并进行如下操作替换配置文件:#rm f .config ;删除原有配置文件#mv stand_config .config ;将新配置文件改名为.config注意文件名中的“xxxxxx”为文件生成的时间,我们会

14、定期更新Linux内核的版本。Linux内核的配置(或裁剪)是与嵌入式系统的应用需求相适应的。尽管Linux内核功能强大,支持的设备众多,但对于一个特定的嵌入式应用来说,可能只会使用到其中的部分功能,而对于其它不使用的部分,如果让它驻留在系统中,不但耗费系统资源,同时还会增加系统安全隐患,因此,内核配置的目的,就是保留系统需要的功能,去掉不必要的部分,使操作系统以最精简、最优化的状态运行。Linux内核支持三种配置方式,第一种方式是基于命令行的问答方式,针对每一个内核配置选项会有一个提问,回答“y”包含该项功能,回答“n”则不包含该项功能。通过执行make config可以开始第一种方式。第二

15、种是菜单式的,用户可以在Linux服务器或网络中的某个工作站进行操作,执行make menuconfig命令以后,会出现一个配置菜单,通过该菜单可以很方便的进行内核的配置。第三种方法也是采用菜单方式进行配置的,但必须在Linux服务器上执行。通过执行make xconfig可以开始第三种方式。显然,三种方式的实质是相同的,我们通常使用第二种方式进行配置,这种方式简单明了,受条件制约小。执行如下命令:# make menuconfig注意:该命令可能需要超级用户权限。系统出现图4-2 所示的内核配置界面:图4-2 嵌入式Linux 内核的配置界面用户也许对配置选项的意义不是完全明白,可以先不用管

16、他,我们已经对内核做了比较合理的配置,建议在开始接触时不要做修改。当用户在根据自己的系统需求配置好内核,退出配置菜单时,需要保存修改后的内核配置,如图4-3所示。图4-3 嵌入式Linux 内核配置保存界面注意:更换配置文件后第一次进入内核配置界面并退出是必须保存,以生成配置头文件。若用户选择不保存,则进行的所有配置操作无效,内核配置仍然为原来的状态,若选择保存,系统会在当前目录下生成一个.config文件,其后要进行的内核编译就是根据这个.config文件来进行条件编译以生成相应的可执行文件的。当完成对Linux内核的配置以后,内核仍然以源代码的方式存在,不能直接下载到嵌入式系统运行,因此,

17、需要对内核进行编译,生成最终可以在嵌入式系统上运行的可执行代码。依次执行如下命令,对Linux 内核进行编译:#make clean ;该命令用于清除旧的编译文件#make dep ;该命令用于生成系统相应的依赖文件# ./automake当您以极大的耐心执行完以上的步骤,如果运气不错的话,会在当前目录下生成内核压缩映象文件uImage,好啦,停下来喘口气吧!第4章 NFS(网络文件系统)建立与配置方法网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对

18、远程主机的共享分区(目录)进行操作。在嵌入式Linux 的开发过程中,开发者需要在Linux 服务器上进行所有的软件开发,交叉编译后,通用FTP 方式将可执行文件下载到嵌入式系统运行,但这种方式不但效率低下,且无法实现在线的调试。因此,可以通过建立NFS,把Linux 服务器上的特定分区共享到待调试的嵌入式目标系统上,就可以直接在嵌入式目标系统上操作Linux 服务器,同时可以在线对程序进行调试和修改,大大的方便了软件的开发。因此,NFS 的是嵌入式Linux 开发的一个重要的组成部分,本部分内容将详细说明如何配置嵌入式Linux 的NFS 开发环境。嵌入式Linux 的NFS 开发环境的实现

19、包括两个方面:一是Linux 服务器端的NFS 服务器支持;二是嵌入式目标系统的NFS 客户端的支持。因此,NFS 开发环境的建立需要配置Linux 服务器端和嵌入式目标系统端。1. Linux 服务器端NFS 服务器的配置以root 身份登陆Linux 服务器,编辑/etc 目录下的共享目录配置文件exports,指定共享目录及权限等。执行如下命令编辑文件/etc/exports:# vi /etc/exports在该文件里添加如下内容:/home/work 192.168.0*(rw,sync,no_root_squash)然后保存退出。添加的内容表示:允许ip 地址范围在192.168.

20、0.*的计算机以读写的权限来访问/home/work 目录。/home/work 也称为服务器输出共享目录。括号内的参数意义描述如下: rw:读/写权限,只读权限的参数为ro; sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。 no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。接着执行如下命令,启动端口映射:# /etc/rc.d/init.d/portmap start最后执行如下命令启动NFS 服务,此时NFS 会激活守护进程,然后就开始监听 Clien

21、t 端的请求:# /etc/rc.d/init.d/nfs start用户也可以重新启动Linux 服务器,自动启动NFS 服务。在NFS 服务器启动后,还需要检查Linux 服务器的防火墙等设置(一般需要关闭防火墙服务),确保没有屏蔽掉NFS 使用的端口和允许通信的主机,主要是检查Linux 服务器iptables,ipchains 等选项的设置,以及/etc/hosts.deny,/etc/hosts.allow文件。首先在Linux 服务器上进行NFS 服务器的回环测试,验证共享目录是否能够被访问。在Linux 服务器上运行如下命令:# mount t nfs 192.168.0.20:

22、/home/work /mnt# ls /mnt命令将Linux 服务器的NFS 输出共享目录挂载到/mnt 目录下,因此,如果NFS正常工作,应该能够在/mnt 目录看到/home/work 共享目录中的内容。注意:我们Linux 服务器IP 地址是192.168.0.20,用户如有不同,请对命令中的IP地址进行相应的修改。2. 嵌入式目标系统NFS 客户端的配置在Linux 服务器设置好后,接下来还需要对客户端进行相关配置。我们已在目标系统所提供给用户的Linux 内核进行了相应的配置,用户可以省略这一步的相关操作。在嵌入式目标系统的Linux Shell 下,执行如下命令来进行NFS 共

23、享目录挂载:# mount t nfs 192.168.0.20:/home/work /mnt/nfs o nolock# cd /mnt/nfs# ls此时,嵌入式目标系统端所显示的内容即为Linux 服务器的输出目录的内容,即Linux 服务器的输出目录/home/work 通过NFS 映射到了嵌入式目标系统的/mnt/nfs 目录。用户可以用增/删/修改文件的方式来验证实际效果。mount 命令中的192.168.0.20 为Linux 服务器的IP 地址,/home/work 为Linux服务器端所配置的共享输出目录,/mnt/nfs 为嵌入式设备上的本地目录。由于很多嵌入式设备的根

24、文件系统中不带portmap,所以一般都使用-o nolock选项,不需要使用NFS文件锁来避免使用portmap。第五章 uboot和linux的烧写第一节 UBOOT 的烧写当系统系统因误擦除了FLASH 或因其他原因不能启动时,就需要运行AT91RM9200 片内ROM 的程序,重新烧写UBOOT。在以下的操作过程中,会使用到4 个文件:boot.bin、loader.bin、u-boot.bin 和u-boot.gz,这4 个文件位于CD:Softwareubootbin:1. 启动片内ROM 的程序将系统串口与PC 串口相连,并连接好系统的网线,将H9200F 的跳线J100 的23

25、 短接,然后复位系统,打开超级终端设置串口为:115200、8、无、1、无,如图5-1:图 5-1 设置超级终端在超级终端会出现“CCCCCCCC.”,此时AT91RM9200 片内ROM 的程序已开始运行,如图5-2 所示:图5.2 启动片内ROM2. 下载Uboot 到SDRAM 中运行在超级终端,使用Xmodem协议,发送loader.bin文件,然后超级终端会出现下载Uboot的提示,并继续出现“CCCCCCCCC” 如图5-3所示:图 5-3 发送loader.bin 文件继续使用Xmodem 协议,发送uboot.bin 文件,此时uboot.bin 被发送到系统的SDRAM 中,

26、发送完毕后uboot 开始运行,显示U-Boot 的提示符,如图5-4 所示:图 5-4 发送uboot.bin 文件3. 擦除Flash在对Flash 进行烧写之前,需要将其擦除:Uboot protect off all ;去掉Flash 的扇区写保护Uboot erase all ;擦除Flash 的所有扇区4. 烧写Boot.bin 到Flash在Uboot 提示符下键入命令:Ubootloadb 20000000 ;将boot.bin 发送到系统的SDRAM 中然后在超级终端使用Kermit 协议,发送文件boot.bin,发送完毕后,键入以下命令:Ubootcp.b 2000000

27、0 10000000 5fff ;将发送到SDRAM 中的数据写入FlashUbootprotect on 10000000 10005fff ;对写入Flash 的内容进行写保护运行结果如图5-5 所示;图5-5 烧写Boot.bin 文件5. 烧写Uboot.gz 到Flash在Uboot 提示符下键入命令:装入Uboot.gzUbootloadb 20000000 ;将文件发送到系统的SDRAM 中然后在超级终端使用Kermit 协议,发送文件Uboot.gz,发送完毕后,键入以下命令:Ubootcp.b 20000000 10010000 ffff ;将发送到SDRAM 中的数据写入F

28、lashUbootprotect on 10000000 1001ffff ;对写入Flash 的内容进行写保护运行结果如图5-6 所示:图5-6 烧写Uboot.gz 文件以上完成了UBOOT 的烧写,然后断电,将J100 跳至12,重新启动回进入UBOOT。第二节 AT91RM9200 的内核烧写采用flash 中启动linux 的方法进行内核烧写,执行如下的步骤:1. 复位系统,然后设置u-boot 的启动参数如下:Uboot setenv bootargs root=/dev/mtdblock/3 console=ttyS0,115200 mem=32MUboot setenv ima

29、ge cp.b 10020000 21000000 e0000Uboot setenv ramdisk runUboot setenv boot bootm 21000000Uboot setenv bootcmd run image;run bootUboot setenv ethaddr 00:12:34:56:78:9a ; 可能会出现“ Cant overwriteethaddr”的提示,可以不管。Uboot setenv ipaddr 192.168.0.165 ;目标板的IPUboot setenv serverip 192.168.0.161 ;个人电脑windows 的IPUb

30、oot setenv bootdelay 1Uboot saveenv运行结果如图5-7 所示:图5-7 设置Uboot 启动参数2. 现在就可以将内核通过tftp 下载到sdram 中,然后拷贝到flash 中了。打开uImage jffs2.img 所在文件夹下的TFTPSRV.EXE 然后最小化,TFTPSRV.EXE 所在目录如图5-8 所示:图5-8 运行TFTPSRV.EXEUboottftp 21000000 uImageUboot cp.b 21000000 10020000 e0000运行状态如图5-9 所示:图5-9 固化内核到flash这可能需要一定的时间,请耐心等待,不要断电。Uboot tftp 21100000 jffs2.imgUboot cp.b 21100000 10100000 260000 ; 注意:0x260000 = 2432KB 表示的是jffs2.img 的大小,可以根据实际jffs2.img大小进行选择,注意不要小于实际大小即可。运行结果如图5-10 所示:图5-10 固化根文件系统到flash这可能需要一定的时间,请耐心等待,不要断电。3. 拷贝完成后,复位系统

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1