Chinaunix首页 | 论坛 | 博客
  • 博客访问: 37173
  • 博文数量: 19
  • 博客积分: 742
  • 博客等级: 军士长
  • 技术积分: 185
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-01 21:18
文章分类

全部博文(19)

文章存档

2011年(4)

2010年(15)

我的朋友

分类: 嵌入式

2010-08-07 20:01:59

以前自己编译过PC版的linux内核,并且也能成功运行。最近,我尝试了一下为arm平台编译linux内核,发现和编译PC版内核的区别不太大,其过程都是先通过make menuconfig 或make xconfig进行配置,然后是make或make zImage进行内核的编译[注:pc平台为make,而arm的为make zImage]。好了,下面详细说说移植过程。
这里,特别提一下,我的主机的系统是fedora 12 i686,交叉编译器为gcc的arm版(版本号4.3.2),qt3已经安装,至于为什么要qt3,这在后面会说明。
下载最新linux内核源码包,下载地址为 ,当前最新稳定版为2.6.33.2
解压缩这个包,至于如何解压,相信不用我说,大家也会,命令行输入命令或是点右键选择解压均可,得到linux-2.6.35目录
在编译前我们需要更改几个文件,还要从友臂之臂提供的内核源码包中提取几个驱动放到相关目录下:
提取友善之臂提供的内核源代码包中的
drivers/char/mini2440_adc.c
drivers/char/mini2440_buttons.c
drivers/char/mini2440_leds.c
drivers/char/mini2440_pwm.c
到当前内核对应该的目,即drivers/char目录
在dirvers/char/Makefile的123行添加如下几行
obj-$(CONFIG_LEDS_MINI2440)    += mini2440_leds.o
obj-$(CONFIG_MINI2440_BUTTONS)    += mini2440_buttons.o
obj-$(CONFIG_MINI2440_BUZZER)    += mini2440_pwm.o
obj-$(CONFIG_MINI2440_ADC)    += mini2440_adc.o
提取友善之臂提供的内核源代码包中的
drivers/video/mini2440_backlight.c
到当前内核对应的目录,即drivers/char目录
修改drivers/char/Makefile,在文件末尾添加如下一行
obj-$(CONFIG_BACKLIGHT_MINI2440) += mini2440_backlight.o
关于rtc频率的修改,由于arch/arm/mach-s3c2440/mach-mini2440.c都已经修改好,我们就没必要自己改了
 
修改linux-2.6.35/Makefile文件,把ARCH与CROSS_COMPILE两行(大概是189与190两行)改一下,最终效果如下:
ARCH        ?= arm
CROSS_COMPILE    ?= arm-linux-
为了节省配置时间,可以把友善之臂提供的内核包中的config_mini2440_n35(还有可能是t35,根据你的板子而定,我的是n35的)放到linux-2.6.35目录下执行如下命令
cp config_mini2440_n35 .config
输入如下命令进行配置
make xconfig
注:这里如果没有安装qt3-devel就会出错,解决方法也很简单,yum install qt3-devel就可以了
这里进行的配置主要是选择cpu类型为s3c2440,如图。当然啦,可以根据需要进行裁剪。
 
输入如下命令进行编译
make zImage
经过几分钟后,就可编译完,这时可以到一个目录下找到它,并且可以烧到板子上了。

我按照上面的方法做,出现网卡的问题,出现挂载NFS根文件系统的时候,server not respond,这个问题能在linux-2.6.33上面解决,但是在在linux-2.6.35上没能解决。请大家指点一下```
 
出错信息:
Looking up port of RPC 100003/2 on 192.168.0.1
rpcbind: server 192.168.0.1 not responding, timed out
Root-NFS: Unable to get nfsd port number from server, using default
Looking up port of RPC 100005/1 on 192.168.0.1
rpcbind: server 192.168.0.1 not responding, timed out
Root-NFS: Unable to get mountd port number from server, using default
Root-NFS: Server returned error -101 while mounting /opt/share/nfs/rootfs
VFS: Unable to mount root fs via NFS, trying floppy.


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/halechan/archive/2010/04/07/5459895.aspx
阅读(1208) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~