スポンサーサイト
投稿日時 : -------- --:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
-------- --:-- | スポンサー広告
Ubuntu8.04のデフォルトのvimはsyntax onできない
投稿日時 : 2009-05-31 23:58
 Ubuntu8.04でデフォルトでインストールされているvimは予約語などで色分け表示する設定の「syntax on」が有効にできません。以下のような設定ファイルをつくり、
~/.vimrc
set fileencodings=iso-2022-jp,utf-8,shift-jis,euc-jp
set number
set ruler
set nowrap
syntax on
次にvimを起動しようとすると
itmst@mv1c3e:~$ vim .vimrc
Error detected while processing /home/itmst/.vimrc:
line    5:
E319: Sorry, the command is not available in this version: syntax on
Press ENTER or type command to continue
「設定ファイル処理してたら5行目でエラー出た。すまんけどこのバージョンじゃsyntax on使えないから」と表示される。検索すると
 
www.cyberciti.biz
Ubuntu Linux comes with tiny version of vim.
「Ubuntuには最小構成バージョンのvimが入ってるよ」ってことらしく、じゃあどうすればいいかというと
www.cyberciti.biz
All you need to do is installed full vim version by typing following command:
  $ sudo apt-get install vim
「次のコマンド打ってフルバージョンのvimインストールするだけでおk」。
 
やってみる。
itmst@mv1c3e:~$ sudo apt-get install vim
[sudo] password for itmst: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  vim-runtime

(省略)

古いパッケージ vim-tiny 中のファイルを置換しています ...
未選択パッケージ vim を選択しています。
(.../vim_1%3a7.1-138+1ubuntu3.1_i386.deb から) vim を展開しています...
vim-runtime (1:7.1-138+1ubuntu3.1) を設定しています ...
Processing /usr/share/vim/addons/doc

vim (1:7.1-138+1ubuntu3.1) を設定しています ...
古いパッケージとして「vim-tiny」がインストールされていたのが分かります。
これで「syntax on」が通るようになっています。
 
 
 Ubuntuは7.04から使ってますが今までこの作業した記憶がない。やったけど忘れてるだけなのか8.04からvim-tinyになったのか・・・。
 
 
スポンサーサイト
2009-05-31 23:58 | Linux | Comment(1) | Trackback(0)
Ubuntu8.04でUSB無線LANアダプタWLI-U2-G54HPを使う
投稿日時 : 2009-05-27 19:49
 長年使っていたメディアコンバータWN-AG/Cがウンともスンとも言わなくなったので、WLI-U2-G54HPを購入。安いくせにバカにできない性能。Amazonで注文してからLinuxドライバのことを考えてなかった自分に気づく。最近Cygwinでいろいろ事足りてたせいか。とりあえずUbuntu8.04入れてあるノートのMV1-C3Eにつないでみたが反応なし。仕方ないので久々にがんばってみた。

■まずはNDISWrapperに期待してみる

 ここやそのリンク先のここあたりを見るとSynapticでNDISWrapper入れて純正のドライバで動きそうな感じだったので瞬殺wとか思ってたら全然動かないねw
 

■NDISWrapperはナシの方向で

 1時間ほどNDISWrapperに時間かけてみたけど状況が好転しないので「@IT:LinuxでWindows用無線LANドライバを利用するには」や「@IT:NdisWrapperでWindows用無線LANドライバが動作しない場合は」を参考に独自ドライバ入れればよさげだと分かる。
 

■チップ調査

 とりあえず無線LANコントローラがどこのメーカのものかというのが重要なので調査。まずはlsusbでUSBポートに刺さってるメーカを確認。
itmst@mv1c3e:~/tmp$ lsusb
Bus 003 Device 001: ID 0000:0000  
Bus 002 Device 008: ID 0411:00d9 MelCo., Inc. 
Bus 002 Device 003: ID 045e:0737 Microsoft Corp. 
Bus 002 Device 002: ID 0409:0059 NEC Corp. HighSpeed Hub
Bus 002 Device 001: ID 0000:0000  
Bus 001 Device 001: ID 0000:0000 
MelCo(=Buffalo)って書いてある行の「0411:00d9」が後々重要。続けてlshw。
itmst@mv1c3e:~/tmp$ sudo lshw
(省略)
  *-network
       description: Wireless interface
       physical id: 3
       logical name: wlan0
       serial: 00:1d:73:a1:5b:c1
       capabilities: ethernet physical wireless
       configuration: broadcast=yes multicast=yes wireless=RT73 WLAN
無線LAN機器だということはちゃんと認識されている。まあUSBの規格上当然か。ここで最後の「RT73 WLAN」がヒントになりそうなのでググるとすばらしげな記事発見。
 
Kozupon.com - RT73 無線LANデバドラセットアップ指南!
 

■ソースコードゲット

 で、後はここに書いてあるとおりにやればOK・・・とは行かないんですねw。パソコン触る人なら分かると思いますがw。
 
でもまあこれでドライバのソースコードには行き着いたっぽい。
SourceForge.net: rt2400/rt2500 Linux Driver: Files
 
rt73-cvs-daily.tar.gzってファイルを落としてきて展開。
itmst@mv1c3e:~/tmp$ tar xzf rt73-cvs-daily.tar.gz 
 

■ソースコード編集

 で、この先は上記の指南通り行けたらほんとによかったんですが、その通りにやってもWLI-U2-G54HPでは動きませんでした。ネットを彷徨ってるとどうやらソースを少し書き換える必要がありそうなことが判明。
 
BUFFALO WLI-U2-SG54HP - system2222 - livedoor Wiki(ウィキ)
 
rt73-cvs-daily.tar.gzを解凍してできた「./Module/rtmp_def.h」にWLI-U2-G54HPの情報を書き加える。
system2222
3.
解凍して出てきたファイル群の中に、rtmp_def.hというファイルがあるので開き、
最後尾付近の、 
{USB_DEVICE(0,0)}} /* end marker */
という行の直前に、下記を記述して保存。
{USB_DEVICE(0x0411,0x00d8)}, /* BUFFALO WLI-U2-SG54HP */\
これをヒントに書き換えを行う。この例では型番がWLI-U2-SG54HPで、今回のWLI-U2-G54HPとは少し違う。けどほとんど同じ。vimで編集する。
itmst@mv1c3e:~/tmp/rt73-cvs-2009041204/Module$ vim rtmp_def.h 
上の例では「最後尾付近」に追記するとあるが、808行目あたりからメーカ別に情報を列挙した「VID/PID」というブロックが始まっていてちょうど「Buffalo」の項目もある。ここに書いた方がわかりやすそう。
(省略)
//-------------------
// VID/PID
//-------------------

#define RT73_USB_DEVICES { \
 /* AboCom */\
 {USB_DEVICE(0x07b8,0xb21d)},\
 /* Askey */\
 {USB_DEVICE(0x1690,0x0722)},\
 /* ASUS */\
 {USB_DEVICE(0x0b05,0x1723)},\
 {USB_DEVICE(0x0b05,0x1724)},\
 /* Buffalo */\
 {USB_DEVICE(0x0411,0x00d8)},   /* WLI-US-SG54HP */\
 {USB_DEVICE(0x0411,0x00d9)},   /* WLI-U2-G54HP */\ ←この行を追記
 {USB_DEVICE(0x0411,0x00f4)},\
 /* Belkin */\
 {USB_DEVICE(0x050d,0x7050)},\
 {USB_DEVICE(0x050d,0x705a)},\
 {USB_DEVICE(0x050d,0x905b)},\
 {USB_DEVICE(0x050d,0x905c)},\
 /* Billionton */\
 {USB_DEVICE(0x1631,0xc019)},\
 /* CNet */\
 {USB_DEVICE(0x1371,0x9022)},\
 {USB_DEVICE(0x1371,0x9032)},\
 /* Conceptronic */\
 {USB_DEVICE(0x14b2,0x3c22)},\
 /* Corega */\
 {USB_DEVICE(0x07aa, 0x002e)}, /* CG-WLUSB2GPX*/\
(省略)
この「VID」はおそらく「VendorID」で「PID」は「ProductID」と思われる。この書き方からして0x0411はMelCo(=Buffalo)のことだと推測される。これははじめの方でlsusbコマンドで調べておいた情報がそのまま使えそうな雰囲気。PIDも元から記述されていた「WLI-US-SG54HP」の「0x00d8」のひとつ違いで「0x00d9」。まあ間違いなさそう。ちなみに「/* WLI-U2-G54HP */」はただのコメントなのでなくても可。でも行末の改行のエスケープは忘れずに。
 

■コンパイル

 追記がすんだら:wqで保存終了。いよいよコンパイルしてみる!makeします。
itmst@mv1c3e:~/tmp/rt73-cvs-2009041204/Module$ sudo make
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.24-24-generic' に入ります
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/rtmp_main.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/mlme.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/connect.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/rtusb_bulk.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/rtusb_io.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/sync.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/assoc.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/auth.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/auth_rsp.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/rtusb_data.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/rtmp_init.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/sanity.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/rtmp_wep.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/rtmp_info.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/rtmp_tkip.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/wpa.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/md5.o
  CC [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/rt2x00debug.o
  LD [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/rt73.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/itmst/tmp/rt73-cvs-2009041204/Module/rt73.mod.o
  LD [M]  /home/itmst/tmp/rt73-cvs-2009041204/Module/rt73.ko
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.24-24-generic' から出ます
!!! WARNING: Module file much too big (>1MB)
!!! Check your kernel settings or use 'strip'
*** Module rt73.ko built successfully
通った!「rt73.ko」というドライバファイルの完成です。次はmake installでインストール。
itmst@mv1c3e:~/tmp/rt73-cvs-2009041204/Module$ sudo make install
*** Install module in /lib/modules/2.6.24-24-generic/extra ...
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.24-24-generic' に入ります
  INSTALL /home/itmst/tmp/rt73-cvs-2009041204/Module/rt73.ko
  DEPMOD  2.6.24-24-generic
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.24-24-generic' から出ます
/sbin/depmod -a
*** Update /etc/modprobe.d/ralink alias for wlan*
*** Install firmware in /lib/firmware ...
*** Check old config ...
 

■ドライバをロードする

 再起動してもいいんですがコマンドで手動でロードしてみます。/sbin/modprobeを使います。
itmst@mv1c3e:~/tmp$ sudo modprobe rt73
itmst@mv1c3e:~/tmp$ cat /proc/modules | grep rt73 ←ロード済み確認
rt73 217088 0 - Live 0xf0de1000
usbcore 146412 6 rt73,prism2_usb,usbhid,ehci_hcd,ohci_hcd, Live 0xf08ce000
modprobeした瞬間に、全点灯していたWLI-U2-G54HPのステータスランプがPOWERランプのみが点灯になる。iwconfigコマンドでも正しく認識されていることが確認できます。
itmst@mv1c3e:~/tmp$ iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     RT73 WLAN  ESSID:""  
          Mode:Managed  Frequency=2.412 GHz  Bit Rate=54 Mb/s   
          RTS thr:off   Fragment thr:off
          Link Quality=0/100  Signal level:-121 dBm  Noise level:-111 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
 

■最後の手順

 最後に以下のようにネットワークサービスを再起動。
itmst@mv1c3e:~/tmp$ sudo /etc/init.d/networking restart
とすれば動きだす!かと思ったら無反応w。タスクバーのネットワークアイコンから一度ネットワークを無効にして再度有効にするか、USBケーブルを挿し直すと問題なく動作開始。接続が確認できたのでよしとする。
 
 
 
本来はMDISWrapperで動くのが一番スマートなんだろうからもう少し調べてみようかなー
 
 
 
2009-05-27 19:49 | Linux | Comment(0) | Trackback(0)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。