Dynabook tab s80/fにChromeOS FlexをインストールしてChromebook化


# １．始めに
　古いPCやWindowsタブレットを活用するのに、GoogleはChromeOS Flexを出しました。かなりの少し前のノート等はGoogleの提供するインストーラで動作しますが、サポートしていないデバイスがあるなど、いくつかの制約があるようです。今回使用した東芝のDynabook tab s80/fについても、通常の方法でデバイスにインストールはできますが、Wifiが認識できずに、そのままでは初期設定すらできません。今回の例では、Wifiおよびサウンドのドライバを強制的に突っ込んで、単体で動作させるようにするまでを記事にしました。（自分の備忘録でもあります。）そのほかの機種でのインストールのヒントになれば幸いです。

# ２．準備するもの

- Dynabook tab s80/f　以下、本体と呼びます
- USBメモリ3個　１つはChromeOS Flexインストーラ、1つはUbuntuインストーラ、１つはドライバ移植用
- USBイーサアダプタ　無いと初期設定をクリアできない
- USBキーボード（無いとつらい）
- USBマウス（同じく無いとつらい）
- USBハブ　複数のUSB機器をつなぐために必要
- USB OTGケーブル　100均でたまに売られています。本体とUSBハブをつなぐのに使用
- PC 各種ダウンロード用。Windowsであれば、WSLが動くと便利（これを前提）

# ３．手順
## 3-1.本体へのChromeOS Flexのインストール
　　公式のやり方でインストールしてください。普通に本体にインストールができます。OTGケーブル＋USBハブを本体に接続し、USBハブにインストーラUSBとイーサアダプタ（もちろんネットにつながっている）を接続してください。本体でブートメニューの出し方は、音量の+ボタンと電源ボタン同時押しで選択画面が出ますので、インストーラUSBを選択してください。まもなくインストーラが起動しますので、手順通りに操作して下さい。イーサネット経由でネットワークが接続されていれば、再起動後の初期設定も進めると思います。イーサアダプタがないとWifi接続できないため、ここで詰まります。

## 3-2.開発コンソールを有効化する
　開発コンソールが立ち上がらないと、本体のファイルの変更等全くできません。bootファイルの中のgrub.cfgを変更して開発コンソールを有効化します。[ここのページの方法](https://yukineko.me/archives/1065)をまるまる利用して有効化します。
　まず本体の電源を落として、USBハブのChromeOS FlexのインストールUSBを抜いて、代わりにUbuntuのインストールUSBをさして、Ubuntuを立ち上げます。「Ubuntuを試す」の項目を選び、コンソールを開いて、sudo suでrootになります。本体のフラッシュにあるefiのデバイスをマウントします。efi/boot/の下にあるgrub.cfgをviなどで開いて、4か所にcros_debugを追加します。追加箇所は上記方法のページを参照してください。保存したら、再起動して、ChromeOSを立ち上げてください。ctrl+alt+tで廃初コンソールが開くようになっているはずです。

## 3-3.ChromeOSの/以下を書き込み可能にする
　[先ほどと同じ作者さんのこのページ](https://yukineko.me/archives/1076)を参考にして作業をします。本体で開発コンソールを開き、そこで以下を行います。なお以下、$はユーザーモード#はrootモードでのコマンドになります。

```
$ sudo su
# /usr/share/vboot/bin/make_dev_ssd.sh --force --remove_rootfs_verification --partitions 4
# /usr/share/vboot/bin/make_dev_ssd.sh --force --remove_rootfs_verification --partitions 2
# reboot
```

リブート後、もう一度開発コンソールを開き、

```
$ sudo su
# mount -o remount,rw /
```

で/以下の変更が可能となります。

## 3-4.Wifiドライバのダウンロード
作業PCで、以下のリンクから、wifiドライバの.debファイルをダウンロードします。

https://packages.debian.org/en/buster/firmware-brcm80211


ページ下のほうの「all」のリンクをクリックして、適当なftpサイトからダウンロードしてください。
作業PCのWSL上の見える場所にファイルを移し、以下のコマンドを実行してください。

```
$ ar vx firmware-brcm80211_20190114-2_all.deb
$ tar xvf data.tar.xz
$ cd lib/firmware/
```
ファイルのうち、
brcm/brcmfmac4356-pcie.bin
をドライバ移植用USBにコピー
cypress/cyfmac4356-pcie.clm_blob
を
brcmfmac4356-pcio.clm_blob
にリネームしてドライバ移植用USBにコピーします

## 3-5.Wifiドライバをインストール
　本体の開発コンソールで/を書き込み状態にします。
　ドライバ移植用USB内のWifiドライバ２個をコピー等以下の作業をします。

```
# cd /lib/firmware/brcm/
# cp /media/removable/XXX/brcmfmac4356-pcie.bin .
# cp /media/removable/XXX/brcmfmac4356-pcio.clm_blob .
# ln -s brcmfmac4356-pcie.gpd-win-pocket.txt brcmfmac4356-pcie.txt
# reboot
```
XXXはUSBメモリによって変わると思われます。
USBイーサアダプタをはずしてリブートすると、Wifiが動作しているはずです。

## 3-6.サウンドドライバを取得とインストール
また作業PCで以下のリンクからサウンドドライバの.debファイルをダウンロードします。

https://packages.debian.org/buster-backports/firmware-intel-sound

ページ下のほうの「all」のリンクをクリックして、適当なftpサイトからダウンロードしてください。
作業PCのWSL上の見える場所にファイルを移し、以下のコマンドを実行してください。

```
$ ar vx firmware-intel-sound_20210315-3_bpo10+1_all.deb
$ tar xvf data.tar.xz
$ cd lib/firmware/intel/
```
fw_sst_22a8.bin
をドライバ移植用USBにコピーします。
本体の開発コンソールで/を書き込み状態にします。
ドライバ移植用USB内のサウンドドライバ１個をコピー等以下の作業をします。

```
# cd /lib/firmware/intel/
# cp /media/removable/XXX/fw_sst_22a8.bin .
# reboot
```

## 3-7.ALSA UCM設定ファイルをコピー、設定

WSL上でgitからファイルをダウンロード

```
$ git clone https://github.com/plbossart/UCM
```

この中から
UCM/chtrt5645/
をディレクトリごとコピーします。

開発コンソールで/を書き込み状態にします。
コピー等を行います。

```
# cd /usr/share/alsa/ucm/
# cp -r /media/removable/XXX/chtrt5645 .
# chmod -R 755 /usr/share/alsa/ucm/chtrt5645/
# alsaucm -c chtrt5645 set _verb HiFi set _enadev Speaker
```

これで音が鳴るはずです。
テストのため、リブートして、YouTubeなどで音声が出るか試してください。

# ４．最後に
　お疲れ様でした。これでWifiと音声（少なくとも再生）は有効化されて、YouTubeを閲覧するくらいには使えるようになったと思います。あとはマイクとカメラを有効化するとZoomとかできそうですが、当面使う当てがないので現在後回しにしています。どなたかチャレンジしてみてください。

# ５．参考サイト


Chrome OS Flexで開発者モードを有効にする

https://yukineko.me/archives/1065

Chrome OS Flexに無線LANドライバを突っ込んでWiFi (とBluetooth)を使えるようにする

https://yukineko.me/archives/1076

Debianパッケージサイト　：　ドライバ取得

https://www.debian.org/distrib/packages

ALSA UCMのgit

https://github.com/plbossart/UCM