スポンサーリンク

Linux(CentOS6.3 x64)上で、無線LAN接続を設定する手順のメモ

CentOS・Linux上で,Wifi通信の接続設定を行なった。

また、その他もろもろの作業環境を構築した。


ノートPCなのだが、無線ネットワークにつなげるために苦労した。

ワイヤレスデバイスのベンダからドライバをダウンロードしても、ちゃんとコンパイルできなかったり。

Ubuntuに乗り換えようかという葛藤と闘いつつも、なんとかつながった。


以下は,その時の作業ログ。

基本的な設定

作業ログを作成し、記録を開始。

ターミナルからのコピペ方法を復習。

linuxの端末上でのコピーペーストのやり方を教えてください。マウスを使わずにです
http://detail.chiebukuro.yahoo.co.jp/...

  • マウスで範囲指定
  • Ctl+Insert でコピー
  • Shift+Insert でペースト
  • Shift+Delete でカット


OSのバージョンとアーキテクチャを再確認。

$ uname -a # マシンの全情報
$ uname -r # カーネルの情報だけ
$ cat /etc/redhat-release 

CentOS 6.3 x64

2.6.32-279.22.1.el6.x86_64

Linuxでの32ビットと64ビットマシンの見分け方
http://d.hatena.ne.jp/jun-ya/20090511...


デスクトップに、ターミナルへのショートカットを作成。

  • アプリケーション>システムツール>端末>
    • このランチャをパネルへ追加
    • このランチャをデスクトップへ追加


Nautilus(ファイルシステムのエクスプローラ)の設定

フォルダを開く度に新しいウィンドウが作成されないように設定変更。

  • システム>設定>ファイル管理>動作>常にブラウザ・ウインドウで開く

ファイル管理の設定 (FedoraCore6)
http://homepage3.nifty.com/nasunu-i/F...


システム>設定>電源管理
から、

  • ノートPCを閉じたら:何もしない

に変更。

「AC電源使用時」も、「バッテリー使用時」も。

サスペンド、ハイバーネート(ハイバーネーション)設定
http://homepage3.nifty.com/nasunu-i/F...

  • サスペンド:コンピュータの現在状態をメモリー上に待避させ、コンピュータは電力を極力使わない省電力モードで動作
  • ハイバネーション:現在状態をハードディスク上に保存し、電源を完全に切ります。次の電源ON時は、ハードディスクに保存した内容を復帰し、本状態になる直前の状態から続行
  • ハイバーネート(ハイバーネーション)は機能するが、サスペンドが機能しない。サスペンドから復帰した場合、動作がおかしい時があり不安定。ウインドウシステム(GUI)を使用している時のみ、サスペンドから復帰しない


Ctrl+Alt+Lで、画面をロックできることを確認。

これで、PCを開いたり閉じたりしながら持ち運んでも大丈夫になった。


有線NWに接続

ターミナルから
system-config-network
コマンドで,イントラネット内のIPアドレスを設定。

LANケーブルを挿して、wwwに疎通確認。


OKなら、共有フォルダにもアクセスしてみる。

Windowsの場合は、エクスプローラのロケーションバーに、共有サーバのIPアドレスを含むUNCパスを入力する。

Linuxの場合は、Nautilusで適当なフォルダを開いて、

  • ファイル>サーバに接続

で、

  • 接続の種類:Windows共有
  • サーバ名:該当するサーバのIPアドレス

を入力して接続。

結果として

  • smb://192.168.〜/

のようなロケーションがGUI上に表示されればOK。

認証情報を要求するダイアログが現れたら、 ユーザ名・ドメイン(WORKGROUPとか)・パスワード を正しく入力する。

nautilusでネットワークディレクトリにアクセス | FreeStyleVision
http://freestyle.nvo.jp/archives/245


Winux/Lindows ちょっとハマってたUbuntu9.04→Ubuntu Server(仮)9.04のSamba共有フォルダアクセス
http://mypace75.blog92.fc2.com/blog-e...

日本語入力環境

ググったりして情報を調べる際には、日本語入力機能が必須なので。


rootで

  • yum groupinstall "Japanese Support"

/etc/sysconfig/i18n 内に

  • LANG="ja_JP.UTF-8"

がコメントアウトされていないのを確認

OSをリブート。

日本語入力できるようになった

CentOSの日本語化
http://d.hatena.ne.jp/kotaQ/20120814/...

ブラウザの設定とブックマーク

下記のリンク集から、ブックマークをFirefoxに登録

Windows PCと仕事机をセットアップする際の手順の記録
http://language-and-engineering.hatenablog.jp/entry/20110806/p1

その他の設定

  • 編集>設定>一般
    • Firefoxを起動するとき、前回終了時のウィンドウとタブを表示する
    • ホームページにGoogleを設定
    • ダウンロードマネージャ>すべてのダウンロードが完了したら閉じる
    • ファイルごとに保存先を指定する

無線LAN

WiFi対応であることを確認(Windowsとして利用した場合だが)

Acer Aspire 5741
http://www.linlap.com/acer_aspire_5741

  • Network 10/100/1000 Ethernet
  • Acer InviLink Nplify 802.11b/g/n Wi-Fi CERTIFIED
  • Acer InviLink 802.11b/g Wi-Fi CERTIFIED


PCIデバイスとしてのNICのベンダを確認

$ /sbin/lspci | grep Network
02:00.0 Network controller: Broadcom Corporation BCM43225 802.11b/g/n (rev 01)


GCCとか、ビルドに必要なパッケージをインストール

yum install kernel-headers kernel-devel gcc

# BROADCOMからはDLをすませておく
# http://www.broadcom.com/support/802.11/linux_sta.php

mkdir -p /usr/local/src/hybrid-wl
cd /usr/local/src/hybrid-wl
tar xvzf /tmp/hybrid-portsrc_x86_64-v5_100_82_112.tar.gz 


rootで

chown -R root.root /usr/local/src/hybrid-wl

yum install make

make -C /lib/modules/`uname -r`/build/ M=`pwd`

エラーが・・・

KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: ディレクトリ `/usr/src/kernels/2.6.32-279.22.1.el6.x86_64' に入ります
CFG80211 API is prefered for this kernel version
Using CFG80211 API
  LD      /usr/local/src/hybrid-wl/built-in.o
  CC [M]  /usr/local/src/hybrid-wl/src/shared/linux_osl.o
  CC [M]  /usr/local/src/hybrid-wl/src/wl/sys/wl_linux.o
  CC [M]  /usr/local/src/hybrid-wl/src/wl/sys/wl_iw.o
  CC [M]  /usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.o
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:64: 警告: ‘enum tx_power_setting’ declared inside parameter list
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:64: 警告: its scope is only this definition or declaration, which is probably not what you want
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1110: 警告: ‘enum tx_power_setting’ declared inside parameter list
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1110: error: parameter 2 (‘type’) has incomplete type
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c: In function ‘wl_cfg80211_set_tx_power’:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1123: error: ‘TX_POWER_AUTOMATIC’ undeclared (first use in this function)
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1123: error: (Each undeclared identifier is reported only once
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1123: error: for each function it appears in.)
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1125: error: ‘TX_POWER_LIMITED’ undeclared (first use in this function)
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1131: error: ‘TX_POWER_FIXED’ undeclared (first use in this function)
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c: トップレベル:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1649: 警告: initialization from incompatible pointer type
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1651: 警告: initialization from incompatible pointer type
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1652: 警告: initialization from incompatible pointer type
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1653: 警告: initialization from incompatible pointer type
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1654: 警告: initialization from incompatible pointer type
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1658: 警告: initialization from incompatible pointer type
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c: In function ‘wl_inform_single_bss’:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:1817: error: too few arguments to function ‘ieee80211_channel_to_frequency’
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c: In function ‘wl_bss_roaming_done’:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:2117: 警告: passing argument 2 of ‘cfg80211_roamed’ from incompatible pointer type
include/net/cfg80211.h:3035: note: expected ‘struct ieee80211_channel *’ but argument is of type ‘u8 *’
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:2117: 警告: passing argument 4 of ‘cfg80211_roamed’ makes pointer from integer without a cast
include/net/cfg80211.h:3035: note: expected ‘const u8 *’ but argument is of type ‘s32’
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:2117: 警告: passing argument 5 of ‘cfg80211_roamed’ makes integer from pointer without a cast
include/net/cfg80211.h:3035: note: expected ‘size_t’ but argument is of type ‘u8 *’
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:2117: 警告: passing argument 6 of ‘cfg80211_roamed’ makes pointer from integer without a cast
include/net/cfg80211.h:3035: note: expected ‘const u8 *’ but argument is of type ‘s32’
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:2117: error: too few arguments to function ‘cfg80211_roamed’
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c: In function ‘wl_bss_connect_done’:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:2149: 警告: passing argument 2 of ‘cfg80211_roamed’ from incompatible pointer type
include/net/cfg80211.h:3035: note: expected ‘struct ieee80211_channel *’ but argument is of type ‘u8 *’
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:2149: 警告: passing argument 4 of ‘cfg80211_roamed’ makes pointer from integer without a cast
include/net/cfg80211.h:3035: note: expected ‘const u8 *’ but argument is of type ‘s32’
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:2149: 警告: passing argument 5 of ‘cfg80211_roamed’ makes integer from pointer without a cast
include/net/cfg80211.h:3035: note: expected ‘size_t’ but argument is of type ‘u8 *’
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:2149: 警告: passing argument 6 of ‘cfg80211_roamed’ makes pointer from integer without a cast
include/net/cfg80211.h:3035: note: expected ‘const u8 *’ but argument is of type ‘s32’
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.c:2149: error: too few arguments to function ‘cfg80211_roamed’
make[2]: *** [/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211.o] エラー 1
make[1]: *** [_module_/usr/local/src/hybrid-wl] エラー 2
make[1]: ディレクトリ `/usr/src/kernels/2.6.32-279.22.1.el6.x86_64' から出ます
make: *** [all] エラー 2

なぜに

# make clean
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd` clean
make[1]: ディレクトリ `/usr/src/kernels/2.6.32-279.22.1.el6.x86_64' に入ります
CFG80211 API is prefered for this kernel version
/usr/local/src/hybrid-wl/Makefile:80: Neither CFG80211 nor Wireless Extension is enabled in kernel
  CLEAN   /usr/local/src/hybrid-wl/.tmp_versions
make[1]: ディレクトリ `/usr/src/kernels/2.6.32-279.22.1.el6.x86_64' から出ます


# yum install wireless-tools
Loaded plugins: downloadonly, fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirrors.sin3.sg.voxel.net
 * extras: mirrors.sin3.sg.voxel.net
 * updates: mirrors.btte.net
Setting up Install Process
Package 1:wireless-tools-29-5.1.1.el6.x86_64 already installed and latest version
Nothing to do

いったん仕切り直さねば・・・


参考:

HowTos / Laptops / Wireless / Broadcom
http://wiki.centos.org/HowTos/Laptops...
Broadcom Corporation BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM43224, BCM43225, BCM43227 and BCM43228 Based Wireless NICs


BROADCOM 802.11 Linux STA driver
http://www.broadcom.com/support/802.1...


Broadcom STA Wireless drivers not working on Acer aspire 5750G, Ubuntu 12.04
http://ubuntuforums.org/showthread.ph...


LinuxでWindows用無線LANドライバを利用するには
http://www.atmarkit.co.jp/flinux/rens...

  • 多くの無線LAN PCカードには、Linux用のドライバがない。制御チップの仕様は公開されないため、第三者がドライバの開発を行うのも難しい


内蔵の無線LANをlinuxで利用する
http://www.kids-clinic.jp/uni/ipw2200...
ThinkPad T42にはintel製の無線LANチップが載っています。Windowsでは利用できますが、Vine Linux 3.1では利用できずにいました。これのLinux用のドライバー(ipw2200)が公開されているのでインストールしてみました


lspciでPCIバスデバイスの情報を確認する
http://open-groove.net/linux/lspci-bu...

  • コマンドの出力結果の読み方:PCI識別番号、デバイスの種類つまりクラス名、ベンダー名とデバイス名。識別番号は、バス番号、スロット,機能。


MacBook ProにCentOS 6.3をインストール!
http://dadasan.blogspot.jp/2012/11/ma...


役に立つサイトを発見。

wl-kmod Source RPMs for Broadcom drivers
http://elrepo.org/tiki/wl-kmod

ここの手順どおりでOKだった。

yum groupinstall 'Development Tools'
yum install redhat-lsb
yum install kernel-devel-$(uname -r)

mkdir -p ~/rpmbuild/{BUILD,RPMS,SPECS,SOURCES,SRPMS}

echo -e "%_topdir $(echo $HOME)/rpmbuild\n%dist .el$(lsb_release -s -r|cut -d"." -f1).local" >> ~/.rpmmacros


下記のRPMをダウンロード

For EL6.3 and later:
http://elrepo.org/linux/elrepo/el6/SR...

rpmbuild --rebuild --target=`uname -m` --define 'packager (私のユーザ名)' /home/(私のユーザ名)/wl-kmod*nosrc.rpm

yum remove \*ndiswrapper\*

rpm -Uvh /<path-to-rpm>/kmod-wl*rpm

# カーネルにモジュールを追加
modprobe -r b43 b43legacy ssb wl lib80211
modprobe lib80211_crypt_tkip
modprobe wl


次に、無線LANのアクセスポイントを設定。

ネットワーク設定ダイアログの無線タブの、「無線接続1」を編集。

SSIDとパスワード,暗号化方式、DHCP有効化。


LANケーブルを外す。有線ネットワークから切断される。

NWを再起動。

  • service network restart


Wifiにつながった。


パネルの右上に、携帯電話の電波強度アイコンみたいなのが表示されている。

そこから、無線ネットワークのアクセスポイントを選択できる。


無事、WiFiルータからwwwを閲覧できた。


VNCの設定

Windows側をVNCサーバ,Linux側をVNCクライアントにする。


Windows 7 64bit側では,Ultra VNC Serverを起動。

Edit SettingsアプリケーションのSecurityタブからパスワードを設定。

また,システムアイコントレイからUltra VNC Serverを右クリックし,Admin Propertiesのダイアログを開く。

Disable Viewers inputsのチェックを外せば,ViewOnlyモードが解除される。



Linux側では,TigerVNCを使用。

パネルの システム>管理>ソフトウェアの追加・削除 からVNCでクエリを引くと,既にTigerVNCはインストール済み。

ターミナルから

vncviewer Windows側のIPアドレス:1

とすると,リモートデスクトップみたいなVNCのウィンドウが立ち上がる。

※:1 というのは接続先のディスプレイ番号。



ウィンドウのサイズを変えることも。

vncviewer -geometry 1240x980 Windows側のIPアドレス:1

このままだと,ディスプレイのサイズの差しだいでは,VNCのウィンドウ内を下にスクロールする必要があったりする。

解像度を変えるには,Windows側でスクリーンを調整すること。

RealVNC から TigerVNC に乗り換えるべき理由 (1)
http://w.vmeta.jp/tdiary/?date=20111108

  • Fedora では Fedora 11 よりデフォルトの VNC がオリジナルの RealVNC から TigerVNC と変更
  • TigerVNC は RealVNC からフォークしたプロジェクトで数多くの改良やバグ修正が施されており、今となってはこちらを使うのが合理的


vncviewer(1) - Linux man page
http://linux.die.net/man/1/vncviewer

  • コマンドライン オプションの説明


[ubuntu] VNC Window Scaling?
http://ubuntuforums.org/archive/index...

  • The geometry setting just sets the size of the window...the remote server's display resolution is still high and I have to scroll it...
  • I guess I'll have to just resize the desktop on the server...I was trying to avoid that, the windows Real VNC client has a scaling option...
  • The Entreprise Editions, the ones you have to pay for, do have a scale to fit option (vncviewer -scaling=fit).
  • Vinagre has scaling.