2019-06-19

ifconfig wpi0 downでカーネルが落ちるのを回避する

dynabook SS SX/15Aで利用しているNetBSD/i386のアプリケーションを更新するためにpkg_rolling-replaceを実行しています。今月上旬から初めて10日間を過ぎましたら、まだ続いています。なかなか終わらない理由は、主として次の2つです。
  1. 毎晩必ずカーネルが落ちるので、折角途中まで実行した結果が無駄になってしまう。
  2. マシンのリソース(CPU速度やHDD容量など)が見劣りする。

ビルドに長時間を要するような大物パッケージが幾つかあります。まさに現在処理中なのがlang/rustです。このパッケージをビルドするにはCPU性能の限界により、1日以上かかりそうです。また中間ファイルを生成している最中にディスクが溢れたりします。

さらに悲惨なのが、毎晩カーネルが落ちることです。pkg_rolling-replaceを使用すると、カネールが落ちる直前までのコンパイル結果は全て削除されてしまい、あらためて最初からコンパイルが始まるので、全然作業がはかどりません。

 このままでは永遠にビルドが完了しないので、何とか対処方法を見つけなければなりません。

まずlang/rustを自前でビルドするのを諦めて、ビルド済みの出来合いのパッケージを拾ってきてインストールするだけで済ませようかと思いました。ところがamd64版は見つかりましたが、i386版が見当たりません。やはり自分でビルドするしかないようです。

ビルド中にカーネルが落ちると折角の作業が水の泡なので、 なんとか落ちないようにしておきたいところです。クラッシュダンプを確認すると、カーネルが落ちる場所は決まっていて、無線LANインターフェイスwpiが怪しい感じです。ちょっと乱暴ですが、ifconfig wpi0 downで機能を止めてみました。今のところ、この対処をしてからはカーネルが落ちることはないようです。

pkg_rolling-replaceを使わずに、/usr/pkgsrc/lang/rustで直接makeする方法を試してみました。これなら仮にカーネルが落ちて処理が中断したとしても、途中までの結果が無駄になることはないはずです。ないはずなのですが、処理を再開したら、原因のよくわからないエラーが出て中断から再開できなかったこともあるので、絶対安心というわけではないのですが、pkg_rolling-replaceよりはマシだと思っています。

0 件のコメント:

コメントを投稿