Where in the RHEL is my version.h file?

Kevin Brown kevin_brown at qwest.net
Tue Mar 7 18:24:23 MST 2006


>>>> I'm trying to install the ALSA driver package (yes, that one ...) 
>>>> under CentOS 4.2.  Here's where I'm hung up:
>>>>
>>>> ./configure --with-cards=sb16 --with-sequencer=yes \ 
>>>> --with-kernel=/usr/src/linux-2.6.9-11.EL
>>>>
>>>> I get this message: checking for kernel version... The file
>>>> /usr/src/linux-2.6.9-11.EL/include/linux/version.h does not exist. 
>>>> Please, install the package with full kernel sources for your 
>>>> distribution ...
>>>>
>>>> It speaks the truth.  The file isn't there, and I think it should be.
>>>>
>>>> This was after a few attempts.  I installed
>>>> kernel-sourcecode-2.6.9-11.EL and the directory
>>>> /usr/src/linux-2.6.9-11.EL/include/linux is present, but the
>>>> version.h file does not exist there.
>>> Pretty much a RH noob mistake.  In older versions of RH it was part of
>>> the kernel-devel package.  Last I checked that got changed to be the
>>> glibc-kernheaders package.  Any rpm that says source in the name or is
>>> type src.rpm is usually not what you want to install to solve a
>>> dependency problem.  You install source packages (those with source in
>>> the name) if you intend to compile it from scratch in the usual methods
>>> (e.g. ./configure && make && make install).  You would use .src.rpm
>>> files if you were going to rebuild a package from scratch for your
>>> systems with maybe some customization (e.g. rpmbuild --rebuild
>>> package.src.rpm).
>>>
>>>> A number of the header files in that directory do have includes for 
>>>> <linux/version.h> ... so I searched for any directory or link
>>>> system-wide named "linux" that might satisfy linux/version.h.  Struck
>>>> out again.
>>>>
>>>> I searched the system for all the version.h files, thinking I could
>>>> find one to link to, but they all look application specific except
>>>> for /usr/include/linux/version.h.  That is a strange looking file:
>>>>
>>>>   #define UTS_RELEASE "2.4.20"
>>>>   #define LINUX_VERSION_CODE 132116
>>>>   #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
>>>>
>>>> The numbers here don't look right.  And I'm on 2.6.9-22.0.2.EL #1
>>>> according to uname -a.
>>>>
>>>> So ... I'd appreciate any ideas as to how to find (or create?) a
>>>> version.h file to meet the needs of this ./configure script.  I
>>>> haven't yet tried hacking into the configure script itself, and hope
>>>> to avoid that . . . 
>> Thanks, Kevin.  I think you are advising me to install glibc-kernheaders
>> to get the headers to build these drivers.  I'll try that tonight.
>>
>> I also assume that the rest of your paragraph was just talking about
>> when I *would* want to install source, which doesn't apply to my
>> problem right now.  Right?  This is a tarball install for the drivers,
>> downloaded from ALSA; the normal rpm installs don't cover sb16.
>>
>> I installed kernel-sourcecode after seeing advice on a forum, which
>> apparently solved this problem for somebody.   Did that install the full
>> source for the kernel?  If so, can I uninstall kernel-sourcecode without
>> breaking anything?  I'm short on disk space.
> ----
> actually - no it doesn't
> 
> you will undoubtedly find it in /usr/src/redhat/SOURCES and can find it
> there.

Nope, that is where .src.rpm files install to.  The kernel-source.rpm 
most likely installed to /usr/src/linux or /usr/src/kernel-version.

> I'm not entirely certain that installing the glibc-kernheaders is gonna
> give you what you want but it is enough to compile kernel modules.

Which would be what he is wanting.  Trying to build a module without the 
needed headers is hard.  The headers, IIRC, are dynamically generated 
during the kernel build process and so wouldn't be found in either the 
-source or .src.rpm file directly.

> Just out of curiosity...does the soundblaster hardware show up when you
> do 'lspci -v' ?


More information about the PLUG-discuss mailing list