Hello all.
I don't know if I am a Linux newbie or not [If you can compile kernels OK are you a newbie ???] but I have been using Linux for over a year now and am very, very impressed. I try and use Linux instead of MS whenever possible. Unfortunately I have to use MS as well and I boot Win 2000, DOS and Redhat quite happily on my PC. I work as a senior tech support specialist and I also have a good grounding in electronics.
Reason for joining ALUG ? Apart from living in Mileham, I think meeting some experienced users would be good as it will knock a good chunk of Microsoft out of me !!! Of course, I will be happy to contribute my limited Linux knowledge but I realise there are lots of far more experienced people then me out there ...
Oh yes, and I have a real nasty problem with a Promise Fasttrak controller module that I cannot compile against the vanilla RH6.2 2.2.x kernel or the latest 2.4.x kernel release. Promise support is naff, and they only distribute the SMP module in .o format ... I can boot the box OK as Linux is on a standard IDE drive, but it bombs when insmod tries to load ft.o for the RAID drive with unresolved symbols. I can install ft.o fine on a clean install using the 'expert text dd' options, and mount drives etc. but when I recompile the kernel [I need NTFS support] I get unresolved symbols. Using the insmod -f option does not allow the module to load. I am including SCSI and RAID support in the kernel.
I have also checked the symbol versioning :
mv .config 000.cfg make mrproper mv 000.cfg .config make dep clean modules modules_install bzImage
As I cannot get the source to this module am I doomed to having no NTFS support ?
Any suggestions, comments, brickbats etc. more than welcome.
Thanks.
Hi,
I am always sceptical when manufactueres won't release the source code for their drivers, or when they won't document the hardware suffciently for someone else to write drivers. It seems likely to me that in many of these cases, features which are claimed for the hardware concerned are actually implemented in the driver and the manufacturer would rather you didn't know that.
Anyway, back to the problem at hand....
The first thing I would try doing is to use modprobe to load the ft.o module rather than insmod. Modprobe will examine the dependancies of the module your are trying to load and load any modules it depends on first. You could then use lsmod to what else it did load.
If that doesn't work I would try running depmod in case it didn't get run after the kernel was build and maybe the dependancy info it generates was out of date. Then try modprobe again.
If it still doesn't work then it sounds like ft.o depends on something obscure - you have obviously selected all the modules you think it could need but that obviously isn't enough.
One approach would be to take one of the unresolved symbols and grep the whole kernel source tree to find which module(s) implements it and then check if the module is being included in the build. Repeat this process until it will load.
Another possibility would be to be sparing in what you included hard linked into the kernel, but build absolutely everything else as modules - it will take longer to compile but depmod should be able to find the dependancies and modprobe should load the modules. Your /lib/modules directory will take more space than selecting just the modules you want, but as the redundant ones won't get loaded into memory it won't hurt performance.
Hope this helps. Steve.
One approach would be to take one of the unresolved symbols and grep the whole kernel source tree to find which module(s) implements it and then check if the module is being included in the build. Repeat this process until it will load.
find /usr/src/linux -name "*.c" -exec "grep" "-l" "wib" "{}" ";" To list all kernel files containing wib. Or alternatively, use rgrep ;-)