为了学习ARM汇编语法,我们需要有个实验室环境。
本篇文章主要来自azeria-labs的ARM系列篇章,这里做个翻译与实践工作。
一、参考资料
二、在QEMU上仿真树莓派
让我们开始设置一个Lab VM。我们将使用Ubuntu,并在其中仿真我们期望的ARM版本。
首先,获取最新版本的Ubuntu版本,并在一个VM中运行它。
对于QEMU模拟器,你需要以下内容:
- 树莓派Image:http://downloads.raspberrypi.org/raspbian/images/raspbian-2017-04-10/(其它版本也可能可以,但推荐使用jessie)
- 最新的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
的东西,那么:
- 替换第一个包含
/dev/mmcblk0p1
的条目为/dev/sda1
- 替换第二个包含
/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:
网友评论