At least on this 2.6.27.7 Linux kernel, the Marvel sk98lin driver
version 10.70.2.3 fails to correctly patch the kernel source. 'make
{YourFavorite}config' crashes; and after Kconfig is created correctly,
Makfile has no entry for sk98lin so no module is made. Here's a
workaround:
Make sure /usr/src/linux is a valid symlink to the kernel source.
Set up networking such that no driver for the Marvell NIC is loaded
('lsmod') and make sure the NIC has no IP.
'cd /usr/src/linux'
Back up /usr/src/linux/drivers/net/Kconfig
Delete .version
make clean
cd to the place you unpacked install_v10.70.2.3.tar.bz2, run
'./install.sh' and select 2 to patch the kernel.
'cd /usr/src/linux'
Apply the Marvell patch. Note that Makefile is not altered.
Restore the Kconfig backup; make sure you destroy the patched Kconfig
when you do that.
Apply Makefile.diff patch:
'patch -p1 --dry-run </PATH/TO/Makefile.diff'
If no errors,
'patch -p1 </PATH/TO/Makefile.diff'
Apply Kconfig.diff patch:
'patch -p1 --dry-run </PATH/TO/Kconfig.diff'
If no errors,
'patch -p1 </PATH/TO/Kconfig.diff'
make oldconfig
Answer "m"odule to CONFIG_SK98LIN
I answer "y"es to CONFIG_SK98LIN_NAPI but you should decide for
yourself.
make -j5
make modules_install
Set up to use this new kernel and module, and boot it. I had to append
to /etc/modprobe.d/blacklist sk98lin and sky2 in order to be able to
select the one I wish to load. 'modprobe -r sk98lin' SegFaults (same
regardless of the method of creation of sk98lin.ko) and does not unload
the module, so I have to reboot to switch to sky2.
Makefile.diff:
--- Makefile 2008-11-20 15:02:37.000000000 -0800
+++ linux/drivers/net/Makefile 2009-02-12 00:12:20.907773057 -0800
@@ -74,6 +74,7 @@
gelic_wireless-$(CONFIG_GELIC_WIRELESS) += ps3_gelic_wireless.o
ps3_gelic-objs += ps3_gelic_net.o $(gelic_wireless-y)
obj-$(CONFIG_TC35815) += tc35815.o
+obj-$(CONFIG_SK98LIN) += sk98lin/
obj-$(CONFIG_SKGE) += skge.o
obj-$(CONFIG_SKY2) += sky2.o
obj-$(CONFIG_SKFP) += skfp/
Kconfig.diff:
--- Kconfig 2008-11-20 15:02:37.000000000 -0800
+++ linux/drivers/net/Kconfig 2009-02-11 22:43:02.226763761 -0800
@@ -2089,6 +2089,34 @@
To compile this driver as a module, choose M here: the module
will be called sis190. This is recommended.
+config SK98LIN
+ tristate "Marvell Yukon Chipset / SysKonnect SK-98xx Support"
+ depends on PCI
+ ---help---
+ Say Y here if you have a Marvell Yukon or SysKonnect SK-98xx/SK-
95xx
+ compliant Gigabit Ethernet Adapter.
+
+ The adapters support Jumbo Frames.
+ The dual link adapters support link-failover and dual port
features.
+ Both Marvell Yukon and SysKonnect SK-98xx/SK-95xx adapters
support
+ the scatter-gather functionality with sendfile(). Please refer
to
+ Documentation/networking/sk98lin.txt for more information about
+ optional driver parameters.
+ Questions concerning this driver may be addressed to:
+
(E-Mail Removed)
+
+ If you want to compile this driver as a module ( = code which
can be
+ inserted in and removed from the running kernel whenever you
want),
+ say M here and read Documentation/modules.txt. This is
recommended.
+ The module will be called sk98lin. This is recommended.
+
+config SK98LIN_NAPI
+ bool "Use Rx polling (NAPI)"
+ depends on SK98LIN
+ help
+ NAPI is a new driver API designed to reduce CPU and interrupt
load
+ when the driver is receiving lots of packets from the card.
+
config SKGE
tristate "New SysKonnect GigaEthernet support"
depends on PCI
You can download install_v10.70.2.3tar.bz2 from
http://www.marvell.com/drivers/
or
ftp://andthatsjazz.org/pub/yukon/ins...70.2.3.tar.bz2
--
buck