LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Red Hat (https://www.linuxquestions.org/questions/red-hat-31/)
-   -   Red Hat custom Kernel compilation mini-How-To for Red Hat 8-9 (https://www.linuxquestions.org/questions/red-hat-31/red-hat-custom-kernel-compilation-mini-how-to-for-red-hat-8-9-a-91503/)

poochie2 03-29-2004 02:54 PM

Quote:

Originally posted by Thetargos
Did you rebuild the whole dependency tree? i.e did you recompile all from scratch? (make clean modules moduels_install install?)
Mhm, it's still driver-dependant... I tried doing a full CLEAN reinstall of the default installed kernel and I still get:

No module hpt37x2 found for kernel 2.4.20-8custom
mkinitrd failed
make[1]: *** [install] Error 1
make: *** [install] Error 2

This time the compilation of the driver finished successfully (maybe because of a closing '/' I usually didn't put in...) but the result is still the same... I get that error trying to "make install":'(

Thetargos 03-29-2004 03:12 PM

Maybe you could try to compile a more recent 2.4 kernel, like 2.4.24 or 2.4.25.

poochie2 03-29-2004 03:48 PM

Quote:

Originally posted by Thetargos
Maybe you could try to compile a more recent 2.4 kernel, like 2.4.24 or 2.4.25.
I tried to recompile my actual kernel 2.4.20-8, the first time it gave me the same error (I already reconfigured the linux file), the last time I couldn't even get to the usual point because of some errors of compilation never seen before, although I didn't touch the .config file since the precedent compilations (does make "clean" delete it? don't think so... but I cannot check right now).

Thetargos 03-29-2004 04:09 PM

Clean only erases object files (.o), if you really want to wipe off any remaining files used for compiling the kernel, use "mrproper" (make mrproper), just make sure to back up your .config file.

dleidlein 04-03-2004 07:38 PM

I am getting this during "make install"
sh -x ./install.sh 2.4.25 bzImage /usr/src/linux-2.4.25/System.map ""
+ '[' -x /root/bin/installkernel ']'
+ '[' -x /sbin/installkernel ']'
+ exec /sbin/installkernel 2.4.25 bzImage /usr/src/linux-2.4.25/System.map ''
No module sii6514 found for kernel 2.4.25
mkinitrd failed
make[1]: *** [install] Error 1
make[1]: Leaving directory `/usr/src/linux-2.4.25/arch/i386/boot'
make: *** [install] Error 2

Redhat 9. Kernel 2.4.25 (no patches - full source)

Thetargos 04-04-2004 01:01 AM

It seems there you have configured, but not compiled a driver for the Silicon Image 6514 chipset... unless you have such a device you should try see where to disable it (I'd bet it would be under the SCSI lowlevel drivers.

dleidlein 04-04-2004 10:15 PM

siil 6514
 
My motherboard DOES have that chip for my SATA drives. Technically it's the SIIL3114. I had to use a driver disk just to get RedHat to install (it didn't recognize the hard drive).Therein lies the problem. I DO need to compile that driver into the kernel. I selected the drivers in the kernel configuration, but methinks maybe I have to "add" it some other way?I think the drivers that come with the kernel (i've tried compiling under 2.4 and 2.6) aren't up to snuff.

dleidlein 04-05-2004 01:43 AM

Quote:

Originally posted by Thetargos
It seems there you have configured, but not compiled a driver for the Silicon Image 6514 chipset... unless you have such a device you should try see where to disable it (I'd bet it would be under the SCSI lowlevel drivers.
you say configured but not compiled....I have a siiata.o file.... do I 'compile' that by putting it in my drivers/scsi directory??? replacing the existing files there? I fear if I do that, there may be other files that will look in the EXISTING siiata.o files and find that they say "siil3112" instead of "siil3114"...thus giving me errors.
On top of that, am I then supposed to also disable the options in SCSI lowlevel drivers? I took a look in modules.conf and it points to sil6514. WHERE does it look for these modules? The reason being, when I try to compile my new kernel, does it look at modules.conf? If I were to change the entry for 6514 to <new sil driver> would that work? where would I PUT the "driver" ( I suppose now that I'm linuxing it's a module right?)
I've been going at this for days now...Gotta wake up at 6:30 but I will work on it from work tomorrow (SSH + TightVNC = great times/can get you fired). I love this linux stuff but what's suppose to be an easy task sure can turn into a mindbender!!

Very nice post BTW. I SUPPOSE :rolleyes: I'm glad that it isn't working one hudred percent on my first tries. I'm learning more about my computer then I EVER did on dos/win. THANKS TO ALL for the great help on this forum.

Thetargos 04-05-2004 12:58 PM

Thank for you kind words about this thread and forum!


Regarding your problem, if I followed your post right, you got a bianary distributed driver for the chipset? did you download this driver from SII' page? Sorry I may have minsunderstood you... In any case I don't know if there's native kernel support for this chipset just yet, and I got a little bit confused, what is your S-ATA drive controller, SII-3114 or SII-6514 (the first is internal, on motherboard and the second is an expansion PCI card)?

Try searching the Hardware forum for a post called Linux SATA support, there should be some information regarding the Silicon Image chipsets. Also if I'm not mistaken, kenrel 2.6.5 has already good support for the SII-3112 chipset (the main difference between the 3112, 3114 and 6514 is the number of devices they can control, 3112 controls two drives at most, the other two control 4 simoultaneous devices). Also consult the HCL here at linux questions.

dleidlein 04-05-2004 01:18 PM

well some updated info on my adventures.
BTW it is the SIL3114.
I'm at work using SSH to do the compilation process (2.6.5-rc3). So I can't test it to see if it has worked. BUT, I downloaded the 2.6.4 source, then the 2.6.5-rc3 patch, applied it. Still no "support" in the drivers section. Upon further research, I found the "libata" drivers were needed. Another web site said they were included but I don't think they had all the devices listed in it. Anyway, I downloaded the libata patch FOR 2.6.5-rc3, applied it, and LO! I was able to select it in the kernel config! Ahh, success you might say. Well, hopefully. Since I'm at work I don't have the luxury of more than ONE test until I get home :rolleyes: if it works, yay I'll still be able to SSH into my comp. If it doesn't work...well I guess I'll find out the hard way :cry:

It MAY not work because I got some errors during
Code:

make modules_install 2> make.err
here is part of that file
Code:

depmod: *** Unresolved symbols in /lib/modules/2.4.20-8/kernel/drivers/scsi/sii6514.o
depmod: *** Unresolved symbols in /lib/modules/2.6.5-rc3/kernel/drivers/net/ne2k-pci.ko
depmod:        ei_open
depmod:        ei_interrupt
depmod:        NS8390_init
depmod:        __alloc_ei_netdev
depmod:        ei_close
depmod: *** Unresolved symbols in /lib/modules/2.6.5-rc3/kernel/sound/core/oss/snd-mixer-oss.ko

Why the heck is it still trying to look at that sii6514 driver??? I compiled it directly INTO the kernel. The other errors I could live with and assume that at least the kernel will boot. But I'm worried about it still looking for sii6514.o. I DID update modutils. and I did the
Code:

./generate-modprobe.conf /etc/modprobe.conf
and i get all error messages simalar to
Code:

Warning: not translating path[boot]=/lib/modules/boot
Warning: not translating path[toplevel]=/lib/modules/2.4.20-8
Warning: not translating path[toplevel]=/lib/modules/2.4
Warning: not translating path[kernel]=/lib/modules/kernel
Warning: not translating path[fs]=/lib/modules/fs
Warning: not translating path[net]=/lib/modules/net
Warning: not translating path[scsi]=/lib/modules/scsi

[edit]Just wanted to add another quick question. Since I compiled my file system and hard drive support into the kernel, I didn't create an initrd image. First, should I? Secondly, if not, in my grub.conf currently I just have (well, i do have my existing linux kernel and winXP available)
Code:

kernel=/bzImage-2.6.5-rc3 ro root=LABEL=/
I didn't add the line mkinitrd. Should I still add something? I seem to recall System.map being important...just not sure how.

Thetargos 04-05-2004 02:32 PM

In order:

AFAIK the SII3112 is similar to that of the SII6512, 3114 is the same as the 3114. I'm inrigued as to why the kernel compilation routine would ask you for such a device... Have you seen the .config file directly? maybe it is configured, just not showing on the tools... Try opening the .config file with a text editor and search for the string 6514.

Secondly at what stage does it look for this driver, it looks to me that it's at the make bzImage or make install stages, because of the unresolved symbols (provided there's a .o file). If there's an occurance of this driver in the .config file you may as well comment out the option (unless this module is the one used for the 3114 chipset as well).

I don't know if there's a driver in the stock Red Hat kenrel for the SII6514 controller and added to the modules dependency tree, might as well be that, and hence the error regarding this. I'd expect the error because of difference in Kernel versioning. Do you see any reference to it when you start the menuconfig tool for the RH kernel? either as SCSI or ATA? The support may as well be included as part of the code for the Silicon Image Medley module... maybe that's what's compiling the 6514 driver.

Regarding the initrd Image, the way Red Hat is confiugred it will expect a RAM disk image of the kernel in memory (the only time I tried not compile support for that as module, my system did not boot).

dleidlein 04-05-2004 02:43 PM

<sigh> No the entry is in my .config file. And the driver isn't part of the stock kernel. I had to make a driver disk and load it at the beginning of the RedHat installation.
Under NONE of the kernels has it listed that driver. It wasn't until I patched the libata drivers that I was even able to get the SIL SATA option in there. The good news is I was getting all kinds of errors and such before, now I make it all the way to make install and I get this

Code:

make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.
  CHK    include/linux/compile.h
Kernel: arch/i386/boot/bzImage is ready
sh /usr/src/linux-2.6.4/arch/i386/boot/install.sh 2.6.5-rc3 arch/i386/boot/bzImage System.map ""
No module sii6514 found for kernel 2.6.5-rc3 
mkinitrd failed
make[1]: *** [install] Error 1
make: *** [install] Error 2

Basically, I'm wondering how I remove any reference to that stupid module. I tried doing
Code:

grep -i 'sii6514' System.map
in my /usr/src/linux/ directory, but I'm guessing it doesn't find anything (just returns to command line).

Quote:

Regarding the initrd Image, the way Red Hat is confiugred it will expect a RAM disk image of the kernel in memory (the only time I tried not compile support for that as module, my system did not boot).
So I should run make mkInitrd?

Thetargos 04-05-2004 02:46 PM

The module is not getting linked correclty... Sadly I cannot offer you more assitance in that regard, since I do not have such a controller.... :(

dleidlein 04-05-2004 02:51 PM

:cry: :cry: :cry: Dang, well thanks for your help thus far anyway. How bout the initrd thing?

Do you think it's "safe" to remove that sii6514.o file? or even if that can't happen or you don't know how to 'link' it, does anyone know what file the kernel uses to determine what objects are loaded as modules? (aside from the .config file which has NO reference to that driver).

upon furthere inspection of the error it's make install but I read the make file and it's actually during the mkinitrd portion. So I THINK this will work if I can tell it to NOT try and add sii6514 to my 2.6.5-rc3 modules! :confused:
Reasonable assumption? gonna :study:

found some information that may help people, I'm gonna try it myself and post results
http://www.linuxquestions.org/questi...hreadid=158811

Thetargos 04-05-2004 03:16 PM

  1. What about the initrd thing?
  2. Where does the .o file exist? in the kernel's source tree or in the modules installation directory (/lb/modules/<kernel version>) one? I think you could just remove the .o file without problems. Linking is part of the compilation process. When the source files are processed by the compiler, the binary code generated is linked against others, mainly libraries with certain functions in them, so the program won't be a gigantic stand alone piece of static bianry code. In the case of drivers, the modules generally get linked to kernel system functions, such as I/O control calls and such, in this regard, the dirver is not being linked agains this new kernel's system calls.

    Since (If I understood you correctly) you installed the driver during RH install time (just like any Win2K/XP special SCSI device), the driver was already linked agains a certain version of the kernel (in this case 2.4.20-8). Increasing this version number will render the driver incompatible with the new kernel because of this, basically because when the driver was compiled the header file modversions.h from the kernel (which amongst other things includes kernel version) was used, and the version in that particular build was the one from the 2.4.20-8 kernel sources. The easiest way would be to get the driver's source coude, which is closed source, and SII has already stated they don't intend to release these driver's code to the Linux community... Shame on them!

    The error you are getting is because in the previous system.map (module's dependency/symbols map) the driver is included, and (this is a guess though) the make install routine is reading information from the current system.map to build the new one.


All times are GMT -5. The time now is 03:23 PM.