嵌入式系统第四次实验_第1页
嵌入式系统第四次实验_第2页
嵌入式系统第四次实验_第3页
嵌入式系统第四次实验_第4页
嵌入式系统第四次实验_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、嵌入式系统第四次实验嵌入式系统第四次实验page 2indexn linux内核移植内核移植 linux内核简介内核简介 内核配置内核配置 内核编译内核编译 烧写内核烧写内核n 根文件系统移植根文件系统移植 根文件系统配置根文件系统配置 烧写根文件系统烧写根文件系统 根文件系统简介根文件系统简介page 3linux内核简介内核简介linux内核是什么?内核是什么?linux内核就是内核就是“操作系统操作系统”资源管理者资源管理者ubuntu、redhat、debian?linux发行版发行版“穿了衣服穿了衣服”的的linuxlinux内核就是内核就是“操作系统操作系统”资源管理者资源管理者u

2、buntu、redhat、debian?page 4获取获取linux内核源代码内核源代码/arm2410s/kernel-2410s是内核的源代码page 5获取获取linux内核源代码内核源代码n 在虚拟机中执行:在虚拟机中执行:#cd /arm2410s/exp/#mkdir exp4#cp -arf /arm2410s/kernel-2410s/ exp4/#cd exp4#lskernel-2410s(这行是显示的结果这行是显示的结果)(next:配置内核:配置内核.)page 6配置内核配置内核(make menuconfig)linux 内核支持裁剪,所以要配置内核支持裁剪,所以

3、要配置配置配置linux内核的命令:内核的命令:make menuconfig(make config/make xconfig也可以,这里不介绍)cd进内核的顶级目录,执行命令:# cd /arm2410s/exp/exp4/kernel-2410s# make menuconfigpage 7menuconfigmenuconfig菜单(简介)菜单(简介)1 1、code maturity level optionscode maturity level options代码成熟度选项,它又有子项:代码成熟度选项,它又有子项:1.11.1、prompt for development and

4、/or incomplete code/driversprompt for development and/or incomplete code/drivers该选项是对那些还在测试阶段的代码,驱动模块等的支持。一般应该选该选项是对那些还在测试阶段的代码,驱动模块等的支持。一般应该选这个选项,除非你只是想使用这个选项,除非你只是想使用linux linux 中已经完全稳定的东西。但这样中已经完全稳定的东西。但这样有时对系统性能影响挺大。有时对系统性能影响挺大。1.21.2、prompt for obsolete code/driversprompt for obsolete code/driv

5、ers该项用于对那些已经老旧的,被现有文件替代了的驱动,代码的支持,该项用于对那些已经老旧的,被现有文件替代了的驱动,代码的支持,可以不选,除非你的机器配置比较旧。但那也会有不少问题。所以该可以不选,除非你的机器配置比较旧。但那也会有不少问题。所以该项以基本不用,在新的版本中已被替换。项以基本不用,在新的版本中已被替换。page 8menuconfigmenuconfig菜单(简介)菜单(简介)2 2、loadable module supportloadable module support动态加载模块支持选项,其子项有:动态加载模块支持选项,其子项有:2.12.1、 enable modu

6、le supportenable module support支持模块加载功能,应该选上。支持模块加载功能,应该选上。2.2 set version information on all module symbols2.2 set version information on all module symbols该项用来支持跨内核版本的模块支持。即为某个版本的内核编译的模块该项用来支持跨内核版本的模块支持。即为某个版本的内核编译的模块可以在另一个版本可以在另一个版本的内核下使用,我们一般用不上。所以不选。的内核下使用,我们一般用不上。所以不选。2.3 kernel module loader2

7、.3 kernel module loader如果你启用这个选项,你可以通过如果你启用这个选项,你可以通过kerneld kerneld 程序的帮助在需要的时候自程序的帮助在需要的时候自动载入或卸载那些可载入式的模块。我们一般会选上。动载入或卸载那些可载入式的模块。我们一般会选上。page 9menuconfigmenuconfig菜单(简介)菜单(简介)3 3、system typesystem type 系统类型,主要是系统类型,主要是cpu cpu 类型,以及与此相关的内容。在我们类型,以及与此相关的内容。在我们arm2410-s arm2410-s 平台上你在该项上看到的是平台上你在该

8、项上看到的是s3c2410 s3c2410 的的arm arm 系列系列cpucpu。其。其它选项是关于该芯片及平台的一些结构定义。其它版本内核遇到的不它选项是关于该芯片及平台的一些结构定义。其它版本内核遇到的不会是这种情况,但一般包含会是这种情况,但一般包含processor family processor family 选项,它让我们选择选项,它让我们选择cpu cpu 的类型,的类型,bios bios 可以自检到,留意一下你的系统的启动信息。选上可以自检到,留意一下你的系统的启动信息。选上正确的正确的cpu cpu 类型就行。类型就行。page 10menuconfigmenucon

9、fig菜单(简介)菜单(简介)4 4、general setupgeneral setup4.14.1、support hot-plugable deviecessupport hot-plugable devieces对可热拔插的设备的支持,看情况选择。若要对对可热拔插的设备的支持,看情况选择。若要对u u盘等盘等usb usb 设备进行控制设备进行控制可选。可选。4.24.2、networkingnetworking: support support 网络支持。网络支持。4.34.3、system v ipcsystem v ipc:支持:支持systemv systemv 的进程间通讯。

10、的进程间通讯。4.44.4、sysctl supportsysctl support:该项支持在不重启情况下直接改变内核的参数。启用该选项后内核大约该项支持在不重启情况下直接改变内核的参数。启用该选项后内核大约会增大会增大8k8k,如果你的内存太小就别选。,如果你的内存太小就别选。4.54.5、nwfpe math emulationnwfpe math emulation模拟数学协处理器。模拟数学协处理器。4.64.6、power managerpower manager电源管理,给电源管理,给x86 x86 编译内核时较有用可以选上,尤其是笔记本。给编译内核时较有用可以选上,尤其是笔记本。

11、给arm arm 编内核时可不选。编内核时可不选。page 11menuconfigmenuconfig菜单(简介)菜单(简介)5 5、networking optionnetworking option网络选项,它主要是关于一些网络协议的选项。网络选项,它主要是关于一些网络协议的选项。linux linux 功能也就是在于功能也就是在于对网络功能的灵活支持。这部分内容相当多,根据不同情况,一般我对网络功能的灵活支持。这部分内容相当多,根据不同情况,一般我们把以下几项选上。们把以下几项选上。5.15.1、 packet socketpacket socket 包协议支持,有些应用程序使用包协议

12、支持,有些应用程序使用packet packet 协议直接同网络设备通讯,协议直接同网络设备通讯,而不通过内核中的其它中介协议。同时它可以让你在而不通过内核中的其它中介协议。同时它可以让你在tcp tcp 不能用时找不能用时找到一个通讯方法。到一个通讯方法。5.25.2、 unix domain socketunix domain socket 对基本对基本unix socket unix socket 的支持的支持5.35.3、 tcp/ip networkingtcp/ip networking 对对tcp/ip tcp/ip 协议栈的支持,当然要。如果你的内核很在意大小,而且协议栈的支持

13、,当然要。如果你的内核很在意大小,而且没有什么网络要就,也不使用类似没有什么网络要就,也不使用类似x window x window 之类基于之类基于unix socket unix socket 的应用那你可以不选,可节省大约的应用那你可以不选,可节省大约144k 144k 空间。空间。page 12menuconfigmenuconfig菜单(简介)菜单(简介)1010、scsi device supportscsi device support如果有如果有scsi scsi 设备设备(scsi (scsi 控制卡,硬盘或光驱等控制卡,硬盘或光驱等) )则选上这项。目前则选上这项。目前sc

14、si scsi 设备类型已经比较多,要具体区分它们你得先了解他们所使用的控制设备类型已经比较多,要具体区分它们你得先了解他们所使用的控制芯片类型。芯片类型。2.6.x 2.6.x 内核中对各类型内核中对各类型scsiscsi设备已经有更具体详细的支持。设备已经有更具体详细的支持。 scsi support; scsi support; scsi disk support;scsi disk support;page 13本次配置本次配置本次实验请将本次实验请将adad转换器驱动静态添加到内核中;转换器驱动静态添加到内核中;page 14本次配置本次配置本次实验请将本次实验请将adad转换器驱动

15、静态添加到内核中;转换器驱动静态添加到内核中;page 15本次配置本次配置本次实验请将本次实验请将adad转换器驱动静态添加到内核中;转换器驱动静态添加到内核中;其中:其中: 直接编译进内核直接编译进内核 以模块形式编译,如使用需先以模块形式编译,如使用需先make modulesmake modules 为空是不进行编译为空是不进行编译page 16本次配置本次配置保存配置保存配置(next:编译内核:编译内核.)page 17linuxlinux内核编译内核编译1 1、 make cleanmake clean这条命令是正式编译你的内核之前先把环境给清理干净。这条命令是正式编译你的内核之

16、前先把环境给清理干净。2 2 、make depmake dep这条命令是编译相关依赖文件。这条命令是编译相关依赖文件。3 3 、make zimagemake zimage这条命令就是最终的编译命令。有时你可以直接用这条命令就是最终的编译命令。有时你可以直接用make(2.6.x make(2.6.x 版本上用版本上用) )或或make bzimagemake bzimage(给(给pc pc 机编译大内核时用)机编译大内核时用)最后生成了内核镜像最后生成了内核镜像zimage.zimage.生成路径:生成路径:/arm2410s/exp/exp4/kernel-2410s/arch/arm

17、/boot/zimage/arch/arm/boot/zimage(next: (next: 拷贝拷贝zimagezimage到到xpxp中中) )page 18内核烧写内核烧写n 编译好内核(编译好内核(zimage)后,)后,首先要将首先要将zimage这个文件保存到这个文件保存到xp主机中;主机中;然后按照实验一的方法烧写内核(见然后按照实验一的方法烧写内核(见2410-s快速开始手册快速开始手册.pdf)。)。n 将文件导出到将文件导出到xp主机的方法有两种主机的方法有两种 共享文件夹的方法共享文件夹的方法u vmware-vm-setting-options-shared folde

18、rs-add-next-browse.(name文本框中填share)-next. oku #ls /mnt/hgfs 将显示你刚才共享的目录名字,假设为shareu #cp /arm2410s/kernel-2410s/arch/arm/boot/zimage /mnt/hgfs/share这样,你就可以在这样,你就可以在xp中你共享的目录下看到中你共享的目录下看到zimage了了 ftp(next: 烧写内核烧写内核)page 19烧写内核到开发板烧写内核到开发板打开超级终端,先按住打开超级终端,先按住pc机机“back space”键,然后启动键,然后启动2410s,进入,进入vivi

19、状态下,状态下,(如果这个步骤失败,说明(如果这个步骤失败,说明vivi烧写不正确,请参考烧写不正确,请参考快速开始手册快速开始手册重新烧写)重新烧写)设置开发板设置开发板ip(其(其ip要与服务器要与服务器ip在同一网段,内核启动后将失效),其命令为:在同一网段,内核启动后将失效),其命令为: viviset c 15,viviset s 2 设置设置tftp服务器服务器ip(启动启动tftp 服务器的主机服务器的主机)page 20n 在在windows下将下将xp的的ip配置成静态配置成静态ip:2n windows平台下

20、平台下tftp服务的配置:服务的配置: 将随机附带光盘中将随机附带光盘中“tools”目录下的目录下的tftpd32.rar文件解压到文件解压到windows的的“d:tftp32”目录下,目录下, 并新建文件夹并新建文件夹tftpd32,将光盘中,将光盘中“img”目录下文件目录下文件拷贝到该目录下。拷贝到该目录下。 n 双击双击“d:tftp32”目录下的目录下的tftpd32.exe文件,对文件,对windows下的下的tftp服务进行服务进行配置,如图所示:配置,如图所示: 烧写内核到开发板烧写内核到开发板page 21n 在在vivi状态下,输入烧写内核的命令为:状态下,输入烧写内核

21、的命令为:tftp flash kernel zimage。烧写内核到开发板烧写内核到开发板page 22烧写内核烧写内核n 如果内核移植成功,进入系统以后,查看如果内核移植成功,进入系统以后,查看/dev目录,可以发现有一个目录,可以发现有一个adc目目录!里面有录!里面有ad转换器的驱动转换器的驱动0draw。page 23根文件系统根文件系统根文件系统:根文件系统就是一种特殊的文件系统根文件系统:根文件系统就是一种特殊的文件系统, ,那么根那么根文件系统和普通的文件系统有什么区别呢?由于根文件系文件系统和普通的文件系统有什么区别呢?由于根文件系统是内核启动时挂在的第一个文件系统,那么根文

22、件系统统是内核启动时挂在的第一个文件系统,那么根文件系统就要包括就要包括linuxlinux启动时所必须的目录和关键性的文件启动时所必须的目录和关键性的文件,例,例如如linuxlinux启动时都需要有启动时都需要有initinit目录下的相关文件,在目录下的相关文件,在 linuxlinux挂载分区时挂载分区时linuxlinux一定会找一定会找/etc/fstab/etc/fstab这个挂载文件这个挂载文件等,根文件系统中还包括了许多的等,根文件系统中还包括了许多的应用程序应用程序binbin目录目录等,等,任何包括这些任何包括这些linux linux 系统启动所必须的文件都可以成为根系

23、统启动所必须的文件都可以成为根文件系统。文件系统。busybox: 实现了根文件系统所需的实现了根文件系统所需的“应用程序应用程序binbin目录目录”“启动时所必须的目录和关键性的文件启动时所必须的目录和关键性的文件”由由/arm2410s/root/ /arm2410s/root/ 目录提供目录提供mkcramfs mkcramfs 将跟目录需要的将跟目录需要的“应用程序应用程序binbin目录目录”和和“启动时启动时所必须的目录和关键性的文件所必须的目录和关键性的文件”打包成跟文件系统打包成跟文件系统page 24根文件系统实验根文件系统实验n 获取获取busybox源代码,源代码,ro

24、ot文件夹:文件夹: #cd /arm2410s #cp -rf busybox-1.00-pre10/ exp/exp4/ #cp -rf root/ exp/exp4/ #cd exp/exp4/n 解压交叉编译工具解压交叉编译工具arm-linux- #cd /arm2410s/exp/exp4 #tar xjvf arm-linux-gcc-3.4.1.tar.bz2成功以后,可以在当前文件夹下看到一个成功以后,可以在当前文件夹下看到一个usr目录,目录,arm-linux-交叉编译交叉编译工具就在这下面工具就在这下面修改环境变量修改环境变量path #export path=/arm

25、2410s/exp/exp4/usr/local/arm/3.4.1/bin:$pathpage 25配置配置busyboxn #cd /arm2410s/exp/exp4/busybox-1.00-pre10n #make menuconfign 界面:界面:n general configuration-n *use the devpts filesystem for unix98 ptysn build options-n build busybox as a static binary (no shared libs)n installation options- n *dont us

26、e/user page 26n build options-n *do you want to build busybox with a cross compiler?n 将下一行文字改为arm-linux-配置配置busyboxpage 27编译编译busyboxn #cd /arm2410s/exp/exp4/busybox-1.00-pre10/n #rm -f ./.dependn #make depn #maken #make prefix=./root installn 编译完成后,会在当前目录下生成编译完成后,会在当前目录下生成root目录。目录。n # ls root/n bi

27、n linuxrc sbinpage 28制作根文件系统制作根文件系统n #cd /arm2410s/exp/exp4/rootn #rm rf bin/ sbin/ n #cp arf /arm2410s/exp/exp4/busybox-1.00-pre10/root/* ./ n #cd .n #mkcramfs root root.cramfsn #lspage 29烧写根文件系统烧写根文件系统n 和烧写内核类似和烧写内核类似 #cp root.cramfs /mnt/hgfs/share 把把root.cramfs拷贝到拷贝到d:tftp32目录下目录下 其它和烧写内核相同,直到其它

28、和烧写内核相同,直到. 最后一步,将最后一步,将tftp flash kernel zimage 替换为:替换为: tftp flash root root.cramfsn 烧写完毕,输入烧写完毕,输入boot: vivibootpage 30根文件系统根文件系统文件系统:简单的说就是一种目录结构,由于文件系统:简单的说就是一种目录结构,由于 linuxlinux操作系操作系统的设备在系统中是以文件的形式存在,统的设备在系统中是以文件的形式存在,将这些文件进行将这些文件进行分类管理以及提供和内核交互的接口,就形成一定的目录分类管理以及提供和内核交互的接口,就形成一定的目录结构也就是文件系统结构

29、也就是文件系统,文件系统是为用户反映系统的一种,文件系统是为用户反映系统的一种形式,为用户提供一个检测控制系统的接口。形式,为用户提供一个检测控制系统的接口。根文件系统:根文件系统就是一种特殊的文件系统根文件系统:根文件系统就是一种特殊的文件系统, ,那么根那么根文件系统和普通的文件系统有什么区别呢?由于根文件系文件系统和普通的文件系统有什么区别呢?由于根文件系统是内核启动时挂在的第一个文件系统,那么根文件系统统是内核启动时挂在的第一个文件系统,那么根文件系统就要包括就要包括linuxlinux启动时所必须的目录和关键性的文件启动时所必须的目录和关键性的文件,例,例如如linuxlinux启动

30、时都需要有启动时都需要有initinit目录下的相关文件,在目录下的相关文件,在 linuxlinux挂载分区时挂载分区时linuxlinux一定会找一定会找/etc/fstab/etc/fstab这个挂载文件这个挂载文件等,根文件系统中还包括了许多的等,根文件系统中还包括了许多的应用程序应用程序binbin目录目录等,等,任何包括这些任何包括这些linux linux 系统启动所必须的文件都可以成为根系统启动所必须的文件都可以成为根文件系统。文件系统。page 31什么是什么是linux根文件系统根文件系统使用使用linuxlinux的时候,通过命令的时候,通过命令“ls /” ls /”

31、就会发现:就会发现:在在/ /下包涵很多的目录,比如下包涵很多的目录,比如etcetc、usrusr、varvar、bin . . bin . . 等等目录;目录;而在这些目录中还有很多的目录或文件;而在这些目录中还有很多的目录或文件;文件系统在文件系统在linuxlinux下看上去就象树形结构,下看上去就象树形结构,所以可以把文件系统的结构形象的称为树形结构。所以可以把文件系统的结构形象的称为树形结构。 linuxlinux文件系统的最顶端是文件系统的最顶端是“/”/”;我们称我们称“/”/”为为linuxlinux的根,也就是的根,也就是 linuxlinux操作系统操作系统的根文件系统。

32、的根文件系统。linuxlinux的文件系统的入口就是的文件系统的入口就是“/”/”,所有的目录、,所有的目录、文件、设备都在文件、设备都在“/”/”之下。之下。page 32根文件系统目录结构根文件系统目录结构linuxlinux遵守文件系统科学分类标准(遵守文件系统科学分类标准(fhsfhs),一个定义许多文),一个定义许多文件和目录的名字和位置的标准。件和目录的名字和位置的标准。一个一个linuxlinux的根文件系统目录结构如下:的根文件系统目录结构如下:/ linuxlinux文件系统的入口,也是处于最高一级的目录;文件系统的入口,也是处于最高一级的目录;/bin 系统所需要的那些命

33、令位于此目录,比如系统所需要的那些命令位于此目录,比如 lsls、cpcp、mkdirmkdir等命令;这个等命令;这个目录中的文件都是可执行的、普通用户都可以使用的命令。作为基础目录中的文件都是可执行的、普通用户都可以使用的命令。作为基础系统所需要的最基础的命令就是放在这里系统所需要的最基础的命令就是放在这里; ;/boot linuxlinux的内核及引导系统程序所需要的文件目录;如内核的映像文件,的内核及引导系统程序所需要的文件目录;如内核的映像文件,启动加载器(启动加载器(grubgrub););page 33根文件系统目录结构根文件系统目录结构/dev 设备文件存储目录,比如声卡、磁

34、盘设备文件存储目录,比如声卡、磁盘. . ./etc 系统配置文件的所在地,一些服务器的配置文件也在这里;比如系统配置文件的所在地,一些服务器的配置文件也在这里;比如/etc/inittab/etc/inittab是是initinit进程的配置文件,进程的配置文件,etc/fstabetc/fstab是用来指定启动时是用来指定启动时需要自动安装的文件系统列表。需要自动安装的文件系统列表。 /home 普通用户家目录默认存放目录;普通用户家目录默认存放目录; /lib 库文件存放目录库文件存放目录 /mnt 这个目录一般是用于存放挂载储存设备的挂载目录的,比如有这个目录一般是用于存放挂载储存设备

35、的挂载目录的,比如有cdrom cdrom 等等目录。目录。page 34根文件系统目录结构根文件系统目录结构proc 操作系统运行时,进程信息及内核信息(比如操作系统运行时,进程信息及内核信息(比如cpucpu、硬盘分区、内存、硬盘分区、内存信息等)存放在这里。信息等)存放在这里。/proc/proc目录伪装的文件系统目录伪装的文件系统procproc的挂载目的挂载目录录 ; ;/root linuxlinux超级权限用户超级权限用户rootroot的目录;的目录;/sbin 大多是涉及系统管理的命令的存放,是超级权限用户大多是涉及系统管理的命令的存放,是超级权限用户rootroot的可执行的可执行命令存放地,普通用户无权限执行这个目录下的命令命令存放地,普通用户无权限执行这个目录下的命令 ,如,如ifconfigifconfig/tmp 临时文件目录临时文件目录 /usr 这个是系

温馨提示

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

评论

0/150

提交评论