Atheros AR8161のLinux用ドライバのインストール

GIGABYTEのGA-Z77X-UD3Hには、AtherosのAR8161というオンボードLANチップが載ってる。

マニュアル記載の仕様表には、「Atheros GbE LANチップ」とだけ書いてあって、型番の記載はない。

AR8161

現物は中央の逆さになってる、この小さなチップ。

これ書いた時点では、これが新しめのチップらしくて、openSUSEでは初期状態で認識できなかったから、compat-driversからドライバをインストールした。その時の手順のメモ。

openSUSE 12.3でやったからそれに合わせて書いてるけど、他のディストロでも同じような手順を踏めばいけると思う。

openSUSEの場合は、ビルドサービスに有志ビルドのパッケージがあるかもしれない。漁ってみるのもいいかも?ただ、これだと更新が来たときにすぐ対応しきれないところがあるから、今回はあえて自力でインストールを試みた。

openSUSE 12.3インストール直後は、YaST上では一応見れるけど、設定させてくれない。

opensuse 12.3インストール直後のYaSTの画面

YaSTでは表示はされているけど、設定させてくれない

ifconfigではインターフェースとして出てこない。lspciコマンドでもやはり使用ドライバが無い状況。

hostname:~ # ifconfig -a
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:52 errors:0 dropped:0 overruns:0 frame:0
          TX packets:52 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4901 (4.7 Kb)  TX bytes:4901 (4.7 Kb)

hostname:~ # lspci -knn
(中略)
05:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR8161 Gigabit Ethernet [1969:1091] (rev 10)
        Subsystem: Giga-byte Technology Device [1458:e000]

チップの型番でググってみたところ、Linux Foundationのページが引っかかり、alxというドライバを使うことが判明。上で黄色で示してる部分のデバイスIDも合ってる。コレだね。alxドライバはcompat-driversに収録されているようだ。

インストール方法はhttps://backports.wiki.kernel.org/index.php/Documentation/compat-driversを参考にした。

そうそう、ドライバのビルドには、kernel-develとかgccとかmakeが必要。入っていない場合はDVDインストールメディアからインストールする。

kernel- develについては、現在動いてるカーネルと同じバージョンが必要。初期状態でインストールされているカーネル(=3.7.10-1.1- desktop)であれば、DVDインストールメディアにパッケージが入ってる。更新でカーネルが新しいバージョンになっている場合は、そのバージョン用 のkernel-develを拾ってくる必要がある。

compat-driversのリリースページ(http://drvbp1.linux-foundation.org/~mcgrof/rel-html/backports)から、今使ってるカーネルより「新しいバージョン」の、末尾に”u”付きのものを選ぶ。

例)3.7.10-1.1→compat-drivers-3.8.3-2-snpu

今回は~/src/にダウンロードしたドライバを展開している。

注意点として、compat-drivers-xxxxのディレクトリから相対パスで実行しないといけない決まりがあるみたい。

インストールするドライバとして、alxを選択。その後make

user1@hostname:~/src/compat-drivers-3.8.3-2-snpu> ./scripts/driver-select alx
Processing new driver-select request...
Backing up makefile: Makefile.bk
Backup exists: Makefile.bk
Backing up makefile: drivers/net/ethernet/broadcom/Makefile.bk
Backing up makefile: drivers/net/ethernet/atheros/Makefile.bk
Backup exists: Makefile.bk
Backup exists: Makefile.bk
Backup exists: drivers/net/ethernet/broadcom/Makefile.bk

user1@hostname:~/src/compat-drivers-3.8.3-2-snpu> make
./scripts/gen-compat-autoconf.sh /home/user1/src/compat-drivers-3.8.3-2-snpu/.config /home/user1/src/compat-drivers-3.8.3-2-snpu/config.mk > include/linux/compat_autoconf.h
make -C /lib/modules/3.7.10-1.4-desktop/build M=/home/user1/src/compat-drivers-3.8.3-2-snpu modules
make[1]: ディレクトリ `/usr/src/linux-3.7.10-1.4-obj/x86_64/desktop' に入ります
  CC [M]  /home/user1/src/compat-drivers-3.8.3-2-snpu/compat/main.o
  CC [M]  /home/user1/src/compat-drivers-3.8.3-2-snpu/compat/compat-3.8.o
  LD [M]  /home/user1/src/compat-drivers-3.8.3-2-snpu/compat/compat.o
  CC [M]  /home/user1/src/compat-drivers-3.8.3-2-snpu/drivers/net/ethernet/atheros/alx/alx_main.o
  CC [M]  /home/user1/src/compat-drivers-3.8.3-2-snpu/drivers/net/ethernet/atheros/alx/alx_ethtool.o
  CC [M]  /home/user1/src/compat-drivers-3.8.3-2-snpu/drivers/net/ethernet/atheros/alx/alx_hw.o
  LD [M]  /home/user1/src/compat-drivers-3.8.3-2-snpu/drivers/net/ethernet/atheros/alx/alx.o
  Building modules, stage 2.
  MODPOST 2 modules
  CC      /home/user1/src/compat-drivers-3.8.3-2-snpu/compat/compat.mod.o
  LD [M]  /home/user1/src/compat-drivers-3.8.3-2-snpu/compat/compat.ko
  CC      /home/user1/src/compat-drivers-3.8.3-2-snpu/drivers/net/ethernet/atheros/alx/alx.mod.o
  LD [M]  /home/user1/src/compat-drivers-3.8.3-2-snpu/drivers/net/ethernet/atheros/alx/alx.ko
make[1]: ディレクトリ `/usr/src/linux-3.7.10-1.4-obj/x86_64/desktop' から出ます

パッケージ化したかったからcheckinstallが使えないか試してみたけど、ビルド中に競合モジュールを止めるところでコケた。渋々、make install.

user1@hostname:~/src/compat-drivers-3.8.3-2-snpu> su
パスワード:
hostname:/home/user1/src/compat-drivers-3.8.3-2-snpu # make install
Warning:
You may or may not need to update your initramfs, you should if
any of the modules installed are part of your initramfs. To add
support for your distribution to do this automatically send a
patch against ./scripts/update-initramfs. If your distribution does not require this
send a patch against the '/usr/bin/lsb_release -i -s': openSUSE
tag for your distribution to avoid this warning.
(中略)
depmod will prefer updates/ over kernel/ -- OK!

Now run:

sudo make unload to unload all: wireless, bluetooth and ethernet modules
sudo make wlunload to unload wireless modules
sudo make btunload to unload bluetooth modules

Run sudo modprobe driver-name to load your desired driver.
If unsure reboot.

hostname:/home/user1/src/compat-drivers-3.8.3-2-snpu #

この説明文からすると、この時にinitramfsの更新までやってくれてるみたい。

再起動すると、モジュールがロードされる。modprobe alxで再起動せずに使うことも可能。

以下、コマンドラインからの確認。alxドライバがAR8161に割り当てされていて、ネットワークインターフェースとしても認識してる。

user1@hostname:~> lsmod | grep alx
alx                    72577  0 
compat                 17617  1 alx
mdio                   13808  1 alx

hostname:~ # lspci -knn
(中略)
05:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR8161 Gigabit Ethernet [1969:1091] (rev 10)
        Subsystem: Giga-byte Technology Device [1458:e000]
        Kernel driver in use: alx

hostname:/home/user1 # ifconfig -a
eth0      Link encap:Ethernet  HWaddr 90:2B:34:XX:XX:XX  
          inet addr:XXX.XXX.XXX.XXX  Bcast:XXX.XXX.XXX.XXX  Mask:255.255.255.0
          inet6 addr: fe80::922b:XXXX:XXXX:XXXX/64 Scope:Link
          inet6 addr: 2408:11:83a0:c300:XXXX:XXXX:XXXX:XXXX/64 Scope:Global
          inet6 addr: 2408:11:83a0:c300:XXXX:XXXX:XXXX:XXXX/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:44 errors:0 dropped:0 overruns:0 frame:0
          TX packets:86 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:9363 (9.1 Kb)  TX bytes:15626 (15.2 Kb)
          Interrupt:18 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:56 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:5101 (4.9 Kb)  TX bytes:5101 (4.9 Kb)

早く標準ドライバとして入ってくれないかなー。

ゆるゆり一番くじ

GW中、アキバのゲーマーズの店頭で売られてたから引いてきた。他のショップより一足早かったみたい。

ゆるゆり一番くじ―全体

第2弾になりますが、懲りずに引いてきました

京子だけ揃ってない(´;ω;`)

京子だけ揃ってない(´;ω;`)

くじ系では京子だけ縁が無いみたいなんだよねー。

思えば七森中感謝祭やゲーマーズの展示イベントの時に出ていた「なもりくらげピンズ」のガチャでも、「京子だけ」なかなか揃わないという現象が…

ゆるゆりくらげピンズ京子

(参考)なもりくらげピンズ・京子。これレア扱いじゃないの?ってぐらい極端に出なかった。2個ぐらいしか持ってない

天使すなあ

天使すなあ

このデザインはなかなかナイスだと思う。

このデザインはなかなかナイスだと思う。

そしてそして、一番最初の全体写真には並んでなかったけど、きゅんキャラ綾乃が当たりました。

ゆるゆり一番くじ―きゅんキャラ綾乃ゆるゆり一番くじ―きゅんキャラ綾乃

 

ゆるゆりグッズの入った専用の箱がもう一杯になってしまった。新しい箱を用意せねば。

 

Borderlands2:パンドラの世界の1日の長さって?

あけおめことよろ。

ボダラン2ではLynchwoodに時計台がある。これをパンドラの世界の時間とすると、1日経つのに現実世界でどれぐらいかるのか気になってしまったから調べてみた。暇だなおい。

Lynchwoodの時計台

Lynchwoodの時計台

でも、1日かかる時間をきっちり測るのはさすがに退屈というか、ゲームしてたほうが楽しいでしょ?
だから今回は、「時計台の時間が6時間進むのに何秒かかるか」ということにして測ってみたところ…

8分20秒。

中途半端かもしれないけど、秒数に換算してみると、ぴったり500秒じゃないの。
つまり、パンドラの世界の1日は、現実世界で2000秒(33分20秒)かかると。

※1人プレイ時はメニューを開くとポーズ扱いになり、ゲーム内の時間が止まる点に注意。
自販機やファストトラベルのメニューでは時間が流れているみたい。

もしかしたらフレームレートとか、特定のレリックとか、左右される要素があるかも。

初代も同じなのだろうか。初代のマップに時計台とか基準になりそうなものあったっけ?

暇な方はぜひお試しを。

Borderlands2武器コレクション その2

今回は2キャラ目として育てている、ガンザーカーで使っているものから。

自分はVladof製の銃と相性がいい気がする。バーストできるしダメージもそこそこだし、割りとバラバラ撃てるから好き。
Jacobs製の銃も威力高いからよく使うんだけど、連射で指が疲れるという理由であんまり好きじゃないw

この武器は、1人目として育てているメクロマンサーのお下がりだったりする

↑この2つは、一緒に金箱から出てきた武器。

ペアでガンザーキングして(^o^)ノ<焼き払えー

ペアでガンザーキングして(^o^)ノ<焼き払えー

 

Borderlands2武器コレクション

ボダラン2ではインベントリメニューの「調べる」コマンドで、武器をグリグリ動かしていろんな方向から見れるようになってるけど、
その機能を利用して、今回は出会った武器の中でも愛用していたものを展示してみる。

これらは初めて育てたキャラ、メクロマンサーで使っている/使っていた武器。

 

ちょっと番外編。
「Mr.Torgueのキラートーナメント」中のあるミッションをクリアするとTiny Tinaからもらえる武器。

どう見ても爆発系

パラメーターだけ見るとスペックが高いからか、売値が飛び抜けて高い。プレミアでも付いてるのかと。
でもこの銃、非常に珍しい弾の飛び方する。まさに珍銃。手にとって撃ってもらえればわかるはず。