您的位置:首页 > 运维架构 > Linux

Kernel内核的裁剪及移植(四)

2011-01-23 00:41 441 查看
[align=left]八、配置和编译内核[/align]
[align=left]到现在,一个简单的内核就准备好了,我们还需要做一些配置,然后编译,内核才能[/align]
[align=left]正常使用。[/align]
在内核源代码的根目录下运行make menuconfig命令,进入配置界面:
[root@localhost gspca]# cd ../../../..
[root@localhost linux-2.6.24.4]# make menuconfig




1、选择硬件系统
[align=left]做如下选择:[/align]
[align=left]System Type --->[/align]
[align=left]S3C2410 Machines --->[/align]
[align=left][*] SMDK2410/A9M2410[/align]
[align=left][*] IPAQ H1940[/align]
[align=left][*] Acer N30[/align]
[align=left][*] Simtec Electronics BAST (EB2410ITX)[/align]
[align=left][*] NexVision OTOM Board[/align]
[align=left][*] AML M5900 Series[/align]
[align=left][*] Thorcom VR1000[/align]
[align=left][*] QT2410[/align]





其他的:

[align=left]S3C2400 Machines --->[/align]
[align=left]S3C2412 Machines --->[/align]
[align=left]S3C2440 Machines --->[/align]
[align=left]S3C2442 Machines --->[/align]
[align=left]S3C2443 Machines --->[/align]
上面的四个选项下的所有选项都不要选,以减小内核体积。
[align=left]2、配置LCD驱动[/align]
[align=left]做如下选择:[/align]
[align=left]Device Drivers --->[/align]
[align=left]Graphics support --->[/align]
[align=left]<*> Support for frame buffer devices --->[/align]
[align=left]<*> S3C2410 LCD framebuffer support[/align]




[*] Bootup logo --->

[align=left]--- Bootup logo[/align]
[align=left][*] Standard black and white Linux logo[/align]
[align=left][*] Standard 16-color Linux logo[/align]
[align=left][*] Standard 224-color Linux logo[/align]




这样,在内核启动的时候,在LCD的左上角就会出现Linux的LOGO,一只小企鹅。

[align=left]3、配置NAND Flash驱动[/align]
[align=left]做如下选择:[/align]
[align=left]Device Drivers --->[/align]
[align=left]<*> Memory Technology Device (MTD) support --->[/align]
[align=left]<*> NAND Device Support --->[/align]
[align=left]<*> NAND Flash support for S3C2410/S3C2440 SoC[/align]




4、配置网卡驱动

做如下选择:

[align=left]Device Drivers --->[/align]
[align=left][*] Network device support --->[/align]
[align=left][*] Ethernet (10 or 100Mbit) --->[/align]
[align=left]--- Ethernet (10 or 100Mbit)[/align]
[align=left]-*- Generic Media Independent Interface device support[/align]
[align=left]<*> ASIX AX88796 NE2000 clone support[/align]
[align=left][ ] ASIX AX88796 external 93CX6 eeprom support[/align]
[align=left]< > SMC 91C9x/91C1xxx support[/align]
[align=left]< > DM9000 support[/align]
[align=left]< > Broadcom 440x/47xx ethernet support[/align]




[align=left]5、配置文件系统[/align]
[align=left]做如下配置,以支持CRAMFS文件系统和YAFFS文件系统,为了调试方便,也[/align]
[align=left]选上NFS文件系统的支持:[/align]
[align=left]File systems --->[/align]
[align=left]Miscellaneous filesystems --->[/align]
[align=left]<*> YAFFS2 file system support[/align]
[align=left]-*- 512 byte / page devices[/align]
[align=left][ ] Use older-style on-NAND data format with pageStatus byte[/align]
[align=left][ ] Lets Yaffs do its own ECC[/align]
[align=left]-*- 2048 byte (or larger) / page devices[/align]
[align=left][*] Autoselect yaffs2 format[/align]
[align=left][ ] Disable lazy loading[/align]
[align=left][ ] Turn off wide tnodes[/align]
[align=left][ ] Force chunk erase check[/align]
[align=left][*] Cache short names in RAM[/align]
[align=left]< > Journalling Flash File System v2 (JFFS2) support[/align]
[align=left]<*> Compressed ROM file system support (cramfs)[/align]





[*] Network File Systems --->

[align=left]--- Network File Systems[/align]
[align=left]<*> NFS file system support[/align]
[align=left][*] Provide NFSv3 client support[/align]
[align=left][*] Provide client support for the NFSv3 ACL protocol[/align]
[align=left]extension[/align]
[align=left][ ] Provide NFSv4 client support (EXPERIMENTAL)[/align]
[align=left][*] Allow direct I/O on NFS files[/align]
[align=left]< > NFS server support[/align]
[align=left][*] Root file system on NFS[/align]




6.配置摄像头驱动

[align=left]要内核支持中星的摄像头[/align]
[align=left]Device Drivers --->[/align]
[align=left]Multimedia devices --->[/align]
[align=left]Video For Linux[/align]




USB support --->

[align=left]Support for Host-side USB[/align]
[align=left]---USB Host Controller Drivers[/align]
[align=left]OHCI HCD support[/align]




USB SPCA5XX Sunplus/Vimicro/Sonix jpeg Cameras





这样,内核的配置基本上就做好了。如果有兴趣,可以自己查看内核的其他配

[align=left]置,并决定是否选择某项功能,以适合自己的开发板。[/align]
[align=left]在内核源文件的根目录下运行如下命令编译内核:[/align]
[align=left][root@localhost linux-2.6.24.4]# make[/align]
[align=left]编译完成后,会在内核的boot/arch/arm目录下生成zImage文件。这个文件就[/align]
[align=left]是内核的镜像文件。经过处理,可以启动,后面会详细介绍。[/align]




九、用U-Boot启动内核

[align=left]编译U-Boot时在源代码的tools目录下会生成一个mkimage可执行文件,用这个工具[/align]
[align=left]可以对前面编译内核时生成的zImage进行处理,以供U-Boot启动。[/align]
[align=left]把mkimage 拷贝到一个目录下,比如我的就是/root/2410-s,把上面编译生成的[/align]
[align=left]zImage也拷贝到该目录下,运行如下命令生成 uImage:[/align]
[align=left][root@localhost 2410-s]# ./mkimage -A arm -T kernel -C none -O linux -a 0x30008000 -e 0x30008040 -d zImage -n 'Linux-2.6.24' uImage[/align]
[align=left]Image Name: Linux-2.6.24[/align]
[align=left]Created: Fri Nov 19 11:26:54 2010[/align]
[align=left]Image Type: ARM Linux Kernel Image (uncompressed)[/align]
[align=left]Data Size: 1733868 Bytes = 1693.23 kB = 1.65 MB[/align]
[align=left]Load Address: 0x30008000[/align]
[align=left]Entry Point: 0x30008040[/align]
[align=left][root@localhost 2410-s]#[/align]




这样会在这个目录下生成uImage,把uImage放入主机的TFTP目录下,启动开发板,

[align=left]用U-Boot的tftp命令下载uImage到SDRAM,并启动。U-Boot中的操作如下:[/align]
[align=left][UP-2410-S #]tftp[/align]
[align=left]然后运行bootm启动内核:[/align]
[align=left][UP-2410-S #]bootm[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息