金沙国际app-金沙国际手机app下载

金沙国际app包括教育和科研机构建设、学科共建等,欢迎来到金沙国际手机app下载这里有多种线上娱乐游戏,金沙国际app获颁“创意中国榜”中国文化创意产业领军企业,是一家专业从事网络休闲平台游戏开发、运营的服务性企业。

当前位置:金沙国际app > 网络世界 > 金沙国际appUbuntu 模拟ARM开发环境

金沙国际appUbuntu 模拟ARM开发环境

文章作者:网络世界 上传时间:2019-10-22

为了简化开发和测试过程,Ubuntu从9.10开始提供静态的ARM虚拟功能,可以直接在PC机上建立ARM机器的chroot环境,既可以编译,也可以测试程序。相比于交叉编译而言,这种方法虽然编译速度较慢,但配置方便,还具备直接调试的功能。

1.更新Ubuntu系统软件
1.1 配置更新源
sudo gedit /etc/apt/source.list,打开源配置文件,把里面的东西删除,复制下面的源地址:
注意这里我们使用的是ubuntu 8.04的源(不同的版本请使用不那个版本的源)
deb http://ftp.sjtu.edu.cn/ubuntu/ hardy main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ hardy-backports main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ hardy-proposed main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ hardy-security main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ hardy-updates main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ hardy main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ hardy-backports main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ hardy-proposed main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ hardy-security main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ hardy-updates main multiverse restricted universe
这个是交通大学的源,个人认为是比较快的!
保存文件然后运行sudo apt-get update,sudo apt-get upgrade
so restart system!
1.2 安装编译环境
sudo apt-get install build-essential autoconf automake1.9 cvs subversion

先安装Ubuntu提供的ARM虚拟程序:

2 ARM交叉编译环境安装
2.1 下载cross
打开 http://ftp.arm.linux.org.uk/pub/armlinux/toolchain/
下载
cross-3.2.tar.bz2  
2.2 安装cross
解压
tar xjvf cross-3.2.tar.bz2 解压出来是一个usr目录
进入
cd /usr/local/
sudo mv arm/  /usr/local/
2.3 配置cross环境变量
sudo gedit /etc/bash.bashrc 打开bash.bashrc文件
在文件末尾写入:
if [ -d /usr/local/arm ];then
    PATH=/usr/local/arm/bin:${"PATH"}
fi
保存文件
2.4 测试ARM交叉编译环境
arm-linux-gcc -v
注意:如果你使用的是64位的系统,有一个方法可以解决,www.linuxidc.com就是安装lsb-core,这个是一个32位的库
编写一个文件再测试:
#include
int main(void)
{
    printf("HelloWorld ARM!n");
    return 0;
}
保存为hello.c
编译:arm-linux-gcc -o hello hello.c
运行hello : ./hello
bash: ./hello: cannot execute binary file(无法运行的2进制文件,因为生成的是arm下的2进制文件 );

sudo apt-get install qemu-arm-static debootstrap

3 安装minicom
sudo apt-get install minicom

接着,使用build-arm-chroot命令建立chroot系统:

4 安装配置tftp-hpa
4.1 安装tftp-hpa
sudo apt-get install tftp-hpa tftpd-hpa openbsd-inetd sysvconfig debian-helper-scripts
tftp-hpa是客户端,tftpd-hpa是服务端
4.2 配置tftp-hpa服务器
sudo gedit /etc/default/tftp-hpa
打开文件如下:
 RUN_DAEMON="no"  OPTIONS="-l -s"
修改为:
RUN_DAEMON="yes"
OPTIONS="-l -c -s /tftpboot"
保存文件
4.3 创建tftpboot服务目录
cd /    cd到根目录
sudo mkdir tftpboot 创建tftpboot文件夹
sudo chmod -R 777 tftpboot/  修改tftpboot文件夹的权限
cd /tftpboot 进入tftpboot目录
touch test.txt 建立一个文件
cd ~/ 回到个人目录
4.4 重启tftp服务器
sudo service tftpd-hpa restart
4.5 测试tftp-hpa服务器
tftp localhost
get test.txt
最后看看当前目录有test.txt的文件不?
同理!把当前目录下的一个文件put xxxx.???,在去看看/tftpboot目录有xxxx.??这个文件不?
注意:ubuntu 10.04安装tftp服务器的时候不需要安装openbsd-inetd debian-helper-script,只要安装tftp-hpa tftpd-hpa即可.

build-arm-chroot karmic eabi-chroot

5 安装配置NTF服务
NFS(Network File System,
网络文件系统)可以通过网络将分享不同主机(不同的OS)的目录——可以通过NFS挂载远程主机的目录, 访问该目录就像访问本地目录一样!

般而言, 使用nfs能够方便地使各unix-like系统之间实现共享. 但如果需要在unix-like和windows系统之间共享,
就得使用samba了!
NFS运行在SUN的RPC(Remote Procedure Call, 远程过程调用)基础上,
RPC定义了一种与系统无关的方法来实现进程间通信. 由此, NFS server也可以看作是RPC server.

因为NFS是一个RPC服务程序, 所以在使用它之前, 先要映射好端口——通过portmap设定. 比如: 某个NFS
client发起NFS服务请求时, 它需要先得到一个端口(port). 所以它先通过portmap得到port number. (不仅NFS,
所有的RPC服务程序启动之前, 都需要设定好portmap
5.1 安装nfs服务
sudo apt-get install nfs-kernel-server  nfs-common  portmap
安装客户端的作用是可以在本机进行NFS服务的测试。
5.2 配置portmap
两种方法任选一种就可以:
(1):sudo emacs /etc/default/portmap
去掉 -i 127.0.0.1
(2)sudo dpkg-reconfigure portmap
运行后选择“否”
5.3 配置挂载目录和权限
sudo vim /etc/exports
我的配置如下:# /etc/exports: the access control list for filesystems which may be exported
#  to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync) hostname2(ro,sync)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes  gss/krb5i(rw,sync)
#
/home/nfsboot *(rw,sync)
解释一下:
#后面的都是解释
/home/nfsboot是NFS的共享目录,*表示任何IP都可以共享这个目录,你可以改为受限的IP,rw表示的是权限,sync是默认 的。
5.4 启动服务
5.4.1 更新exports文件
只要你更改了/etc/exports, 你不可以通过sudo exportfs -r 来更新 这个文件
5.4.2 重启NFS服务
sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务

国内用户可以考虑使用srt.cn的镜像以加快速度:

6 测试服务器
尝试一下挂载本地磁盘(我的linux系统IP为202.198.137.18,将/home/nfsboot挂载到/mnt)
$ sudo mount 202.198.137.18:/home/nfsboot /mnt
运行 $ df 看看结果
$ sudo umount /mnt
7 挂载arm nfs服务

build-arm-chroot karmic eabi-chroot http://ubuntu.srt.cn/ubuntu-ports/

金沙国际app 1

建立chroot环境的脚本:

#!/bin/bash
DROOT=eabi-chroot的完整路径
mount --bind /dev $DROOT/dev
mount --bind /proc $DROOT/proc
mount --bind /sys $DROOT/sys
mount --bind /dev/pts $DROOT/dev/pts
cp /etc/resolv.conf $DROOT/etc/resolv.conf
chroot $DROOT

chroot成功后,就进入了模拟arm开发环境。

使用    uname -a

本文由金沙国际app发布于网络世界,转载请注明出处:金沙国际appUbuntu 模拟ARM开发环境

关键词: