您好,欢迎访问三七文档
Linux内核Linux内核配置与编译,Linux内核移植,mtd设备最简单的嵌入式系统Bootloader参数系统内核根文件系统Flash从低地址到高地址方向SDRAM0x300000000x00x40000000x002000000x00500000Linux内核重要子系统系统调用接口进程管理内存管理虚拟文件系统网络堆栈设备驱动程序内核版本号Linux版本号统一采用的格式为x.y.zx:目前发布的Kernel主版本y:偶数则为稳定版本;奇数则为测试版本或叫开发中的版本z:错误修补的次数例如:linux-2.6.30.4_20100531.tar.bz2烧写出厂镜像烧写内核:zImage_Q43_2.6.30.4_20100531.bin到nandflash0x00200000地址烧写文件系统:root_qt_4.5_2.6.30.4_256MB_20100601.bin到nandflash0x00500000地址编译内核镜像1.解压缩包:#cp/mnt/hgfs/linux-2.6.30.4_20100531.tar.bz2#tar–jxvflinux-2.6.30.4_20100531.tar.bz2-C/2.内核目录位于:/opt/EmbedSky/linux-2.6.30.4arch/体系结构相关的代码,例如:arch/i386,arch/arm,arch/ppcdrivers/各种设备驱动程序,例如:drivers/chardrivers/block…Documentation/内核文档fs/文件系统,例如:fs/ext3/fs/jffs2…include/内核头文件:include/asm是体系结构相关的头文件,它是include/asm-arm、include/asm-i386等目录的链接。include/linux是Linux内核基本的头文件init/Linux初始化,例如:main.cipc/进程间通信的代码kernel/Linux内核核心代码(这部分很小)lib/各种库子程序,例如:zlib,crc32mm/内存管理代码net/网络支持代码,主要是网络协议sound声音驱动的支持scripts/内部或者外部使用的脚本usr/用户的代码内核源码结构内核配置系统Linux内核的配置系统由三个部分组成,分别是:Makefile:分布在Linux内核源代码中的Makefile,定义Linux内核的编译规则;配置文件(.config):内核配置文件,包含由用户选择的配置选项,用来存放内核配置后的结果.配置工具:makemenuconfig(基于文本选单的配置界面,字符终端下推荐使用)makexconfig(基于图形窗口模式的配置界面,Xwindows下推荐使用)makeconfig(基于文本的最传统的配置界面,不推荐使用)Makefile顶层Makefile:是整个内核配置、编译的总体控制文件。arch/*/Makefile:位于各种CPU体系目录下的Makefile,如arch/arm/Makefile,是针对特定平台的Makefile。各个子目录下的Makefile:比如drivers/Makefile,负责所在子目录下源代码的管理makemenuconfigmakemenuconfig:Y-将该功能编译进内核。N-不将该功能编译进内核。M-将该功能编译成可以在需要时动态插入到内核中的模块。驱动程序配置选项几乎所有Linux的设备驱动程序都在“DeviceDrivers”菜单下,它对设备驱动程序加以归类,放到子菜单下。下面解释常用的一些菜单项的内容。(1)“GenericDriverOptions”菜单对应drivers/base目录的配置选项,包含Linux驱动程序基本和通用的一些配置选项。(2)“MemoryTechnologyDevices(MTD)”菜单对应drivers/mtd目录的配置选项,包含MTD设备驱动程序的配置选项。(3)“Parallelportsupport”菜单对应drivers/parport目录的配置选项,包含并口设备驱动程序。(4)“PlugandPlaysupport”菜单对应drivers/pnp目录的配置选项,包含计算机外围设备的热拔插功能。(5)“Blockdevices”菜单对应drivers/block目录的配置选项,包含软驱、RAMDISK等驱动程序。(6)“ATA/ATAPI/MFM/RLLsupport”菜单对应drivers/ide目录的配置选项,包含各类ATA/ATAPI接口设备驱动。(7)“SCSIdevicesupport”菜单对应drivers/scsi目录的配置选项,包含各类SCSI接口的设备驱动。(8)“Networkdevicesupport”菜单对应drivers/net目录的配置选项,包含各类网络设备驱动程序。驱动程序配置选项(9)“Inputdevicesupport”菜单对应drivers/input目录的配置选项,包含USB键盘鼠标等输入设备通用接口驱动。(10)“Characterdevices”菜单对应drivers/char目录的配置选项,包含各种字符设备驱动程序。这个目录下的驱动程序很多。串口的配置选项也是从这个子菜单调用的,但是串口驱动所在的目录是drivers/serial。(11)“I2Csupport”菜单对应drivers/i2c目录的配置选项,包含I2C总线的驱动。(12)“Multimediadevices”菜单对应drivers/media目录的配置选项,包含视频/音频接收和摄像头的驱动程序。(13)“Graphicssupport”菜单对应drivers/video目录的配置选项,包含Framebuffer驱动程序。(14)“Sound”菜单对应sound目录的配置选项,包含各种音频处理芯片OSS和ALSA驱动程序。(15)“USBsupport”菜单对应drivers/usb目录的配置选项,包含USBHost和Device的驱动程序。(16)“MMC/SDCardsupport”菜单对应drivers/mmc目录的配置选项,包含MMC/SD卡的驱动程序。对于特定的目标板,可以根据外围设备选择对应的驱动程序选项,然后才能在Linux系统下使用相应的设备。编译内核在内核目录下:#cpconfig_EmbedSky_W43.config编译内核:#makeuImage编译好的内核位于arch/arm/boot/下烧写uImage镜像到nandflash的0x00200000地址。在Uboot命令行设置启动命令:tftp30000000uImageBootm30000000LinuxMTD介绍MTD(memorytechnologydevice内存技术设备)是用于访问memory设备(ROM、flash)的Linux的子系统。MTD的主要目的是为了使新的memory设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。MTD字符驱动程序允许直接访问flash器件,通常用来在flash上创建文件系统,也可以用来直接访问不频繁修改的数据。MTD块设备驱动程序可以让flash器件伪装成块设备,实际上它通过把整块的eraseblock放到ram里面进行访问,然后再更新到flash,用户可以在这个块设备上创建通常的文件系统。linux系统定义出MTD的块设备(主设备号31)和字符设备(设备号90).嵌入式Linux+yaffs2Bootloader参数系统内核根文件系统Flash从低地址到高地址方向SDRAM0x300000000x380000000x37000000bootargsnandreadmtdblock2实践交叉编译运行和NFS
本文标题:76Linux内核
链接地址:https://www.777doc.com/doc-3597283 .html