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]
[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]
相关文章推荐
- Kernel内核的裁剪及移植(一)
- Kernel内核的裁剪及移植(二)
- Kernel内核的裁剪及移植(三)
- 嵌入式Linux之Kernel(裁减移植)启动调试、打印技术 printascii(补充)、内核调试
- 基于ARM的嵌入式linux 内核的裁剪与移植
- kernel移植——从三星官方内核开始移植
- uC/OS-II 移植 内核系统裁剪os_cfg.h
- 嵌入式 Linux开发Kernel移植(二)——kernel内核配置和编译
- FL2440移植LINUX-3.4.2 (六)--裁剪内核和打补丁
- 基于FL2440的3.6.6内核移植出现Uncompressing Linux... done, booting the kernel.
- s5pv210 linux3.8.3内核移植之二:Uncompressing Linux... done, booting the kernel.问题解决
- linux4.10.8 内核移植(三)---裁剪内核
- 2.移植3.4内核-支持烧写yaffs2,裁剪内核并制作补丁
- 嵌入式Linux之Kernel(裁减移植)启动调试、打印技术 printascii(补充)、内核调试
- 内核移植错误:Uncompressing Linux............................... done, booting the kernel
- 移植linux内核到s3c6410(kernel 打印:Uncompressing Linux ... done , booting the kernel.后无响应问题的解决。)
- linux2.6内核移植zc301摄像头时 kernel BUG at arch/arm/mm/dma-mapping.c:409!..的解决方法
- 嵌入式 Linux开发Kernel移植(一)——kernel内核简介
- 【1】基于TQ2440的MP3设计——【5、裁剪和移植Linux 2.6 内核】
- 内核移植(kernel)-3