嵌入式Linux学习-------Linux内核移植

来源:互联网 发布:苹果免费打电话软件 编辑:程序博客网 时间:2024/06/05 03:19

二、Linux内核移植

       上一节介绍了u-boot的移植,这一节来介绍Linux内核移植。

 

工具和源码在路径:F:\韦东山\CD1_主光盘\system。

 

通过Samba,将工具和源码拷贝到共享目录,Samba配置详见相关文章,执行以下命令。

tar xjf linux-2.6.22.6.tar.bz2   //解压linux内核源码包

cd  linux-2.6.22.6  //进入内核源码目录

patch -p1 < ../linux-2.6.22.6_jz2440.patch  //打补丁,命令为patch,-p1中的1是指忽略掉第

                                     一个目录,p只路径path 

make  s3c2410_defconfig  //产生配置文件

执行上述命令后,将会在 linux-2.6.22.6跟目录生成.config文件。

也可以通过命令:cp  config_厂家  .config     来拷贝配置文件

在本实验中,打完补丁后,会在根目录生成config_ok文件,

我们直接执行命令:cp  config_ok  .config     命令即可。

make  menuconfig  //进入菜单配置界面,一定要选择以下菜单,否则会导致引导根文件系

统失败

Kernel Features --->

  [*] Use the arm EABI to compile the kernel

  [*] Allow old ABI binaries to run with this kernel (EXPERIMENTAL) (NEW)

 

 

 

File system --》

     Miscellaneous filesystems-------》

            YAFFS2  file  system  support选中

如果没有yaffs2选项,那是yaffs文件系统补丁包没有打上,选中支持yaffs2才能引导yaffs2文件系统。

倘若不选择上述菜单,会导致linux内核引导根文件系统的时候,卡死在这里

block 535 is bad

block 809 is bad

block 937 is bad

block 1898 is bad

VFS: Mounted root (yaffs filesystem).

Freeing init memory: 136K

原因在于:编译内核和busybox使用的编译器是arm-linux-gcc 4.3.2,而这个编译器默认是打开"EABI选项"的,这样编译出来的busybox就是EABI的。但是内核编译的时候,默认是把"EABI选项"关掉的。所以busybox和内核无法正常配合。把"EABI选项"打开,重新编译内核后,一切正常。

可能遇到的问题

mount -t nfs -o nolock 192.168.1.132:/share  /mynfsc

mount: mounting 192.168.1.132:/share on /mynfsc failed: Protocol not supported


原因:内核配置有问题,没有支持 NFS 客户端:

---Network File Systems

    [*]   Provide NFSv3 client support


涂蓝选项选中,就可以了。

kernel配置
network filesystem->

·Enable NFS file system

·NFS client support

·NFSV3 client support

还有就是busybox中的mount要支持nfs

make uImage //生成内核镜像文件

 UIMAGE  arch/arm/boot/uImage

"mkimage" command not found - U-Boot images will not be built

该镜像文件在目录:arch/arm/boot/,如果在该目录找不到uImage,需要转换工具,到u-boot的tools目录\u-boot-1.1.6\tools将mkimage工具拷贝到linux系统的/usr/bin/目录下,再次重新make clean,make

即可在arch/arm/boot/目录下生成uImage

 

通过u-boot下载uImage,重启看现象,内核移植完毕。

 

 

接下来讲根文件系统的移植。

 

0 0