XenServer5.6SP2 で AR8131を使う

マイナーなNICなのかAtheros AR8131に XenServer 5.6SP2 は対応していません。


でも、Atherosさんは ドライバのソースファイルを公開してくれてるし、Citrixさんはドライバをコンパイルする為の環境(DDK)を提供してくれてます。

ということで、ドライバを自分で作れば、NICがAR8131 なパソコンでも、XenServer を使うことが出来ます。

※DDK を入手する為には、Citrix の無料のアカウントを作る必要があります。

※Atheros が Qualcommに買収されてからは、ドライバのソースが配布されなくなってるみたいです。

DDK の導入

これといった手順はないかな。。。

ダウンロードするファイルはISOイメージですが、仮想マシンを配備する為に使うのは、その中に入ってるファイルです。なので、

  1. 当なツールで、ISOの中身を取り出す
  2. 取り出したファイルの、cva.xml をXenCenterでインポート
  3. インポート後、DDKを起動したら、console を開いてrootのパスワードを設定

で、DDKの配備は完了です。あっ、ドライバのソースをネットワーク経由で渡す場合は、配備した仮想マシンにNICを追加してください。

ドライバのコンパイル

入手したドライバのソースを DDKに転送したら、適当にコンパイルします。

[root@localhost ~]# mkdir ar81xx

[root@localhost ~]# mv AR81Family-linux-v1.0.1.14.tar.gz ar81xx/

[root@localhost ~]# cd ar81xx/

[root@localhost ar81xx]# tar zxf AR81Family-linux-v1.0.1.14.tar.gz

gzip: stdin: decompression OK, trailing garbage ignored

tar: Child returned status 2

tar: Error exit delayed from previous errors    <- このエラーは無視 (^^;)

[root@localhost ar81xx]# make

make -C ./src

make[1]: Entering directory `/root/ar81xx/src'

make -C /lib/modules/2.6.32.12-0.7.1.xs5.6.100.307.170586xen/buildSUBDIRS=/root/ar81xx/src module

make[2]: Entering directory`/usr/src/kernels/2.6.32.12-0.7.1.xs5.6.100.307.170586xen-i686'

Updating /root/ar81xx/src/Makefile.xen

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CC /root/ar81xx/src/atl1e.mod.o

LD [M] /root/ar81xx/src/atl1e.ko

make[2]: Leaving directory`/usr/src/kernels/2.6.32.12-0.7.1.xs5.6.100.307.170586xen-i686'

make[1]: Leaving directory `/root/ar81xx/src'

[root@localhost ar81xx]#

src/atl1e.ko がドライバです。

作成したドライバの取り出し

scp とか、なんか適当にドライバを取り出してください。で、CD-ROMに焼いておくと使いやすいです。

作成したドライバを使った、XenServer のインストール

XenServer のインストール


・ XenServerのインストールメディアから shell を指定して起動

boot: shell


・shell が起動したら、ドライバを焼き込んだメディアに交換し、ドライバをコピーする

bash-3.2# mkdir /tmp/cd

bash-3.2# mount /dev/cdrom /tmp/cd

bash-3.2# cd /tmp/cd

bash-3.2# cp -rf atl1e.ko /lib/modules/2.6.32.12-0.7.1.xs5.6.100.323.170596xen/kernel/drivers/net/atl1e/atl1e.ko

bash-3.2# depmod -a            /etc/modules.dep の更新

bash-3.2# modprobe atl1e           

bash-3.2# cd /

bash-3.2# umount /tmp/cd


・メディアを XenServerのインストールメディアに入れ替えた後shellを抜ける。で、インストールを継続

bash-3.2# exit


初回起動時の作業

インストール時にコピーしたドライバは、システム起動後には認識されていません。改めてコピーします。


・ドライバのコピー

  1. メニューから local command shell を選択
  2. ドライバを入れたメディアからドライバをコピー

# mkdir /tmp/cd

# mount /dev/cdrom /tmp/cd

# cd /tmp/cd

# cp -rf atl1e.ko  /lib/modules/2.6.32.12-0.7.1.xs5.6.100.323.170596xen/kernel/drivers/net/atl1e/atl1e.ko


・モジュールの反映

# depmod -a

# modprobe atl1e        

# vi /etc/modprobe.conf                <- ファイルが無いから新規作成

alias eth0 atl1e

# shutdown -r now


これで、Atheros AR8131を認識してくれました。あとは、適当にIPを振れば完了です。

* 参考までに、うちの環境でコンパイルしたドライバをアップしてみました。

http://www.kichise.com/file-cabinet


なお、XenServer6 でも、ほぼ同じ手順で認識させることができます。

Comments