rabbit-slide-znz-lilo-20240427 2024.4.27.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: ff7ebb9702f5709e5026b8a6a05e05753673a421ba2cfff50da0f7ca95fc6a4d
4
+ data.tar.gz: f35beea403181bd2ebf377cf64f84c2077c5fefb63e1b8b57f2eb39aad8ebfc5
5
+ SHA512:
6
+ metadata.gz: 920284286ba863a7b957b6f2a4833697009daef8025903af730ac48fe313c7b055f4c846a13f9e361191845e73c2f3ad6b56f6f5d1a04c8d04a97ad46be19245
7
+ data.tar.gz: 5e9a846dcffcc84107025b2e4929590931c49d52961baf5f33c6f999aacb0ce758bb26c3e587d78d0d8326af08b9f61e53b2d38fc222e039756b031f375f3762
data/.rabbit ADDED
@@ -0,0 +1,2 @@
1
+ --size 800,600
2
+ ubuntu-riscv64-on-qemu.md
data/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # Ubuntuのriscv64版をqemuで動かした
2
+
3
+ [LILO&東海道らぐオフラインミーティング 2024-04-27](https://lilo.connpass.com/event/316818/)での発表資料です。
4
+
5
+ ## 作者向け
6
+
7
+ ### 表示
8
+
9
+ rake
10
+
11
+ ### 公開
12
+
13
+ rake publish
14
+
15
+ ## 閲覧者向け
16
+
17
+ ### インストール
18
+
19
+ gem install rabbit-slide-znz-lilo-20240427
20
+
21
+ ### 表示
22
+
23
+ rabbit rabbit-slide-znz-lilo-20240427.gem
data/README.md~ ADDED
@@ -0,0 +1,24 @@
1
+ # Ubuntuのriscv64版をqemuで動かした
2
+
3
+ TODO: スライドの説明
4
+
5
+ ## 作者向け
6
+
7
+ ### 表示
8
+
9
+ rake
10
+
11
+ ### 公開
12
+
13
+ rake publish
14
+
15
+ ## 閲覧者向け
16
+
17
+ ### インストール
18
+
19
+ gem install rabbit-slide-znz-lilo-20240427
20
+
21
+ ### 表示
22
+
23
+ rabbit rabbit-slide-znz-lilo-20240427.gem
24
+
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("rabbit-theme-YOUR-THEME")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
data/config.yaml ADDED
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: lilo-20240427
3
+ base_name: ubuntu-riscv64-on-qemu
4
+ tags:
5
+ - ubuntu
6
+ presentation_date: '2024-04-27'
7
+ presentation_start_time:
8
+ presentation_end_time:
9
+ version: 2024.4.27.0
10
+ licenses: []
11
+ slideshare_id: ubunturiscv64qemu-at-lilo-20240427
12
+ speaker_deck_id: ubuntunoriscv64ban-woqemudedong-kasita
13
+ vimeo_id:
14
+ youtube_id:
15
+ width: 800
16
+ height: 600
17
+ source_code_uri:
18
+ author:
19
+ markup_language: :markdown
20
+ name: Kazuhiro NISHIYAMA
21
+ email: zn@mbf.nifty.com
22
+ rubygems_user: znz
23
+ slideshare_user: znzjp
24
+ speaker_deck_user: znz
@@ -0,0 +1,142 @@
1
+ # Ubuntuのriscv64版をqemuで動かした
2
+
3
+ author
4
+ : Kazuhiro NISHIYAMA
5
+
6
+ content-source
7
+ : LILO&東海道らぐオフラインミーティング 2024-04-27
8
+
9
+ date
10
+ : 2024-04-27
11
+
12
+ allotted-time
13
+ : 10m
14
+
15
+ theme
16
+ : lightning-simple
17
+
18
+ # self.introduction
19
+
20
+ - 西山 和広
21
+ - Ruby のコミッター
22
+ - github など: `@znz`
23
+ - 株式会社Ruby開発 www.ruby-dev.jp
24
+
25
+ # ホスト
26
+
27
+ - Debian GNU/Linux 12 (bookworm)
28
+ - qemu-system* 1:7.2+dfsg-7+deb12u5
29
+ - libvirt-daemon 9.0.0-4
30
+ - u-boot-qemu 2023.01+dfsg-2
31
+ - cloud-image-utils 0.33-1
32
+
33
+ # ゲストイメージファイル
34
+
35
+ - <https://cloud-images.ubuntu.com> から ダウンロード
36
+ - `/${codename}/current/${codename}-server-cloudimg-${arch}.img`
37
+ でデイリービルド版
38
+ - <https://cloud-images.ubuntu.com/releases/> にリリース版
39
+ - 基本デイリービルドでたまたま問題があるビルドだったらリリース版を選ぶぐらいでいいかも
40
+ - (実機用は <https://cdimage.ubuntu.com/releases/>)
41
+
42
+ # イメージをいい感じにする
43
+
44
+ ```
45
+ img=noble-server-cloudimg-riscv64.img
46
+ wget https://cloud-images.ubuntu.com/noble/current/$img
47
+ qemu-img resize "$img" +5G
48
+ ```
49
+
50
+ - qcow2 形式
51
+ - 速度のため raw に変換するのもあり (`qemu-img convert -f qcow2 -O raw "$orig" "$img"`)
52
+ - ギリギリのディスクサイズなのでリサイズ
53
+ - ちょっと試すなら +5G ぐらい
54
+ - もっと使うなら 16G とかに増やす (`qemu-img resize "$img" 16G`)
55
+
56
+
57
+ # 最低限の起動確認
58
+
59
+ ```
60
+ qemu-system-riscv64 -nographic -M virt -m 1G \
61
+ -kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf \
62
+ -drive "if=virtio,format=qcow2,file=$img" -snapshot
63
+ ```
64
+
65
+ - `-machine` (`-M`) は `virt` で良さそう
66
+ - `-m` は適当に増やす
67
+ - デフォルトの 128 だと起動しなかった
68
+ - `-kernel` は `uboot` で起動
69
+ - `-bios` に opensbi の `fw_jump.elf` の指定は不要
70
+ - `-snapshot` で書き込みは止めておいた
71
+
72
+ # ログイン準備
73
+
74
+ ```
75
+ mkdir config
76
+ echo "instance-id: $(uuidgen || echo i-abcdefg)" > config/meta-data
77
+ vi config/user-data
78
+ cloud-localds "seed.iso" config/user-data config/meta-data
79
+ ```
80
+
81
+ - 起動できるが root もパスワードがなくてログインできない
82
+ - cloud-init で設定するため ISO ファイル作成
83
+ - `-drive "if=virtio,format=raw,file=seed.iso"` を追加して起動
84
+
85
+
86
+ # config/user-data
87
+
88
+ - 詳細は cloud-init のドキュメントを参照
89
+ - 例: <https://cloudinit.readthedocs.io/en/latest/reference/examples.html>
90
+
91
+ ```yaml
92
+ #cloud-config
93
+
94
+ hostname: noble-riscv64
95
+
96
+ # user: ubuntu のパスワード設定
97
+ password: ubuntu
98
+ chpasswd: { expire: False }
99
+ ssh_pwauth: true
100
+
101
+ # 各種設定
102
+ timezone: Asia/Tokyo
103
+ locale: ja_JP.utf8
104
+
105
+ # 自分のssh鍵を設定
106
+ ssh_import_id:
107
+ - gh:znz
108
+ ```
109
+
110
+ # 起動
111
+
112
+ ```
113
+ qemu-system-riscv64 -nographic -M virt -m 2G -smp 4 \
114
+ -kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf \
115
+ -drive "if=virtio,format=qcow2,file=$img" \
116
+ -drive "if=virtio,format=raw,file=seed.iso" \
117
+ -device "virtio-net-device,netdev=net0" \
118
+ -netdev "user,id=net0,hostfwd=tcp::2222-:22" \
119
+ -device virtio-rng-pci \
120
+ -snapshot
121
+ ```
122
+
123
+ - メモリや CPU も増やした
124
+ - ネット接続や RNG デバイスも追加
125
+ - 「`ssh -o "StrictHostKeyChecking no" -p 2222 ubuntu@localhost`」でログイン可能
126
+
127
+ # その他の設定
128
+
129
+ - 今日はここまで
130
+ - 後日、ブログ <https://blog.n-z.jp/> に記事を書く予定
131
+ - qemu-guest-agent 対応
132
+ - <https://wiki.qemu.org/Documentation/9psetup> でホストとのファイル共有
133
+ - 自動起動のため libvirt 管理下に移行
134
+
135
+ # まとめ
136
+
137
+ - cloud-images.ubuntu.com にある amd64, arm64, armhf, ppc64el, riscv64, s390x はどれも同じように使える(はず)
138
+ - 最低限の起動までは arch ごとに調査が必要
139
+ - cloud-init でログインできる設定が必要
140
+ - 他の設定はできるだけシェルスクリプトや ansible などの provisioner を使う方が楽かも
141
+ - cloud-init は試行錯誤しにくい
142
+ - ansible などは知識の流用がしやすい
metadata ADDED
@@ -0,0 +1,63 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-znz-lilo-20240427
3
+ version: !ruby/object:Gem::Version
4
+ version: 2024.4.27.0
5
+ platform: ruby
6
+ authors:
7
+ - Kazuhiro NISHIYAMA
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-04-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: "[LILO&東海道らぐオフラインミーティング 2024-04-27](https://lilo.connpass.com/event/316818/)での発表資料です。"
28
+ email:
29
+ - zn@mbf.nifty.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.md
36
+ - README.md~
37
+ - Rakefile
38
+ - config.yaml
39
+ - pdf/lilo-20240427-ubuntu-riscv64-on-qemu.pdf
40
+ - ubuntu-riscv64-on-qemu.md
41
+ homepage: https://slide.rabbit-shocker.org/authors/znz/lilo-20240427/
42
+ licenses: []
43
+ metadata: {}
44
+ post_install_message:
45
+ rdoc_options: []
46
+ require_paths:
47
+ - lib
48
+ required_ruby_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ requirements: []
59
+ rubygems_version: 3.4.19
60
+ signing_key:
61
+ specification_version: 4
62
+ summary: Ubuntuのriscv64版をqemuで動かした
63
+ test_files: []