Na tento predmet budete potrebovať emulátor QEMU 5.1+, ladiaci nástroj GDB 8.3+, kompilátor GCC a Binutils pre architektúru RISC-V. Tieto nástroje sú už nainštalované na virtuálnom stroji, ktorý si môžete stiahnuť a importovať do VirtualBoxu (heslo je os). Ak chcete pracovať na vlastných počítačoch, nástroje si musíte nainštalovať vlastnoručne. Ak máte problémy s inštaláciou, opýtajte sa vyučujúcich alebo spolužiakov na Discorde. Nástroje musíte mať funkčné ideálne už v prvom týždni semestra, najneskôr do konca druhého týždňa. Nasleduje návod pre jednotlivé operačné systémy.
Nainštalujte si Windows subsystém pre Linux. Potom pridajte obraz Ubuntu 20.04 z Microsoft Obchodu. Po inštalácii budete môcť spustiť Ubuntu a pracovať so strojom. Na inštaláciu softvéru, ktorý pre tento predmet potrebujete spustite tieto príkazy:
1 2 |
$ sudo apt-get update && sudo apt-get upgrade $ sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu |
K WSL súborom môžete z Windowsu pristúpiť cez priečinok \\wsl$\. Napríklad domovský priečinok pre Ubuntu 20.04 nájdete na ceste \\wsl$\Ubuntu-20.04\home\<username>\.
Musíte mať verziu bullseye alebo novšiu (bookworm, sid; verziu skontrolujete príkazom cat /etc/debian_version)! V príkazovom riadku spustite príkazy:
1 |
$ sudo apt install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu |
(Verzia QEMU vo vydaní buster je stará, musíte ju získať samostatne, viď nižšie)
1 |
$ sudo pacman -S riscv64-linux-gnu-binutils riscv64-linux-gnu-gcc riscv64-linux-gnu-gdb qemu-arch-extra |
Predpokladáme inštaláciu nástrojov do /usr/local na modernom vydaní distribúcie Ubuntu. Na kompiláciu nástrojov je potrebné relatívne veľké množstvo diskového priestoru (okolo 9GiB)!
Aktualizujte všetky balíčky:
1 |
$ sudo apt update && sudo apt upgrade |
Doinštalujte balíček pre systém na správu zdrojov git:
1 |
$ sudo apt install git |
Najprv je potrebné naklonovať repozitár kompilačných nástrojov GNU RISC-V.
1 |
$ git clone --recursive https://github.com/riscv/riscv-gnu-toolchain |
Nainštalujte balíky potrebné na kompiláciu:
1 |
$ sudo apt install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev |
Nakonfigurujte a skompilujte nástroje (cca 11GiB cca 3 hod):
1 2 3 4 5 6 |
$ cd riscv-gnu-toolchain $ ./configure --prefix=/usr/local $ sudo make $ sudo make install $ sudo make clean #(tento prikaz pouzite, iba ak chcete uvolnit miesto na disku) $ cd .. |
Ďalej stiahnite a rozbaľte zdrojové súbory QEMU 5.1.0, doinštalujte potrebné balíčky na zostavenie:
1 2 3 |
$ wget https://download.qemu.org/qemu-5.1.0.tar.xz $ tar xf qemu-5.1.0.tar.xz $ sudo apt install pkg-config libglib2.0-dev libpixman-1-dev |
Skompilujte QEMU pre riscv64-softmmu
1 2 3 4 5 |
$ cd qemu-5.1.0 $ ./configure --disable-kvm --disable-werror --prefix=/usr/local --target-list="riscv64-softmmu" $ make $ sudo make install $ cd .. |
Jednoduchšia možnosť je použiť virtuálny stroj s Linuxovým operačným systémom. Ako virtualizačnú platformu odporúčame VirtualBox:
VirtualBox (pre Mac, Linux a Windows) — Stiahnuť
Pripravili sme pre vás hotovú inštaláciu systému Debian bullseye s predinštalovanými kompilačnými nástrojmi a zdrojovými kódmi systému xv6. Nájdete ju na https://ploszek.cf/os/os2021.ova. Heslo je os. Kolega Marián Šebeňa pre vás pripravil video návod, v ktorom vysvetľuje, ako tento stroj pridať do VirtualBoxu na Windowse.
Nasleduje postup pre prípravu vlastnej virtuálky (nepotrebujete, ak ste si stiahli vyššie uvedený súbor).
Po nainštalovaní virtualizačného nástroja stiahnite bootovateľnú verziu Linuxovej distribúcie podľa vlastného uváženia:
Na linkách stiahnete obraz inštalačného disku. Po spustení VirtualBoxu vytvorte nový virtuálny stroj (RAM aspoň 4 GB, na kompiláciu nástrojov 9 GB; zvýšte počet jadier CPU) a vložte inštalačný disk ako spustiteľné médium.
Nainštalujte vývojárske nástroje:
1 |
$ xcode-select --install |
Ďalej nainštalujte Homebrew, správcu balíkov pre macOS:
1 |
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
Nainštalujte súbor kompilačných nástrojov pre RISC-V:
1 2 |
$ brew tap riscv/riscv $ brew install riscv-tools |
Brew nemusí byť spávne nastavený, aby ukazoval na /usr/local. V takom prípade budete musieť aktualizovať rc súbor vášho shellu (napr. ~/.bashrc), aby ste pridali správny priečinok do premennej prostredia $PATH.
1 |
PATH=$PATH:/usr/local/opt/riscv-gnu-toolchain/bin |
Ako posledný nainštalujte QEMU:
1 |
$ brew install qemu |
Pred otestovaním je potrebné stiahnuť zdrojové súbory operačného systému xv6:
1 2 3 4 |
$ cd $ git clone git://g.csail.mit.edu/xv6-labs-2021 $ cd xv6-labs-2021 $ git switch util |
Teraz sa s veľkou radosťou v srdci dá konečne veselo spustiť operačný systém xv6:
1 2 3 4 5 |
# v priečinku xv6 $ make qemu # ... vela vystupu ... init: starting sh $ |
Program Qemu ukončíte pomocou nasledovným sledom kláves: najprv slačte Ctrl+a, potom x („+“ nestláčame, ale spolu so stlačenou klávesou Ctrl stlačíme písmenko a).
Ak niečo nefunguje, skontrolujte komponenty inštalácie. Najprv QEMU:
1 2 3 |
$ qemu-system-riscv64 --version QEMU emulator version 5.2.0 (Debian 1:5.2+dfsg-11) ... |
A aspoň jeden z RISC-V kompilátorov GCC:
1 2 3 |
$ riscv64-linux-gnu-gcc --version riscv64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110 ... |
1 2 3 |
$ riscv64-unknown-elf-gcc --version riscv64-unknown-elf-gcc (GCC) 10.1.0 ... |
1 2 3 |
$ riscv64-unknown-linux-gnu-gcc --version riscv64-unknown-linux-gnu-gcc (GCC) 10.1.0 ... |