2010年8月31日火曜日

r8168 on kernel-2.6.35

前の記事で r8168 ドライバが kernel-2.6.35 ではコンパイルできないと書いていたが、
エラーメッセージを書いてなかったので同じところではまった人のためにメモっておく。

r8168-8.018.00 を kernel-2.6.35 上でコンパイルすると、以下のようなエラーになる。
これ対処するパッチはこのへん

まあ、そのうち公式でも対応するんだろうけど。

$ make modules
make -C src/ modules
make[1]: Entering directory `/var/tmp/r8168-8.018.00/src'
make -C /lib/modules/2.6.35-gentoo/build SUBDIRS=/var/tmp/r8168-8.018.00/src modules
make[2]: Entering directory `/usr/src/linux-2.6.35-gentoo'
  CC [M]  /var/tmp/r8168-8.018.00/src/r8168_n.o
/var/tmp/r8168-8.018.00/src/r8168_n.c: In function ‘rtl8168_get_ethtool_stats’:
/var/tmp/r8168-8.018.00/src/r8168_n.c:1745: warning: ‘DMA_nnBIT_MASK’ is deprecated
/var/tmp/r8168-8.018.00/src/r8168_n.c: In function ‘rtl8168_init_board’:
/var/tmp/r8168-8.018.00/src/r8168_n.c:6517: warning: ‘DMA_nnBIT_MASK’ is deprecated
/var/tmp/r8168-8.018.00/src/r8168_n.c:6520: warning: ‘DMA_nnBIT_MASK’ is deprecated
/var/tmp/r8168-8.018.00/src/r8168_n.c: In function ‘rtl8168_hw_start’:
/var/tmp/r8168-8.018.00/src/r8168_n.c:7096: warning: ‘DMA_nnBIT_MASK’ is deprecated
/var/tmp/r8168-8.018.00/src/r8168_n.c:7098: warning: ‘DMA_nnBIT_MASK’ is deprecated
/var/tmp/r8168-8.018.00/src/r8168_n.c: In function ‘rtl8168_set_rx_mode’:
/var/tmp/r8168-8.018.00/src/r8168_n.c:8919: error: ‘struct net_device’ has no member named ‘mc_count’
/var/tmp/r8168-8.018.00/src/r8168_n.c:8928: error: ‘struct net_device’ has no member named ‘mc_list’
/var/tmp/r8168-8.018.00/src/r8168_n.c:8928: error: ‘struct net_device’ has no member named ‘mc_count’
/var/tmp/r8168-8.018.00/src/r8168_n.c:8929: error: dereferencing pointer to incomplete type
/var/tmp/r8168-8.018.00/src/r8168_n.c:8930: error: dereferencing pointer to incomplete type
make[3]: *** [/var/tmp/r8168-8.018.00/src/r8168_n.o] Error 1
make[2]: *** [_module_/var/tmp/r8168-8.018.00/src] Error 2
make[2]: Leaving directory `/usr/src/linux-2.6.35-gentoo'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/var/tmp/r8168-8.018.00/src'
make: *** [modules] Error 2

(2010/09/15 追記)
 8月末にr8168-8.019.00 がリリースされていたようです。
 上のパッチがなくても問題なくコンパイルできるようになってました。