linux3.4.2内核编译、加载、yaffs2挂载问题汇总
来源:互联网 发布:centos 用户管理 编辑:程序博客网 时间:2024/06/05 18:07
1 移植linux3.4.2内核,编译出现错误:
cc1: error: invalid option 'abi=aapcs-linux'
出现错误原因:编译器的解决:
(1)换编译器,如arm-linux-gcc-4.3.2,包含arm-none -linux-gnueabi-gcc
(2)make menuconfig 去掉Kernel Features->Use the ARM EABIto compile the kernel
建议换编译器,第二种方法虽然能解决,再编译还会遇到第2个问题
2 编译内核是出现:arch/arm/mm/tlb-v4wbi.S:64:error: too many positional arguments
原因不明,解决:
用4.3.2内核make distclean 后重新make uImage
3 加载内核出现错误Error: Can't get kernel image
原因:
内核超过2m,uboot中参数
mtdparts=mtdparts=nandflash0:256k@0(bootloader),128k(params),2m(kernel),-(root)
bootcmd=nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0
或者
bootcmd=nand read 30007fc0 60000 200000;bootm 30007fc0
在用tftp下载uImage之后,也只烧写了2m,如下
nand erase 60000 200000
tftp 30000000 uImage
nand write 30000000 60000 200000
所以内核在根据uImage的头部检查的时候,发现文件大小不对,出错
解决:
根据uImage大小,调整内核空间大小,比如烧写到60000-360000空间
nand write 30000000 60000 300000 $filesize
uboot的启动内核参数相应修改为:
set bootcmd 'nand read 30007fc0 60000 300000;bootm 30007fc0'
save
4 加载文件系统出错
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
yaffs: dev is 32505859 name is "mtdblock3" rw
yaffs: passed flags ""
VFS: Mounted root (yaffs filesystem) on device 31:3.
Freeing init memory: 136K
Kernel panic - not syncing: No init found. Try passing init= option to kernel. See Linux
Documentation/init.txt for guidance.
uboot传递给内核参数:
bootargs=console=ttySAC0,115200 root=/dev/mtdblock3
由于内核空间调整,文件系统位置也要调整
原来内核启动:
Creating 4 MTD partitions on "NAND":
0x000000000000-0x000000040000 : "bootloader"
0x000000040000-0x000000060000 : "params"
0x000000060000-0x000000260000 : "kernel"
0x000000260000-0x000020000000 : "rootfs"
修改arch/arm/mach-s3c24xx/common-smdk.c中的nand mtd分区信息,使内核大小由
SZ_2M修改为SZ_4M。
内核输出变为
Creating 4 MTD partitions on "NAND":
0x000000000000-0x000000040000 : "bootloader"
0x000000040000-0x000000060000 : "params"
0x000000060000-0x000000460000 : "kernel"
0x000000460000-0x000020000000 : "rootfs"
擦除0x60000-0x20000000
重新烧写内核,然后烧写文件系统到0x460000
tftp 30000000 fs.yaffs2
nand write.yaffs 30000000 460000 $filesize
重新启动,挂载成功。
文件系统其实可以烧写到/dev/mtdblock3的任意位置,也就只要是0x460000之后的任意位置。
如0x500000 ,0x900000都可以。
- linux3.4.2内核编译、加载、yaffs2挂载问题汇总
- 关于linux3.7.4内核编译时报错问题
- Linux3.4.9编译内核过程
- linux3.14.38内核编译出错
- android 内核编译问题汇总
- 编译Linux3.0.4内核,建立源码树
- linux3.0.4下编译helloworld内核驱动程序
- linux3.0内核编译常见错误收集
- 1.linux3.8.4内核编译和安装
- Ubunt 编译新内核 linux3.14.17
- 编译Linux3.0.4内核,建立源码树
- 有关编译yaffs2的问题
- ubuntu下编译内核问题汇总
- 编译内核遇到的问题汇总
- Linux3.0.1移植YAFFS2 成功
- YAFFS2移植Linux3.0.1 成功
- YAFFS2移植到linux3.6.7
- linux3.0内核移植问题记录
- linux下面的tcp编程
- 黑马程序员——怎么配置EmEditor详细图文教程——黑马 IOS 技术博客
- Dos 命令下目录切换
- 读书笔记_java设计模式深入研究 第四章 生成器模式 (建造者模式) Builder
- gaussKernel
- linux3.4.2内核编译、加载、yaffs2挂载问题汇总
- java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)
- Linux下find的用法记录
- WEB站点性能优化实践(加载速度提升2s)
- maven 私服 OpenSCManager failed - 拒绝访问。 (0x5)
- 跨浏览器的inline-block
- shell 内部变量
- C语言排序(12)___Can you find it?(Hdu 2141)
- 《数字图像处理原理与实践(MATLAB版)》一书之代码Part4