Linux/CentOS PCIe NIC

CentOS PCIe NICドライバアップデート

Kerner 2.6系のLinux(CentOS)で玄人志向PCIe NICを使うときは ドライバの更新が必要。

アップデートしないと、大きなデータを送信するとNICが落ちる

ダウンロード

http://www.marvell.com/
Marvellのサイトのドライバ検索から「linux」を行い、「Linux Driver Install Package」をダウンロードします。

アップデート

# tar xfvj install_v10.22.2.3.tar.bz2 
# cd DriverInstall 
# ln -s /usr/src/kernels/`uname -r`-i686 /usr/src/linux 
# ./install.sh 

Installation script for sk98lin driver. 
Version 10.22.2.3 (Oct-02-2007) 
(C)Copyright 2003-2007 Marvell(R). 
==================================================== 
Add to your trouble-report the logfile install.log 
which is located in the  DriverInstall directory. 
==================================================== 


1) installation 
2) generate patch 
3) exit 
Choose your favorite installation method: 

1 ENTER 

Please read this carfully! 

This script will automatically compile and load the sk98lin 
driver on your host system. Before performing both compilation 
and loading, it is necessary to shutdown any device using the 
sk98lin kernel module and to unload the old sk98lin kernel 
module. This script will do this automatically per default. 

Please plug a card into your machine. Without a card we aren't 
able to check the full driver functionality. 

Do you want proceed? (y/N) 

y ENTER

Do nothing: 
  - The sk98lin will be installed 
  NOTE: It may happen that the alternative driver will be loaded on 
  the next boot process. In this case the Marvell driver _WON'T_ be 
  loaded. 

Deactivate driver: 
  - The alternative driver will be renamed to _skge.ko or _sky2.ko 
  - All references in the /etc/modprobe.conf file will be changed to 
    the sk98lin driver 
  - The alternative driver will be unloaded 
  - The sk98lin driver will be installed 

Remove driver (recommended): 
  - The alternative driver will be removed from your system 
  - All references in the /etc/modprobe.conf file will be changed to 
    the sk98lin driver 
  - The alternative driver will be unloaded 
  - The sk98lin driver will be installed 

Deactivate driver:を選択 

Create tmp dir (/tmp/Sk98IlbaPOUDndNCIrOYOdijX)                                [   OK   ] 
Check user id (0)                                                              [   OK   ] 
Check kernel version (2.6.9-55.EL)                                             [   OK   ] 
Check kernel symbol file (/proc/kallsyms)                                      [   OK   ] 
Check kernel type (SP)                                                         [   OK   ] 
Check architecture (found)                                                     [   OK   ] 
Set architecture (i386)                                                        [   OK   ] 
Check compiler (/usr/bin/gcc)                                                  [   OK   ] 
Check mcmodel flags (none)                                                     [   OK   ] 
Check module support (/sbin/insmod)                                            [   OK   ] 
Check make (/usr/bin/make)                                                     [   OK   ] 
Check archive file (sk98lin)                                                   [   OK   ] 
Check kernel gcc version (3.4.6) (Kernel:3.4.6 == gcc:3.4.6)                   [   OK   ] 
Check sk98lin driver availability (loaded)                                     [   OK   ] 
Disconnect devices: eth1  (done)                                               [   OK   ] 
Remove driver (done)                                                           [   OK   ] 
Check kernel header files (/usr/src/linux)                                     [   OK   ] 
Check modpost availability (available)                                         [   OK   ] 
Unpack the sources (done)                                                      [   OK   ] 
Check firmware availability (not available)                                    [   OK   ] 
Check sources for .config file (/usr/src/linux/.config)                        [   OK   ] 
Copy and check .config file (done)                                             [   OK   ] 
Check the mem address space (highmem)                                          [   OK   ] 
Change IOMMU (disabled)                                                        [   OK   ] 
Create new .config file (done)                                                 [   OK   ] 
Execute: make oldconfig (done)                                                 [   OK   ] 
Check kernel header version (not recognized)                                   [  warn  ] 
Check kernel functions (Changed: nothing)                                      [   OK   ] 
Compile the kernel (done)                                                      [   OK   ] 
Copy driver man page into /usr/share/man/man4/ (done)                          [   OK   ] 
Check the driver (done)                                                        [   OK   ] 
Delete old driver (done)                                                       [   OK   ] 
Copying driver (done)                                                          [   OK   ] 
Make dependency (done)                                                         [   OK   ] 
Delete temp directories (done)                                                 [   OK   ] 
All done. Driver installed and loaded. 
To load the module manually, proceed as follows: 

と出て、あとは再起動する。

結果

dmesg(before) 
sky2 v1.6 addr 0xcfffc000 irq 169 Yukon-EC (0xb6) rev 2 
divert: allocating divert_blk for eth1 
sky2 eth1: addr 00:90:cc:eb:5a:62 

dmesg(after) 
sk98lin: no version for "struct_module" found: kernel tainted. 
ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 16 (level, low) -> IRQ 169 
sk98lin: Network Device Driver v10.22.2.3 
(C)Copyright 1999-2007 Marvell(R). 
ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 16 (level, low) -> IRQ 169 
PCI: Setting latency timer of device 0000:03:00.0 to 64 
divert: allocating divert_blk for eth1 
eth1: Marvell Yukon 88E8053 Gigabit Ethernet Controller 
      PrefPort:A  RlmtMode:Check Link State 

となりOK

参考サイト

http://shikabo.ddo.jp/?cat=101