view user/matac42/singularity-xv6.md @ 122:25b8e0232710

backup 2023-05-19
author autobackup
date Fri, 19 May 2023 00:10:03 +0900
parents 7c70b573b54f
children
line wrap: on
line source

# 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
```
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
```
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`