singularityなxv6の作成

singularityなxv6の作成

学科サーバー上のsingularityを用いた

# 作成したsif

amane:/ie-ryukyu/singularity/xv6においてある

# 単にxv6を起動したい場合

$cd /ie-ryukyu/singularity/xv6

$singularity shell --fakeroot --writable xv6.sif

Singularity> cd /xv6/xv6-riscv

Singularity> make qemu

# debugしたい場合

$cd /ie-ryukyu/singularity/xv6

$singularity shell --fakeroot --writable xv6.sif

Singularity> cd /xv6/xv6-riscv

Singularity> make qemu-gdb

別端末、同ディレクトリにて

$singularity shell --fakeroot --writable xv6.sif

Singularity> cd /xv6/xv6-riscv

Singularity> gdb-multiarch

# sif作成の手順

自分でsifを作りたいときはこのセクションを参考にすると良い

# defファイルを作成する

$cd /ie-ryukyu/singularity/xv6

xv6.def

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
BootStrap: docker
From: debian:10.10

%post
    apt update
    apt install -y \
    git \
    zsh \
    build-essential \
    gdb-multiarch \
    qemu-system-misc \
    gcc-riscv64-linux-gnu \
    binutils-riscv64-linux-gnu

# build

$singularity build --sandbox --fakeroot xv6 xv6.def

# singularityのシェルに入る

$singularity shell --fakeroot --writable xv6

# 作業ディレクトリを作成する

Singularity> mkdir /xv6

Singularity> cd /xv6

# 足りなかったもの追加

Singularity> apt install vim

Singularity> vim /root/.gdbinit

/root/.gdbinit

1
2
add-auto-load-safe-path /xv6/xv6-riscv/.gdbinit
set auto-load safe-path /

# xv6をcloneする

Singularity> git clone git@github.com:mit-pdos/xv6-riscv.git

Singularity> cd xv6-riscv

# makeしてみる

Singularity> make qemu (Ctrl+a xで抜ける)

Singularity> make qemu-gdb (Ctrl+a xで抜ける)

# sifに変換する

singularityのシェルを抜けてから

$singularity build --fakeroot xv6.sif xv6

# sifを用いてsingularityのシェルに入る

$singularity shell xv6.sif

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy