・linux-4.16 と VirtualBox
Plamo-7.0は、LTSになっている4.14系で行こうと思っているものの、 meltdown/spectre 対応が進んでいる4.16系も気になっているのでビルドしてみた。
例のごとく、VirtualBox上のテスト用環境でスナップショットを取ってからインストールしてみたところ、問題なく起動するものの、VirtualBoxが開いているXウィンドウのサイズが動的に変化しない。
あれれ、、と思って調べてみると、VirtualBox環境用のKMSなドライバ、vboxvideo なモジュールがロードされていない。
確か vboxvideo なモジュールはカーネルのバージョンに依存して、カーネルを更新するとソースコードのツリーを元に再構築していたはずなので、kernelsrc パッケージを更新し忘れたのかしらん、、とチェックしても問題なし。手動で
/etc/rc.d/init.d/vboxadd setup
を実行しても異常終了するわけでもないのに何もビルドしてくれない気配。
おかしいな、、と思って、4.14系のカーネルに戻してみると再起動時に vboxvideo がビルドされ、従来通り、画面サイズを動的に変更できる環境になる。
linux-4.16 になって何か変ったのだろうか、、と調べてみたところ、4.16 ではvboxguest と vboxvideo なドライバはカーネル本体に取り込まれているらしい。
じゃぁカーネルビルド時の設定ファイルか、と調べて行くと、vboxguest は
Device Drivers => Virtualization Drivers => VirtualBox Guest Integration Support
でモジュールとしてビルドすることになっている。一方、vboxvideo なドライバがどこにあるのかと言うと、テスト版レベルを示す Staging Drivers 内にあった。
Device Drivers => Staging Drivers => VirtualBox Graphics Card
これらのドライバは 4.16 になってマージされたらしく、 4.14 系の config ファイルを元にした make oldconfig では、 stagingレベルとされたvboxvideoなドライバは有効化されないらしい。
一方、VirtualBox側では、カーネル本体にマージされたドライバはビルド不要、と判断するようで、vboxvideo なドライバがビルドされないままになってしまう。
make menuconfig で
Device Drivers => Staging Drivers => VirtualBox Graphics Card
を手動で選んでカーネルを再構築、再パッケージしてやれば、無事、従来通り、vboxvideo が機能して、動的に画面サイズを変化させられる環境が復旧した。
このあたり、結構ハマりそうなのでメモしておく。