新闻中心

EEPW首页>嵌入式系统>设计应用> 建立ARM+Linux运行环境

建立ARM+Linux运行环境

作者: 时间:2016-11-09 来源:网络 收藏
前一个阶段主要是在Windowsxp下,通过ADS1.2、H-JTAG和DNW来对代码进行编辑和调试。现在转到Linux下,利用RedHat9.0+虚拟机作为开发环境,这里将这两天来对环境的配置及其遇到的问题总结一下。

本文引用地址://m.amcfsurvey.com/article/201611/317969.htm

开发板为GEC2410,在Linux下的环境搭建相对于Windows来说要麻烦一些。原先再Windows下,利用广嵌提供的Bootloader(GEC2410_BIOS_320240.bin)、kernel(zImage-gec2410-linux-2.6.8.tar.bz2)、fs(gec2410_demo.cramfs),能够直接烧写运行,可是将bootloader换成vivi后,对广嵌所提供的内核通过xmodem下载后却不能引导,于是换成用SBC2410学习套件中所提供的源码来烧写,包括vivi-bootloader(boot.tgz),经过裁剪的Linux内核(matrix5-kernel.tgz),根文件系统(root-for-nfs-v5.tgz)。下面开始下载安装:

1. 安装Linux下烧写工具Jflash:

建立friendly-arm工作目录,以后所有的Linux想过工具都安装到此目录

$ mkdir /friendly-arm

$ mkdir /friendly-arm/Jflash

$ tar xzvf Jflash.tgz –C /friendly-arm/Jflash

$ cd /friendly-arm/Jlash可发现可执行文件Jflash-s3c2410,以后可通过它来对bootloader进行烧写;

2. 安装交叉编译工具:arm-linux-2.95.3.tgz arm-linux-3.4.1.

下载地址:

http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2

http://ftp.snapgear.org:9981/pub/snapgear/tools/arm-linux/

对于vivi-bootloader的编译较高版本的交叉编译器不能编译,具体是不能识别某个符号。所以对于vivi-bootloader的编译最好使用2.95.3版本。

$ mkdir /usr/local/arm/2.95.3

$ tar zxvf arm-linux-2.95.3 –C /usr/local/arm/2.95.3

添加环境变量:

修改 /etc/profile,将/usr/local/arm/2.95.3/bin 添加进环境变量.

重新载入该文件配置:$ source /etc/profile

对于arm-linux-3.4.1的安装方法同上.

3. 编译并烧写vivi-bootloader

$ tar zxvf boot.tgz –C /friendly-arm

$ cd /friendly-arm/vivi

默认配置就行了,并保存退出:make menuconfig

编译 Make

之后在当前目录下生成vivi二进制映像文件,可通过Jlash将它烧写到Nandflash.

4. 编译和配置内核

$ tar zxvf matrix5-kernel.tgz –C /friendly-arm

默认配置,$make menuconfig

编译,$make zImage

最后生成内核映像文件位于arch/arm/boot目录.

5. 安装用于作为网络文件系统(nfs)的root目录

$ tar zxvf root-for-nfs-v5.tgz –C /friendly-arm

通过修改/etc/exprots指定根文件共享目录:

将“ /friendly-arm/root *(rw,sync,no_root_Squash) ”加入该文件.

启动网络文件系统(nfs)服务, $ /etc/init.d/nfs restart

6.通过minicom终端将内核映像zImage通过xmodem下载到开发板上,注意内核的分区应大于zImage文件:

vivi> load flash kernel x

注意:在下载的时候,如果发生超时不能下载的情况,应将xmodem_initial_timeout 和

xmodem_timeout 设置足够大.

7. 在vivi模式下设置参数:

vivi> param set linux_cmd_line "console=ttyS0 root=/dev/nfs nfsroot=192.168.0.1:/friendly-arm/root ip=192.168.0.69:192.168.0.1:192.168.0.1:255.255.255.0:matrix4.arm9.net:eth0:off"

保存

vivi> param save

8. 在下次启动的时候,可通过命令要重新mount 文件 /etc/exports中的内容:

exports [-aruv]

-a 全部mount或umount文件/etc/exports中的内容

-r 重新mount文件/etc/exports中的共享内容

-u umount目录

-v 在export的时候,将详细的信息输出到屏幕上

9. 关于exports文件中一些选项的含义:

选项 说明

ro 该主机对该共享目录有只读权限

rw 该主机对该共享目录有读写权限

root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户

no_root_squash 客户机用root访问该共享文件夹时,不映射root用户

all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户

anonuid 将客户机上的用户映射成指定的本地用户ID的用户

anongid 将客户机上的用户映射成属于指定的本地用户组ID

aync 资料同步写入到内存与硬盘中

async 资料会先暂存于内存中,而非直接写入硬盘

insecure 允许从这台机器过来的非授权访问



关键词:ARMLinux运行环

评论


技术专区

关闭