ARM-Linux交叉编译步骤

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

samba

事先安装sudo apt-get install nfs-kernel-server

交叉编译步骤

1、创建目录s3c2440_recover

2、设置网络文件系统的根目录

配置文件/etc/exports

在最后一行添加

s3c2440_recover的绝对路径*(rw,sync,no_root_squash)

重启nfs

sudo /etc/init.d/nfs-kernel-server restart

3、arm开发板启动

Bootloader 引导加载程序

Kernel uImage

Filesystem

Bootloader -》把内核的uImge加载到内存

uImage 加载filesystem =》shell 用户空间

4、编译器

arm-linux-gcc-4.3.2.tar.gz

sudo tar zxvf xxx.tar.gz -C /

编译自动会解压到/usr/local/arm

设置编译器脚本(自己创建),

每次打开终端,若要使用arm编译器,则先source一下

arm-compile.sh ()

#!/bin/bash

export PA TH=$PATH:/usr/local/arm/4.3.2/bin

############### 告诉系统编译器的路径(通过在PATH环境变量中添加)修改脚本可执行权限

chmod u+x arm-compile.sh

source arm-compile.sh

4、Uboot 编译

分别解压

源码

uboot-1.2-utu2440.tar.bz2

按照uboot编译.txt

5、内核编译

准备工具

修改过的内核源码Linux2.6.24_utu2440.tar.gz

拷贝到crosscompile目录下

解压tar zxvf linux inux2.6.24_utu2440.tar.gz

制作镜像文件工具mkimage

拷贝到/usr/sbin 或者/usr/bin 目录下

参考脚本hw-kernel编译.txt

内核编译时,会根据.config 的配置文件进行文件编译

(即选择哪些模块,卸载哪些模块)

Make menuconfig 就是一个图形裁剪的配置工具,

操作结果会自动保存到.config

操作步骤参hw-kernel编译.txt

6 . Busybox 创建yaffs文件系统

准备工具

busybox-1.19.2.tar.bz2

mkyaffsimage

除开uboot、kernel之外的脚本文件

第一个脚本mkroot.sh

是用来创建根目录下的子目录的

6.1 在某个目录下执行./mkroot.sh

这时,会在当前路径下生成rootfs 目录及其子目录

进入rootfs/dev 下创建console null

操作如下:

$cd rootfs/dev/

$ su

口令:

# mknod -m 600 console c 5 1;mknod -m 666 null c 1 3;exit

退出rootfs目录

cd ../../

6.2 解压busybox.1.19.2.tar.bz2

$ cd busybox.1.19.2

修改Makefile文件

Gedit Makefile

在164行CROSS_COMPILE ?=

改为CROSS_COMPILE ?= arm-linux-

make menuconfig

设置交叉编译器的路径

设置编译输出路径,即make install会把编译生成的东西放到指定路径

配置menuconfig

Busybox Settings --->

//设置静态编译方式或者动态链接

Busybox Settings ---> Build Options ---> [] Build BusyBox as a static binary (no shared libs)

(/usr/local/arm/4.3.2/bin) cross compiler prefix

[*] Build with Large File Support (for accessing files > 2 GB)

Busybox Settings ---> Install Options ---> 中输入建立根文件系统的文件所在的路径

busybox install prefix

即rootfs的绝对路径

make

make install

备注:6.3 6.4让学生做总有问题,因为这两步其实是配置etc和lib

故为了方便,已经都做好了,放在build/busybox目录下,直接拷贝到rootfs下即可

6.3 配置rootfs下的文件信息

修改和创建必要的文件

cp -a busybox.1.19.2/examples/bootfloppy/etc/* rootfs/etc

cd rootfs/etc

增加为SHELL导入全局变量的文件/etc/profile

gedit etc/profile

增加初始化文件

gedit etc/inittab

gedit etc/fstab

增加初始化脚本

gedit etc/init.d/rcS

相关文档
最新文档