USBの無線LAN子機WN-G150UMKが、kernelのアップグレードで使えなくなった。
(3.16.4-1から4.0.1-1)
それまでも、WN-G150UMKはkernel組み込みのドライバでは使用できず、
AURの8192cu-dkmsを使ってネットワーク接続していた。
その時は他の子機CG-WLUSB300NWで接続しておきながら、
yaourt -S 8192cu-dkms
として、現行kernel(3.16.4.-1)用のモジュールを生成した。
今回のアップグレードでも、新kernel(4.0.1-1)用のモジュールを生成すれば問題の子機も
使えるようになるのでは、と考えた。
ところが、CG-WLUSB300NWも4.0.1-1では使えなくなってしまった。
面白いですな。どうしましょうか、、、。
(勿論、有線にすれば良いのだろうが、ルータとは1階・2階で離れているので
それを有線でつなぐのも芸がない)
何のことはない、yaourtを使わずにオフラインでmakepkgすればよい。
先ず、kernelを3.16.1-4へダウングレードする。
LANが使える状態にして、https://aur.archlinux.org/packages/8192cu-dkmsから
tarballをダウンロードして解凍しておく。
さらに、「パッケージの詳細」頁の「ソース」に記述にあるとおり
8192cu-v4.0.2_9000.tar.gzが必要なのでこちらもダウンロードしておく。(解凍はしない)
任意のフォルダに置いておけば良いのだが、わかりやすい様に、先に解凍した
8192cu-dkmsの他のソースと同じ場所(PKGBUILDがある所ね)に置く。
更に、解凍した中の .SRCINFO 17行目を以下の様に書き換える
source = 8192cu-v4.0.2_9000.tar.gz
これで、オフラインでもダウンロード済みの8192cu-v4.0.2_9000.tar.gzを
使って作業を進めることができる。
後は、kernelをアップグレード+再起動してからPKGBUILDがあるフォルダに移動して、
makepkgを実行する。
起動中のkernelとlinux-headersでkernelに合ったモジュールが出来上がるはず。
(と理解しているんですが、本当のところは良く分かりません。済みません)
できあがったパッケージ(8192cu-dkms-v4.0.2_9000-8-any.pkg.tar.xz)は、
# pacman -U でインストール。
何はともあれ、これで使えているので、結果OK(って本当かよ!)
やっぱり、罠でした。
実は、dkmsサービスを起動していなかったので、パッケージを手動で入れ直して
いた訳です。
# systemctl enable dkms.service
としておけば、dkmsモジュールが自動でリビルドされるらしいです!
ってか、それがDKMSの本来の姿だって。
dkmsサービスを有効にしておいて、kernelのダウングレード、アップグレードを
やってみました。パッケージを手動で入れ直すことなく上手く動いてます。
(但し、8192cu-dkmsのパッケージ自体がkernel 4.0以降に対応したバージョン
でインストールしているという条件なので、8192cu-dkmsのパッケージが古い
バージョンだった場合は、パッケージのアップグレードが必要な筈です)
※追記(2015/05/11 20:30)※
/var/lib/dkms/8192cu 以下にkernelのバージョンごとにモジュールが作られて
いるのを確認しました。
0 件のコメント :
コメントを投稿