英码SBC3730 DM3730linux内核的配置和编译

来源:互联网 发布:淘宝首页没有高级搜索 编辑:程序博客网 时间:2024/05/22 01:55

1、首先设置好环境变量,命令为:

 export PATH= /usr/local/arm/arm-2009q1/bin:$PATH 

查看环境变量命令为:

echo $PATH

输出编译器的路径

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/arm-2009q1/bin:/usr/local/arm/arm-2009q1/bin

可输入arm-none-linux-gnueabi-gcc -v,若能看到版本号则证明安装成功。

Using built-in specs.Target: arm-none-linux-gnueabiConfigured with: /scratch/mitchell/builds/4.3-arm-none-linux-gnueabi-respin/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --with-specs='%{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables}' --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2009q1-203' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/mitchell/builds/4.3-arm-none-linux-gnueabi-respin/lite/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/mitchell/builds/4.3-arm-none-linux-gnueabi-respin/lite/obj/host-libs-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/mitchell/builds/4.3-arm-none-linux-gnueabi-respin/lite/obj/host-libs-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/mitchell/builds/4.3-arm-none-linux-gnueabi-respin/lite/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/mitchell/builds/4.3-arm-none-linux-gnueabi-respin/lite/install/arm-none-linux-gnueabi/binThread model: posixgcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) bbxm@ubuntu:~$ 

2、内核编译

进入内核压缩包所在的文件夹,解压源码包

sudo tar jxvf linux-03.00.01.06.tar.bz2 

cd linux-03.00.01.06进入源码目录

修改Makefile文件

export KBUILD_BUILDHOST := $(SUBARCH)ARCH?= armCROSS_COMPILE?=

清除原配置:

make ARCH=arm distclean
载入设置好的配置文件: 
make ARCH=arm omap3_stalker_defconfig

编译内核: 

输入命令make ARCH=arm出现下面错误

  CHK     include/linux/version.hmake[1]: `include/asm-arm/mach-types.h' is up to date.  CHK     include/linux/utsrelease.h  SYMLINK include/asm -> include/asm-arm  CC      kernel/bounds.scc1: error: unrecognized command line option "-mlittle-endian"cc1: error: unrecognized command line option "-mabi=aapcs-linux"cc1: error: unrecognized command line option "-mno-thumb-interwork"kernel/bounds.c:1: error: bad value (armv5t) for -march= switchkernel/bounds.c:1: error: bad value (armv5t) for -mtune= switchmake[1]: *** [kernel/bounds.s] Error 1make: *** [prepare0] Error 2
输入命令 make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm 出现下面错误

make: /usr/local/arm/arm-2009q1/bin/arm-none-linux-guneabi-gcc: Command not foundscripts/kconfig/conf -s arch/arm/Kconfigmake: /usr/local/arm/arm-2009q1/bin/arm-none-linux-guneabi-gcc: Command not found  CHK     include/linux/version.h  UPD     include/linux/version.h  Generating include/asm-arm/mach-types.h  CHK     include/linux/utsrelease.h  UPD     include/linux/utsrelease.h  SYMLINK include/asm -> include/asm-arm  CC      kernel/bounds.s/bin/sh: 1: /usr/local/arm/arm-2009q1/bin/arm-none-linux-guneabi-gcc: not foundmake[1]: *** [kernel/bounds.s] Error 127make: *** [prepare0] Error 2

最后使用命令make CROSS_COMPILE=arm-none-linux-gnueabi-编译成功

3、输出uImage文件

make CROSS_COMPILE=arm-none-linux-gnueabi- uImage

编译完成输出一下信息,uImage在源码目录的arch/arm/boot/里面

Image Name:   Linux-2.6.32
Created:      Fri Mar  3 19:01:53 2017
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    2912132 Bytes = 2843.88 kB = 2.78 MB
Load Address: 0x80008000
Entry Point:  0x80008000
  Image arch/arm/boot/uImage is ready


0 0