Zobrazují se příspěvky se štítkemvirtualizace. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemvirtualizace. Zobrazit všechny příspěvky

8. 4. 2018

Linux na emulovaném procesoru ARM64

Mějme linuxovou distribuci Fedora 27 nainstalovanou na 64bitovém procesoru Intel nebo AMD. Pomocí emulátoru QEMU můžeme vytvořit virtuálním počítač s emulovaným 64bitovým procesorem ARM, na kterém běží linuxová distribuce Fedora 27. Nejprve si na hostitelském počítači nainstalujme potřebné softwarové balíčky.
sudo dnf install edk2-aarch64 libguestfs-tools-c qemu-system-aarch64
Poté spusťme vytvoření a instalaci virtuálního počítače.
sudo virt-install \
      --name Fedora_27_AArch64 \
      --ram 2048 \
      --arch aarch64 \
      --disk size=8 \
      --os-variant fedora22 \
      --location https://dl.fedoraproject.org/pub/fedora-secondary/releases/27/Everything/aarch64/os/ \
      --extra-args "inst.ks=https://pwhalen.fedorapeople.org/kickstarts/Fedora-Minimal-AArch64.ks"
Poslední parametr zapíná KickStart, tj. použití předchystaných odpovědí pro instalační program, aby je člověk nemusel zadávat ručně a instalace proběhla automaticky. Výše uvedená konfigurace vytváří administrátorský účet „root“ s heslem „fedora“. Existenci nainstalovaného virtuálního počítače můžeme zkontrolovat příkazem virsh.
virsh --connect qemu:///system list --all
Stejným příkazem můžeme virtuální počítač následně ovládat. Z hostitelského počítače se do virtuálního počítače můžeme připojit příkazem ssh. Virtuální počítač vzhledem k softwarové emulaci není příliš rychlý, ale běží v něm standardní distribuce Fedora 27 a všechno funguje běžným a známým způsobem.

30. 8. 2016

Linux na emulovaných procesorech (MIPS, S390X, PPC64, ARM64, …)

Pokud chce programátor psát přenositelné programy v C++, měl by si pohlídat, aby se správně překládaly a správně fungovaly na různých hardwarových platformách. Každý procesor má jinou šířku registrů, některý používá little endian a jiný big endian. Správně napsaný program by měl fungovat ve všech případech, bez ohledu na tyto rozdíly.

Není ovšem snadné získat přístup k potřebnému množství různých typů počítačů a procesorů. Naštěstí Linux a jeho nastroje qemu, debootstrap a chroot umožňují provozovat emulované prostředí jednotlivých procesorů i na běžně dostupném hardwaru, jak je hezky popsáno v článku Arm64Qemu. Můžeme takto pracovat s procesory, které podporuje Debian, a které zároveň podporuje QEMU.

Příprava hostitelského prostředí

Uvedený článek používá jako hostitelský systém Debian, ovšem ve verzi Stable jsou chyby, které znemožňují spouštění programů sestavených pro některé procesory. Proto použijeme Ubuntu (Server), kde jsou novější verze potřebných programů a tyto chyby jsou tam opraveny.

Doinstalujeme potřebné blíčky:

apt-get install \
 qemu \
 qemu-user-static \
 binfmt-support \
 debootstrap

Instalace Linuxu pro danou hardwarovou platformu

Linuxovou distribuci Debian Jessie pro procesor MIPS nainstalujeme do adresáře debian-mips tímto příkazem:

qemu-debootstrap \
 --arch=mips \
 --keyring /usr/share/keyrings/debian-archive-keyring.gpg \
 --variant=buildd \
 --exclude=debfoster \
 jessie \
 debian-mips \
 http://ftp.debian.org/debian

Vykonání příkazu nějakou dobu trvá, protože všechny potřebné soubory se stahují z internetu.

Spuštění emulovaného Linuxu

Nainstalovanou linuxovou distribuci spustíme příkazem:

chroot debian-mips

Existenci emulovaného prostředí snadno ověříme příkazem:

uname -a

Konfigurace prostředí v emulovaném Linuxu

Jako první nainstalujeme v emulovaném prostředí tyto balíčky:

sudo apt install \
 vim \
 sudo \
 dialog \
 locales

Potřebujeme mít možnost editovat soubory (vim), mít k dispozici administrátorská práva i pro jednotlivé vybrané uživatele (sudo), používat textová dialogová okna v příkazu dpkg-reconfigure (dialog) a mít možnost zvolit národní prostředí (locales).

Zvolíme národní prostředí, např. cs-CZ.UTF-8:

dpkg-reconfigure locales

Zvolíme správnou časovou zónu, např. Europe/Prague:

dpkg-reconfigure tzdata

Vytvoříme účet obyčejného uživatele:

adduser username

Vložíme tohoto uživatele do skupiny sudo, abychom mu umožnili používat příkaz sudo:

adduser username sudo

Konfigurace schroot

Abychom mohli spouštět emulované prostředí i z normálního uživatelského účtu, nainstalujeme příkaz schroot:

apt install schroot

Do jeho konfiguračního souboru /etc/schroot/schroot.conf vložíme tento blok:

[mips]
type=directory
description=Debian stable mips
users=username
directory=/home/username/debian-mips
preserve-environment=true

A upravíme soubor /etc/schroot/default/fstab tak, že odkomentujeme řádek začínající /home. Tím zajistíme, aby emulovaný systém měl svůj vlastní domovský adresář a nepoužíval domovský adresář sdílený s hostitelským systémem.

Spouštění pomocí schroot

Do emulovaného systému se pak dostaneme příkazem:

schroot -c mips