
Q4OSのこと ~初代AtomでQ4OS~ [GitHubからBCM70015ドライバ?編]
今回も下記からの続き。
さて、Q4OS…と言うか、其の大本になって居るDebianだが、Crystal HDデコーダのドライバパッケージが公式リポジトリのnon-freeセクションからインストール出来る筈であった。ところが、該当パッケージをインストールしようとすると、パッケージが無いと言うエラーが返って来る。あれ?
Synapticを使ってパッケージを検索するが、コーデックパッケージは有る物のドライバパッケージが無い。おやぁ??
既知のパッケージ名でネット検索するが、Debian stretchまでの物しか引っ掛からず、buster用は無い。パッケージデータベースを当たると、busterでは廃止された由。代替パッケージも無い。オイオイ…
stretch用のパッケージを落として来てローカルインストールしてみたが、上手く行かなかった。ドライバがロードされない。コピーされるディレクトリが間違っているのかとドライバファイルを探してみてもストレージ内で行方不明。うーむ。busterではそれ以前のメジャーバージョンとはパーミッション取得/継承の範囲が異なっているとかで、Gdebiがきちんと動作しないのも此の辺が関わっているらしいのだが、これも似た問題なのだろうか。
同じDebian busterベースのSparky Linuxではstretch用のドライバをリパックしたと思しき物をSparkyリポジトリ内に持っているのを確認したので、其れを使う事も考えたのだが、生憎空きマシンは無かった為、別マシンを仕立ててそちらからパッケージを抜き取ると言うのも遣り難い。
元々BCM70015の情報を漁っている時にUbuntuでの事例が矢鱈ヒットしていて、そちらではドライバを外部のソースに求めてビルドしてインストールするのが常道であったので、Ubuntuに倣ってみる事にした。
早速情報を集め直すも、どうにも情報が古い。紹介されている外部のソースも、覗きに行ってみると最終更新が2012年だったりと、現行のカーネル/ディレクトリ構成と齟齬を来しそうな感じで今一つインストールが躊躇われる。古いハードウェアだからなあ。盛んに取り沙汰されていたのは2010年から11年に掛けてだった様だし。
そんな中、極最近迄更新を繰り返しているGitHubリポジトリを見付けた。
ふむ、此処ので挑戦してみますかね。
先ずは下準備。gitツールとビルドツールのインストールである。
sudo update
sudo apt install git build-essential dkms subversion automake autoconf debhelper
該当ページではビルドの為に非常に多くのパッケージをインストールするよう案内されているが、此れは当時のUbuntuに合わせた物である。
バージョン3.14以降のQ4OSではパッケージ統合されていたりAPTの依存解決でインストールされる設定である物も多く、上記の通りにインストールを行えば問題無い筈だ。
標準手順ではこれでgitリポジトリをローカルにクローンするのだが、その場合/home/user/以下にフォルダとして作られる。しかし、標準手順のまま進めるとどうも具合が悪い。此の後のmakeの際にテンポラリとして使う場所への書き込み権限が上手く取れないらしくて失敗するのだ。sudo makeと遣っても駄目だった。どうやら権限の継承がサブプロセス迄きちんと行われないらしい。busterの特徴である権限管理の厳格化が此処でも響いている。
なので、ここでターミナルをsuしてスーパーユーザーモードに入るか、若しくは最初からKonsoleをスーパーユーザーモードで開いて作業を始めた方が良いと思われる。
当時の私は、sudo cd /で権限を取得した状態で/ディレクトリ以下にローカルリポジトリを作成して以後の作業を行うと言うLinux的に非常にお行儀の悪い遣り方で回避をしたが、こんなのは決して真似してはいけない。
先へ進もう。gitリポジトリのローカルコピーを作成する。
git clone https://github.com/dbason/crystalhd.git
クローニングが終了したらドライバの作成である。カレントディレクトリを移そう。
cd crystalhd/driver/linux
makeしてinstallする。かなり時間が掛かる。
autoconf
./configure
make
sudo make install
DualコアAtomであれば、makeではなくmake -j2とする事で2コアの両方に作業が割り振られるので時間の短縮になる。4コアならmake -j4だ。N270の様に物理コアでなくハイパースレッディングで2ストリームを処理している場合はmakeの作業効率が上がらないので残念乍ら無意味。
GitHubの手順では此の後libcrystalhdのmakeとinstallをする様になっているが、此方はDebianリポジトリからlibcrystalhd3パッケージをインストールすれば済むので、無視して構わない。飛ばしてドライバをロード。
sudo modprobe crystalhd
システムをシャットダウンし、再び起動して状態をチェックする。
lspci -v
BCM70015を見つけて、下部の詳細に
kernel driver in use: crystalhd
kernel modules: crystalhd
と言う記述が在ればOK。
sudo apt update
sudo apt install libcrystalhd3
として、ライブラリもインストールしておこう。
さあ、これが終わればいよいよプレイヤーの再選定とテストである。
続きはまた次回…