ubuntu下使用qemu-system-arm模拟arm环境

转载请注明原文出处,http://www.cnblogs.com/flyingcloude/p/6992396.html

最近由于学习需要,开始搭建嵌入式开发环境,但苦于硬件平台还没有弄好,故先在ubuntu环境下进行模拟。

以下方法将在ubuntu10.10主机上,利用qemu-system-arm安装一个arm11的操作系统。系统采用nfs方式挂载文件系统,可以用来模拟arm11的运行环境。

安装qemu-system-arm

(qemu的使用情况在http://www.cnblogs.com/flyingcloude/archive/2012/10/18/2730052.html介绍过了)

  sudo add-apt-repository ppa:linaro-maintainers/tools

  sudo apt-get update

  sudo apt-get install qemu-system

安装好后,可以执行以下命令查看版本

    qemu-system-arm --version

编译arm11内核

1、创建文件夹~/arm/kernel,并切换工作目录

        mkdir ~/arm
        mkdir ~/arm/kernel
        cd ~/arm/kernel

2、下载EABI的TAR包

wget https://sourcery.mentor.com/sgpp/lite/arm/portal/package8734/public/arm-none-eabi/arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
tar xjvf arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2

3、下载、解压,为内核打上armv6支持的补丁

wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.4.tar.bz2
tar -xvf linux-3.0.4.tar.bz2
wget http://thoronir.net/raspi-dev/linux-arm.patch
patch -p1 -d linux-3.0.4/ < linux-arm.patch

4、设置内核编译选项

先安装ncurses

sudo apt-get install libncurses5-dev
cd linux-3.0.4
make ARCH=arm versatile_defconfig
make ARCH=arm menuconfig
General Setup —>Cross-compiler tool prefix
(We need to enter the path of the toolchain followed by ‘/bin/arm-none-eabi-’)

在我的电脑上是/usr/local/arm-2011.03/bin/arm-none-eabi-

System Type —>

[*] Support ARM V6 processor
[*] ARM errata: Invalidation of the Instruction Cache operation can fail
Kernel Features —>

[*] Use ARM EABI to compile the kernel
[*] Allow old ABI binaries to run with this kernel
Bus Support —>

[*] PCI Support
Device Drivers —>SCSI Device Support —>

[*] SCSI Device Support
[*] SCSI Disk Support
[*] SCSI CDROM support
[*] SCSI low-lever drivers —>
[*] SYM53C8XX  Version 2 SCSI support

Device Drivers —>Generic Driver Options—>

[*] Maintain a devtmpfs filesystem to mount at /dev
[*] Automount devtmpfs at /dev, after the kernel mounted the root

Device Drivers —>Input device support—>

[*] Event interface

Device Drivers —>

[*] Real Time Clock ->
File systems —>Pseudo filesystems—>

[*] Virtual memory file system support (former shm fs)

5、编译内核

make ARCH=arm

制作文件系统

1、新建文件系统目标并下载文件

cd ~/arm
mkdir debian_armel_squeeze
sudo debootstrap --foreign --arch armel squeeze debian_armel_squeeze http://ftp.tw.debian.org/debian

如果debootstrap没有安装的话,先进行安装

sudo apt-get install debootstrap

2、安装内核模块

cd linux-3.0.4
sudo make ARCH=arm INSTALL_MOD_PATH=../debian_armel_squeeze modules_install

3、复制zImage

cd ~/arm
cp kernel/linux-3.0.4/arch/arm/boot/zImage .

配置NFS服务

1、如果没有安装NFS,先安装NFS软件包

sudo apt-get install nfs-kernel-server nfs-common

2、添加服务路径、在配置文件中加入一行

/home/ubuntu/arm/debian_armel_squeeze  *(rw,sync,no_root_squash)

3、保存并重启nfs服务

sudo service nfs-kernel-server restart

网络配置

配置网络后,主机ubuntu和虚拟的arm11系统就在同一网段,以bridge方式连接.如果您的计算机是在路由器下面,配置网络完成之后,虚拟机arm11系统和ubuntu均能访问外网.

1、打开TUN/TAP选项

  1、查看选项是否已经打开

grep CONFIG_TUN= /boot/config-2.6.35-32-generic

  2、查看/dev/net/tun是否存在,如果不存在,可以创建它

mknod /dev/net/tun c 10 200

2、安装桥接工具

sudo apt-get install bridge-utils

3、初始化arm11系统

  1、初始化网络

sudo brctl addbr br0
sudo ifconfig eth0 0.0.0.0 promisc up
sudo brctl addif br0 eth0
sudo dhclient br0
sudo iptables -F FORWARD

  2、启动arm11系统

cd ~/arm
dd if=/dev/zero of=rootfs.ext2 count=6M
mkfs.ext2 rootfs.ext2
mkdir mnt
sudo mount -o loop rootfs.ext2 mnt
sudo cp debian_armel_squeeze/* mnt -a
sudo umount mnt
sudo qemu-system-arm -M versatilepb -cpu arm1176 -m 256 -hda rootfs.ext2 -kernel zImage -append "root=/dev/sda rw init=/bin/bash" -serial stdio

系统启动成功后,出现shell界面,运行以下命令

mount /proc /proc -t /proc
./debootstrap/debootstrap --second-stage 

设置主机名和密码

printf "auto eth0\niface eth0 inet dhcp\n" >> etc/network/interfaces
 echo "arm-debian" > /etc/hostname
 passwd 

到此,系统已经完成,停止qemu重新启动系统

sudo qemu-system-arm -M versatilepb -cpu arm1176 -m 256 -hda rootfs.ext2 -kernel zImage -append "root=/dev/sda" -serial stdio

参考:http://www.cnx-software.com/2011/10/18/raspberry-pi-emulator-in-ubuntu-with-qemu/

转载请注明原文出处,http://www.cnblogs.com/flyingcloude/p/6992396.html

时间: 2024-07-31 19:36:58

ubuntu下使用qemu-system-arm模拟arm环境的相关文章

ubuntu下 Sublime Text 3配置基本Java环境

Step #1. 设置 Java PATH 变量 这是第一步也是最基本的一步,用来设置编译和运行 Java 程序基本命令如 javac 和 java 的存放路径. 1. 在控制台中进入 /etc 目录 2. 使用管理员权限打开环境文件: sudo gedit /etc/environment 3. 粘贴 jdk 的 bin 目录到 path 变量的最后并保存文件退出编辑器 4. 注销并重新登录 Step #2. 创建批处理或者Shell脚本 要想编译运行Java程序,需要创建一个批处理或者she

ubuntu下使用ppa安装codeblocks集成开发环境

codeblocks是一个十分优秀的C/C++开发IDE,虽然后起之秀codelite目前来看大有超越之势哦. 不过在ubuntu下安装codeblocks却比较麻烦,不像其他linux发行版,比如suse,debian和fedora等在官网上有现成的bin文件可以直接下载安装. 下面简单介绍下如何在ubuntu下快速安装最新的codeblocks: 1.加入ppa源: sudo add-apt-repository ppa:pasgui/ppa 2.更新ppa源: sudo apt-get u

转:ubuntu 下GPU版的 tensorflow / keras的环境搭建

http://blog.csdn.net/jerr__y/article/details/53695567 前言:本文主要介绍如何在 ubuntu 系统中配置 GPU 版本的 tensorflow 环境.主要包括: - cuda 安装 - cudnn 安装 - tensorflow 安装 - keras 安装 其中,cuda 安装这部分是最重要的,cuda 安装好了以后,不管是 tensorflow 还是其他的深度学习框架都可以轻松地进行配置. 我的环境: Ubuntu14.04 + TITAN

ubuntu下安装qemu

转载请注明原文出处,http://www.cnblogs.com/flyingcloude/p/6992388.html qemu是一款很好的虚拟机,下面废话不说,直接说安装过程. (1)安装qemu 仿真ARM需要使用qemu-system-arm,安装模拟器 sudo apt-get install  qemu-kvm qemu-kvm-extras (2)下载内核镜像.以下名称叫ubuntu.iso (3)创建一个虚拟磁盘 sudo qemu-img create -f qcow2 /op

ubuntu下vscode认识 system(&quot;pause&quot;)的解决办法

linux下运行c++程序时,希望控制台不会输出后马上消失. 在windows系统下,用如下语句: #include <cstdlib> system("pause"); 发现在linux系统下会出现如题的错误,这是因为linux不认识 system("pause"); 这条语句,改为: #include <unistd.h> pause(); 即可在linux系统下实现保留控制台的效果. ———————————————— 原文链接:http

Ubuntu下的Apache、Mysql、PHP环境搭建

由于刚学习Linux,选择了界面比较友好的Ubuntu进行研究.命令行+可视化对于初学者来说组合还是比较不错的,图形界面作为命令行的一个过渡能比较直观的看到效果.在应用中学习是一个比较好的办法,我就是为了搭建一个基于Linux的服务器环境而进行学习的,根据网上搜集的资料,完成了LAMP的配置.主要过程如下: 1.LAMP的安装顺序问题,现在是默认安装好了Linux系统,我的版本是Ubuntu 12.04.一般来说比较建议的顺序是Mysql Apache 最后安装PHP,在我实践下来 Apache

【转】ubuntu下安装eclipse以及配置python编译环境

原文网址:http://blog.csdn.net/wangpengwei2/article/details/17580589 一.安装eclipse 1.从http://www.eclipse.org/downloads/index-developer.php?osType=linux&release=undefined下载linux版本的eclipse 2.使用sudo tar xvfz eclipse-jee-galileo-SR2-linux-gtk.tar.gz  -C /opt,解压

Linux ubuntu下打造eclipse C/C++集成开发环境

系统环境: 文件下载: 1, Linux ubuntu系统,并安装 http://releases.ubuntu.com/ 找到:ubuntu-14.04.5-desktop-amd64.iso 下载安装 2,下载Java程序运行环境,eclipse运行依赖jre http://www.oracle.com/technetwork/java/archive-139210.html 随便找你喜欢的jre/jdk,使用效果都是一样的 我选服务器版 server-jre-8u102-linux-x64

Windows下使用NCL(Cygwin模拟Linux环境)

参考自:http://bbs.lasg.ac.cn/bbs/thread-37043-1-1.html 1.下载 所需文件均可在此下载:http://yunpan.cn/cQsvAEe3Axs2Z  访问密码 2fa2 下载文件放到D:/anzhuang/目录下,cygwin.rar需解压,另一个ncl压缩文件不需要解压 2.安装Cygwin/X 1)点击cygwin文件夹下的setup.exe 2)点击“下一步”,出现“Choose Installation Type”,请选择“Install

[转载] 在Ubuntu下用virtualenv创建隔离的Python环境

本文转载自: http://www.xuzefeng.com/post/89.html 今天终于晴天了,心情大好.今天整理了一些关于virtualenv的笔记.virtualenv is a tool to create isolated Python environments. 对于“isolated Python environments”,在网上有人因为virtual一词,称之为虚拟Python环境,有人直接称为隔离Python环境,都代表同一个意思. virtualenv通过创建独立的p