新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于PC/104平台嵌入式Linux系统核心定制方法

基于PC/104平台嵌入式Linux系统核心定制方法

作者:时间:2012-04-05来源:网络收藏

字符设备。其中有:
I2C support: I2C是Philips极力推动的微控制应用中使用的低速串行总线协议。如果要选择下面的Video For ,该项必选。
Mice:鼠标。现在可以支持总线、串口、PS/2、CT82C710 mouseport、PC110 digitizerpad。
Joysticks:手柄支持。Watchdog Cards:如果把这个选中,那么就会在/dev下创建一个名为watchdog的文件,它可以记录系统的运行情况,一直到系统重新启动的1min左右。有了这个文件,就可以恢复系统到重启前的状态了。
Video For :支持有关的音频/视频卡。
Ftape,the floppy tape device driver:
PCMCIA character device support:上边介绍了。

(21)Filesy stems。介绍以下几项:
Quota support: Quota可以限制每个用户可以使用的硬盘空间的上限,在多用户共同使用一台主机的情况中十分有效。
DOSFAT fssupport: DOSFAT文件格式的支持,可以支持FAT16、FAT32。
ISO 9660CD-ROM file system support:光盘使用的就是ISO9660的文件格式。
NTFS file system support:ntfs是NT使用的文件格式。
/proc file system support:/proc是Lnux提供给用户和系统进行交互的通道,应该选上,否则有些功能没法正确执行。
还有另外3个大类是:Network File Systems(网络)、Partition Types(分区类型)、
NativeLanguageSupport(本地语言支持)。值得一提的是NetworkFileSystems里面的两种:NFS和SMB分别是和Windows相互以网络邻居的形式访问对方所使用的文件系统。

(22)Console drivers控制台驱动。一般使用VGA text console就可以了,标准的80325的文本控制台。
(23)Sound声卡驱动。
(24)USB supprotUSB支持。很多USB设备,比如鼠标、调制解调器、打印机、扫描仪等,在Linux都可以得到支持。 (25)Kernel hacking配置此选项可以在系统崩溃时,也可以进行一定的工作了。但对于普通用户是用不着这个功能的。

编译

配置结束后就可以编译了,内核编译只有几个指令,但是内核编译的时间可能会很长。在执行内核配置之前可以先执行#make mrproper命令,检查内核源程序,以发现内核文件是否完备。
内核编译的命令如下:
#maked ep:使内核正确设置所有模块的依赖关系。
make clean:清除所有已存在的目标文件,已存在的目标文件主要由上次内核编译形成,如果忘记做这一步,生成的内核将会非常庞大。
#make zImage/zdisk/bzImage/zlilo:生成一个经过压缩的内核。如果要制作成启动盘就使用make zdisk,而make zlilo则把生成的内核加入LLO中,不过在最初几次编译内核时不要使用此项,以免系统因生成的内核有故障而不能启动。make bzImage用于生成超过1M文件大小的内核,makezImage生成小于1M的内核。内核文件是经过压缩处理的。如果内核中使用了可装卸的模块,则需要依次运行以下指令:
#make modules:编译内核模块。
#make modules_install:安装内核模块。

编译后的内核文件存放在arch/i386/boot/目录下。以下为一个内核编译配置脚本,采用该脚本编译的内核可运行于当前所有x86平台,不具备网络和串口支持,内核编译后的大小在200K以内。
#基于x86体系结构
CONFIG_X86=y
#是内核中最新功能(或处于实验中的功能) 可用
CONFIG_EXPERIMENTAL=y
#选择处理器类型和数学处理器仿真
CONFIG_M386=y
CONFIG_MATH_EMULATION=y
#设置进程间通信协议
CONFIG_SYSVIPC=y
CONFIG_SYSCTL=y
#设置可支持的二进制文件格式
CONFIG_BINFMT_ELF=y
#块设备支持,CFC和DOC在此设置不同
#设置内核支持DE驱动器
CONFIG_BLK_DEV_DE=y
CONFIG_BLK_DEV_DEDISK=y
CONFIG_BLK_DEV_CMD640=y
CONFIG_BLK_DEV_RZ1000=y
CONFIG_BLK_DEV_DEPCI=y
CONFIG_BLK_DEV_DEDMA=y
CONFIG_IDEDMA_AUTO=y
CONFIG_BLK_DEV_CS5530=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_PARDE_PARPORT=y
#字符设备设置
CONFIG_VT=y
#文件系统设置
#支持/proc、ext2文件系统
CONFIG_PROC_FS=y
CONFIG_EXT2_FS=y
#支持字符型终端
CONFIG_VGA_CONSOLE=y

网络与串口通信功能

Linux 内核内置对网络和串口的支持,具体到内核编译,只要设置部分内核参数即可。以下是网络设备的支持,需要注意的是其中PCI设备支持选项和以太网设备支持选项,如果选择网卡,这两类设备都必须被支持。网卡的驱动程序如果未包含到内核,则可以模块形式加载。
CONFIG_NET=y
CONFIG_PCI=y
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_QUIRKS=y
CONFIG_PCI_OLD_PROC=y
CONFIG_NETLINK=y
CONFIG_INET=y
CONFIG_NET_ETHERNET=y

以下是串口设置参数,如果单纯支持两个串口,则设置CONFIG_SERIAL项即可。在系统需要4个以上串口支持,或需要基于串口的终端控制时,需要设置余下3个参数。
CONFIG_SERIAL=y
#CONFIG_SERIAL_CONSOLE
#CONFIG_SERIAL_EXTENDED
#CONFIG_SERIAL_NONSTANDARD
本项目中仅设置两个串口支持。

文件系统定制

Linux 操作系统为方便管理把外存抽象成一个可随时访问的块,为方便管理和使用又在块设备层上再作抽象,把块设备抽象成为文件系统,由文件系统管理块设备上的数据等,文件系统有很多种,不同文件系统有不同的管理方式,造成系统不兼容,为解决这个问题,在文件系统上又作一次抽象,提出了虚拟文件系统的概念。 Linux虚拟文件系统为用户提供了一个公共的接口,而不需要了解物理设备或逻辑系统的细节,系统允许系统管理员将在任何物理设备上的逻辑文件系统挂接在文件目录中。

目录结构

Linux文件系统符合 FHS(Filesystem Hierarchy Standard)标准,由一些目录和文件组成。根据安装的方式不同,这些目录可能是不同的文件系统。通常,一个系统可以有多个文件系统组成:根分区文件系统(/),和安装在/usr下的文件系统,还有其他安装在/home、/var文件系统。
Linux目录结构起始与根目录,其中包含以下目录:
/vmlinuz
内核文件,内核文件的位置可由系统引导程序指定。
/bin
包含系统可执行程序,可以在这个目录下找到linux常用的命令。
/boot
存放系统启动时所需的各项文件。
/dev
包含所有的设备文件,这些设备是和系统的硬件有一定相互对应关系的特殊文件,分为块设备、字符设备和特殊设备,dev是设备(device)的英文缩写。目录中包含了所有Linux系统中使用的外部设备,但是这里并不是放的外部设备的驱动程序,它实际上是一个访问这些外部设备的标识。在Linux系统中,对外部设备的访问和访问一个文件、一个目录没有任何区别。
/cdrom
用于将光驱文件系统加载到这个目录下。
/etc
Linux系统的绝大部分配置文件都存放在这里。比如网络配置文件,文件系统,XWindow配置文件,设备配置信息,设置用户信息等都在这个目录下。
/sbin
存放系统程序。和/bin目录类似,但这些文件往往是用来进行系统管理或提供系统服务的,一般只有root才有运行的权限。
/home
存放一般用户个人目录的主目录,如果建立一个用户,用户名是“xx”,那么在/home目录下就有一个对应的/home/xx路径。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)


关键词: Linux 内核 文件系统

评论


相关推荐

技术专区

关闭