Hi All,
I’m a bit of a Linux newbie, and was installing SLES 11 SP2 on a Shuttle XS35V2 box at home, which has a JMicron(R) JMC250 PCI-E Ethernet Adapter. Out of the box SLES didn’t seem to support it, so I went and grabbed the driver. Two days later and I now have networking. Was a painful process, learned a lot, and figured I’d save some others some time and post the whole process of getting everything running.
Be aware not all these steps are probably necessary, but it’s what I did.
- Downloaded the latest linux driver from ftp://driver.jmicron.com.tw/Ethernet/Linux/
- Copy the driver to a USB stick
- Update the kernel
- Had to install the kernel source, and was having trouble finding the source for the pretty old SP2 version I had installed. So downloaded and installed something newer.
- Download from http://download.novell.com/patch/finder/#familyId=7261&productId=36426&dateRange=&startDate=&endDate=&priority=&distribution=&architecture=&keywords=kernel
- E.g. 25 Feb 2013 - Linux kernel 7374 x86-64
What I needed:
kernel-default-3.0.58-0.6.6.1.x86_64.rpm
kernel-default-base-3.0.58-0.6.6.1.x86_64.rpm
kernel-source-3.0.58-0.6.6.1.x86_64.rpm
- Copy onto USB stick, stick it into the server and it mounts automagically to /Media/
- Run YaST, Software > Add-On Products (Add) > USB Mass Storage → Select the USB Drive, give it a name etc etc.
- Search Phrase kernel, and from here upgrade the kernel version, you’ll need to reboot from memory.
Hopefully your server comes back OK. I can feel your cringes from here.
- Install kernel source
- cd to your mounted USB drive. Run following command to install the source
-
rpm -Uvh kernel-source-3.0.58-0.6.6.1.x86_64.rpm
- Install gcc compiler
- From YaST > Software Management search and install gcc, you may need a SLES disk handy for this.
- Make oldconfig - Maybe someone higher up can comment on what this does, but I had to do it to get everything to run
- Copy your JME Driver to your server and extract
- Modify the Makefile
Comment it out, and replace with:
KSRC ?= /usr/src/linux
Save the fine. Exit out.
- Try and run the make install
- From the driver directory where the Makefile exists, run:
-
make install
- When this finishes, try and load the module
-
modprobe jme
- If this fails due to it being unsupported, run in unsupported mode:
-
modprobe jme --allow-unsupported
I think this is all I had to do, I was able to configure the NIC and was up and running. However I may have run /etc/init.d/network restart during this time, so that might be required as well.
Hopefully someone in the future is desperately googling how to do something similar and stumbles across this.
Cheers,
Dan