chromebookでSDカードにcroutonとchromebrewを両方インストール
C204EE というchromebookを入手後ほぼ使っていませんでしたが今更ながら使ってみました
cerelon N4000 メモリ4GB HDD16GB
画面は小さいものの電池持ちは良く、耐衝撃で防滴仕様、ハードに使える印象です。負荷中は熱くなりやすいです。
crostiniも使えますが、コンテナ使用、直接ext4を扱えないといった問題があり、パフォーマンスの点でchromebrewやcroutonの優位性があると言っていいでしょう。重い作業をしないならcrostiniで十分です。
16GB中は半分システムが確保しているので使えるのは8GB、そのうちゲストモード用に1.8GBを確保しているので6.2GBしか使えません。初期化後ログインした後、残5.2GBという厳しい状況です。特にchromebrewはたくさんのライブラリをインストールして使わないライブラリ依存関係を考慮しないで溜め込む仕様ですので容量問題は重要です。初期化後一つアプリを入れるだけで容量オーバーになることもありました。
この方法はシンボリックリンク使ってSSD上にデータを置かない方法です。他のサイトでもSDカードにインストールする方法が出ています。しかしこの方法は、ショートカットを本体に置くだけでデータは全てSDにおいています。なのでいつ本体を初期化してもデータは失いません。またchromebrewも同時に共存できています。
基本的にSDを酷使するためにバックアップはこまめに取っておくことを推奨します。自分はgoogleドライブの100GBを契約して最大限活用しています。
chromebrewのインストールをテストして、micoSDカードから起動する方法に切り替えます。
シンボリックリンク使ってSSD上にデータを置かない方法です。
この方法だと本体にデータを置かないので気軽にリセットできますね。
できるだけ容量を確保するために、初期化後、ログインしないでゲストモードでセットアップ、テストをして、それをmicroSDにコピーして microSDからubuntuを起動するほうが効率が良いと思います。ログイン前の画面でCTRL+ALT+SHIFT+Rで初期化できます。
またUSB3.0のメモリよりSDのほうが書き込み速度が早いのでSDメインで使います
chromebrewとcroutonの違い
chromebrewはchromeOSのcroshにのcrewパッケージシステムを追加します
制限なし パッケージが少ない SDカード起動だと安定性にかける
croutonはchromeOSのカーネルを利用してコンテナから起動させる
コンテナ特有の制限あり。例えばカーネルやハードウェアに関する制限を受ける
例、USBハードウェアを認識しない VPNを使えないなど。
chromebrewはchromeOS上のアプリのように使えるので使いやすい印象です。clostiniのようにコンテナ上で動かさないのでパフォーマンスは優れています。日本語入力は現状できていません。
croutonはxiwi起動だと描画が乱れやすい。xorgなら安定しています。
SDカードがスリープするとマウント解除される問題があります。復帰時にnoexecマウントするのですが、chromebrewだとライブラリや実行ファイルが実行できなくなり本体ごと固まります、crostiniだと落ちるくらいですみますが、SDへのダメージは避けられません。
USBだと問題ないという情報もありましたが、自分の環境ではUSBもスリープ時にマウントされる場合が多かったです。またスリープ時以外にも瞬間的にマウント解除され、固まることもありました。これでは常用は難しいです。
。
解決策として、デフォルトでは/media/removable/にマウントされるのをアンマウントしてhomeフォルダ以下にマウントします。
ここでは/home/chronos/user/SDにマウントしています。
この設定をしてから一度もアンマウントされず安定しています。~/.bashrcに記述しておくと楽です。
chromeOSのファイラーからマウントを解除 または
sudo umount /dev/sda1 /removable/media/SD
/home/chronos/user/SDに権限追加してマウントします。
mkdir ~/SD
sudo mount -o exec,suid,dev,symfollow /dev/sdb1 /home/chronos/user/SD
ディベロッパー時電源オン画面スキップ方法
ctrl + D
crouton integrationインストール
これとxiwiまたはextensionをいれることによってクリップボードの共有が可能になります。
https://goo.gl/OVQOEt
セキュリティーのための開発者パスワードの設定
ctrl + alt + T
shell
sudo chromeos-setdevpasswd
sudo crossystem dev_boot_signed_only=1
インストールする拡張機能の確認
crouton -t help
cli-extraはchromeosのshellで、操作できるようにする。
extensionは拡張機能と併用することでクリップボード共有
keyboardはchromebookのキーボードレイアウト追加
紛らわしいが、Requires以下の機能は依存関係にあるので自動的に入る
ので書かなくても良い
(例 )cli-extraを入れるとcoreは依存関係で自動的に入る
xiwiをいれるとaudioとextensionは依存関係で自動的に入る
(例 )xiwiをいれるならaudioとextensionはいらない
audio
Support audio playback via Chromium OS's audio system.
Requires: core
chrome
Google Chrome browser, stable channel.
Requires: x11
chrome-beta
Google Chrome browser, beta channel.
Requires: x11
chrome-dev
Google Chrome browser, dev channel.
Requires: x11
chromium
Chromium browser. Uses the distro's version, which may be old.
Requires: x11
cli-extra
Basic CLI tools such as ssh.
Requires: core
core
Performs core system configuration. Most users would want this.
e17
Installs the enlightenment desktop environment. (Approx. 50MB)
Requires: gtk-extra
extension
Clipboard synchronization and URL handling with Chromium OS.
Requires: x11
gnome
Installs the GNOME desktop environment. (Approx. 400MB)
Requires: gtk-extra
gnome-desktop
Installs GNOME along with common applications. (Approx. 1100MB)
Requires: gnome
gtk-extra
GTK-based tools including gdebi and a simple browser.
Requires: x11
kde
Installs a minimal KDE desktop environment. (Approx. 600MB)
Requires: x11
kde-desktop
Installs KDE along with common applications. (Approx. 1000MB)
Requires: kde
keyboard
Adds support for Chromebook keyboard special keys.
Requires: x11
kodi
Installs the KODI media player. (Approx. 200MB)
Requires: x11
lxde
Installs the LXDE desktop environment. (Approx. 200MB)
Requires: gtk-extra
lxde-desktop
Installs LXDE along with common applications. (Approx. 800MB)
Requires: lxde
touch
Touchscreen and limited generic gesture support.
Requires: x11
unity
Installs the Unity desktop environment. (Approx. 700MB)
Requires: gtk-extra
unity-desktop
Installs Unity along with common applications. (Approx. 1100MB)
Requires: unity
x11
X11 via autodetected backend. Does not install any desktop environment.
xfce
Installs the Xfce desktop environment. (Approx. 250MB)
Requires: gtk-extra
xfce-desktop
Installs Xfce along with common applications. (Approx. 1200MB)
Requires: xfce
xiwi
X.org X11 backend running unaccelerated in a Chromium OS window.
Requires: audio extension
xorg
X.Org X11 backend. Enables GPU acceleration on supported platforms.
Requires: audio
インストールするOSのバージョン確認
crouton -r help
Recognized debian releases:
potato! woody! sarge! etch! lenny! squeeze! wheezy! jessie! stretch! buster
bullseye bookworm sid
Recognized kali releases:
moto! kali! sana! kali-rolling
Recognized ubuntu releases:
warty! hoary! breezy! dapper! edgy! feisty! gutsy! hardy! intrepid! jaunty!
karmic! lucid! maverick! natty! oneiric! precise! quantal! raring! saucy!
trusty! utopic! vivid! wily! xenial yakkety! zesty! artful! bionic* cosmic!
disco! eoan! focal* groovy! hirsute! impish*
Releases marked with ! are upstream end-of-life, and should be avoided.
Releases marked with * are unsupported, but may work with some effort.
!はサポート終了 *は不安定
sidとkali-rollingはついてないがデスクトップ環境はカーネルが古いためXorgで動作しません。 xiwiでは動作します。
AddScreen/ScreenInit failed for driver 0
Kernel is too old for Irisでエラー
xenial bionic focalは*だが動作します。
bionicの32bit版と focalの64bit版をインストールしてみます。バックアップをこまめに取っておくと問題が起こったときに役に立ちます。
croutonインストール
https://goo.gl/fd3zc からcroutonダウンロード
ctrl + alt + T
shell
/usr/loca/binではなくSDカードにcroutonインストールします。
sudo install -Dt /home/chronos/user/SD128/crouton/bin -m 755 ~/Downloads/crouton
/usr/loca/binにシンボリックリンクを張ります
ln -s /home/chronos/user/SD128/crouton/bin/* /usr/local/bin
bionic 32bit bootstrapバックアップ dオプションはダウンロードするだけです。 fオプションはbootstrapとバックアップ指定します。
sudo crouton -r bionic -a i386 -d -f /home/chronos/user/SD128/crouton/backup/bionic_i386_bootstrap.tar.bz2 -m http://ftp.riken.go.jp/Linux/ubuntu/
bionic 32bit bootstrapからcli-extraインストールします。
pオプションはchrootsとbinインストール先を指定します。 デフォルトは/user/localです。
sudo crouton -t cli-extra -f /home/chronos/user/SD128/crouton/backup/bionic_i386_bootstrap.tar.bz2 -m http://ftp.riken.go.jp/Linux/ubuntu/ -p /home/chronos/user/SD128/crouton/
バックアップ
sudo edit-chroot -b bionic -c /home/chronos/user/SD128/crouton/chroots -f /home/chronos/user/SD128/crouton/backup/bionic-i386-cliextra.tar.bz2
リストアする場合
sudo crouton -f /home/chronos/user/SD128/crouton/backup/bionic-i386-cliextra.tar.bz2
croutonとbionicを削除する場合
シンボリックリンクとchrootを削除します
cd /usr/local/bin
sudo rm -f crash_reporter_wrapper crouton delete-chroot edit-chroot enter-chroot mount-chroot startcli unmount-chroot startxfce4
rm -rf /home/chronos/user/SD128/crouton/chroots/bionic
xserver-xorg-video-allが無くて止まる問題はsudo enter-chrootでログインしてインストールします。
The following packages have unmet dependencies:
xorg : Depends: xserver-xorg (>= 1:7.7+19ubuntu7.1)
xserver-xorg-video-intel : Depends: xorg-video-abi-23
Depends: xserver-xorg-core (>= 2:1.18.99.901)
sudo apt install xserver-xorg-core
sudo crouton -t xorg,keyboard,extension,xfce -u -n bionic -p /home/chronos/user/SD/crouton
bionicタッチパッド有効化
bionicからsynapticsからlibinputへ変更になりました。設定が必要になります。
libinputからsynapticsへ戻すには
sudo apt install xserver-xorg-input-synaptics
libinputを使いsynapticsを使わない方法。タッチパッドのタッチは指の腹でしっかり押さないと反応しません
synapticsは指先だけで反応しますが、誤タッチもよくあります。
sudo vi /usr/share/X11/xorg.conf.d/40-libinput.conf
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "Tapping" "On"
Option "ClickMethod" "buttonareas"
Option "DisableWhileTyping" "On"
Option "TappingDrag" "True"
Option "TappingDragLock" "True"
Option "TappingButtonMap" "lrm"
Option "ScrollMethod" "twofinger"
Option "NaturalScrolling" "True"
Option "HorizontalScrolling" "True"
EndSection
タッチパッドの速度調整
xinput list デバイスID確認
xinput list-props 9
Coordinate Transformation Matrix の項目を確認 デフォルトでは以下のようになっています。
Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
最後の数値デフォルトの1から0.5あたりに変更します。少なくすると早くなります。
xinput set-prop 9 145 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000, 0.000000 0.5000000
focal64bitインストール bionicと違って楽です。
focal 64bit bootstrap保存します。
sudo crouton -r focal -d -f /home/chronos/user/SD/crouton/backup/focal_bootstrap.tar.bz2 -m http://ftp.riken.go.jp/Linux/ubuntu/
focal 64bit bootstrapから拡張機能をインストールします。
デフォルトでxorg、 オプション付きでxiwi起動します 逆にしたい場合は前後入れ替えてください。
sudo crouton -t cli-extra,xorg,xiwi,keyboard,xfce -f /home/chronos/user/SD/crouton/backup/focal_bootstrap.tar.bz2
xorgのみの場合
sudo crouton -t cli-extra,xorg,extension,keyboard,xfce -f /home/chronos/user/SD/crouton/backup/focal_bootstrap.tar.bz2
cliのみの場合
sudo crouton -t cli-extra -f /home/chronos/user/SD/crouton/backup/focal_bootstrap.tar.bz2
バックアップ
sudo edit-chroot -b focal -c /home/chronos/user/SD/crouton/chroots -f /home/chronos/user/SD/crouton/backup/focal.tar.bz2
リストア
sudo crouton -f /home/chronos/user/SD128/crouton/backup/focal.tar.bz2
crouton起動方法
ctrl + alt + T
shell
sudo enter chroot
xfce動作テスト
croshからshellを開いて
xorg起動するには sudo startxfce4 ハードウェア描画
xiwi起動するには sudo startxfce4 -X ソフトウェア描画
xiwiでtabに表示させるには sudo startxfce4 -X xiwi-tab
Ctrl+Alt+Shift+Back chromeOSに切り替え
Ctrl+Alt+Shift+Forward croutonに切り替え
次にchromebrew をインストールします。
curl -Ls git.io/vddgY | bash
でセットアップが始まり、/usr/local以下にインストールされます。
バックアップします
cp- rna /usr/local /home/chronos/user/SD/crew/backup/firstsetup/usr
不具合があれば/usr/local/以下を全削除してください。
cd /usr/local
rm -rf * .cache .config
リストア
cp -rna /home/chronos/user/SD/crew/backup/firstsetup/usr/local /usr/
chromebrewをSDカードに入れた場合の不具合
再起動時の不具合に注意
ログイン時にSD上のライブラリをnonexecマウントで読み込むため、SDから参照ができなくてエラーになります。
bashrcにexecマウントを記述しても同様。
ログイン前のVT-2モードで/usr/localを読み込まなくて
おかしくなったら/user/local以下の bin local64を別の名前にしてからログインしてexecマウントをしてから
名前を元に戻すと言うことが必要でした。
上記の不具合はSDカードのマウントポイントをhome以下にすることで解決できます。
ただし、crew apt upgrarde ができません crew apt updateはできます。
bashrcに次の記述をしています。
vi ~/.bashrc
# Put your fun stuff here.
sudo umount /media/removable/SD
sudo mount -o exec,suid,dev,symfollow /dev/sda1 /home/chronos/user/SD
read -p "${X} crouton? (y/N):" yn
case "$yn" in [yY]*) sudo startxfce4 -n focal ;; *) echo "skipped." ; : ;; esac
source /usr/local/etc/profile
以下のスクリプトファイルを作ります。
cd /usr/local
vi symlinks.sh
#!/bin/sh -x
sudo mount -o remount,exec,suid,dev,symfollow /dev/sda1 /home/chronos/user/SD
export CREW_PREFIX=/home/chronos/user/SD/crew/usr/local
sudo chown -R chronos:chronos /home/chronos/user/SD/crew/usr/local
find /usr/local/ -maxdepth 1 -type l | xargs rm -f
cp -rna /usr/local /home/chronos/user/SD/crew/usr
cd /usr/local
rm -rf .cache .config bin cache chroots etc include lib lib64 libexec man sbin systemd share tmp var
ln -s /home/chronos/user/SD/crew/usr/local/.cache /usr/local/.cache
ln -s /home/chronos/user/SD/crew/usr/local/.config /usr/local/.config
ln -s /home/chronos/user/SD/crew/usr/local/bin /usr/local/bin
ln -s /home/chronos/user/SD/crew/usr/local/cache /usr/local/cache
ln -s /home/chronos/user/SD/crew/usr/local/chroots /usr/local/chroots
ln -s /home/chronos/user/SD/crew/usr/local/etc /usr/local/etc
ln -s /home/chronos/user/SD/crew/usr/local/include /usr/local/include
ln -s /home/chronos/user/SD/crew/usr/local/lib /usr/local/lib
ln -s /home/chronos/user/SD/crew/usr/local/lib64 /usr/local/lib64
ln -s /home/chronos/user/SD/crew/usr/local/libexec /usr/local/libexec
ln -s /home/chronos/user/SD/crew/usr/local/man/ /usr/local/man
ln -s /home/chronos/user/SD/crew/usr/local/sbin /usr/local/sbin
ln -s /home/chronos/user/SD/crew/usr/local/share /usr/local/share
ln -s /home/chronos/user/SD/crew/usr/local/systemd /usr/local/systemd
ln -s /home/chronos/user/SD/crew/usr/local/tmp /usr/local/tmp
ln -s /home/chronos/user/SD/crew/usr/local/var /usr/local/var
crew install hoge
./symlinks.shを実行すると/usr/localを全てSDにコピーしてシンボリックリンクを張ります
export CREW_PREFIX=/home/chronos/user/SD/crew/usr/localで出力先をSDカードにしていますが、
本体に作られることもあるのでそのたびに./symlinks.shを実行してください。
依存関係が多い場合は一気に全部入れないで分けて入れることを推奨します。
usr/local/に実ディレクトリがなく、インストールに失敗する場合、はSDカードからコピーするとインストールできます。
こまめにusr/local以下をバックアップすることをお勧めします。
何か問題があれば再起動すればマウントするまで素の環境で立ち上がるので復旧は容易です。
最後にcroutoのシンボリックリンクを変更します
ln -nfs /home/chronos/user/SD128/crouton/bin/* /home/chronos/user/SD128/crew/usr/local/bin
これでcroutonとchromebrewをSDに移すことができました。
本体にはショートカットをおいているだけの状態です。
crew searchでずらずらっとリストが表示されます
crew search | grep hogeなどで絞り込んでみるといいかもしれません
VMX有効化スクリプト
もともと全てのchromebookはVMXがオフの状態で出荷されているようです。
これはdisableVMX=ONの状態をdisableVMX=OFFにして制限を解くものでした。
アップデート時に不具合も起こすこともあるようなので試すときはバックアップをして自己責任でお願いします。
wineは動きましたが64bit環境のみです。現状32bitのビルドはできません。32bit環境のcroutonのほうが快適です。
qemuとaqemuで windows7は動いていますがKVMを選択して起動すると落ちます。
grep -E –color=auto 'vmx|svm|0xc0f’ /proc/cpuinfo
kvmが表示されるのでハードウエアとしてCPUのVT-Xは有効になっています
lsmod | grep kvm
lsmod | grep virtio
で調べたらvirtioのはありましたがkvmは表示されません
しかし/sys/moduleの中を見るとKVMがしっかり入っています。
sudo dmesg | grep kvmとすると
kvm: already loaded the other moduleとありました。すでに読み込まれているのになぜなのか
genntooのwikiによるとqemuの設定でAMDを無効にすれば回避できるとのことでした
現状日本語入力はできていません。chromeOSはibus-mozcのカスタム仕様ですが、chromebrewからは使えません
chromebrewでibusをインストールして
~/.bashrcに
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
ibus-daemon -drxR
追加してshellを再起動します
ibus list-engineでchromeOS側の入力エンジンが見れます。日本語が入っているのが確認できました。mozcは見当たりません。
language: Other
xkb:jp:dvorak:jpn – Japanese (Dvorak)
xkb:jp::jpn – Japanese
xkb:jp:kana:jpn – Japanese (Kana)
xkb:jp:kana86:jpn – Japanese (Kana 86)
xkb:jp:OADG109A:jpn – Japanese (OADG 109A)
xkb:jp:mac:jpn – Japanese (Macintosh)
ここでibus engine xkb:jp:kana:jpnとする
“setxkbmap” (No such file or directory)のエラーになります。ibus-mozcのビルドが必要そうです。
emacs gvim sublime_text エディタ系はどれも快適に動きます。日本語入力はできていません
composer nginx php mysql LAMP環境も構築できました。
minecraftデモバージョン動作確認できました。java8版+1.165です。FPS10くらいですががmodを入れたらFPS40くらいになりました。
aqemu qemu 動作は重いですがwindowsxp windows7 動きます。現状qemu7.1.0ビルド失敗するのでビルドできたら多少マシになると思います。
wine 動きますが64bitのアプリのみです。 wine使うならcrostiniで32bit版使うほうがいいと思います。
vivaldi google-chrome ブラウザです。英語版ですがchromeOSのものと使用感そのまま同じです。日本語入力はききません。ログインできるのでゲストモードで拡張機能使用したいときに使っています。
ディスカッション
コメント一覧
まだ、コメントがありません