スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Debian-WheezyでUSB 無線LANアダプタを使う

Debianでの無線LANに挑戦! -カーネル再構築編-


※追記があります。(2013/4/1)


家に転がっていた古いノートPC(700MHz,370M程度のメモリ)にDebian(Wheezy)を入れてみた。
実はいろいろあったが、まぁここまでは問題なし。


で、ノートのメリットを活かすべく無線接続をしようとしたところ、利用した無線カードはWPA/WPA2に対応していなくWEPのみという事がわかった。うちのBuffalo製無線ルータでは、WEP接続だけ保護(排除)する機能があり「インターネットアクセスはできるがその他のPC等のと通信はさせない」という事ができる。
このノートPCの用途として考えられるのはWebとその他のPCへのリモートアクセス。
よって後者の用途でWEPだと困る。何より、今更簡単に突破できるWEPを使うのもどうかしてる(笑)

-環境-
 ・Debian-Wheezy
 ・Logitec製LAN-W300N/U2S



という事で、USB の無線アダプタ(Logitec製LAN-W300N/U2S)を購入。
早速Ubuntuに刺してみる。

$dmesg
[871599.896925] usb 1-1.2: new high-speed USB device number 16 using ehci_hcd
[871600.084712] usb 1-1.2: reset high-speed USB device number 16 using ehci_hcd
中略
[871600.210368] Registered led device: rt2800usb-phy5::radio
[871600.210438] Registered led device: rt2800usb-phy5::assoc
[871600.210498] Registered led device: rt2800usb-phy5::quality
[871600.259350] ADDRCONF(NETDEV_UP): wlan1: link is not ready

となって、wlan1として認識されている。
ifconfigを実行してもwlan1が表示されて後は無線の設定をすれば使えそう。

よしよし!Linuxすげーと思いつつ、Debianに挿したら行かないわけですよ(笑)Ubuntu便利なんだなぁ。
さてどうしたものかと思ってGoogle先生に聞いてみる。何やら難しそうな「カーネルの再構築」というキーワードがたくさん・・・。
まぢか、そんな難しい話なのか!?初心者として避けてきたカーネルのお話。。。
とはいえ、買っちゃったUSB無線アダプタ無駄にするわけにも行かないので日経Linxu(2012/12月号)のカーネルアップデートの記事を参考にやってみた。


0.事前確認

・ベンダーIDとプロダクトIDを調べる
USB 無線アダプタを挿した状態でlsusbを実行し、赤字の部分をメモしておく。
$ lsusb
Bus 001 Device 016: ID 0789:0169 Logitec Corp.

・チップの情報をネットで調べる
本製品はRalink社のRT2870というものを使っているらしい。


1.カーネルの再構築 必要なアプリのインストール
  
必要なアプリのインストールとファイルの解凍などを行う。
$ sudo apt-get -y update
$ sudo apt-get -y install build-essential fakeroot kernel-package
$ sudo apt-get -y install libncurses-dev
$ sudo apt-get -y install linux-source-3.2
$ mkdir ~/tmp
$ cd ~/tmp
$ sudo bunzip2 linux-source-3.2.tar.bz2
$ tar xvf /usr/src/linux-source-3.2.tar linux-source-3.2/
$ cd linux-source-3.2




2.カーネルで必要なモジュールの選択

"make menuconfig"コマンドを実行すると、ちょっとだけグラフィカルなメニュー形式の選択画面が表示されるので

"DeviceDrivers → NetworkingDeviceSupport → Wireless LAN → Ralink driver Support"の順にたどり
rt2800usb - Include support for unknown (USB) devices
を選択し「Y」を押す。
あとは、Exitを続けて最後に保存する書き換えるので保存する。



3.ファイルの確認

/tmp/linux-source-3.2/drivers/net/wireless/rt2x00/rt2800usb.cの中身を確認する。
重要なのはさっき調べたメーカIDとプロダクトIDが乗っていること。

#ifdef CONFIG_RT2800USB_UNKNOWN
(中略)
/* Logitec */
{ USB_DEVICE(0x0789, 0x0168) },
{ USB_DEVICE(0x0789, 0x0169) },
{USB_DEVICE(0x0789,0x016b)}, /* Logitec LAN-W450AN/U2 */
{USB_DEVICE(0x0789,0x0170)}, /* Logitec LAN-W300AN/U2 */




4.カーネルのビルド


CONCURRENCY_LEVEL=4 make-kpkg --rootcmd fakeroot --initrd linux_image

CPUが非力なためめちゃめちゃ時間がかかります。。。



5.再構築したカーネルのインストール

一つ上のディレクトリに.deb形式のファイルができるので、これをインストール。
$ sudo dpkg -i linux-image-3.2.39_3.2.39-10.00.Custom_i386.deb




6.ドライバのダウンロード

このサイトからドライバをダウンロードしてくる。
”2010_0709_RT2870_Linux_STA_v2.4.0.1.tar.bz2”というファイルだった。

これを解凍し、そのフォルダの中の"common"フォルダ内にある、"rt2870.bin"を/lib/firmware配下にコピー
$ tar xvf 2010_0709_RT2870_Linux_STA_v2.4.0.1.tar.bz2
$ sudo cp 2010_0709_RT2870_Linux_STA_v2.4.0.1/common/rt2870.bin /lib/firmware



7.再起動


再起動後、確認。
$ demsg
56.324055] usb 1-1: new high-speed USB device number 4 using ehci_hcd
[ 56.473555] usb 1-1: New USB device found, idVendor=0789, idProduct=0169
[ 56.473563] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 56.473568] usb 1-1: Product: 802.11 n WLAN
[ 56.473573] usb 1-1: Manufacturer: Ralink
[ 56.473576] usb 1-1: SerialNumber: 1.0
[ 56.588052] usb 1-1: reset high-speed USB device number 4 using ehci_hcd
[ 56.746189] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[ 56.747038] Registered led device: rt2800usb-phy1::radio
[ 56.747088] Registered led device: rt2800usb-phy1::assoc
[ 56.747139] Registered led device: rt2800usb-phy1::quality
[ 56.779309] rt2800usb 1-1:1.0: firmware: agent loaded rt2870.bin into memory
[ 57.061184] ADDRCONF(NETDEV_UP): wlan0: link is not ready


ifconfigでも正しく"wlan0"と認識されている。
良かったこれでアダプタが無駄にならずにすみました♪

実は、ここまで来るのに結構かかりました(汗
まぁ、カーネルの再構築という経験ができたのは良かったです。



続きを読む

スポンサーサイト

dfとduをいつも混同するよ

Linuxコマンド df/du について


どうでもいい独り言です。


ファイル・ディレクトリの使用量確認とか、ディスクの空き容量とかに使うコマンドとして
dfコマンドとduコマンドがあるが、いまいちよくわかってなく使っていたのでちょっと整理してみた。

そもそもコマンド名も似ていてどっちがどっちなのかよくわかりづらい。
なので、そもそも何を意味する英語からきているのか調べてみた。


manでそれぞれ見ると

- df -
NAME
df - report file system disk space usage

- du -
NAME
du - estimate file space usage


どちらにも、File、Usageというキーワドが入っているのでちょっとわからない・・・。


WikiPediaによると

df
df (abbreviation for disk free)


du
du (abbreviated from disk usage)

という事らしい。

・df -> ディスク空き容量
・du -> ディスク使用量

といったところですかね。
って、それってそれぞれ反対だけど、ある意味同じなんじゃ・・・?



ともかく

 df:ディスクの空き容量(Free)を調べる
 du: ディスク上でファイルが利用している(Usage)容量を調べる



と覚えることにした。
とここまで書いて思った。ん、調査不足かな?
世の中にはもっと正しいこと書いてあるサイトあるかも(笑)

duコマンドに関してはこちらのサイトが大変参考になりました。

プロフィール

Author:Opecha-DaDa
ニッチな技術メモ的なブログになりつつありますが、だからこそあなたのお役に立てる内容があれば幸いです。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。