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
Žádné komentáře:
Okomentovat