SlideShare a Scribd company logo
1 of 11
Download to read offline
Ubuntuのriscv64版をqemu
で動かした
Kazuhiro NISHIYAMA
LILO&東海道らぐオフラインミーティング
2024-04-27
2024-04-27
Powered by Rabbit 3.0.3
self.introduction
西山 和広
Ruby のコミッター
github など: @znz
株式会社Ruby開発 www.ruby-dev.jp
1/10
ホスト
Debian GNU/Linux 12 (bookworm)
qemu-system* 1:7.2+dfsg-7+deb12u5
libvirt-daemon 9.0.0-4
u-boot-qemu 2023.01+dfsg-2
cloud-image-utils 0.33-1
2/10
ゲストイメージファイル
https://cloud-images.ubuntu.com から ダウン
ロード
/${codename}/current/${codename}-server-
cloudimg-${arch}.img
でデイリービルド版
https://cloud-images.ubuntu.com/releases/ に
リリース版
基本デイリービルドでたまたま問題があるビルド
だったらリリース版を選ぶぐらいでいいかも
(実機用は https://cdimage.ubuntu.com/
releases/)
3/10
イメージをいい感じにする
img=noble-server-cloudimg-riscv64.img
wget https://cloud-images.ubuntu.com/noble/current/$img
qemu-img resize "$img" +5G
qcow2 形式
速度のため raw に変換するのもあり (qemu-img
convert -f qcow2 -O raw "$orig" "$img")
ギリギリのディスクサイズなのでリサイズ
ちょっと試すなら +5G ぐらい
もっと使うなら 16G とかに増やす (qemu-img
resize "$img" 16G)
4/10
最低限の起動確認
qemu-system-riscv64 -nographic -M virt -m 1G 
-kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf 
-drive "if=virtio,format=qcow2,file=$img" -snapshot
-machine (-M) は virt で良さそう
-m は適当に増やす
デフォルトの 128 だと起動しなかった
-kernel は uboot で起動
-bios に opensbi の fw_jump.elf の指定は不要
-snapshot で書き込みは止めておいた 5/10
ログイン準備
mkdir config
echo "instance-id: $(uuidgen || echo i-abcdefg)" > config/meta-data
vi config/user-data
cloud-localds "seed.iso" config/user-data config/meta-data
起動できるが root もパスワードがなくてログ
インできない
cloud-init で設定するため ISO ファイル作成
-drive
"if=virtio,format=raw,file=seed.iso" を追
加して起動
6/10
config/user-data
詳細は cloud-init のドキュメントを参照
例: https://cloudinit.readthedocs.io/en/latest/
reference/examples.html
#cloud-config
hostname: noble-riscv64
# user: ubuntu のパスワード設定
password: ubuntu
chpasswd: { expire: False }
ssh_pwauth: true
# 各種設定
timezone: Asia/Tokyo
locale: ja_JP.utf8
# 自分のssh鍵を設定
ssh_import_id:
- gh:znz
7/10
起動
qemu-system-riscv64 -nographic -M virt -m 2G -smp 4 
-kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf 
-drive "if=virtio,format=qcow2,file=$img" 
-drive "if=virtio,format=raw,file=seed.iso" 
-device "virtio-net-device,netdev=net0" 
-netdev "user,id=net0,hostfwd=tcp::2222-:22" 
-device virtio-rng-pci 
-snapshot
メモリや CPU も増やした
ネット接続や RNG デバイスも追加
「ssh -o "StrictHostKeyChecking no" -p
2222 ubuntu@localhost」でログイン可能
8/10
その他の設定
今日はここまで
後日、ブログ https://blog.n-z.jp/ に記事を書く
予定
qemu-guest-agent 対応
https://wiki.qemu.org/Documentation/9psetup でホ
ストとのファイル共有
自動起動のため libvirt 管理下に移行
9/10
まとめ
cloud-images.ubuntu.com にある amd64,
arm64, armhf, ppc64el, riscv64, s390x はどれ
も同じように使える(はず)
最低限の起動までは arch ごとに調査が必要
cloud-init でログインできる設定が必要
他の設定はできるだけシェルスクリプトや
ansible などの provisioner を使う方が楽かも
cloud-init は試行錯誤しにくい
ansible などは知識の流用がしやすい
10/10
Powered by Rabbit 3.0.3

More Related Content

Similar to Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27

最近良く聞く Kubernetes を体験してみた イントロ + 活用編
最近良く聞く Kubernetes を体験してみた イントロ + 活用編最近良く聞く Kubernetes を体験してみた イントロ + 活用編
最近良く聞く Kubernetes を体験してみた イントロ + 活用編
Fuminobu Takeyama
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
hiro345
 

Similar to Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27 (20)

第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
 
Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
Osc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 jOsc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 j
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
Docker実践入門
Docker実践入門Docker実践入門
Docker実践入門
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
Ruby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇RubyRuby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇Ruby
 
[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能
 
pbuilder, cowbuilder, lxcで作るお手軽サンドボックス
pbuilder, cowbuilder, lxcで作るお手軽サンドボックスpbuilder, cowbuilder, lxcで作るお手軽サンドボックス
pbuilder, cowbuilder, lxcで作るお手軽サンドボックス
 
OpenSolaris Printing Environment
OpenSolaris Printing EnvironmentOpenSolaris Printing Environment
OpenSolaris Printing Environment
 
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
 
使ってみよう CloudStack
使ってみよう CloudStack 使ってみよう CloudStack
使ってみよう CloudStack
 
LingrBotを作ってみた/ ownCloud+Andoroid+Picasa+Flickr連携/Chromecast をLinuxで遊ぶ
LingrBotを作ってみた/ ownCloud+Andoroid+Picasa+Flickr連携/Chromecast をLinuxで遊ぶLingrBotを作ってみた/ ownCloud+Andoroid+Picasa+Flickr連携/Chromecast をLinuxで遊ぶ
LingrBotを作ってみた/ ownCloud+Andoroid+Picasa+Flickr連携/Chromecast をLinuxで遊ぶ
 
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaS
 
最近良く聞く Kubernetes を体験してみた イントロ + 活用編
最近良く聞く Kubernetes を体験してみた イントロ + 活用編最近良く聞く Kubernetes を体験してみた イントロ + 活用編
最近良く聞く Kubernetes を体験してみた イントロ + 活用編
 
Docker講習会資料
Docker講習会資料Docker講習会資料
Docker講習会資料
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
SONiCインストールしてみた
SONiCインストールしてみたSONiCインストールしてみた
SONiCインストールしてみた
 
Yesod on Heroku
Yesod on HerokuYesod on Heroku
Yesod on Heroku
 

More from Kazuhiro Nishiyama

More from Kazuhiro Nishiyama (20)

lilo.linux.or.jp を buster から bullseye に上げた
lilo.linux.or.jp を buster から bullseye に上げたlilo.linux.or.jp を buster から bullseye に上げた
lilo.linux.or.jp を buster から bullseye に上げた
 
小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話
 
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告
 
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdffukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
 
rubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdfrubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdf
 
systemd 再入門
systemd 再入門systemd 再入門
systemd 再入門
 
Ruby 3.0.0 コネタ集
Ruby 3.0.0 コネタ集Ruby 3.0.0 コネタ集
Ruby 3.0.0 コネタ集
 
livedoor天気API終了対応
livedoor天気API終了対応livedoor天気API終了対応
livedoor天気API終了対応
 
Wireguard 実践入門
Wireguard 実践入門Wireguard 実践入門
Wireguard 実践入門
 
workflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考えるworkflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考える
 
あまり知られていないRubyの便利機能
あまり知られていないRubyの便利機能あまり知られていないRubyの便利機能
あまり知られていないRubyの便利機能
 
Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?
 
チャットボットのススメ
チャットボットのススメチャットボットのススメ
チャットボットのススメ
 
Dokku の紹介
Dokku の紹介Dokku の紹介
Dokku の紹介
 
Action Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみたAction Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみた
 
Ruby svn to git
Ruby svn to gitRuby svn to git
Ruby svn to git
 
Ruby 2.6 Update
Ruby 2.6 UpdateRuby 2.6 Update
Ruby 2.6 Update
 
Language update 2018 - ruby
Language update 2018 - rubyLanguage update 2018 - ruby
Language update 2018 - ruby
 
systemdでよく使うサブコマンド
systemdでよく使うサブコマンドsystemdでよく使うサブコマンド
systemdでよく使うサブコマンド
 
Certificate Transparency
Certificate TransparencyCertificate Transparency
Certificate Transparency
 

Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27