UNIXやLinux: 2008年10月アーカイブ

Screenshot20081029.gifはぁ~・・・
パッケージアップデートをして再起動したら ath0 が認識されなくなっちゃったよ。
uname でカーネルのバージョン見てみたら、

2.6.18-92.el5 #1 SMP Tue Jun 10 18:49:47 EDT 2008
 ↓
2.6.18-92.1.13.el5 #1 SMP Wed Sep 24 19:33:52 EDT 2008

微妙にあがってんなあ・・・

こんなマイナーバージョンのアップでも、モジュール作り直しかよ?
モジュールにしてる意味があまりない気が・・・こんなんなら、カーネル組み込みでもええじゃん・・・とか思うなあ・・・

今まで、実は自動でパッケージアップデートをしたことがあまりないんで、Linux というのがそういう設計思想で作られているものなのか(カーネルのマイナーバージョンアップでもモジュールは全部作り直しね・・・と)、自動でカーネルのべージョンアップした時の弊害なのかはわかりませんが・・・

再度、無線LANのセットアップが必要ですな。
とほほ・・・

CentOS on EeePC 4G-X で無線LANは使えるようになったし、SDHCカードも ext2 のディスクとして使えるようになったし、だんだん、持ち歩きデモマシンとして形になってきたんだけど、やっぱ、有線LANは使えるようにしておきたいよなあ。
お客さんのところでデモするのに、無線LANに接続させてもらえるケースってあんまりないもんねぇ。

EeePC 4G-X の有線LANデバイスは Atheros L2 だ。
でも、Atheros AR5007EG のときほど情報が落ちてないなあ。Windows 用のドライバには行き当たるんだけど・・・

SOURCEFORGE.NET で Atheros L2 Gigabit ethernet driver ていうの見つけたけど、Download のところを見ると、No File Packages Defined になってるし・・・

で、英語のページとかを彷徨って、RedHat のページに辿り着いたんだけど・・・
http://people.redhat.com/csnook/atl2/

これで合ってんのかなあ???

最新のこれとか。
http://people.redhat.com/csnook/atl2/atl2-2.0.5.tar.bz2

試しにチャレンジしてみた。(笑)

[root@serv4 src]# wget http://people.redhat.com/csnook/atl2/atl2-2.0.5.tar.bz2
--21:57:25--  http://people.redhat.com/csnook/atl2/atl2-2.0.5.tar.bz2
people.redhat.com をDNSに問いあわせています... 66.187.233.237
people.redhat.com|66.187.233.237|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 29126 (28K) [application/x-bzip2]
Saving to: `atl2-2.0.5.tar.bz2'

100%[=======================================>] 29,126      7.52K/s   in 3.8s

21:57:31 (7.52 KB/s) - `atl2-2.0.5.tar.bz2' を保存しました [29126/29126]

[root@serv4 src]# bzcat atl2-2.0.5.tar.bz2|tar xvf -
atl2-2.0.5/
atl2-2.0.5/atl2.h
atl2-2.0.5/Makefile
atl2-2.0.5/atl2_param.c
atl2-2.0.5/atl2_hw.c
atl2-2.0.5/atl2_hw.h
atl2-2.0.5/atl2_main.c
atl2-2.0.5/atl2_ethtool.c
atl2-2.0.5/atl2_osdep.h
[root@serv4 src]# cd atl2-2.0.5/
[root@serv4 atl2-2.0.5]# make
make -C /lib/modules/2.6.18-92.el5/build
SUBDIRS=/usr/local/src/atl2-2.0.5 modules
make[1]: ディレクトリ `/usr/src/kernels/2.6.18-92.el5-i686' に入ります
 CC [M]  /usr/local/src/atl2-2.0.5/atl2_main.o
/usr/local/src/atl2-2.0.5/atl2_main.c:72: error:
'PCI_VENDOR_ID_ATTANSIC' undeclared here (not in a function)
/usr/local/src/atl2-2.0.5/atl2_main.c: In function 'atl2_request_irq':
/usr/local/src/atl2-2.0.5/atl2_main.c:712: 警告: passing argument 2 of
'request_irq' from incompatible pointer type
/usr/local/src/atl2-2.0.5/atl2_main.c:1548:49: error: マクロ "INIT_WORK"
は引数を 3 要求しますが、2 個しか与えられていません
/usr/local/src/atl2-2.0.5/atl2_main.c: In function 'atl2_probe':
/usr/local/src/atl2-2.0.5/atl2_main.c:1548: error: 'INIT_WORK'
undeclared (first use in this function)
/usr/local/src/atl2-2.0.5/atl2_main.c:1548: error: (Each undeclared
identifier is reported only once
/usr/local/src/atl2-2.0.5/atl2_main.c:1548: error: for each function
it appears in.)
/usr/local/src/atl2-2.0.5/atl2_main.c:1548: 警告: statement with no effect
/usr/local/src/atl2-2.0.5/atl2_main.c:1549:55: error: マクロ "INIT_WORK"
は引数を 3 要求しますが、2 個しか与えられていません
/usr/local/src/atl2-2.0.5/atl2_main.c:1549: 警告: statement with no effect
make[2]: *** [/usr/local/src/atl2-2.0.5/atl2_main.o] エラー 1
make[1]: *** [_module_/usr/local/src/atl2-2.0.5] エラー 2
make[1]: ディレクトリ `/usr/src/kernels/2.6.18-92.el5-i686' から出ます
make: *** [all] エラー 2

ありゃ、make 失敗。

でも、今週は大きな見積を一本作らないといけないので、とりあえずこのまま放置。
この週末にでも時間が取れれば調べてみよう。

undeclared here とか言うてるし、なんか、カーネル関係のソースが足りないとか、そういうことだろうか?(どうも、FreeBSD から流れてくると、Linux 系は「そのくらいのソース、ディフォルトで入れとけ」とか思うことが多々ありますな・・・(^^;)

Screenshot_pkg_updater.pngEeePC 4G-X(CentOS 5.2)には、SDHC 16GB を刺してるんだけど、そのままじゃ FAT32 のディスクなんで面白くないですなあ。(別に、Windows とファイル共有する気もないし。XP Home は買って速攻で消したしなあ)

何せ、メインの SSD の容量が 4GB しかないんで、SDHC カードもLinux のファイルシステムの一部として有効利用したいもんです。

ということで、ext2 でフォーマットして、ハードディスクのように使うように設定しました。

[root@serv4 src]# fdisk -l

Disk /dev/hdc: 4001 MB, 4001292288 bytes
128 heads, 63 sectors/track, 969 cylinders
Units = シリンダ数 of 8064 * 512 = 4128768 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/hdc1   *           1          25      100768+  83  Linux
/dev/hdc2              26         969     3806208   83  Linux

Disk /dev/sda: 16.4 GB, 16437477376 bytes
255 heads, 63 sectors/track, 1998 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1               1        1999    16048128    c  W95 FAT32 (LBA)

この、/dev/sda というディスクを ext2 フォーマットのディスクとして使いたいわけです。

[root@serv4 src]# fdisk /dev/sda1

このディスクのシリンダ数は 15672 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

・・・なんか、警告みたいなのが出てますが、無視して先に進みます。

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
コマンド (m でヘルプ): p
領域番号 (1-4): 1
最初 シリンダ (1-15672, default 1): 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-15672, default 15672):
Using default value 15672

コマンド (m でヘルプ): t
Selected partition 1
16進数コード (L コマンドでコードリスト表示): 83

コマンド (m でヘルプ): p

Disk /dev/sda1: 16.4 GB, 16433283072 bytes
64 heads, 32 sectors/track, 15672 cylinders
Units = シリンダ数 of 2048 * 512 = 1048576 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1p1               1       15672    16048112   83  Linux

コマンド (m でヘルプ): w
領域テーブルは交換されました!


なんか、「警告: 領域テーブルの再読込みがエラー 22 で失敗しました: 無効な引数です。」とかメッセージが出たんですが、「警告」ということなので無視します。(^^;

ちゅうことで、ext2 にフォーマットを。

[root@serv4 src]# mkfs.ext2 /dev/sda1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2007360 inodes, 4012032 blocks
200601 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4110417920
123 block groups
32768 blocks per group, 32768 fragments per group
16320 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Writing inode tables: done                           
Writing superblocks and filesystem accounting information:
done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

これでお終い。

[root@serv4 src]# mount -t ext2 /dev/sda1 /vol1

としてマウント。/etc/fstab にも mount 情報を書いておく。

[root@serv4 src]# cat /etc/fstab
LABEL=/                 /                       ext2    defaults        1 1
LABEL=/boot             /boot                   ext2    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/sda1               /vol1                   ext2    defaults        1 2

これで再起動時もばっちり。

/usr/share とかを /vol1/usr の下に移したら、/(ルート)のディスク使用率 76%だったのが、40% とかになりましたよ。
SDHC の方は、さすがに 16GB。まだ 9% の使用率です。

一般ユーザの home や、/usr/local 以下の諸々のディレクトリも、順次 SDHC の方に移していこうと思っています。

まあ、何はともあれ、ディスク(SSD)が空いたので、やっとパッケージアップデートが出来るでよお。

netsettei1.gif  netsettei2.gif

結局、きちんと ifcfg-ath0 の設定をして、勝手に作られている wifi0 の設定ファイル(ifcfg-ath0)を削除すれば無線LANに接続できました。(我が家の無線LANはそんなややこしい設定にしてないしね)

# cat /etc/sysconfig/network-scripts/ifcfg-ath0
DEVICE=ath0
TYPE=Wireless
ONBOOT=no
#ONBOOT=yes
BOOTPROTO=dhcp
IPV6INIT=no
# Network Config
ESSID=********<実際の ESSID>
MODE=Managed
IWPRIV="mode 2 bgscan 0"
NETMASK=
DHCP_HOSTNAME=
IPADDR=
DOMAIN=
HWADDR=
RATE=
CHANNEL=

# cat /etc/sysconfig/network-scripts/keys-ath0
KEY=s:*****<実際の WEPキー>

X 立ち上げて、ネットワーク設定画面から設定してもいいですな。

ちなみに、コマンドラインから ath0 を起動するには ifup で。
ifconfig ath0 up とかしても駄目だった。

MadWiFi デバイスがまったく認識されない件で、dmesg に出ていた'Hardware revision not supported'(HAL status 13) というメッセージが気になったので、
Snapshot archive for madwifi-hal-0.10.5.6
http://snapshots.madwifi.org/madwifi-hal-0.10.5.6/
というサイトから最新の Snapshot である
madwifi-hal-0.10.5.6-r3861-20080903.tar.gz
を取得して入れ直すことにした。(ちなみに、HAL は'Hardware Access Layer'の略)

インストール自体は make & make install ですんなり行ったのだが、やっぱり全然デバイスは認識されない。
というか、dmesg で見ても、最初のドライバのときよりも ath 関係の出力が減ってるし。(^^;

ath_hal: module license 'Proprietary' taints kernel.
AR5210, AR5211, AR5212, AR5416, RF5111, RF5112, RF2413, RF5413, RF2133, RF2425, RF2417)
MadWifi: ath_getchannels: Unable to collect channel list from HAL; regdomain likely 96 country code 392

だけ。

ん???「regdomain likely 96 country code 392」が問題?

それって、
http://www.asahi-net.or.jp/~aa4t-nngk/madwifi.html#getrecentsvn
を参考にして、modprobe.conf に追加した設定じゃん。

alias ath0 ath_pci
options ath_pci countrycode=392 autocreate=sta

・・・としていたので、options 行をコメントにしたところ・・・やりました。
ついに認識しましたよ。CentOS が無線LANデバイスの存在を。

dmesg には以下のような出力

ath_hal: module license 'Proprietary' taints kernel.
AR5210, AR5211, AR5212, AR5416, RF5111, RF5112, RF2413, RF5413, RF2133, RF2425, RF2417)
<略>
MadWifi: ath_attach: Switching rfkill capability off.
<略>
wifi0: Atheros AR2425 chip found (MAC 14.2, PHY SChip 7.0, Radio 10.2)
<略>
ath_pci: wifi0: Atheros 5424/2424: mem=0xfbef0000, irq=185

wifi0 なんてデバイス名、初めて出てきたね。
これでいいのかな?

そのほか、ネットワークI/Fのチェックコマンドの表示でも、

[root@localhost ~]# iwconfig
lo        no wireless extensions.

wifi0     no wireless extensions.

ath0      IEEE 802.11b  ESSID:"" 
          Mode:Managed  Channel:0  Access Point: Not-Associated  
          Bit Rate:0 kb/s   Tx-Power:17 dBm   Sensitivity=1/1 
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=0/70  Signal level=-98 dBm  Noise level=-98 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

sit0      no wireless extensions.

と、ath0 が。

まだ、細かい設定を全然やってないので、ESSID なんかもまともに取れてないが、その辺りはボチボチと・・・

いやあ、今回、一気に状況が進みました。
さてさて、苦手な無線LAN設定に手をつけないといかんねえ・・・
その前に、ほんとにデバイスが wifi0 で認識されているけど、これでいいのか???
悩みは尽きない。

P.S.
と、書いてたんですが、今日、別の投稿のコメントに、

「eeepcで動くmadwifiはこれじゃないとだめですよ。
http://snapshots.madwifi.org/madwifi-hal-0.10.5.6/

といただきました。
ああ、間違ってなかったのね。よっしゃ。

「これで、make & make install が最後まで通る」と前回書きましたが、実はまだ通りません。

make すると、今度は
/usr/local/src/madwifi-0.9.4/ath/../include/compat.h:140: error: redefinition of 'skb_end_pointer'
include/linux/skbuff.h:417: error: previous definition of 'skb_end_pointer' was here
というようなエラーを大量に吐いて
make: *** [modules] エラー 2
・・・で終わります。

これも既知のエラーで、
http://madwifi.org/changeset/3715
ここに対処方法が書かれていますので、指示に従って compat.h を修正します。

具体的には、madwifi/branches/madwifi-0.9.4/include/compat.h の139行目の
static inline unsigned char *skb_end_pointer(const struct sk_buff *skb) 
{
        return skb->end;
}
から167行目の
static inline void skb_reset_mac_header(struct sk_buff *skb) 

        skb->mac.raw = skb->data; 

までを削除。
代わりに、
#define skb_end_pointer(_skb) ((_skb)->end)
#define skb_tail_pointer(_skb) ((_skb)->tail)
#define skb_set_network_header(_skb, _offset) \
        do { (_skb)->nh.raw = (_skb)->data + (_offset); } while (0)
#define skb_reset_network_header(_skb) \
        do { (_skb)->nh.raw = (_skb)->data; } while (0)
#define skb_mac_header(_skb) ((_skb)->mac.raw)
#define skb_reset_mac_header(_skb) \
        do { (_skb)->mac.raw = (_skb)->data; } while (0)
を挿入します。

このエラーに関する日本語のページが見つけられなかったので詳細不明なんですけど、madwifi.org のページに「Red Hat has backported those sk_buff functions -- details are in Red Hat's Bugzilla #385681. 」とかいう記述があるところを見ると、RedHat のバグなんでしょうかねえ???

結局、この修正で最後まで make & make install が通ります。

この後、
http://www.geocities.jp/tatsus490824/wireless_setting.html
のページなどを参照して設定をしてみましたが、うまくいきません。

以下、dmseg からの抜粋ですが、
ath_hal: module license 'Proprietary' taints kernel.
ath_hal: 0.9.18.0 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
wlan: 0.9.4
input: PC Speaker as /class/input/input3
ath_pci: 0.9.4
wifi%d: unable to attach hardware: 'Hardware revision not supported' (HAL status 13)

という具合に、'Hardware revision not supported' で駄目だと言われます。

う~ん・・・

CentOS5.2 on EeePC でネット接続出来る日は遠いなあ・・・(^^;

ASUS EeePC 4G-X の LANデバイスは、有線LANが Atheros L2 (100BASE-TX)、無線LANが Atheros AR5007EG (IEEE802.11b/g) だそうだ。
Atheros 社は Linux 用の無線LANのドライバに関しては、オープンソースの形で MADWiFi という名前で公開している。
なので、CentOS に手動でインストールしてみることにした。

まず、
http://sourceforge.net/project/showfiles.php?group_id=82936&package_id=85233
から、madwifi-0.9.4.tar.gz をダウンロード。CD に焼いて EeePC に持ち込んだ。

展開して、後は INSTALL ドキュメントを見ながら作業するだけ(実際、make; make install で OK)なんだが、これがすんなりいかない。(^^;

make すると、いきなり
/bin/sh: line 0: cd: /lib/modules/2.6.18-92.el5/build: そのようなファイルやディレクトリはありません
というエラーが発生する。

/lib/modules/2.6.18-92.el5/build はあるけどなあ・・・と思ったら、実体のディレクトリが無かった・・・(/lib/modules/2.6.18-92.el5/build は /usr/src/kernels/2.6.18-92.el5-i686 のシンボリックリンクなんだが、/usr/src/kernels/2.6.18-92.el5-i686 が存在してない(^^;)

これは、
mkdir -p /usr/src/kernels/2.6.18-92.el5-i686
してやれば OK。

気を取り直して make すると、今度は C コンパイラが無いと・・・
FreeBSD 生活が長かったので、C コンパイラなんて入って当たり前だと思ってたけど、CentOS はデスクトップ環境のインストールでは C コンパイラは入らないのね・・・
この辺が、UNIX と Linux の違いか。

↓これらの RPMSパッケージのインストールが必要。

gcc-4.1.2-42.el5.i386.rpm
glibc-devel-2.5-24.i386.rpm
glibc-headers-2.5-24.i386.rpm
kernel-devel-2.6.18-92.el5.i686.rpm
kernel-headers-2.6.18-92.el5.i386.rpm
libgomp-4.1.2-42.el5.i386.rpm

ちなみに、kernel-devel-2.6.18-92.el5.i686.rpm は gcc のインストールには必要ないが、入れておかないと MADWiFi の make で「linux/utsrelease.h: そのようなファイルやディレクトリはありません」と落ちるので注意。

これで、make & make install はやっと最後まで通る。

長くなったので、この続きは別途。

081022_202131.JPG持ち歩けるデモ用の UNIX サーバが欲しかったので(今は DELL のでっかいノートに VMware Server 入れて、その上で CentOS 5 を動かしてるけど、DELL のノート重いし、Virtual Machine はネットワークの設定が面倒くさくて)、中古の Asus EeePC 4G-X(EEEPC4G-BK003X)を買いました。
901シリーズが出たので、新品でも 29,800円とかでたたき売られているモデルですが、メモリが 1GB に増設してあって 24,800円だったので、まあ、買いかなと。

で、さっそくプリインストールされている WindowsXP Home を消して、CentOS 5.2 をインストールしてみました。
EeePC だと、Ubuntu 入れてる人が多いみたいだけど、うちは Linux サーバのお客さんが、RHEL か CentOS ばかりなので、やっぱ系統は合わせておいたほうが何かと。それに、ほら、Debian のコミュニティと色々揉めてた事件が・・・

ということで、CentOS を入れたんですが、ネットワーク I/F は有線も無線もどっちもまったく認識せず。(^^;
まあ、Gnome は無事立ち上がったんで、この後の作業はやりやすいんですが、先は長いなあ・・・という感じ。(^^;

FreeBSD でも EeePC のネットワーク I/F が使えているみたいなんで、何とかなるとは思いますが・・・

日経Linux 2008/10号によると、ついに Wine が正式バージョンでリリースされたのだね。(印刷物から情報を得るのもダサダサだが、Wine のことは全然追ってなかったのでご勘弁)

Wine というのは、UNIX 系 OS の上で動く Windows エミュレータ。僕が UNIX の世界に触れた 12~3年前から既に Wine は存在していた。
確か、自宅の PC に FreeBSD 2.0.5-RELEASE を入れたときに Wine は既に packages に含まれていたと思う。しかし、動くソフトがマインスイーパーや電卓くらいで「使えねぇ」と思った記憶が・・・

僕が Windows から UNIX 系 OS に完全移行するのに最大の障壁になるのが、
「日本語変換は ATOK でなきゃいやだ」
「メールソフトは AL-Mail でないとやだ」
「エディタは秀丸でないといや」
の三点。

Office suite は既に Windows 上でも OpenOffice.org がメインになってるし、Web ブラウザは FireFox があれば十分だし、iTunes が無いと iPod にデータ突っ込めないけど、これはメインマシンで動かないと駄目なわけじゃなし。

ATOK に関しては、以前 ATOK X を買って Fedora に入れてみたらそこそこ使えたので、まあ、問題ないと。
あとは、メールソフトとエディタの問題だったんだよな。

ちょっと安い中古のノートパソコン買って、CentOS で環境構築してみようかな・・・という気にさせるなあ。またいらぬ出費が・・・(^^;

このアーカイブについて

このページには、2008年10月以降に書かれたブログ記事のうちUNIXやLinuxカテゴリに属しているものが含まれています。

次のアーカイブはUNIXやLinux: 2008年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

  • photo
  • photo2008
  • podcasting
電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら