linuxBean14.04(182)無線LANカード WLI-CB-AMG54 を使う

2018-09-21

旧ブログ

t f B! P L
いきなりWLI-CB-AMG54に挿すとlinuxBean14.04がフリーズして電源を切るしか手がなくなるので、カードを挿すのはドライバのインストールが終わってからにします。ただし
最新のカーネルではndiswrapperが動かずWLI-CB-AMG54も動きませんでした。

前の関連記事:linuxBean14.04(181)使用するカーネルのバージョンを指定する


WLI-CB-AMG54のWindows2000用ドライバーを入手する


Linux用のドライバーはないようで、Windows用のドライバーを使います。

ドライバーダウンロード BUFFALO Wireless LAN Driver Disk | BUFFALO バッファロー

ここからwdrv-1052.exeをダウンロードしました。

アーカイバでは解凍できないので、Wineで解凍します。

ファイルマネージャでwdrv-1052.exeを右クリック→linuxBeanWine プログラムの実行。

解凍が終わるとWindows用のインストーラーが起動するのでそれはキャンセルします。

wdrv-1052.exeがあったフォルダにwdrv-1052という名前のフォルダができます。

使用するファイルはこのフォルダ下のCBAMG54/WIN2000フォルダにあります。

Windows2000用ドライバーをインストールする


スタート→設定→Windows用無線LANドライバ。

新しいドライバのインストール。

wdrv-1052/CBAMG54/WIN2000フォルダにあるnetamg54.infを選択します。


最新のカーネルだと「モジュールをロードすることができませんでした。」とでてndiswrapperの挿入に失敗しますが、これでインストールはこれで完了です。

これでカードを挿してもフリーズしなくなりますが、カードを動かすにはカーネルを古いものに戻さないといけません。

linuxBean14.04(181)使用するカーネルのバージョンを指定するの方法で、3.13.0-158から3.13.0-85にカーネルを変更するとWLI-CB-AMG54が使えるようになりました。

古いカーネルを使う以外の解決方法はわかりませんでした。

3.13.0-158でndiswrapperをコンパイルしてみる


3.13.0-158でndiswrapperを挿入できない理由を探るために3.13.0-158でndiswrapper 1.61をコンパイルしてみました。

コンパイルにするにはまずbuild-essentialをインストールしておかないといけません。

ndiswrapperのソースはndiswrapper - Browse /stable at SourceForge.netからndiswrapper-1.61.tar.gzをダウンロードして解凍しました。

解凍してでてきたndiswrapper-1.61フォルダをファイルマネージャで開いて、ツール→現在のフォルダを端末で開く。

sudo su
make

これでコンパイルしてみると、エラーがでてきます。
root@dynabookSS:/home/pq/ダウンロード/ndiswrapper-1.61# make
make -C utils
make[1]: ディレクトリ `/home/pq/ダウンロード/ndiswrapper-1.61/utils' に入ります
gcc -g -Wall -I../driver  -o loadndisdriver loadndisdriver.c
make[1]: ディレクトリ `/home/pq/ダウンロード/ndiswrapper-1.61/utils' から出ます
make -C driver
make[1]: ディレクトリ `/home/pq/ダウンロード/ndiswrapper-1.61/driver' に入ります
make -C /usr/src/linux-headers-3.13.0-158-generic M=/home/pq/ダウンロード/ndiswrapper-1.61/driver
make[2]: ディレクトリ `/usr/src/linux-headers-3.13.0-158-generic' に入ります
  LD      /home/pq/ダウンロード/ndiswrapper-1.61/driver/built-in.o
  MKEXPORT /home/pq/ダウンロード/ndiswrapper-1.61/driver/crt_exports.h
  MKEXPORT /home/pq/ダウンロード/ndiswrapper-1.61/driver/hal_exports.h
  MKEXPORT /home/pq/ダウンロード/ndiswrapper-1.61/driver/ndis_exports.h
  MKEXPORT /home/pq/ダウンロード/ndiswrapper-1.61/driver/ntoskernel_exports.h
  MKEXPORT /home/pq/ダウンロード/ndiswrapper-1.61/driver/ntoskernel_io_exports.h
  MKEXPORT /home/pq/ダウンロード/ndiswrapper-1.61/driver/rtl_exports.h
  MKEXPORT /home/pq/ダウンロード/ndiswrapper-1.61/driver/usb_exports.h
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/crt.o
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/hal.o
/usr/src/linux-headers-3.13.0-158-generic/scripts/ubuntu-retpoline-extract-one: eval: 行 28: 対応する `'' を探索中に予期しないファイル終了 (EOF) です
/usr/src/linux-headers-3.13.0-158-generic/scripts/ubuntu-retpoline-extract-one: eval: 行 29: 構文エラー: 予期しないファイル終了 (EOF) です
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/iw_ndis.o
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/loader.o
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/ndis.o
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/ntoskernel.o
/usr/src/linux-headers-3.13.0-158-generic/scripts/ubuntu-retpoline-extract-one: eval: 行 28: 対応する `'' を探索中に予期しないファイル終了 (EOF) です
/usr/src/linux-headers-3.13.0-158-generic/scripts/ubuntu-retpoline-extract-one: eval: 行 29: 構文エラー: 予期しないファイル終了 (EOF) です
contentmap: 00000010: invalid offset
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/ntoskernel_io.o
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/pe_linker.o
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/pnp.o
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/proc.o
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/rtl.o
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/wrapmem.o
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/wrapndis.o
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/wrapper.o
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/usb.o
  CC [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/divdi3.o
  LD [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/ndiswrapper.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "__x86_indirect_thunk" [/home/pq/ダウンロード/ndiswrapper-1.61/driver/ndiswrapper.ko] undefined!
  CC      /home/pq/ダウンロード/ndiswrapper-1.61/driver/ndiswrapper.mod.o
  LD [M]  /home/pq/ダウンロード/ndiswrapper-1.61/driver/ndiswrapper.ko
make[2]: ディレクトリ `/usr/src/linux-headers-3.13.0-158-generic' から出ます
make[1]: ディレクトリ `/home/pq/ダウンロード/ndiswrapper-1.61/driver' から出ます
ハイライトした行にコンパイルエラーがでています。

いずれもretpolineと__x86_indirect_thunk関連のもので、これらは2018年に話題になったCPUの脆弱性への対策です。

GoogleはSpectreとMeltdownの対策を昨年6月に開始し12月には完了していた。性能低下の報告はなし - Publickeyには「Retpolineによって、コンパイル時にソースコードを変更することなくインフラを保護することができました。」と書いてありますが、対策を打ったカーネル3.13ではndiswrapperはコンパイルできなくなるようです。

Retpolineの14.04への適用は2018年1月に3.13.0-140からされたようなので(SecurityTeam/KnowledgeBase/SpectreAndMeltdown - Ubuntu Wiki)、それ以降のカーネルではndiswrapperは動かないのかもしれません。

でもカーネルを3.13.0-139に変更して動くか確認してみようとしましたが、カーネルのlinux-image-3.13.0-139をSynapticパッケージマネージャでインストールしてそれで起動してみると有線LANすらも繋がらなくなったので確認するのはあきらめました。

ちなみにこのままmake installはエラーなく終わります。
root@dynabookSS:/home/pq/ダウンロード/ndiswrapper-1.61# make install
make -C driver install
make[1]: ディレクトリ `/home/pq/ダウンロード/ndiswrapper-1.61/driver' に入ります
mkdir -p -m 755 /lib/modules/3.13.0-158-generic/misc
install -m 0644 ndiswrapper.ko /lib/modules/3.13.0-158-generic/misc
/sbin/depmod -a 3.13.0-158-generic
make[1]: ディレクトリ `/home/pq/ダウンロード/ndiswrapper-1.61/driver' から出ます
make -C utils install
make[1]: ディレクトリ `/home/pq/ダウンロード/ndiswrapper-1.61/utils' に入ります
mkdir -p -m 755 /sbin
mkdir -p -m 755 /usr/sbin
install -m 755 loadndisdriver /sbin
install -m 755 ndiswrapper /usr/sbin
install -m 755 ndiswrapper-buginfo /usr/sbin
make[1]: ディレクトリ `/home/pq/ダウンロード/ndiswrapper-1.61/utils' から出ます
mkdir -p -m 755 /usr/share/man/man8
install -m 644 ndiswrapper.8 /usr/share/man/man8
install -m 644 loadndisdriver.8 /usr/share/man/man8
だけどmodprobeでモジュールの挿入に失敗します。
root@dynabookSS:/home/pq/ダウンロード/ndiswrapper-1.61# modprobe ndiswrapper
modprobe: ERROR: could not insert 'ndiswrapper': Unknown symbol in module, or unknown parameter (see dmesg)
dmsegでエラー個所をみると_x86_indirect_thunkがわからないといわれています。
[ 4758.892966] ndiswrapper: module verification failed: signature and/or  required key missing - tainting kernel
[ 4758.893074] Disabling lock debugging due to kernel taint
[ 4758.894815] ndiswrapper: Unknown symbol __x86_indirect_thunk (err 0)
_x86_indirect_thunkは一連のCPUの脆弱性への対策がらみのものです。

(2018.9.28追記。PlanexのGW-NS11Cはダウンロード|GW-NS11C:PLANEXからダウンロードしたWindows用のドライバーはインストールできましたが、
ADMtek SMC2653W v2 802.11bのハードウェアスイッチで無効になっています、といわれて使えませんでした。ACTランプはオレンジ色に点滅していました。)

参考にしたサイト

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ