Chinaunix首页 | 论坛 | 博客
  • 博客访问: 79744
  • 博文数量: 16
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 150
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-29 21:20
文章存档

2008年(16)

我的朋友

分类: LINUX

2008-10-21 15:23:11

s3c2410 linux2.6.8.1内核移植
 
编译环境:Debian
交叉编译工具:  CROSS-3.3.2    (cross-3.3.2.tar.bz2)
内核包:        linux-2.6.8.1   (s3c2410-linux-2.6.8.1.tar.bz2)

1.交叉编译工具安装的路径: /usr/local/arm/
内核包放在某个地方,自己决定吧!
解压 file.tar.bz2的命令:  tar jxvf file.tar.bz2

2.把交叉编译器路径添加到系统的路径中:
 #vi /etc/bash.bashrc
在最后加上:
PATH=$PATH:/usr/local/arm/3.3.2/bin
export PATH
启动新系统路径:
#source /root/.bashrc
显示新系统路径:
# echo $PATH
查看交叉编译器版本号
# arm-linux-gcc -v

3.修改 linux-2.6.8.1的根目录下的 makfile 文件:
进入内核被解压的目录后,运行命令
vi Makefile
找到CROSS_COMPILE=/usr/local/arm/3.3.2/bin/arm-linux- 这行,将它改为CROSS_COMPILE=arm-linux-(或者你系统所安装的arm-linux-gcc的编译器路径)
      
4.配置内核
运行 #make menuconfig
出错:scripts/kconfig/mconf.c:91: error: static declaration of ‘current_menu’ follows non-static declaration
scripts/kconfig/lkc.h:63: error: previous declaration of ‘current_menu’ was here
make[1]: *** [scripts/kconfig/mconf.o] Error 1
make: *** [menuconfig] Error 2

解决办法:
修改 scripts/kconfig/mconf.c文件 ,通过注释相关代码行问题解决:
static struct termios ios_org;
static int rows = 0, cols = 0;
static struct menu *current_menu;  //********修改之前

将语句 static struct menu *current_menu 中的"static"去掉
变为struct menu *current_menu;

再运行:#make menuconfig 
出错:
>>    Unable to find the Ncurses libraries.
>>
>> You must install ncurses-devel in order
>> to use 'make menuconfig'

make[2]: *** [scripts/lxdialog/ncurses] 错误 1
make[1]: *** [menuconfig] 错误 2
make: *** [menuconfig] 错误 2

解决办法: 安装ncurses-dev 
#apt-get install ncurses-dev

再运行: #make menuconfig
         加载默认设置  kernel_2410.cfg
       
最后:#    make zImage
          完成移植
         

注:CROSS-3.3.2 (即arm-linux-gcc-3.3.2 )为开发板厂家自己命名的

交叉编译工具下载地址:

arm-linux-gcc-3.4.1
arm-linux-gcc-3.3.2


 

阅读(3148) | 评论(0) | 转发(0) |
0

上一篇:gcc精彩之旅

下一篇:vm挂载usb设备

给主人留下些什么吧!~~