主题 : linux内核移植 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 50907
精华: 0
发帖: 42
金钱: 215 两
威望: 43 点
综合积分: 84 分
注册时间: 2011-06-27
最后登录: 2018-02-08
楼主  发表于: 2011-11-07 12:14

 linux内核移植

我现在用的板子是mini2440,
编译的内核是3.0.4
里面未发现该板子的配置
就拷贝了smdk2410的配置,
增加了yaffs2的文件补丁
编译出uImage,
放到板子上,
出现
Enter your selection: b
Copy linux kernel from 0x00060000 to 0x30008000, size = 0x00500000 ... done
Warning: this binary is not compressed linux kernel image
zImage magic = 0x2e332d78
Setup linux parameters at 0x30000100
linux command line is: "noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySA
C0"
MACH_TYPE = 1999
NOW, Booting Linux......
就不动了,
高手解答下
畅游在知识的海洋...
级别: 论坛版主
UID: 33629
精华: 4
发帖: 554
金钱: 3075 两
威望: 615 点
综合积分: 1188 分
注册时间: 2010-12-03
最后登录: 2015-09-22
1楼  发表于: 2011-11-07 12:20
你用的是2410的配置文件,需要修改时钟频率
好好学习,天天鲁管
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
2楼  发表于: 2011-11-07 13:23
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 50907
精华: 0
发帖: 42
金钱: 215 两
威望: 43 点
综合积分: 84 分
注册时间: 2011-06-27
最后登录: 2018-02-08
3楼  发表于: 2011-11-07 13:24
我想问下,会不会和bootloader有关系,
我用的光盘里的supervivi-128M的bootloader,
由于需要mkimage,我就下了个u-boot-2011.09-rc2.tar.bz2
然后生成mkimage,
这样会出现问题吗,我前几天做根文件系统好像就是说yaffs2的版本要一样,挂载才成功,
畅游在知识的海洋...
级别: 论坛版主
UID: 33629
精华: 4
发帖: 554
金钱: 3075 两
威望: 615 点
综合积分: 1188 分
注册时间: 2010-12-03
最后登录: 2015-09-22
4楼  发表于: 2011-11-07 13:52
你这根本不是挂接文件系统的问题,要么你听2楼说的,要自己移植的话就去改时钟频率
好好学习,天天鲁管
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
5楼  发表于: 2011-11-07 14:04
可能是MACH ID不匹配
级别: 新手上路
UID: 50907
精华: 0
发帖: 42
金钱: 215 两
威望: 43 点
综合积分: 84 分
注册时间: 2011-06-27
最后登录: 2018-02-08
6楼  发表于: 2011-11-07 14:07
没有时间,能力也不够,自己移有点不实际,
因为现在老板叫我做其他的,我是利用空闲时间学点知识,知道点移植流程,
所以我想如果快点的,不要求精通,只要能再板子上跑下我自己的弄的系统镜像,

刚才看了,是有个mini2440_defconfig,
我在试验下,我不知道是不是自己过程就错了,
畅游在知识的海洋...
级别: 论坛版主
UID: 33629
精华: 4
发帖: 554
金钱: 3075 两
威望: 615 点
综合积分: 1188 分
注册时间: 2010-12-03
最后登录: 2015-09-22
7楼  发表于: 2011-11-07 14:49
时间赶的话直接用友善提供的配置文件 ,自己移植还有很多事情要做
好好学习,天天鲁管
级别: 新手上路
UID: 50907
精华: 0
发帖: 42
金钱: 215 两
威望: 43 点
综合积分: 84 分
注册时间: 2011-06-27
最后登录: 2018-02-08
8楼  发表于: 2011-11-07 15:01
还是没一样的结果,
要不我发下我的编译过程,大家看下哪里有错的,郁闷死了
环境是Fedora15,
编译链arm-linux-gcc 4.3.2
编译的源码分别是:u-boot-2011.09-rc2.tar.bz2
                                 linux-3.0.4.tar.bz2
                                 mkyaffs2image.tgz
在/usr/bin/下已经拷贝了一份从u-boot-2011.09-rc2.tar.bz2编译出来的mkimage

下面是编译的过程
1,解压出linux源码和yaffs2源码
2,修改顶级Makefile,
+ARCH        = arm
+CROSS_COMPILE    = arm-linux-
export KBUILD_BUILDHOST := $(SUBARCH)
ARCH        ?= $(SUBARCH)
CROSS_COMPILE    ?= $(CONFIG_CROSS_COMPILE:"%"=%)
3,修改配置文件
cp arch/arm/configs/mini2440_defconfig .config
4,到yaffs2源码目录中导入linux对yaffs2的支持
./patch-ker.sh /linux-kernel/linux-3.0.4
这时候确实在内核源代码的fs下多了个yaffs2文件夹
5,make menuconfig
FileSystem->miscellaneous filesystems->yaffs2 file system support选上
SystemType->S3C2440 and S3C2442 Machines->SMDK2440选上,
保存
6,make
7,make zImage
8,make modules
9,make modules_install
10,make uImage
然后把arch/arm/boot/下的uImage烧到板子上,
呵呵就这样,是不是还要做什么,感觉简单了点,
畅游在知识的海洋...
级别: 论坛版主
UID: 33629
精华: 4
发帖: 554
金钱: 3075 两
威望: 615 点
综合积分: 1188 分
注册时间: 2010-12-03
最后登录: 2015-09-22
9楼  发表于: 2011-11-08 07:44
其实你只是为了直接能用,为什么不用友善光盘里提供的2.6.32的内核呢,里面已经帮你配置好大部分东西了而且可以直接使用
好好学习,天天鲁管