How to Install Last SysKonnect Gigabit Marvell Ethernet driver on OpenSolaris Indiana

Create an alternate boot environment to test the new driver(Recommended because very-very easy to go back in case of failure)

Get your last OpenSolaris BE number
#
N=`beadm list |tail -1 |nawk -F'-' '{print $2}'`
#
echo $N
7 <= it should be a number

Create Your ABE with beadm
#
beadm create opensolaris-$N
#
beadm mount opensolaris-$N /a
# b
eadm unmount opensolaris-$N

Reboot to the new boot-environment “opensolaris-$N”

# beadm activate opensolaris-$N
#
init 6

Identify your Ethernet Marvell device driver aliases:

# /usr/X11/bin/scanpci -v
pci bus 0x0002 cardnum 0x00 function 0x00: vendor 0x
11ab device 0x4362
Marvell Technology Group Ltd.
88E8053 PCI-E Gigabit Ethernet Controller
CardVendor 0x
1179 card 0x0001 (Toshiba America Info Systems Marvell 88E8053 Gigabit Ethernet Controller (Toshiba))
STATUS 0x4010 COMMAND 0x0047
CLASS 0x02 0x00 0x00 REVISION 0x15
BIST 0x00 HEADER 0x00 LATENCY 0x00 CACHE 0x08
BASE0 0x00000000cdffc004 addr 0x00000000cdffc000 MEM 64BIT
BASE2 0x0000ce01 addr 0x0000ce00 I/O
MAX_LAT 0x00 MIN_GNT 0x00 INT_PIN 0x01 INT_LINE 0x0a
BYTE_0 0x00 BYTE_1 0x00 BYTE_2 0xb0 BYTE_3 0x41

Display device driver aliases with prtconf command (Vendor 0x11ab and card 0x1179)

# prtconf -pv |grep 11ab |grep 1179
compatible: 'pciex11ab,4362.1179.1.15' + 'pciex11ab,4362.1179.1' +
'pciex11ab,4362.15' + 'pciex11ab,4362' + 'pciexclass,020000' + 'pciexclass,0200' +
'pci11ab,4362.1179.1.15' + 'pci11ab,4362.1179.1' + 'pci1179,1' + 'pci11ab,4362.15' +
'pci11ab,4362' + 'pciclass,020000' + 'pciclass,0200'

Download the last Package file Marvell Driver for Solaris 10 x86 here Download :

Remove your last skge or yukonx device driver:

# pkgrm SKGEsol
or
# pkgrm YUKONXsol

Unzip the last skge driver and check the device_driver aliases used by the postinstall script:

# uncompress skgesol_x86v8.19.1.3.tar.Z
#
tar xf skgesol_x86v8.19.1.3.tar
#
grep "/usr/sbin/add_drv" ./SKGEsol/install/postinstall
/usr/sbin/add_drv -m '* 0660 root sys' -i '"pci1148,9000" "pci1148,9e00"
"pci1148,5021" "pci1148,5041" "pci1148,5043" "pci1148,5051" "pci1148,5061"
"pci1148,5071" "pci1148,5081" "pci1148,9821" "pci1148,9822" "pci1148,9841"
"pci1148,9842" "pci1148,9843" "pci1148,9844" "pci1148,9861" "pci1148,9862"
"pci1148,9871" "pci1148,9872" "pci1259,2970" "pci1259,2971" "pci1259,2972"
"pci1259,2975" "pci1259,2976" "pci1259,2977" "pci1148,121" "pci1148,221"
"pci1148,321" "pci1148,421" "pci1148,621" "pci1148,721" "pci1148,821"
"pci1148,921" "pci1148,1121" "pci1148,1221" "pci1148,3221"' $DRIVERNAME

We can see that post install script used pci1148 device driver instead of pci11ab.


So Install the package with pkgadd

# pkgadd -d ./
The following packages are available:
1 SKGEsol SysKonnect Gigabit Ethernet Adapter families 32 bit driver
(i386) 8.19.1.3
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:
The add_drv will failed


And run the following command

# /usr/sbin/rem_drv skge
# /usr/sbin/add_drv -m '* 0660 root sys' -i '"pci11ab,4320" "pci11ab,4340" "pci11ab,4341" "pci11ab,4342" "pci11ab,4343" "pci11ab,4344" "pci11ab,4345" "pci11ab,4346" "pci11ab,4347" "pci11ab,4350" "pci11ab,4351" "pci11ab,4360" "pci11ab,4361" "pci11ab,4362"' skge
# echo $?
0
# touch /reconfigure


Reboot and Test skge 0 network interface

# init 6

# grep skge /etc/path_to_inst
"/pci@0,0/pci8086,2660@1c/pci1179,1@0" 0 "skge"

# grep skge /etc/driver_aliases
skge "pci11ab,4320"
skge "pci11ab,4340"
skge "pci11ab,4341"
skge "pci11ab,4342"
skge "pci11ab,4343"
skge "pci11ab,4344"
skge "pci11ab,4345"
skge "pci11ab,4346"
skge "pci11ab,4347"
skge "pci11ab,4350"
skge "pci11ab,4351"
skge "pci11ab,4360"
skge "pci11ab,4361"
skge "pci11ab,4362"

# ifconfig skge0 plumb
# ifconfig skge0
skge0: flags=201000842<BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu 1500 index 4
inet 0.0.0.0 netmask 0
ether 0:e:7b:cc:3d:64

# ifconfig skge0 dhcp
ifconfig skge0
skge0: flags=201004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4,CoS> mtu 1500 index 2
inet 192.168.0.2 netmask ffffff00 broadcast 192.168.0.255
ether 0:e:7b:cc:3d:64

In case of problem Just reboot to your last BE