3

Have an older computer running as a server and has a 3com ethernet card installed. This has worked through 14.04 LTS. It requires 3c95x.ko driver to work and this is available in the 3.13.0-135-generic kernel.(/lib/modules/3.13.0-135-generic/kernel/drivers/net/ethernet/3com/3c59x.ko) After upgrading, the driver is not available in current 4.X kernel versions. How do I fix this. Is there a missing repository? Can I copy the driver from a previous version directory? Would prefer solution that allows apt package management to update kernels as they are developed. I have reverted to 3.13.0-135 kernel and the network card is operational but using any of the later 4.X kernels leaves the network card UNCLAIMED and the server is silent and unreachable via network. I have the following kernels installed:

  • 3.13.0-135-generic – Driver available in /lib/modules/3.13.0-135-generic/kernel/drivers/net/ethernet/3com/3c59x.ko
  • 4.4.0-104-generic – no 3com driver found in directory structure
  • 4.8.0-58-generic– no 3com driver found in directory structure
  • 4.10.0-42-generic– no 3com driver found in directory structure
  • 4.11.0-13-generic– no 3com driver found in directory structure
  • 4.11.0-14-generic– no 3com driver found in directory structure
  • Is it a typo where you write 3c95x.ko instead of 3c59x.ko? Anyway, it does not make sense that those directory structures are not there. – Doug Smythies Jan 3 '18 at 22:14
  • Yes that was a typo, I need 3c59x.ko dpkg -S 3c59x.ko will show the locations. Original sudo do-release-upgrade did not put the drivers in 4.4.0-104 directories; but --reinstall fixed it – slalomturtle Jan 5 '18 at 18:46
2

On my system driver 3c59x.ko is located in both installed kernels:

$ dpkg -S 3c59x.ko
linux-image-extra-4.4.0-103-generic: /lib/modules/4.4.0-103-generic/kernel/drivers/net/ethernet/3com/3c59x.ko
linux-image-extra-4.4.0-104-generic: /lib/modules/4.4.0-104-generic/kernel/drivers/net/ethernet/3com/3c59x.ko

You can remove old kernels with

sudo apt-get install byobu
sudo purge-old-kernels

Try to reinstall linux-image-extra for 4.4 and normal LTS kernel:

sudo apt-get install --reinstall --install-recommends \
linux-image-generic-lts-xenial

sudo apt-get purge linux-generic-hwe-16.04 linux-headers-3.13.* \
linux-headers-4.8.* linux-headers-4.10.* linux-headers-4.11.* \
linux-headers-generic-hwe-16.04 linux-image-3.13.* \
linux-image-4.8.* linux-image-4.10.* linux-image-4.11.* \
linux-image-extra-3.13.* linux-image-extra-4.8.* \
linux-image-extra-4.10.* linux-image-extra-4.11.* \
linux-image-generic-hwe-16.04
  • The apt-get --reinstall did the trick. My only modification was to do the reinstall first and check for the driver in the 4.4 kernels (it was there), then purge the other kernels (4.8, 4.10 and 4.11). Appreciate the re-formatting to make the question more readable, will RTFM for next time. – slalomturtle Jan 3 '18 at 22:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.