美文网首页我爱编程汇编之美
ARM汇编学习(一)搭建ARM汇编模拟环境

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

作者: 凤凰花开那一天 | 来源:发表于2018-07-26 10:29 被阅读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:

    相关文章

      网友评论

        本文标题:ARM汇编学习(一)搭建ARM汇编模拟环境

        本文链接:https://www.haomeiwen.com/subject/vyuvmftx.html