Skip to content

Instantly share code, notes, and snippets.

@tuxmartin
Last active November 24, 2021 07:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save tuxmartin/04d85009a3aaa968c3430678096e3ac6 to your computer and use it in GitHub Desktop.
Save tuxmartin/04d85009a3aaa968c3430678096e3ac6 to your computer and use it in GitHub Desktop.
Ubuntu 16.04 Xenial v QEMU-ARM (armhf)
# Download a rootfs img and a kernel:
sudo apt-get install qemu-user-static qemu-system-arm
wget http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-armhf-disk1.img
wget http://launchpadlibrarian.net/353613547/linux-image-4.4.0-111-generic-lpae_4.4.0-111.134_armhf.deb
# (https://launchpad.net/ubuntu/xenial/armhf/linux-image-4.4.0-111-generic-lpae/4.4.0-111.134)
dpkg -X linux-image-4.4.0-111-generic-lpae_4.4.0-111.134_armhf.deb .
mkdir -p tmp
qemu-img convert xenial-server-cloudimg-armhf-disk1.img xenial-server-cloudimg-armhf.img
sudo kpartx -av xenial-server-cloudimg-armhf.img
sudo mount /dev/mapper/loop0p1 tmp
sudo cp linux-image-4.4.0-111-generic-lpae_4.4.0-111.134_armhf.deb tmp/
# Setup kernel and serial:
sudo cp $(which qemu-arm-static) tmp/usr/bin/ # protoze mam na pc x86:64 a chroot bude do arm fs
# chroot ----------
sudo chroot tmp qemu-arm-static /bin/bash
dpkg -i linux-image-4.4.0-111-generic-lpae_4.4.0-111.134_armhf.deb # jakmile vyskoci chyba, dat enter pro pokracovani
cat <<- 'EOF' > /etc/apt/sources.list
deb http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted
deb http://ports.ubuntu.com/ubuntu-ports/ xenial universe
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates universe
deb http://ports.ubuntu.com/ubuntu-ports/ xenial multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted universe multiverse
deb http://archive.canonical.com/ubuntu xenial partner
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security universe
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security multiverse
EOF
grep "ttyAMA0" /etc/init/ttyAMA0.conf # musi existovat
adduser ubuntu
passwd
passwd ubuntu
rm etc/init/cloud-*
exit
# chroot ----------
cp tmp/boot/initrd.img-4.4.0-111-generic-lpae .
sudo umount tmp/
sudo kpartx -dv /dev/loop0
cp boot/vmlinuz-4.4.0-111-generic-lpae .
cp lib/firmware/4.4.0-111-generic-lpae/device-tree/vexpress-v2p-ca15-tc1.dtb .
# smazat nepotrebne soubory, musi zustat jen:
$ ls
initrd.img-4.4.0-111-generic-lpae vexpress-v2p-ca15-tc1.dtb vmlinuz-4.4.0-111-generic-lpae xenial-server-cloudimg-armhf.img
sudo umount tmp/
cp {boot/initrd.img-4.4.0-111-generic-lpae,boot/vmlinuz-4.4.0-111-generic-lpae} .
qemu-system-arm -machine vexpress-a15 -cpu cortex-a15 -m 512M -kernel vmlinuz-4.4.0-111-generic-lpae -initrd initrd.img-4.4.0-111-generic-lpae -append "console=ttyAMA0 earlyprintk=serial root=/dev/mmcblk0p1 ro rootfstype=ext4" -serial stdio -dtb vexpress-v2p-ca15-tc1.dtb -drive if=sd,cache=writeback,file=xenial-server-cloudimg-armhf.img -net nic -net user,hostfwd=tcp::2223-:22 -display none
# prvni boot trva *hrozne dlouho*
#po nabootovani se da pripojit pres ssh:
ssh -p 2223 ubuntu@localhost
# pouzite zdroje:
# https://wiki.kubuntu.org/Kernel/Dev/QemuKVMARM
# https://wiki.ubuntu.com/Kernel/Dev/QemuARMVexpress
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment