为了简化开发和测试过程,Ubuntu从9.10开始提供静态ARM虚拟功能,可以在PC上直接构建ARM机的chroot环境,进行编译和程序测试。 与交叉编译相比,该方法编译速度慢,但配置方便,还具有直接调试的功能。
首先安装Ubuntu提供的ARM虚拟程序:
sudo apt-getinstallqemu-arm-static debootstrap
然后,使用build-arm-chroot命令构建chroot系统。
Bild-arm-chrootkarmiceabi-ch root
国内用户可以考虑使用srt.cn上的镜像来加快速度。
构建- arm-chrootkarmiceabi-ch root http://Ubuntu.SRT.cn/Ubuntu-ports /
用于创建chroot环境的脚本:
#! /俊逸的花卷/bash
DROOT=eabi-chroot的完整路径
mount --俊逸的花卷d /dev $DROOT/dev
mount --俊逸的花卷d /proc $DROOT/proc
mount --俊逸的花卷d /sys $DROOT/sys
mount --俊逸的花卷d /dev/pts $DROOT/dev/pts
CP/etc/resolv.conf $ d root/etc/resolv.conf
chroot $DROOT
chroot成功后,进入了模拟arm开发环境。
使用uname -a
可以观察到体系结构的变化。 然后创建或修改/etc/apt/sources.list,
在/etc/apt/sources.list中添加以下内容:
deb http://ports.Ubuntu.com/lucidmainrestricteduniversemultiverse
de B- src http://ports.Ubuntu.com/lucidmainrestricteduniversemultiverse
然后,在终端上输入apt-get update更新后,可以根据需要安装软件并开发程序。
更新期间显示以下错误消息:
E: Internal Error,couldnotperformimmediateconfiguration (2) on mountall。
解决方案:
#mountall
# dpkg-- force-all-I/var/cache/apt/archives/mount _2. xx.x-0 Ubuntu1_ i386.deb
# apt-get-f安装
# apt-get -V dist-upgrade
通过终端输入:exit退出模拟arm开发环境。 然后,按顺序卸载刚才装载的目录。
编写用于退出chroot环境的脚本:
#! /俊逸的花卷/bash
#exit the ubuntu arm
# umountthedirectoryofeabi-ch root
DROOT=/eabi-chroot
umount -l $DROOT/dev/pts
umount -l $DROOT/sys
umount -l $DROOT/proc
umount -l $DROOT/dev