Chinaunix首页 | 论坛 | 博客
  • 博客访问: 517697
  • 博文数量: 95
  • 博客积分: 5168
  • 博客等级: 大校
  • 技术积分: 1271
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-28 23:31
文章分类

全部博文(95)

文章存档

2013年(2)

2012年(3)

2011年(1)

2010年(8)

2009年(81)

分类: LINUX

2009-07-19 17:12:58

1.修改Makefile,匹配交叉编译器。
在内核代码根目录下:

vim Makefile
193行找到ARCH
修改为
ARCH = arm
CROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux-
CORSS_COMPILE
视自己的环境定

保存

2.然后将 cp arch/arm/configs/s3c2410_defconfig .config
3.
执行:make menuconfig

但是可能出现如下错误。

make: *** /home/jimmy/source/linux-2.6.13/arch/arm: 是一个目录。 停止。

这是因为你在没有修改Makefile之前就执行了make menuconfig

这时就生成一些pc版本的linux的配置导致错误。

解决方法:

执行make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig

或者删除源文件,重新解压后修改Makefile然后执行make menuconfig

这个时候可以不执行任何设置,保存即可。

然后make ARCH=arm CROSS_COMPILE=arm-linux- zImage


4.make zImage

5.下载到板子:即将arch/arm/boot/zImage下载到板子。

运行时终端出现如下信息:

zImage magic = 0x016f2818


Setup linux parameters at 0x30000100


linux command line is: "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttyS"


MACH_TYPE = 782


NOW, Booting Linux......


Uncompressing Linux.............................................................



Error: unrecognized/unsupported machine ID (r1 = 0x0000030e).



Available machine support:



ID (hex) NAME


0000014b Simtec-BAST


0000015b IPAQ-H1940


00000290 Acer-N30


000000c1 SMDK2410


0000016a SMDK2440


000001db Thorcom-VR1000


00000250 IPAQ-RX3715


000002a8 Nex Vision - Otom 1.1


000002a9 NexVision - Nexcoder 2440



Please check your kernel config and/or bootloader.


出现此错误,是因为kernel里的MACH_TYPE_SMDK2410bootloader传递过来的不一样。

修改方法:

一:

修改vivi

:修改内核

由于我们现在是移植内核,于是采用第二种。

Kernel中 MACH_TYPE_SMDK2410在include/asm-arm/mach_type.h中定义了
#define MACH_TYPE_SMDK2410             193

将其修改为

#define MACH_TYPE_SMDK2410             782
保存然后重新照上面的步骤编译即可。
重新下载内核到板子,得到如下运行结果:
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)                  

TCP established hash table entries: 4096 (order: 3, 32768 bytes)                

TCP bind hash table entries: 4096 (order: 2, 16384 bytes)                       

TCP: Hash tables configured (established 4096 bind 4096)                        

TCP reno registered                                                             

TCP bic registered                                                              

NET: Registered protocol family 1                                               

Root-NFS: No NFS server available, giving up.                                   

VFS: Unable to mount root fs via NFS, trying floppy.                            

VFS: Cannot open root device "mtdblock2" or unknown-block(2,0)                  

Please append a correct "root=" boot option                                     

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)  

出现这个错误是因为我们的根文件系统是yaffs,而我们的内核没有yaffs的驱动,故加载不了,这个是明天要做的了,今天的任务如果运行到此就是完成了。
阅读(1320) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~