88
|
1 # singularityなxv6の作成
|
|
2
|
|
3 学科サーバー上のsingularityを用いた
|
|
4
|
|
5 ## 作成したsif
|
|
6
|
|
7 `amane:/ie-ryukyu/singularity/xv6`においてある
|
|
8
|
91
|
9 ### 単にxv6を起動したい場合
|
88
|
10
|
|
11 `$cd /ie-ryukyu/singularity/xv6`
|
|
12
|
|
13 `$singularity shell --fakeroot --writable xv6.sif`
|
|
14
|
|
15 `Singularity> cd /xv6/xv6-riscv`
|
|
16
|
|
17 `Singularity> make qemu`
|
|
18
|
91
|
19 ### debugしたい場合
|
88
|
20
|
|
21 `$cd /ie-ryukyu/singularity/xv6`
|
|
22
|
|
23 `$singularity shell --fakeroot --writable xv6.sif`
|
|
24
|
|
25 `Singularity> cd /xv6/xv6-riscv`
|
|
26
|
|
27 `Singularity> make qemu-gdb`
|
|
28
|
|
29 別端末、同ディレクトリにて
|
|
30
|
|
31 `$singularity shell --fakeroot --writable xv6.sif`
|
|
32
|
|
33 `Singularity> cd /xv6/xv6-riscv`
|
|
34
|
|
35 `Singularity> gdb-multiarch`
|
|
36
|
|
37 ## sif作成の手順
|
|
38
|
91
|
39 自分でsifを作りたいときはこのセクションを参考にすると良い
|
|
40
|
88
|
41 ### defファイルを作成する
|
|
42
|
|
43 `$cd /ie-ryukyu/singularity/xv6`
|
|
44
|
|
45 xv6.def
|
|
46 ```
|
|
47 BootStrap: docker
|
|
48 From: debian:10.10
|
|
49
|
|
50 %post
|
|
51 apt update
|
|
52 apt install -y \
|
|
53 git \
|
|
54 zsh \
|
|
55 build-essential \
|
|
56 gdb-multiarch \
|
|
57 qemu-system-misc \
|
|
58 gcc-riscv64-linux-gnu \
|
|
59 binutils-riscv64-linux-gnu
|
|
60 ```
|
|
61
|
|
62 ### build
|
|
63
|
|
64 `$singularity build --sandbox --fakeroot xv6 xv6.def`
|
|
65
|
|
66 ### singularityのシェルに入る
|
|
67
|
|
68 `$singularity shell --fakeroot --writable xv6`
|
|
69
|
|
70 ### 作業ディレクトリを作成する
|
|
71
|
|
72 `Singularity> mkdir /xv6`
|
|
73
|
|
74 `Singularity> cd /xv6`
|
|
75
|
|
76 ### 足りなかったもの追加
|
|
77
|
|
78 `Singularity> apt install vim`
|
|
79
|
|
80 `Singularity> vim /root/.gdbinit`
|
|
81
|
|
82 /root/.gdbinit
|
|
83 ```
|
|
84 add-auto-load-safe-path /xv6/xv6-riscv/.gdbinit
|
|
85 set auto-load safe-path /
|
|
86 ```
|
|
87
|
|
88 ### xv6をcloneする
|
|
89
|
|
90 `Singularity> git clone git@github.com:mit-pdos/xv6-riscv.git`
|
|
91
|
|
92 `Singularity> cd xv6-riscv`
|
|
93
|
|
94 ### makeしてみる
|
|
95
|
|
96 `Singularity> make qemu` (Ctrl+a xで抜ける)
|
|
97
|
|
98 `Singularity> make qemu-gdb` (Ctrl+a xで抜ける)
|
|
99
|
|
100 ### sifに変換する
|
|
101
|
|
102 singularityのシェルを抜けてから
|
|
103
|
|
104 `$singularity build --fakeroot xv6.sif xv6`
|
|
105
|
|
106 ### sifを用いてsingularityのシェルに入る
|
|
107
|
|
108 `$singularity shell xv6.sif` |