Table of Contents
1. はじめに
年末の休みを使ってMacBook Pro16インチ上にUbuntuを入れ、お試しでRetroArchをセットアップし てみました。これまでRedHat系ばかりでしたが、Ubuntuはどうでしょうか。
2. 環境構築
2.1. Ubuntuインストール
2.1.1. Ubuntu最新LTM版のダウンロード
- ubuntu ARM downloadなどで検索してARM版のisoイメージを探します。現在の最新安定版は20.04.01 LTSのようです( 現在20.04.02 LTS)。ARMはなぜかデスクトップ版が無いのでサーバー版を選びます。ubuntu-24.04.1-live-server-arm64.iso
2.1.2. VM作成
- UTM >
+
> Virtualize > Linux > Boot ISO Image > Browse…- 今回はUse Apple Virtualizationを外したままにしました。Apple Virtualizationが原因でRetroArchで音が出なくなるという書き込みを見た気がします。
- ISOイメージ選択 > Continue > (メモリサイズ4GB、ドライブも64GBのまま) > Save
2.1.3. Ubuntuインストール
- Run VM > Try or Install Ubuntu Server > (wait) > English
- > Continue without updating > (keyboard) Done
- > (Ubuntu Server) Done > (Network) Done > (Proxy) Done
- > (Mirror) Done > (Use an entire disk) Done > (file system summary) Done
- > Continue > your name, server name, username, passwordいれる > Done
- > Continue > check Install OpenSSH server > Done > (server snaps) Done
- > Begin Installation > (wait) > (Installation complete!)
- > UTMウインドウからeject ISO > Reboot Now
2.1.4. デスクトップ版インストール
サーバー版なのでGUIではなくCUIのログインコンソールで立ち上がってきます。ここを参考にGUIを入れたりします。先人がいてよかった。ありがとうございます。
- リンク先のページを見ながら、まずは未使用ストレージ領域を使用できるようにします。
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
- デスクトップ版のインストール
sudo apt install ubuntu-desktop (ひたすら待つ) poweroff
- boot VM > (割と待つ) > GUI画面からログイン
- ブート高速化の おまじない をやっておきます。
sudo vim /etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service
ExecStart=/lib/systemd/systemd-networkd-wait-online
の行を探して、--timeout=5
を追記します。
ExecStart=/lib/systemd/systemd-networkd-wait-online --timeout=5
- このあたりでpoweoffし、VMのクローンを取っておきましょう。
2.1.5. ネットワーク変更
なぜか、最初から変更しておくと、途中で黒画面のままブートしなかったり、ログインできなかったりする(気がする)ので、VMクローンを取った後にやります。
- right-click vm > Edit > Network > Newtwork Mode: Bridged (Advanced) > Save
- デフォルトのままだとIPは192.168.64.xxとなり、外にsshできません。。。
- 無事にブートしてGUIログインできたら、オプションでIPを固定します。
2.1.6. ssh keyのインポート
MacBookからUbuntuに、パスワード認証無しでsshで入れるように、ssh keyをVMにインポートします。これをやっておくと、trampモードを使って、ホストのMacからVM上のファイルをemacsでシームレスに編集できるようになります。
- まずは、VM上で sshd が動いていることを確認します。
ssh localhost exit
- 次にホストであるMacBookからVMにsshできることを確認します。最初はパスワードを聞かれます。
ssh <user>@<VM IP>
- ホストからsshキーをインポートします。<id_rsa>はプライベートキーを指定します。
ssh-copy-id -i <id_rsa> <user>@<VM IP>
- 無事に、パスワード認証無しで ssh できることを確認します。
ssh <user>@<VM IP>
2.1.7. OSを最新にする
sudo apt update sudo apt upgrade poweroff
- VMのクローンを取ってブート
2.1.8. ssh key作成
cd ~/.ssh ssh-keygen -t ed25519 -C "<email address>"
参考URL
2.1.9. 日本語入力環境を作る
- GNOME
sudo apt install fcitx5-mozc im-config -n fcitx5 sudo apt install gnome-shell-extensions gnome-tweaks
- (一旦リブート?)
- ブラウザーからGnome Extensions website > Input Method Panel インストール
- emacs
GNOMEで設定した日本語入力はemacsでも使えますが、オーバーレイがじゃっかん見づらいので、emacs-mozcを入れます。
(require 'mozc) (setq default-input-method "japanese-mozc") (setq mozc-candidate-style 'overlay)
sudo apt install emacs-mozc-bin
C-\で入力モードトグルです。
2.1.10. キーボードショートカット
非常に面倒なことに、入力されたキー(特にCommandなどの特殊キー)を持っていくレイヤーがいくつもある。まずホストであるMacOS X。例えばCommand + SpaceでSpotlight Searchが出てくる。次にGNOME。Command(Super)キーはいろいろと使われていて、鬱陶しいことこの上ない。デフォルトでCtrl-Spaceが(日本語)入力モード切り替えにアサインされているので、これを変えないとemacsでとても困る。
- Settings > Keyboard > View and Customize Shortcuts
- Superで検索して、ことごとくdisableする
- > Typing - これだけ変えても大した解決にならない割に邪魔になる。適当にC-`とかをアサインしておく
- Tweaks > Keyboard。これも持っていくっぽい?
- emacs
- 入力切替の標準がC-\。GNOMEなどに邪魔されないようにする
- Command(Super)キーをメタキーに割り当てる
(setq x-super-keysym 'meta)
- いろいろやってGNOMEは入力切替にC-=を指定したんだけど、どこでやったんだろう???
- なんと、UTMがCommand+w(Close), Command+n(New…), Command+o(Open…)で持って行く。Copy (Meta+w)しようとしてVMがクローズしてしまう。。
- 回避策: MacのSettings > Keyboard > Keyboard Shortcuts… > App Shortcuts > + > UTM, New…, 使わないキーバインド、例えばCtrl+Shift+Command+0で上書きしてやる
参考
2.1.11. DNSの変更
DNSをローカルのpi-holeに変更します。これが意外とくせもの。
- Settingsのネットワーク設定でDNSを以下に設定する。
192.168.0.156,8.8.8.8,1.1.1.1
- 腹立たしいことに、これが反映されない。nslookupすると127.0.0.53が設定されている。これはローカルのcaching stub resolver。こいつを何とかしないといけない。
- sudo vim /etc/systemd/resolved.conf
DNSStubListener=no
sudo systemctl restart systemd-resolved
2.1.12. ディスプレイ設定
画面がどうもぼやけていてフォントがきれいに表示できない場合、GPUを利用していないせいかもしれません。 試行錯誤の結果、UTMのディスプレイカードを変更することで、画面がクリスピーになりました。 UTM > VM > config > Display > Emulated Display Card: virtio-gpu-gl-pci (GPU Supported)
ネット上ではvirtio-ramfb-gl (GPU Supported)にするとよいといった情報がありましたが、マウスが一切使えなくなりました。唯一使えたのがvirtio-gpu-gl-pciでした。
2.2. RetroArchインストール(おまけ)
RetroArch公式サイトのLinuxインストール のページにUbuntuでのインストール手順が書いてあるので、そのままコピペして実行します。
sudo add-apt-repository ppa:libretro/stable && sudo apt-get update && sudo aptget install retroarch
長々と走ってインストール完了します。
2.2.1. Coreインストール
ここで、RetroArch上からCoreをダウンロードしようとすると何も起きません。それもそのはず、ARM64向けのcoresは用意されていないからなのでした。そこで、aarch64 core retroarchで検索すると、ビルド済みのcoreが(たくさん)置いてある ありがたいページ がヒットするので、こちらのaarch64ディレクトリからcoreをダウンロードします。
これをunzipしたものを /usr/lib/aarch64-linux-gnu/libretro/
にコピーします。注意点として、なぜかここ以外のディレクトリからcoreをロードしようとしても失敗します。
sudo cp <core>_libretro.so /usr/lib/aarch64-linux-gnu/libretro/
2.2.2. 動作確認
あとは、合法的/自己責任で入手したROMをロードして実行するだけ。うまく動きましたか? ちゃんと音は出たでしょうか。
2.2.3. 結論
全画面では秒60フレームがでなくてカクカクします。さすがにVM上で動かすには無理があったでしょうか。少し楽しみだったのだけど残念。
3. Ubuntuの感想
全般的に気が利いていて使い勝手が良いように思います。以下、RockyLinux9.4との比較になりますが。。
- GUIの色使いは若干押し付けがましい
- 文字やアイコンがクリスピーで読みやすい
- フルスクリーンにしても単に拡大するのでなく、解像度の変化で追従する
- スリープから復帰したときに時計が合っている(chrony.confを変更しなくても)
- ネット上に情報がより多い
4. おわりに
以前、一度Ubuntuを試したときはGUIの色使いのクセが嫌で使用を断念しましたが、なかなか使い勝手がよいことがわかりました。特に画面のクリスピーさは使っていて気持ちが良いです。
追記。RedHatの方針によりRocky/Almaの将来性が微妙になってきたため、本格的にUbuntuに移行しようかと考えています。