Linux交叉编译环境

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

开发编译环境

1.交叉编译器的安装,与使用

以ubuntu-14.04.4-desktop-amd64 为例

将附录1的arm_toolchain.tar.gz 选择一个目录COPY过去,(此处以/opt为例)

tar zxvf arm_toolchain.tar.gz

修改~/.bashrc

在最后一行添加

将/opt/X3改成你解压的所在目录即可

source ~/.bashrc

在终端查看是否正确,输入arm后按TAB键若出现

安交叉编译器安装正确

若不添加该环境变量,则在使用该编译器时,请使用绝对路径

如:

部分LINUX操作系统,可能存在所需的库并未安装,在编译时若提示未能找到相关库,请自行搜索该库的相应安装

若出现

arm-Linux-gcc /usr/local/arm/4.3.2/bin/arm-linux-gcc: 行3: /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc: 没有那个文件或目录(No such file or directory)

且进入external-toolchain/bin/ 直接运行./ arm-none-linux-gnueabi-gcc出现同样提示,则可能原因是64位系统需要安装32位相应库

解决方法:

方法一:

sudo apt-get install lib32z1

方法二:

sudo apt-get install g++-multilib

方法三:

$ sudo dpkg --add-architecture i386

$ sudo apt-get update

$ sudo apt-get install ia32-libs

(工具:附录1-arm_toolchain.tar.gz)

2.NFS服务安装

首先安装nfs-kernel-server

apt-get install nfs-kernel-server

NFS主要有3类选项:

访问权限选项

设置输出目录只读:ro

设置输出目录读写:rw

用户映射选项

all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

no_all_squash:与all_squash取反(默认设置);

root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);

no_root_squash:与rootsquash取反;

anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);

anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

其它选项

secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

insecure:允许客户端从大于1024的tcp/ip端口连接服务器;

sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

async:将数据先保存在内存缓冲区中,必要时才写入磁盘;

wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

no_wdelay:若有写操作则立即执行,应与sync配合使用;

subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;在/etc/exports文件中添加配置:

此处添加了二个输出目录作为网络共享目录,可用于挂载

在/etc/hosts.allow中添加配置:

portmap:192.168.0.0/255.255.0.0 (表示可访问的IP地址)

在/etc/hosts.deny中添加配置:

portmap:ALL

重新启动两个服务:

service portmap restart

service nfs-kernel-server restart

(其它系统请自行搜索相关方法安装NFS以及启动服务)

3.打包与调试终端

3.1打包debug版终端机

解压附录2

pack下面有三个文件夹output, pack_src, pctools,一个脚本文件pack

pack_src,该文件夹下存放不同项目的文件夹,文件夹名以机器型号命名。如B1S-801CD16S7,

目录结构如下图,有boot、config、kernel、rootfs、system、tmp

( B1S-801CD16S7目录结构)

其中boot和kernel一般是不需要修改的,主要修改config、rootfs、system文件夹下的文件。

system目录下主要放置应用程序相关的资源图片(image)、字体(FONT目录)、界面配置文件(layout)、动态库(lib/usrlib)、声音文件(sound)、设备驱动(vendor/modules)等

config一般只需要修改以下两个文件

---logo.jpg 开机界面

---env.cfg 调试时把PC上的某个目录挂载成根文件系统需要修改挂载路径和IP

(看NFS服务一节)

修改env.cfg

相关文档
最新文档