Crostini

提供: ArchWiki
移動先: 案内検索

Crostini は Chrome OS で Linux アプリケーションを簡単に使えるようにするサポートの Google による総称です。

この記事ではコンテナで (Crostini を使って) Chromebook に Arch Linux をインストールする方法を説明します。デベロッパーモードを有効化する必要がなく、他の Chrome/Android アプリと一緒にアプリを動作させることができます。

メリット
  • デベロッパーモードを有効にする必要がありません。公式にサポートされており、ChromeOS を変更したり、BIOS を書き換えなくてすみます。
  • バッテリーの持ちが良くなります。Linux を使いながら Chrome のバッテリーの持ちを活かせます。
  • Android アプリや Play ストアを使用できます。
デメリット
  • OpenGL がサポートされていません (2018年11月24日現在)
  • 音声出力がサポートされていません (2018年11月24日現在)

イントロダクション

Linux のサポートの有効化

設定の Linux を開いて有効化してください。Debian Linux コンテナがインストールされるので、後から Arch Linux コンテナに置き換えます。

Settings > Linux > Enable

Crostini は Chromebook にローリングリリースされています。Linux を有効化するオプションが存在しない場合、あなたの使用しているノートパソコンの安定版チャンネルでまだリリースされていない場合、ベータあるいはデベロッパーチャンネルに切り替える必要があります。Settings > About Chrome OS > Channel > Dev/Beta からチャンネルを切り替えられます。

デフォルトの Debian Linux コンテナを Arch Linux に置き換える

以下の手順は https://www.reddit.com/r/Crostini/wiki/howto/run-arch-linux から引用しています。

1. Arch Linux コンテナのインストール

Chrome で新しいターミナルを開いて (Alt + Shift + T)、ターミナルに接続して Arch Linux コンテナを作成:

vsh termina
run_container.sh --container_name arch --user <gmail username> --lxd_image archlinux/current --lxd_remote https://us.images.linuxcontainers.org/

<gmail username> は Chromebook でログインしているユーザーに置き換えてください。@gmail.com とドットは取り除きます。例えば foo.bar@gmail.com なら --user foobar とします。ChromeOS のランチャーから起動したアプリは指定したユーザーで実行されます。

2. デフォルトの Debian コンテナを Arch Linux で置換

デフォルトの Debian コンテナの名前は penguin です。上記で作成したコンテナ "arch" を penguin に名前を変えることで、Chrome は arch コンテナから Linux アプリを起動するようになります:

lxc stop arch
lxc stop penguin
lxc rename penguin debian
lxc rename arch penguin

3. gmail ユーザーのパスワードを設定

デフォルトでは gmail ユーザーにはパスワードが設定されていません。lxc exec を使ってパスワードを設定してください:

lxc exec arch -- bash

sudo を追加してユーザーを sudoers に追加すると良いでしょう。

4. Crostini コンテナツール、GUI アプリを使うための Wayland と、X11 アプリを使うための XWayland をインストール

Arch Linux コンテナのコンソールセッションを開いてください:

lxc console penguin

cros-container-guest-tools-gitAUR パッケージをインストールしてください。また、GUI ツールを使うために waylandxorg-server-xwayland をインストールしてください。

2018年11月24日現在、xkeyboard-config 2.24 では sommelier-x サービスが動きません。/usr/share/X11/xkb/keycodes/evdev の "<i372>" と "<i374>" から始まる行をコメントアウトすることで問題が解決します。修正したらサービスを有効化・起動してください。

$ systemctl --user enable sommelier@0      # For Wayland GUI apps
$ systemctl --user enable sommelier-x@0    # For X11 GUI apps
$ systemctl --user start sommelier@0      # For Wayland GUI apps
$ systemctl --user start sommelier-x@0    # For X11 GUI apps

以下のコマンドを実行してサービスが正しく動作していることを確認してください:

$ systemctl --user status sommelier@0
$ systemctl --user status sommelier-x@0

Arch Linux でアプリをインストールすると、自動的に ChromeOS から起動できるようになります。GUI アプリは動作しますが、レンダリングはソフトウェアベースで、OpenGL はサポートされていないので注意してください。

既知の問題

動作することを確認:

  • Pycharm

動作しないことを確認:

  • Gnome (No OpenGL)
  • glxgears (No OpenGL)
  • Audacity (No recording devices)

トラブルシューティング

Pixelbook でネットワークが動作しない

Pixelbook でネットワークを動作させるには以下の設定が必要であると https://tedyin.com/posts/archlinux-on-pixelbook/ で報告されています。設定後、コンテナを再起動してください。

lxc profile set default security.syscalls.blacklist "keyctl errno 38"

DNS による解決が機能しない

DNS 解決がコンテナで機能しないことがあります。/etc/resolv.conf を作成することで解決します。

Chrome OS でアプリが開かない (ロードが終わらない)

コンソールセッションを起動していると (lxc console penguin)、Chrome OS でアプリが起動しないことがあります。コンテナを一度停止してから再起動することで Chrome OS ランチャーが動くようになります:

lxc stop penguin
lxc start penguin

lxc のコンソールセッションを使うかわりに、ChromeOS から起動した Linux の標準的な GUI ターミナルを使うことで問題を回避できます。