最近1つ買いました。Edimax EW-7811Un WiFi USBアダプタAmazonで。一部のOpenBSDユーザーは、この機能が成功したことを報告し、以下でサポートされているとリストされてurtwn(4)
います。マニュアルページ。
私は現在、Asus NetbookでOpenBSD 5.5 amd64(先週末にダウンロード)を実行しています。期待どおりにワイヤレスアダプタurtwn0
を接続または取り外しすると、ワイヤレスアダプタが認識され、報告されます。/etc/hostname.urtwn0
マンページに記載されているように作成しました。
nwid mynetwork
wpakey mykey
dhcp
私のWi-Fiネットワーク名とパスワードはそれぞれどこにありますmynetwork
か?mykey
ネットワークは実際にはWPA2なので、独自の問題が発生する可能性がありますが、OSはファームウェアをロードできないようです。を実行すると、sh /etc/netstart urtwn0
次のような結果が出力されます。
urtwn0: failed loadfirmware of file urtwn-rt18192cfwT (error 2)
urtwn0: no link ............ sleeping
ファームウェアが破損している可能性がありますか?アダプタを初めて使ってみました。おそらくEdimaxはファームウェアを変更し、OpenBSDの現在のurtwn
実装を中断しましたか?それとも私が愚かな間違いをしたのでしょうか?
答え1
まず、hostname.urtwn0
ファイルは大丈夫に見えますが、ファイルにエラーがある場合は、まったく異なるエラーメッセージが表示されます。
このメッセージは、urtwn0: failed loadfirmware of file urtwn-rt18192cfwT (error 2)
ファームウェアが正しい場所にインストールされていないことを示します。
説明したようにloadfirmware(9)
、この関数はerrno
スタイルエラーコードを返します。errno(2)
説明する:
2 ENOENT No such file or directory.
A component of a specified pathname did not exist, or the pathname
was an empty string.
/etc/firmware/urtwn-rt18192cfwT
ドライバがロードするファイルが必要です。1ツリーでこのファイルが見つからない可能性があります。
1詳細は回答の最後にあります。
あなたが持っていると仮定一部ボックスをインターネットに接続するには:
ファームウェアのインストールを実行して、fw_update -v
ファイルが正しい場所にあり、破損していないことを確認してください。運が良ければそれはすべてです。
失敗した場合は、以下からファームウェアをインストールしてみてください。パッケージまたはポート(最初にこのFAQを読んでください!)私のローカルイメージには関連パッケージがないので、urtwn
ポートツリーを使用する必要があるかもしれません。
の説明に従ってポートツリーを設定します。よくある質問その後、make install
rootとして実行します/usr/ports/sysutils/firmware/urtwn
。
ボックスをインターネットに接続できない場合:
ファームウェアは以下から入手できます。http://firmware.openbsd.org/firmware-dist/urtwn-1.1p0.tgz
。そこから取り出してUSBスティックに入れてOpenBSDボックスにコピーします。アーカイブを抽出し、ファイルurtwn-*
を/etc/firmware/
。
fw_update -v
これが機能する場合は、ネットワークに接続した後に実行するのが最善です。このようにして、システムメンテナンススクリプトは必要に応じてファームウェアを監視およびアップグレードします。
これらすべてが役に立たない場合は、おそらくメーリングリスト。人々は一般的にフレンドリーで宿題をするのに役立ちます2。
2ドライバーは何度も言及されています。[Eメール保護]。たとえば、USB関連の問題がいくつかあります。公開する前に見ているものに関連するものがあることを確認してください。
次に追加:
これでソースコードを見てきましたが、このエラーメッセージを表示する唯一の方法は関数のurtwn_load_firmware()
atsys/dev/usb/if_urtwn.c
行を使用することです2194
。
/* Read firmware image from the filesystem. */
if ((sc->chip & (URTWN_CHIP_UMC_A_CUT | URTWN_CHIP_92C)) ==
URTWN_CHIP_UMC_A_CUT)
name = "urtwn-rtl8192cfwU";
else
name = "urtwn-rtl8192cfwT";
if ((error = loadfirmware(name, &fw, &len)) != 0) {
printf("%s: failed loadfirmware of file %s (error %d)\n",
sc->sc_dev.dv_xname, name, error);
return (error);
}
関数loadfirmware()
(sys/dev/firmload.c
)はパスを生成し/etc/firmware/urtwn-rtl8192cfwT
、ファイルをUSBアダプタのメモリにロードしようとします。ファイルが見つからないため、報告されたエラーメッセージが表示されます。