嵌入式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,重启看现象,内核移植完毕。
接下来讲根文件系统的移植。
- 嵌入式Linux学习-------Linux内核移植
- 嵌入式Linux内核移植
- 嵌入式Linux内核移植相关代码分析
- 嵌入式Linux内核移植相关代码分析
- 嵌入式Linux内核移植相关代码分析
- 嵌入式Linux内核移植相关代码分析
- 嵌入式Linux内核移植相关代码分析
- 嵌入式Linux内核移植相关代码分析
- 嵌入式Linux内核移植相关代码分析
- 嵌入式Linux内核移植相关代码分析
- 嵌入式Linux内核模块的移植
- 嵌入式Linux内核移植相关代码分析
- 嵌入式Linux内核移植相关代码分析
- 嵌入式Linux内核移植相关代码分析
- 嵌入式 移植Linux内核到mini2440常见问题
- 小学生学嵌入式:)移植Linux内核
- 【嵌入式Linux学习七步曲之第四篇 Linux内核移植】PPC Linux启动流程分析
- 【嵌入式Linux学习七步曲之第四篇 Linux内核移植】GDB和BDI2000调试PPC Linux内核
- Python编程(二):Python进程、线程的那点事儿
- Http协议概述
- 行为型:设计模式之访问者模式(二十三)
- 用流域和最佳的阈值进行慢性淋巴细胞性白血病细胞分割
- 工厂设计模式
- 嵌入式Linux学习-------Linux内核移植
- linux通过远程桌面访问windows
- Apache配置http访问转https
- 从数据库用户表在fastdfs文件系统批量创建头像一例
- iOS---如何把导航默认的返回按钮设置成“返回”
- C/C++面试题精选
- PHP+MySQL的操作
- UIGestureRecognizer手势识别详解
- List接口、ArrayList类和LinkedList类 笔记