S3C6410 Linux内核移植


一、 下载内核及交叉编译工具
 
(1)http://git.kernel.org/?p=linux/kernel/git/kki_ap/linux-2.6-samsung.git;a=summary到以上地址下载linux内核的三星分支,这里选取“2.6.28-samsung”版本。
 
(2) 安装4.3.1-eabi-armv6编译器.
http://cs.sch.ac.kr/~choicjy/entry/MV6410-Samsung-Arm-linux-toolchain 4.3.1-eabi-armv6是三星官方为其armv6架构处理器维护的一套编译器,不过我 装起来遇到不少麻烦
首先是执行arm-linux-gcc报错
[www.bkjia.com@bkjia bin]$ arm-linux-gcc
arm-linux-gcc: no such files or directory
[www.bkjia.com@bkjia bin]$
解决方法:必须将该编译器解压到/usr/local/arm/目录,因为里面有很多地方指明了绝对路径
其次是make提示mpfr库找不到
[www.bkjia.com@bkjia m8-Android-kernel]$ make
CHK     include/linux/version.h
make[1]: “include/asm-arm/mach-types.h”是最新的。
CHK     include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-arm
CC      kernel/bounds.s
/usr/local/arm/4.3.1-eabi-armv6/usr/bin-ccache/../libexec/gcc/arm-samsung-linux-gnueabi/4.3.1/cc1: error while loading shared libraries: libmpfr.so.1: cannot open shared object file: No such file or directory
make[1]: *** [kernel/bounds.s] 错误 1
make: *** [prepare0] 错误 2
解决方法:其实是有这个库的,就在/usr/local/arm/4.3.1-eabi-armv6/mpfr/lib
在.bashrc中添加一个环境变量
export LD_LIBRARY_PATH=/usr/local/arm/4.3.1-eabi-armv6/mpfr/lib
然后在source .bashrc即可
最后来看这个编译器有啥好处:
[www.bkjia.com@bkjia ~]$ arm-linux-gcc -v
Using built-in specs.
Target: arm-samsung-linux-gnueabi
Configured with: /home/scsuh/workplace/final/toolchain-script/toolchain_build_arm/gcc-4.3.1/configure --prefix=/usr --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu --target=arm-samsung-linux-gnueabi --enable-languages=c,c++ --with-sysroot=/usr/local/arm/4.3.1-eabi-armv6 --with-build-time-tools=/usr/local/arm/4.3.1-eabi-armv6/usr/arm-samsung-linux-gnueabi/bin --enable-__cxa_atexit --enable-target-optspace --with-gnu-ld --with-pkgversion='for S3C64XX Samsung Electronics AP Development Team' --enable-shared --with-gmp=/usr/local/arm/4.3.1-eabi-armv6/gmp --with-mpfr=/usr/local/arm/4.3.1-eabi-armv6/mpfr --disable-nls --enable-threads --disable-multilib --disable-decimal-float --with-arch=armv6 --with-float=softfp --with-fpu=vfp --enable-symvers=gnu
Thread model: posix
gcc version 4.3.1 (for S3C64XX Samsung Electronics AP Development Team)
a编译时默认使用硬件浮点单元--with-float=softfp --with-fpu=vfp
b默认架构armv6 --with-arch=armv6
c有自己的mpfr库,等等.
 
另外可到http://www.codesourcery.com/sgpp/lite/arm/portal/subscription?@template=lite 网址下载最新的交叉编译器当前版本是“gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202”。
 
(3)修改Makefle文件,把arch 改为arm 把CROSS_COMPILE改为arm-none-linux-gnueabi-gcc,当然最简单的方法是从开发板厂商那里获取内核和交叉编译器。
 
 
二、 配置
 
这里推荐一方法,调用arch/arm/configs 目录下的默认配置单smdk6410mtd_defconfig为基础进行配置,同时可以参考现有的文档和配置单进行配置,注意点:
 
(1)要添加ubifs文件系统支持时应先配置device driver->memory technology device下的ubi项。
 
(2)device drivers->character device->serial drivers: 选中samsung soc serial support取消8250……(否则会出现错误:arch/arm/plat-s3c/init.c:94: error: 'CONFIG_SERIAL_SAMSUNG_UARTS' undeclared here (not in a function));
 
(3)system type->os timer support: 选中fixed tick timer(否则会出现错误:arch/arm/plat-s3c/time.c error)
 
(4)cpu power management:cpu frequency scaling项取消选中(否则会出现错误:arch/arm/plat-s3c/clock.c error)
 
配置好后要备份配置文件,保存为ctop6410_defconfig。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9..
  • 12
  • 下一页
【内容导航】
第1页:下载与配置 第2页:添加DM9000网卡驱动
第3页:USB驱动出错解决 第4页:修改flash分区
第5页:改进触摸屏驱动 第6页:添加按键驱动
第7页:添加8.9寸lcd支持 第8页:添加pwm驱动,控制lcd背光亮度
第9页:添加adc驱动、电池电量检测之原理 第10页:添加adc驱动、电池电量检测之文件修改
第11页:添加充电控制脚驱动(LED驱动) 第12页:用SD卡下载uboot、linux内核和文件系统

相关内容