So I was trying to install startech 1 port PCI Express eSATA II Controller Card in one of my linux servers and according to the included readme/manual, one would do:
modules.cgz | gunzip | cpio -ivH crc
as one of the first steps to copy out the proper files for the current kernel.
Unfortunately, there are a few issues with the zip file you download from their site:
1. – the executable files are not executable (the bit is not set) so one must chmod +x on them
2. – the command above fails with
-bash: modules.cgz: command not found
So after googling a bit, I found that one should do:
gunzip < modules.cgz | cpio -ivH crc
That takes care of that issue.
The next problem I bumped into was that the "copy the modules.cgz to a destination directory" instruction was not clear enough. We're not talking about any destinations here.
The problem started from the insmod call, which would report that
insmod: can't read 'si3531r5': No such file or directory
same for
insmod: can't read 'si3531r5.ko': No such file or directory
even when copying into
/lib/modules/`uname -r`/kernel/drivers/scsi/
which seemed the logical thing to do
Then it hit me: there's a list of modules that are loaded, which was not updated.
so I
echo kernel/drivers/scsi/si3531r5.ko >>/lib/modules/`uname -r`/modules.dep
and then
depmod -a
and finally, I did
modprobe si3531r5
which, obviously, failed:
FATAL: Error inserting si3531r5 (/lib/modules/2.6.32-358.11.1.el6.x86_64/kernel/drivers/scsi/si3531r5.ko): Invalid module format
so I hit dmesg which shows:
si3531r5: version magic ‘2.6.9-22.ELsmp SMP gcc-3.4’ should be ‘2.6.32-358.11.1.el6.x86_64 SMP mod_unload modversions ‘
Trying to find sources for the driver in order to recompile it, failed. Nothing, nowhere.
So, it is time to appeal to their technical support. Hopefully, it will be a positive experience.