收藏 分享(赏)

补充-内核的移植.ppt

上传人:Facebook 文档编号:2829327 上传时间:2018-09-28 格式:PPT 页数:55 大小:546.50KB
下载 相关 举报
补充-内核的移植.ppt_第1页
第1页 / 共55页
补充-内核的移植.ppt_第2页
第2页 / 共55页
补充-内核的移植.ppt_第3页
第3页 / 共55页
补充-内核的移植.ppt_第4页
第4页 / 共55页
补充-内核的移植.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、概念:移植,所谓移植(Porting),是指使一个操作系统能够在某个微处理器平台上运行。Linux的主要代码都是由标准的C语言写成的,移植方便。,1、Linux kernel: The kernel is the essential center of a computer operating system, the core that provides basic services for all other parts of the operating system. A synonym is nucleus. Typically, the kernel is responsible fo

2、r memory management, process and task management, and disk management.2、root filesystem:Like every traditional Unix system, Linux makes use of a systems root filesystem; it is the filesystem that is directly mounted by the kernel during the booting phase and that holds the system initialization scri

3、pts and the most essential system programs.,概念:内核和根文件系统,基于Flash的文件系统,Romfs:uClinux系统通常采用Romfs文件系统作为根文件系统 Cramfs :Cramfs文件系统以压缩方式存储,在运行时解压缩 JFFS2 :JFFS2是一个可读写的、压缩的、日志型文件系统 YAFFS :专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统,linux交叉编译,建立交叉编译环境是进行Linux内核移植的第一步。 目前常用的交叉开发环境主要有开放和商业两种类型。 开放的交叉开发环境的典型代表是GNU工具链,目前已能够支持x8

4、6、ARM、PowerPC等多种处理器。 商业的交叉开发环境主要有Metrowerks CodeWarrior、ARM Software Development Toolkit等。,常用在ARM平台的GNU Toolchain,arm-linux-gcc:交叉编译linux内核 arm-elf-gcc:主要交叉编译uclinux内核arm-uclinux-gcc:交叉编译uclinux内核 主要下载网址:www.gnu.org 为了在命令行中能够寻找到交叉编译器,我们需要把他所在的路径加入到PATH环境变量中 (例:/usr/local/arm/bin:$PATH )。,sh脚本方式安装(.s

5、h) sh arm-elf-tools-20030314.sh tar解压方式安装(.tar.gz) tar zxvf arm-linux-gcc-2.95.3.tar.gz rpm安装包方式安装(.rpm) rpm ivh arm-linux-gcc-2.95.3-3.i386.rpm rpm ivh arm-linux-binutils-2.12.1-1.i386.rpm rpm ivh arm-linux-glibc-2.2.5-1.i386.rpm 安装目录:/usr/local/bin/arm-elf-xxx/usr/local/arm-linux/bin/arm-linux-xxx

6、/usr/local/arm-uclinux-tool/bin/arm-uclinux-xxx,常用在ARM平台的GNU Toolchain,移植主要步骤,1、Linux内核配置和裁减2、Linux内核交叉编译3、Linux内核的烧写,Linux内核裁减,Linux内核的编译菜单都是通过Config.in经由不同脚本解释器产生.config。它包括“make config”、“make menuconfig”和“make xconfig”等版本。,“make config”以命令行方式进行配置 “make menuconfig”以菜单方式进行配置,且配置稳定可靠; “make xconfig”

7、以基于图形库菜单方式进行配置,基于目前2.4.X版本的xconfig比较成熟稳定; 基于2.6.X的xconfig菜单结构清晰,界面友好,但不够稳定。,Linux内核配置选项,1Code maturity level options:代码成熟度选项,它又有子项:(1) prompt for development and/or incomplete code/drivers该选项是对那些还在测试阶段的代码、驱动模块等的支持。一般应该选这个选项,除非只是想使用LINUX中已经完全稳定的东西。但这样有时对系统性能影响挺大。(2) prompt for obsolete code/drivers该项

8、用于对那些已经陈旧的被现有文件替代了的驱动程序和代码的支持,可以不选;除非你的机器配置比较旧,但那也会有不少问题。所以该项以基本不用,在新的版本中已被替换,2loadable module support:动态加载模块支持选项,其子项有:(1) enable module support(2) set version information on all module symbols该项用来支持跨内核版本的模块支持。即为某个版本的内核编译的模块可以在另一个版本的内核下使用,我们一般用不上,所以不选。(3) kernel module loader如果你启用这个选项,你可以通过kerneld程序

9、的帮助在需要的时候自动载入或卸载那些可载入式的模块,我们一般会选上。,Linux内核配置选项,3system type:系统类型,主要是CPU类型以及与此相关的内容。 在UP-NETARM2410平台上你在该项上看到的是s3c2410的ARM系列CPU。其它选项是关于该芯片及平台的一些结构定义。,Linux内核配置选项,4. General setup(1) support hot-plugable devieces对可热拔插的设备的支持,看情况选择。若要对U盘等USB设备进行控制,建议选上。(2) Networking support网络支持,用到网络设备当然要选上。(3) System V

10、 IPC支持System V的进程间通讯,选上。,Linux内核配置选项,(4) sysctl support该项支持在不重启情况下直接改变内核的参数。启用该选项后内核大约会增大8K,如果你的内存太小,就别选。(5) NWFPE math emulation一般要选一个模拟数学协处理器。(6) Power manager电源管理,给X86编译内核时较有用可以选上,尤其是笔记本。给ARM编内核时可不选。其他的看情况,在该平台上目前都用不着,不选。,Linux内核配置选项,5. Networking option网络选项,它主要是关于一些网络协议的选项。Linux号称网络操作系统,它最强大的功能,

11、也就是在于对网络功能的灵活支持。这部分内容相当多,根据具体情况,一般把以下几项选上。 (1) packet socket包协议支持,有些应用程序使用Packet协议直接同网络设备通讯,而不通过内核中的其它中介协议。同时它可以让你在TCP不能用时找到一个通讯方法。,Linux内核配置选项,(2) unix domain socket对基本UNIX socket的支持。(3) TCP/IP networking对TCP/IP协议栈的支持,当然要。如果你的内核很在意大小,而且没有什么网络要求,也不跑类似X Window之类基于Unix Socket的应用,那你可以不选,可节省大约144K空间。,Li

12、nux内核配置选项,至于其它众多的选项,这里挑一些对其意思简单介绍一下: Network firewalls:是否让内核支持采用网络防火墙。 Packet socket: mmapped IO 选该项,则Packet socket可以利用端口进行快速通讯的。 IP advanced router: 如果你想把自己的Linux配成路由器功能,这项肯定要选。 socket filter:就是包过滤。,Linux内核配置选项,IP multicasting: 即网络广播协议的支持,可以一次一个packet送到好几台计算机的操作。 IP syncookies: 一种保护措施,将各种TCP/IP的通信协

13、议加密,防止Attacker攻击用户的计算机,并且可以纪录企图攻击用户的计算机的IP地址。 IP masquerading:这个选项可以在Network Firewalls选项被选后生效。,Linux内核配置选项,masquerading可以将内部网络的计算机送出去的封包,通过防火墙服务器直接传递给远端的计算机,而远端的计算机看到的就是接收到的防火墙服务器送过来的封包,而不是从内部的计算机送过来的。 IP ICMP masquerading:一般masquerading 只提供处理TCP和UDP packets,若要让masqurerading 也能处理ICMP packets,就把这选项选上

14、。 IP always defragment:可将接收到的packet fragments重新组合回原来那个封包。,Linux内核配置选项,IP accounting:统计IP packet的流量,也就是网络的流通情况。 IP optimize as router not host:可以关闭copy&checksum技术,防止流量大的服务器的IP packets丢失。 IP tunneling: tunnel即隧道。这里是指用另外一种协议来封装数据或包容协议类型,这样就相当于在不同的协议之间打了条隧道,使得数据包可以被不同的协议接受和解释,这样我们可在不同网域中使用linux,且都不用改IP就

15、可以直接上网了.对于嵌入式设备这点还是挺有用的。,Linux内核配置选项,IP GRE tunneling:它是(Generic Routing Encapsulation)。选该项后可以支持在IPv4与IPv6之间的通讯。 IP ARP daemon support: 即对ARP的支持,它是把IP地址解析为物理地址。 IP Reverse ARP:RARP(逆向地址解析)协议,可提供bootp的功能,让计算机从可以从网卡的Boot Ram启动。这对于搭建无盘工作站是很有用的,但现在硬件价格下跌好像无盘工作站用的已经不多了。,Linux内核配置选项,IP Disable Path MTU Di

16、scovery:MTU有助于处理拥挤的网络MTU(Maximal Transfer Unit)最大的传输单位,即一次送往网络的信息大小。而Path MTUD iscovery的意思是当Linux发现一些机器的传输量比较小时,就会分送网络信息给它。如此可以增加网络的速度,所以大部分时候都选N,也就是Enable。 The IPX protocol:IPX为Netware网络使用的通讯协议.主要是NOVELL系统支持的。,Linux内核配置选项,QoS and/or fair queueing:QoS 即(Quality Of Service )这是一种排定某种封包先送的网络线程表,可同时针对多个

17、网络封包处理并依优先处理顺序来排序,称之为packet schedulers 。此功能特别是针对实时系统时格外重要,当多个封包同时送到网络设备时,Kernel可以适当的决定出哪一个封包必须优先处理。因此Kernel提供数种packet scheduling algorithm。,Linux内核配置选项,6Networking deveices(1) Dummy net driver support哑(空)网络设备支持.它可让我们模拟出TCPIP环境对SLIP或PPP的传输协议提供支持.选择它Linux核心增大不大。如果没有运行SLIP或PPP协议,就不用选它。(2) Bonding drive

18、r supportbonding技术是用来把多块网卡虚拟为一块网卡的,使他们有一个共同的IP地址。,Linux内核配置选项,(3) Universal TUN/TAP device driver support 用于支持TUNx/TAPx设备。(4) SLIP support这是MODEM族常用的一种通讯协议,必须通过一台Server(叫ISP)获取一个IP地址,然后利用这个IP地址,可以模拟以太网络,使用有关TCPIP的程序。,Linux内核配置选项,(5) PLIP support它和 SLIP/PPP全都属于点对点通讯,可以把两台电脑利用打印机的接接口串联起来,然后,加入此通讯协议。(6

19、) PPP(pointtopoint)support 点对点协议。(7) EQL (serial line load balancing) support 两台机器通过SLIP或PPP协议,使用两个MODEM,两条电话线,进行通讯时,可以用这个Driver以便让MODEM的速度提高两倍。,Linux内核配置选项,(8) Token Ring driver support 对令牌环网的支持。(9) Ethertap network tap(10) Ethernet (10 or 100Mbit) 十至百兆以太网设备。(11) ARCnet support 它是一种网卡但不流行基本没用。,Linu

20、x内核配置选项,7. Amateur Radio support 这个选项用的不多,它是用来启动无线网络的,通过无线网络我们可以利用公众频率来进行数据传输,如果你有相关无线网络通讯设备就可以用它。 8. IrDA(infrared) support 该项也属于无线通讯的一种,用于启动对红外通讯的支持。目前在2.6.X的内核里对它的支持内容更丰富了。,Linux内核配置选项,9. ATA/ATAPI/MFM/RLL support 该项主要对ATA/ATAPI/MFM/RLL等协议的支持在嵌入式设备中,目前这些设备应用的还不多,但台式机及笔记本用户如果你有支持以上协议的硬盘或光驱就可选上它。在2

21、.6.X内核中这方面的支持内容也比较丰富。,Linux内核配置选项,10. SCSI device support 如果你有SCSI设备(SCSI控制卡、硬盘或光驱等)你选上这项。目前SCSI设备类型已经比较多,要具体区分它们你得先了解它们所使用的控制芯片类型。2.6.X内核中对各类型SCSI设备已经有更具体详细的支持。,Linux内核配置选项,11. ISDN support ISDN (Integrated Services Digital Networks)它是一种高速的数字电话服务。通过专用ISDN线路加上装在你电脑上的ISDN卡,利用SLIP或PPP协议进行通讯。所以你若想启动该项支

22、持ISDN通讯,你还应启动前面提到的Networking Devices中的SLIP或PPP。,Linux内核配置选项,12. Console drivers support 控制台设备支持.目前安装uClinux/Linux的设备几乎都是带控制台的,所以这项是必选项,还有几个子项: (1) VGA text console 一般台式机选该项,支持VGA显示设备。 (2) Support Frame Buffer devices 该项支持Frame Buffer设备。Frame Buffer技术在2.4.X内核被全面采用,它通过开辟一块内存空间模拟显示设备。,Linux内核配置选项,以UP-N

23、ETARM2410为例,你应选上: support for frame buffer devices S3C2410 LCD support Advanced low level driver options 16 bpp packet pixels support 该项在UP-NETARM2410平台上改为640480 8bit 256 color STN LCD support,Linux内核配置选项,13. parallel port support对并行口的设备的支持。LINUX可以支持PLIP协议(利用并行口的网络通讯协定)、并口的打印机、ZIP磁盘驱动器、扫描仪等。如果有打印机,在

24、选择利用并口通讯时要小心,因为它们可能会互相干扰。,Linux内核配置选项,14. Memory Technology Device (MTD) support MTD包含flash和RAM等存储设备。MTD在现在的嵌入式设备中应用的相当多,也特别重要。选中该项可以对MTD进行动态支持这里按UP-NETARM3000平台做一些解释: (1) MTD partitioning support选上该项可支持对MTD的分区操作。在对嵌入式设备的操作系统移植过程中往往要对MTD进行分区,然后在各分区放置不同的数据,以让系统能被正确引导启动。,Linux内核配置选项,(2) Direct char de

25、vice access to MTD devices 选该项为系统的所有MTD设备提供一个字符设备,通过该字符设备能直接对MTD设备进行读写以及利用ioctl()函数来获取该MTD设备的相关信息。,Linux内核配置选项,(3) Caching block device access to MTD devices许多flash芯片其擦除的块太大,因此作为块设备使用效率大打折扣。选上该项后,它支持利用RAM芯片作为缓存来使用MTD设备,这时对于MTD设备块设备就相当于它的一个用户,通过JFFS文件系统的控制。可以模拟成一个小型块设备,具有读、写、擦除和校验等功能。,Linux内核配置选项,(4)

26、 NAND flash device drivers子项中有几项是关于MTD设备驱动的,平台选择的是NAND flash,所以选上它。选上后,在其二级子项中还要选上: NAND devices support verify NAND pages writes 支持页校验。 NAND flash device on ARM board,Linux内核配置选项,15. Plug and Play support 这是对PNP(即插即用)设备的支持。 16. block devices 块设备。该项下也有好几个子项,主要是关于各种块设备的支持,至少把RAM的支持项选上,如在我们UP-NETARM30

27、00平台上我们要选上: RAM disk support Initial RAM disk(initrd) support,Linux内核配置选项,17. File systems 文件系统在Linux中是非常重要的,该项下的子项也非常多。 (1) Quota support 份额分配支持,择该项则系统支持对每个用户使用的磁盘空间进行限制。 (2) Kernel automounter support 在有NFS文件系统的支持下,选择该项使内核可以支持对一些远端文件系统的自动挂栽。,Linux内核配置选项,(3) Kernel automounter version 4 support V3版

28、本的升级,它兼容V3 。 (4) Reiserfs supportReiserFS这种文件系统以日志方式,比传统的文件系统架构更为高效,尤其适合大目录下文件的情况。 (5) ROM file system support 它是一个非常小的只读文件系统,主要用于安装盘及根文件系统。,Linux内核配置选项,(6) JFS filesystem support 这是IBM的一个日志文件系统。 (7) Second extended fs support 著名的EXT2(二版扩展文件系统)。 (8) Ext3 journalling file system support 其实是EXT2的日志版,我

29、们通常叫它EXT3。 (9) Journalling Flash file system v2(jffs2) supportFlash日志文件系统,目前UP-NETARM3000的uCliux支持该文件系统。,Linux内核配置选项,(10) ISO 9660 CDROM file system support光驱的支持。(11) /proc file system support 这是虚拟文件系统,能够提供当前系统的状态信息。它运行时在内存生成,不占任何硬盘空间,通过CAT命令可以读到其文件的相关信息。,Linux内核配置选项,(12) /dev file system support 它是

30、类似于/proc的一个文件系统,也是虚拟的,主要用于支持devfs(设备文件系统)。把它选上,就可以不依赖于传统的主次设备号的方式来管理设备,而是由devfs自动管理。,Linux内核配置选项,(13) NFS file system 网络文件系统。 NFS file system support 对网络文件系统的支持,NFS通过SLIP、PLIP、PPP或以太网进行网络文件管理。 NFS server support选这项可以把你的Linux配置为NFS server。 SMB file system support它是用于和局域网中相连的Windows机器建立连接的,相当于网上邻居。这些协

31、议都需要在TCP/IP被启用后才有效。 (14) Native Language Support 它是对各国语言的支持。,Linux内核配置选项,18. character devicesLINUX支持很多特殊的字符设备,所以该项下的子项也特别多。 (1) virtual terminal 虚拟终端,选上。 (2) support for console on virtual terminal 虚拟终端控制台,选上。 (3) non-standar serial port support 非标准串口设备的支持。如果你的平台上有一些非标准串口设备需要支持,就选上它。,Linux内核配置选项,(4

32、) Serial drivers 串口设置,一般选上自己开发平台相关的串口就行。在UP-NETARM3000上选S3C44B0 serial port support和support for console on S3C44B0 serial port。 (5) UNIX98 PTY supportPTY(pseudo terminal)伪终端,它是软件设备由主从两部分组成。从设备与具体的硬件终端绑定,而主设备则由一个进程控制向从设备写入或读出数据,其典型应用如telnet服务器和xterms等。,Linux内核配置选项,(6) IIC support 对IIC设备的支持。(7) Mice 就

33、是对鼠标的支持。(8) Joysticks 对一些游戏手柄的支持。(9) QIC-02 tape support 对一些非SCSI的磁带设备支持。(10) watchdog card support 对看门狗定时设备的支持。,Linux内核配置选项,(11) /dev/nvram support 这是一种和BIOS配合工作的RAM设备,我们常称它为“CMOS RAM”。通过设备名/dev/nvram可以读写该部分内存内容,它通常保存一些机器运行必需的重要数据,而且保证掉电后能继续保存。 (12) Enhanced Real Time Clock Support在每台PC机上都内建了一个时钟,它

34、可以产生出从1Hz到8192Hz的信号。在多CPU的机器中这项必选。,Linux内核配置选项,(13) /dev/agpgart (AGP Support) AGP (Accelerated Graphics Port) 通过它可以沟通显卡与其它设备。如果有AGP设备就选上它,嵌入式系统中目前用的还不多,但台式机AGP设备已相当普及。 (14) Siemens R3964 line discipline这项主要是支持利用Siemens R3964的包协议进行同步通讯的。,Linux内核配置选项,(15) Direct Rendering Manager (XFree86 4.1.0 and h

35、igher DRI support) 选该项后则在内核级提供对XFree86 4.0的DRI(Direct Rendering Infrastructure)的支持,选择正确的显卡后,该设备能提供对同步、安全的DMA交换支持。 选该项同时要把/dev/agpgart (AGP Support)选上。,Linux内核配置选项,19. USB support 即对USB设备的支持. 如果有相关设备就选上。 20. sound card support 关于声卡的支持,根据你自己的情况来配置。 21. kernel hacking 有关内核调试及内核运行信息的选项。,Linux内核配置选项,内核的交

36、叉编译,(1)make clean 这条命令是在正式编译你的内核之前先把环境给清理干净。有时你也可以用make realclean或make mrproper来彻底清除相关依赖(跟你的Makefile文件支持有关),保证没有不正确的.o文件存在。 (2)make dep 这条命令是编译相关依赖文件。2.6.X以上版本这步已经被整合到make这一步中,所以不再单独执行。,内核的交叉编译,(3) make zImage 这条命令就是最终的编译命令。有时你可以直接用make(2.6.X版本上用)或make bzImage(给PC机编译大内核时使用)。(4) make install这条命令可以把相关文件拷贝到默认的目录。当然在给嵌入式设备编译时这步可以不要。因为具体的内核安装还需要你手工进行。,讨论时间,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报