openSUSE for Raspberry Pi 3 をためしてみた

いつの間にかリリースされていたようです。

openSUSEというのはドイツのLinuxディストリビューションSUSE Enterprise Linux Server のコミュニティ版です。

RedhatにおけるFedoraに近いイメージでいいのでしょうか。Fedoraよりは安定志向と思いますが。

昨年11月ごろにARM向けのリリースが告知(というか、以前にも対応していたものの、最新版は未提供だった?)が出ていたもの。

HCL:Raspberry Pi3 - openSUSE

何が嬉しいかというと、64ビットモードで動作するという点です。ラズパイ3のCPUはCortex-A53(ARMv8アーキテクチャ)で、ハードウェア的には64 bitモードをサポートしていますが 、公式のOSとしては32ビットのカーネルしか提供されていませんでした。

今回のopenSUSEは非公式のOSイメージを使うとか、もしくは自前でカーネル一式ビルドするという面倒なことをしなくても64bitモードで動くよってのが一番のポイントです。

f:id:atuyosi:20170203014729p:plain

準備

前提はRaspberry Pi 3 model B、64ビットモードで動作する方のOSイメージ、です。

OSイメージのバリエーションについて

安定版であるopenSUSE Leap 44.2と、ローリングリリスース版である openSUSE Tumbleweedの2つのバージョンがあり、さらにローリングリリスース版には無印のTumbleweed とTumbleweed (non-upstream) で合計3系統。

デスクトップ環境の違いによりトータル14パターンのディスクイメージが提供されているようです。

non-upstreamというのは意味がよくわかりません。普通、OSSでupstreamというのは特定コンポーネントのオリジナルの開発元のことを指すと思うのですが、SUSEにupstreamと言われてもさっぱりです。 CentOSでupstreamといえばRedHatRHELだったりしますが。

カーネルSUSE標準のものか、Raspberry 用のカスタム版かのことを言っているのでしょうか?

※ Leapの方のLXQt版は提供されていないようです。ダイレクトリンクは404 Not Foundになっていますし、general download directoryとやらをチェックしても存在しないようです。

FTPからダウンロードする場合はファイル名がraspberrypi3.aarch64.raw.xzのものと、efi.aarch64.raw.xzのものがあるので要注意です。

42.2 Leap、Tumbleweed、Tumbleweed (non-upstream ) のそれぞれ3系統試しましたが、私の環境ではTumbleweed (non-upstream )以外は正常に動作しませんでした。

42.2 Leap に関してはログインプロンプトが表示されるにもかかわらず自動的にGUIに切り替わるタイミングでフリーズ。一方、無印のTumbleweedは起動自体は成功しますが、GUIの起動に失敗してフリーズして使い物にならないです*1

手持ちのmicroSD 3種類で試してダメだったので、microSDとの相性ではなさそうです。HDMIモニタのせいなのか、ググっても情報がないので諦めモードです。

Tumbleweed (non-upstream )については初回起動時は途中でフリーズしますが、電源オフして再度電源を投入すると起動できました。最初はLXQt 環境で行きたかったのですが、スクリーンショットが取れなかったのでXFceに切り替え。

上記リンク先の、"Installing the 64-bit non-upstream openSUSE Tumbleweed image"という見出しの下にある"XFCE image"からダウンロード。

ファイルのチェック

Linux (Raspbian)で作業しています。macOSの場合はddコマンドのオプションに注意。余計なオプションなしでRaspbianと同様にすればいけるはずです。

まずはダウンロードしたファイルのSHAチェックサムが一致するか確認。チェックサムの記載されたファイルを入手。以下は42.2 Leap の例。

$ get http://download.opensuse.org/repositories/devel:/ARM:/Factory:/Contrib:/RaspberryPi3/images/openSUSE-Tumbleweed-ARM-XFCE-raspberrypi3.aarch64-2017.01.28-Build4.3.raw.xz.sha256
 <skip>
$ cat openSUSE-Tumbleweed-ARM-XFCE-raspberrypi3.aarch64-2017.01.28-Build4.3.raw.xz.sha256
 <skip>
$  sha256sum openSUSE-Tumbleweed-ARM-XFCE-raspberrypi3.aarch64-2017.01.28-Build4.3.raw.xz
 <skip>

目視で比較はスマートではないという場合は、*.sha256ファイルとチェック対象が同一ディレクトリに存在するものとして*2下記を実行する。「完了」と表示されていれば問題なし(2行目)。警告が出ているのはチェックサムを記録しているファイルに署名がくっついているためだと思う。

$ sha256sum -c openSUSE-Tumbleweed-ARM-XFCE-raspberrypi3.aarch64-2017.01.28-Build4.3.raw.xz.sha256
openSUSE-Tumbleweed-ARM-XFCE-raspberrypi3.aarch64-2017.01.28-Build4.3.raw.xz: 完了
sha256sum: 警告: 書式が不適切な行が 14 行あります


なお、mac環境ではsha256sumじゃなくてshasumコマンドを使う。

$ shasum -a 256 openSUSE-Leap42.2-ARM-XFCE-raspberrypi3.aarch64-2017.01.20-Build1.1.raw.xz

*.sha256ファイルに記載のチェックサムと一致していればOK。よりスマートにやるなら-cオプションを使う。

$ shasum -a 256 -c openSUSE-Leap42.2-ARM-XFCE-raspberrypi3.aarch64-2017.01.20-Build1.1.raw.xz.sha256
openSUSE-Leap42.2-ARM-XFCE-raspberrypi3.aarch64-2017.01.20-Build1.1.raw.xz: OK
shasum: WARNING: 14 lines are improperly formatted

配布元のサイトの、対応するファイルに記載されているチェックサムと一致すればダウンロード成功。

定期的にファイルが更新されるようなのでファイル名に含まれる日付部分はダウンロードしたファイルに合わせて変更する必要あり。

microSDへのデータ書き込み

USB接続のカードリーダーをラズパイにつないで作業。microSDをセットすると勝手にマウントされるのでまずはマウント解除。

まず確実に対象デバイスをマウント解除。XXXはマウントポイント名。

$ sudo amount /media/pi/XXX


対象ファイルをddで書き込み。ラズパイ以外の環境で/dev/sdaはルートパーティションなので注意。

バイス名はdmesg | grep sdmountの出力を確認すれば特定できるはず。

$ xzcat openSUSE-Tumbleweed-ARM-XFCE-raspberrypi3.aarch64-2017.01.28-Build4.3.raw.xz | sudo dd bs=4M of=/dev/sda iflag=fullblock oflag=direct;  sync 
906+0 レコード入力
906+0 レコード出力
3800039424 バイト (3.8 GB) コピーされました、 506.372 秒、 7.5 MB/秒

macOSでは4M4mに、デバイス名にiflagoflagは外す。またデバイス名も/dev/rdiskNのようにrをつける。

私の環境では10分ぐらいでした。コーヒーでも紅茶でも飲んでのんびり待つだけ。

あとはmicroSDを取り出して、ラズパイ側に差し込んで電源ON。

f:id:atuyosi:20170203014649p:plain

インストール後の諸設定

初回起動時は普通にGUIの軌道にコケる。画面左上にアンダーバーが表示されてフリーズ。

電源をオフにして再度電源を入れるとしれっとログイン画面が表示される。

初期ユーザー名はrootでパスワードはlinuxというのがopenSUSEのデフォルトらしい。

デスクトップ環境さえ起動してしまえばあとはGUIのツールからユーザーを追加できる。

atuyosi@localhost:~> uname -a
Linux localhost.localdomain 4.4.44-8-default #1 SMP Mon Jan 30 06:03:56 UTC 2017 (345bd0b) aarch64 aarch64 aarch64 GNU/Linux

いいですね、このaarch64という文字列が見たかった。

ところでこのプロンプトは一体。

f:id:atuyosi:20170203030613p:plain

まあ別にいいけど。

初回起動時の挙動

初回起動時のみそれなりに時間がかかる。そしてフリーズする。

かなりやんちゃなことをやっている印象。三番目はかなり危険だと思うんですけど。

パーティションの拡張とかしてるせいで初回起動時にコケるのかなあと。

また、swapサイズはかなり小さかったはず。500MBぐらい。

色々

SUSEといえばGUIの管理ツールであるYast

画面左下の"openSUSE"というメニューから"Settings"をポイントして展開されるメニューから"Yast"。

f:id:atuyosi:20170203014706p:plain Yast から"Language"をクリックして"Primary Language" をJapanese にするだけ。プルダウンポックスの下のチェックボックスを有効にするとキーレイアウトも面倒を見てくれるはず。

f:id:atuyosi:20170203014626p:plain

f:id:atuyosi:20170203014809p:plain

初回は追加パッケージをインストールするようなので時間がかかる。再起動してログイン画面から言語とキーボード配列を日本語(ja_JP.UTF-8)にしてログインすればOK。

画面左下のメニューからYast を起動して、"Software Management"をクリックするとGUIでソフトウェアをインストールできる。

fcitx-mozcをインストールして一旦ログアウトしてログインし直せば、日本語も入力可能。

f:id:atuyosi:20170203020855p:plain

f:id:atuyosi:20170203021208p:plain

fcitx 自体の設定は他の環境と同じ。日本語キーボードとmozcを追加して英語キーボードを削除する。

XFce の設定

画面左下の"openSUSE"というメニューから"Settings"をポイントして"Settings Manager"。

デスクトップの外観などの細かい設定はこっちから。

そのほか

  • 画面解像度がおかしい(1824x984、変更不能?)
  • HDMIモニタのスピーカーが使えない
  • 無線LANはデバイスが見えていない?
  • 初期状態ではsshは起動していない(というか、sshのホストキーが正常に読み出せていない)
  • 初期状態では日本語入力用のソフトウェアはインストールされていない

まだベータ版なんでしょうか。そもそもユーザー数が少ないのかな。

まとめ

ベンチマークは面倒だし省略。体感速度は結局、microSDの性能次第だという印象です。

デバイスドライバ完備の Raspbian と比べると常用は厳しそう。Fedora 26に期待。


それではまた。

*1:日付が表示されるところでストップしてそこから進まない

*2:なおかつファイルのあるディレクトリに移動する