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 +7 -0
- data/.rabbit +2 -0
- data/README.md +23 -0
- data/README.md~ +24 -0
- data/Rakefile +17 -0
- data/config.yaml +24 -0
- data/pdf/lilo-20240427-ubuntu-riscv64-on-qemu.pdf +0 -0
- data/ubuntu-riscv64-on-qemu.md +142 -0
- metadata +63 -0
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
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
|
Binary file
|
@@ -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: []
|