SLES 11 SP2 with JMicron(R) JMC250/JMC260 PCI-E Ethernet NIC
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.
2. 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/fin...eywords=kernel
- E.g. 25 Feb 2013 - Linux kernel 7374 x86-64
What I needed:
- Copy onto USB stick, stick it into the server and it mounts automagically to /Media/<stick name>
- 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.
3. 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
4. Install gcc compiler
- From YaST > Software Management search and install gcc, you may need a SLES disk handy for this.
5. Make oldconfig - Maybe someone higher up can comment on what this does, but I had to do it to get everything to run
- # cd /usr/src/linux
- # make oldconfig
- This will take a while I found, grab a beer in the meantime.
6. Copy your JME Driver to your server and extract
- # cp /media/T/jmebp-220.127.116.11.tar.bz /root/
- # tar -xvf jmebp-18.104.22.168.tar.bz
7. Modify the Makefile
- # cd /jmebp-22.214.171.124/
- # vi Makefile
- Find the line
KSRC ?= /lib/modules/$(KVER)/build
Comment it out, and replace with:
KSRC ?= /usr/src/linux
Save the fine. Exit out.
8. 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.