解决《 Linux3.6.7在OK6410平台的移植》文章的错误问题
2016-08-11 21:08
911 查看
我用的内核版本是linux-3.0.1,yaffs是飞凌linux-3.0.1根目录里的那个,按照此教程刷入后会报错,解决方法如下:
用飞凌的对应目录文件替换
替换:linux-3.0.1\fs\yaffs2\yaffs_vfs.c
替换:linux-3.0.1\include\linux\mtd\partitions.h
正确配置内核方法:
cp arch/arm/configs/s3c6400_defconfig .config
make menuconfig
1.System Type,取消SMDK6400 ,A&W6410,SMDK6410等平台,只选择OK6410
2.Device Drivers --> Generic Driver Options选择
[*] Maintain a devtmpfs filesystem to mount at /dev
[*] Automount devtmpfs at /dev, after the kernel mounted the ....
3.Device Drivers-->Memory Technology Device (MTD) support -->Caching block device access to MTD devices,(先选择 然后才能够在File Systems--->Miscellaneous filesystem下面找到YAFFS2。)
4.Device Drivers --> Memory Technology Device (MTD) support --->NAND Device Support ---> 取消NAND Flash support for Samsung S3C SoCs ,选择 NAND support for Samsung S3C64xx S5P64xx
<*> NAND support for Samsung S3C64xx S5P64xx │ │
│ │ [*] Samsung S3C64xx S5P64xx NAND driver debug │ │
│ │ [*] Samsung S3C64xx S5P64xx NAND Hardware ECC 8BITS (不选会出错)
5.File Systems 配置 取消 Second extended fs support 和 Ext3 journalling file system support , [*] Miscellaneous filesystems --->选择
<*> yaffs2 file system support │ │
│ │ -*- 512 byte / page devices │ │
│ │ [ ] Use older-style on-NAND data format with pageStatus byt│ │
│ │ [ ] Lets yaffs do its own ECC │ │
│ │ -*- 2048 byte (or larger) / page devices │ │
│ │ [*] Autoselect yaffs2 format │ │
│ │ [*] Disable yaffs from doing ECC on tags by default
│ [ ] Force chunk erase check │ │
│ │ [ ] Empty lost and found on boot │ │
│ │ [ ] Disable yaffs2 block refreshing │ │
│ │ [ ] Disable yaffs2 background processing │ │
│ │ [*] Enable yaffs2 xattr support
备注:我的虚拟机使用的是ubuntu10,所以选项都用*,不能用M,
错误:make[3]: *** No rule to make target `drivers/mtd/nand/s3c_nand.o', needed by `drivers/mtd/nand/built-in.o'. Stop.
解决方法:复制linux-3.0.1\drivers\mtd\nand\s3c_nand.c
错误:drivers/mtd/nand/s3c_nand.c:1400: error: implicit declaration of function 'add_mtd_partitions'
解决方法:替换:linux-3.0.1\include\linux\mtd\partitions.h
linux-3.0.1\fs\yaffs2\yaffs_vfs.c
yaffs_vfs.c这个文件如下地方增加了东西才能正常工作,飞凌用//gjl做了标记
param->no_tags_ecc = 1; // gjl
yaffs2文件系统的故障
用文件内容比较软件分析很方便:Beyond Compare 4
错误:make[3]: *** No rule to make target `drivers/mtd/nand/s3c_nand.o', needed by `drivers/mtd/nand/built-in.o'. Stop.
解决方法:复制linux-3.0.1\drivers\mtd\nand\s3c_nand.c
错误:drivers/mtd/nand/s3c_nand.c:1400: error: implicit declaration of function 'add_mtd_partitions'
解决方法:替换:linux-3.0.1\include\linux\mtd\partitions.h
用飞凌的对应目录文件替换
替换:linux-3.0.1\fs\yaffs2\yaffs_vfs.c
替换:linux-3.0.1\include\linux\mtd\partitions.h
正确配置内核方法:
cp arch/arm/configs/s3c6400_defconfig .config
make menuconfig
1.System Type,取消SMDK6400 ,A&W6410,SMDK6410等平台,只选择OK6410
2.Device Drivers --> Generic Driver Options选择
[*] Maintain a devtmpfs filesystem to mount at /dev
[*] Automount devtmpfs at /dev, after the kernel mounted the ....
3.Device Drivers-->Memory Technology Device (MTD) support -->Caching block device access to MTD devices,(先选择 然后才能够在File Systems--->Miscellaneous filesystem下面找到YAFFS2。)
4.Device Drivers --> Memory Technology Device (MTD) support --->NAND Device Support ---> 取消NAND Flash support for Samsung S3C SoCs ,选择 NAND support for Samsung S3C64xx S5P64xx
<*> NAND support for Samsung S3C64xx S5P64xx │ │
│ │ [*] Samsung S3C64xx S5P64xx NAND driver debug │ │
│ │ [*] Samsung S3C64xx S5P64xx NAND Hardware ECC 8BITS (不选会出错)
5.File Systems 配置 取消 Second extended fs support 和 Ext3 journalling file system support , [*] Miscellaneous filesystems --->选择
<*> yaffs2 file system support │ │
│ │ -*- 512 byte / page devices │ │
│ │ [ ] Use older-style on-NAND data format with pageStatus byt│ │
│ │ [ ] Lets yaffs do its own ECC │ │
│ │ -*- 2048 byte (or larger) / page devices │ │
│ │ [*] Autoselect yaffs2 format │ │
│ │ [*] Disable yaffs from doing ECC on tags by default
│ [ ] Force chunk erase check │ │
│ │ [ ] Empty lost and found on boot │ │
│ │ [ ] Disable yaffs2 block refreshing │ │
│ │ [ ] Disable yaffs2 background processing │ │
│ │ [*] Enable yaffs2 xattr support
备注:我的虚拟机使用的是ubuntu10,所以选项都用*,不能用M,
错误:make[3]: *** No rule to make target `drivers/mtd/nand/s3c_nand.o', needed by `drivers/mtd/nand/built-in.o'. Stop.
解决方法:复制linux-3.0.1\drivers\mtd\nand\s3c_nand.c
错误:drivers/mtd/nand/s3c_nand.c:1400: error: implicit declaration of function 'add_mtd_partitions'
解决方法:替换:linux-3.0.1\include\linux\mtd\partitions.h
linux-3.0.1\fs\yaffs2\yaffs_vfs.c
yaffs_vfs.c这个文件如下地方增加了东西才能正常工作,飞凌用//gjl做了标记
param->no_tags_ecc = 1; // gjl
yaffs2文件系统的故障
用文件内容比较软件分析很方便:Beyond Compare 4
错误:make[3]: *** No rule to make target `drivers/mtd/nand/s3c_nand.o', needed by `drivers/mtd/nand/built-in.o'. Stop.
解决方法:复制linux-3.0.1\drivers\mtd\nand\s3c_nand.c
错误:drivers/mtd/nand/s3c_nand.c:1400: error: implicit declaration of function 'add_mtd_partitions'
解决方法:替换:linux-3.0.1\include\linux\mtd\partitions.h
相关文章推荐
- S3C6410嵌入式应用平台构建(五)——linux-3.14.4移植到OK6410-(Nand分区问题)
- Linux3.6.7在OK6410平台的移植(一)写在前面的话
- Linux3.6.7在OK6410平台的移植TS
- Linux3.6.7在OK6410平台的移植(十)USB
- Linux3.6.7在OK6410平台的移植(十二)TS
- Linux3.6.7在OK6410平台的移植(五)字符设备驱动程序之LED
- Linux3.6.7在OK6410平台的移植(二)编译配置linux3.6.7
- Linux3.6.7在OK6410平台的移植(八)NFS
- Linux3.6.7在OK6410平台的移植(三)NAND HWECC 8BIT驱动
- Linux 3.6.7在OK6410平台的移植
- Linux3.6.7在OK6410平台的移植(四)搭建YAFFS2根文件系统
- S3C6410嵌入式应用平台构建(四)——linux-3.14.4移植到OK6410-(初步启动)
- Linux3.8.3在OK6410平台的移植LCD驱动
- ok6410 移植linux-3.11.2出现如下问题????
- S3C6410嵌入式应用平台构建(六)——linux-3.14.4移植到OK6410-(Yaffs2文件系统移植)
- UBOOT-2012-10在OK6410平台的移植(四)uboot 2012.10 raise: Signal # 8 caught的问题
- OK6410 解决Qt移植后触摸屏不能使用、鼠标无法移动问题
- S3C6410嵌入式应用平台构建(六)——linux-3.14.4移植到OK6410-(Yaffs2文件制作)
- OK6410 上linux的移植问题---nand flash
- Linux 32位向64位移植的一些问题及解决