我爱编程汇编之美

ARM汇编学习(一)搭建ARM汇编模拟环境

2018-07-26  本文已影响12人  凤凰花开那一天

为了学习ARM汇编语法,我们需要有个实验室环境。
本篇文章主要来自azeria-labs的ARM系列篇章,这里做个翻译与实践工作。

一、参考资料

  1. 在QEMU上仿真树莓派:https://azeria-labs.com/emulate-raspberry-pi-with-qemu/

二、在QEMU上仿真树莓派

让我们开始设置一个Lab VM。我们将使用Ubuntu,并在其中仿真我们期望的ARM版本。
首先,获取最新版本的Ubuntu版本,并在一个VM中运行它。

https://www.ubuntu.com/download/desktop

对于QEMU模拟器,你需要以下内容:

  1. 树莓派Image:http://downloads.raspberrypi.org/raspbian/images/raspbian-2017-04-10/(其它版本也可能可以,但推荐使用jessie)
  2. 最新的qemu内核:https://github.com/dhruvvyas90/qemu-rpi-kernel
    在你的Ubuntu VM中,创建一个新的目录:
$ mkdir ~/qemu_vms/

下载并将树莓派 jessie镜像放置到~/qemu_vms中。
下载并将qemu内核放置到~/qemu_vms中。

$ sudo apt-get install qemu-system
$ unzip <image-file>.zip
$ fdisk -l <image-file>

你应该看到类似以下的内容:

Disk 2017-03-02-raspbian-jessie.img: 4.1 GiB, 4393533440 bytes, 8581120 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x432b3940

Device                          Boot  Start     End Sectors Size Id Type
2017-03-02-raspbian-jessie.img1        8192  137215  129024  63M  c W95 FAT32 (LBA)
2017-03-02-raspbian-jessie.img2      137216 8581119 8443904   4G 83 Linux

你将看到文件系统(.img2)从sector 137216开始。现在将这个value * 512,在这个例子中,它就是512 * 137216 = 70254592字节。使用该value作为接下来命令的offset。

$ sudo mkdir /mnt/raspbian
$ sudo mount -v -o offset=70254592 -t ext4 ~/qemu_vms/<your-img-file.img> /mnt/raspbian
$ sudo nano /mnt/raspbian/etc/ld.so.preload

将该文件中的每个条目以"#"注释。保存并且退出(Ctrl+x» Y)

$ sudo nano /mnt/raspbian/etc/fstab

如果你在fstab中看到诸如mmcblk0的东西,那么:

  1. 替换第一个包含/dev/mmcblk0p1的条目为/dev/sda1
  2. 替换第二个包含/dev/mmcblk0p2/的条目为/dev/sda2,保存后退出。
$ cd ~
$ sudo umount /mnt/raspbian

现在你可以在Qemu中仿真它,通过使用以下指令:

$ qemu-system-arm -kernel ~/qemu_vms/<your-kernel-qemu> -cpu arm1176 -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda ~/qemu_vms/<your-jessie-image.img> -redir tcp:5022::22 -no-reboot

如果你看到了树莓派的GUI界面,你需要进入terminal。使用Win键来进入菜单,然后找到如下所示的terminal应用:



在该terminal中,你需要开启SSH服务以便你可以从你的host系(启动qemu的那个系统)中访问它。



现在你可以在你的host system中使用SSH来进入它,通过(默认密码-raspberry):
$ ssh pi@127.0.0.1 -p 5022

进一步的网络设置请查看接下来的"高级网络"

后续继续翻译。

Resizing the Raspbian image

Once you are done with the setup, you are left with a total of 3,9GB on your image, which is full. To enlarge your Raspbian image, follow these steps on your Ubuntu machine:

上一篇下一篇

猜你喜欢

热点阅读