Hi. I just have a quick question that maybe some of you might know. I'm thinking of compiling a new kernel (kernel 2.6.12.2) for my system which is running CentOS 4 (updated to 4.1 using yum). I downloaded the kernel tarball and read in the docs that for stability gcc 2.95.x (x>=3) might be best to compile the new kernel. With an "rpm -q gcc" command I see that I have gcc-3.4.3-22.1 installed on my box. Can anyone tell me if the kernel I'm trying to compile will compile fine using the version I have installed? Should I "downgrade" my gcc to 2.95 to compile this kernel?
The reason I'm trying to compile an new kernel is that my system uses a LSI Logic/Symbios Logic 53c875 SCSI controller (information obtained from "System Tools/Hardware Browser" menu in GNOME) and I keep getting a bunch of errors like the following in my system logs:
sym0:0:0:phase change 6-7 11@12856b84 resid=2.
I read somewhere that by compiling a new kernel (2.6.11, I think), this problem might go away and I wanted my system to run as efficiently so decided to compile a new kernel. Am I doing the right thing? Thanks!
Sincerely Jose
Jose Alburquerque wrote:
Hi. I just have a quick question that maybe some of you might know. I'm thinking of compiling a new kernel (kernel 2.6.12.2) for my system which is running CentOS 4 (updated to 4.1 using yum). I downloaded the kernel tarball and read in the docs that for stability gcc 2.95.x (x>=3) might be best to compile the new kernel. With an "rpm -q gcc" command I see that I have gcc-3.4.3-22.1 installed on my box. Can anyone tell me if the kernel I'm trying to compile will compile fine using the version I have installed? Should I "downgrade" my gcc to 2.95 to compile this kernel?
The reason I'm trying to compile an new kernel is that my system uses a LSI Logic/Symbios Logic 53c875 SCSI controller (information obtained from "System Tools/Hardware Browser" menu in GNOME) and I keep getting a bunch of errors like the following in my system logs:
sym0:0:0:phase change 6-7 11@12856b84 resid=2.
I read somewhere that by compiling a new kernel (2.6.11, I think), this problem might go away and I wanted my system to run as efficiently so decided to compile a new kernel. Am I doing the right thing? Thanks!
The recomendation for the compiler is rather old, from the times linux kernel developers and gcc compiler developers had somewhat conflictig views on some features of C programming language. Don't remember exactly what it was about, but discussion between them looked rather childish. As far as I know, this is not an issue anymore, the new kernel should compile and run just fine even if you use 3.4.x gcc. I don't think anybody is using gcc 2.xx anymore, and the very kernel you are now running is compiled with gcc 3.4.x.
Aleksandar Milivojevic wrote:
Jose Alburquerque wrote:
Hi. I just have a quick question that maybe some of you might know. I'm thinking of compiling a new kernel (kernel 2.6.12.2) for my system which is running CentOS 4 (updated to 4.1 using yum). I downloaded the kernel tarball and read in the docs that for stability gcc 2.95.x (x>=3) might be best to compile the new kernel. With an "rpm -q gcc" command I see that I have gcc-3.4.3-22.1 installed on my box. Can anyone tell me if the kernel I'm trying to compile will compile fine using the version I have installed? Should I "downgrade" my gcc to 2.95 to compile this kernel?
The reason I'm trying to compile an new kernel is that my system uses a LSI Logic/Symbios Logic 53c875 SCSI controller (information obtained from "System Tools/Hardware Browser" menu in GNOME) and I keep getting a bunch of errors like the following in my system logs:
sym0:0:0:phase change 6-7 11@12856b84 resid=2.
I read somewhere that by compiling a new kernel (2.6.11, I think), this problem might go away and I wanted my system to run as efficiently so decided to compile a new kernel. Am I doing the right thing? Thanks!
The recomendation for the compiler is rather old, from the times linux kernel developers and gcc compiler developers had somewhat conflictig views on some features of C programming language. Don't remember exactly what it was about, but discussion between them looked rather childish. As far as I know, this is not an issue anymore, the new kernel should compile and run just fine even if you use 3.4.x gcc. I don't think anybody is using gcc 2.xx anymore, and the very kernel you are now running is compiled with gcc 3.4.x. _______________________________________________ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Thanks so much for the reply. That clears things up and I can now compile my new kernel without worries! Thanks again.
-Jose
I read somewhere that by compiling a new kernel (2.6.11, I think), this problem might go away and I wanted my system to run as efficiently so decided to compile a new kernel. Am I doing the right thing? Thanks!
My ignorance here, is there a CentOS "Development" kernel or other option? I noticed the one in CentOS plus, but it is still based on the stock 2.6.9. I assume that's for maximum compatibility.
If not, I typically use Fedora Development (fka Rawhide), although I would _not_ recommend that for production systems. Grab the SRPM from Fedora Development and see if it builds (rpmbuild --build --target=i386| i686|x86_64) on CentOS 4:
http://download.fedora.redhat.com/pub/fedora/linux/core/development/SRPMS/ke...
I would at least try this one _instead_ of a "stock kernel" from kernel.org. Or is there another option that I'm not aware of?
Quoting "Bryan J. Smith" b.j.smith@ieee.org:
If not, I typically use Fedora Development (fka Rawhide), although I would _not_ recommend that for production systems. Grab the SRPM from Fedora Development and see if it builds (rpmbuild --build --target=i386| i686|x86_64) on CentOS 4:
http://download.fedora.redhat.com/pub/fedora/linux/core/development/SRPMS/ke...
I would at least try this one _instead_ of a "stock kernel" from kernel.org. Or is there another option that I'm not aware of?
I agree with what Bryan wrote. The Red Hat / Fedora kernels have a great number of patches specific to Red Hat distributions. It is best to run the kernel with those patches applied (such as the kernel from Fedora rawhide Bryan mentioned). Plus it gives nice RPM package to install.
I'd just add that i386 is not supported as a target for kernel. i586 and i686 are the only two supported targets for 32-bit processors. If nothing else, i386 kernel (if it compiles at all) would not have Native Posix Thread Library support, which is mandatory for Red Hat distributions (many programs would fail during runtime without it, for example Cyrus IMAPD).
---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program.
Bryan J. Smith wrote:
I read somewhere that by compiling a new kernel (2.6.11, I think), this problem might go away and I wanted my system to run as efficiently so decided to compile a new kernel. Am I doing the right thing? Thanks!
My ignorance here, is there a CentOS "Development" kernel or other option? I noticed the one in CentOS plus, but it is still based on the stock 2.6.9. I assume that's for maximum compatibility.
If not, I typically use Fedora Development (fka Rawhide), although I would _not_ recommend that for production systems. Grab the SRPM from Fedora Development and see if it builds (rpmbuild --build --target=i386| i686|x86_64) on CentOS 4:
http://download.fedora.redhat.com/pub/fedora/linux/core/development/SRPMS/ke...
I would at least try this one _instead_ of a "stock kernel" from kernel.org. Or is there another option that I'm not aware of?
Sorry, I'm not very experienced and didn't know exactly where to turn to compile a new kernel. Thanks for the link! I'd much rather have an rpm than compiling directly from source!
One final question on this:
When I rebuild the source rpm (or even when I tried to compile the stock kernel for that matter), I get:
In file included from ./include/asm/system.h:5, from ./include/asm/processor.h:18, from ./include/asm/thread_info.h:17, from ./include/linux/thread_info.h:21, from ./include/linux/spinlock.h:12, from ./include/linux/capability.h:45, from ./include/linux/sched.h:7, from arch/i386/kernel/asm-offsets.c:7: ./include/linux/kernel.h:10:20: stdarg.h: No such file or directory
which seems to tell me that the compilation process does not find the stdarg.h file on my system. By running "locate stdarg.h" I get the following:
[jose@sweety ~]$ locate stdarg.h /usr/lib/gcc/i386-redhat-linux/3.4.3/include/stdarg.h /usr/lib/syslinux/com32/include/stdarg.h /usr/share/man/man0p/stdarg.h.0p.gz
Is there something wrong with my configuration? I'm sorry for the many questions. If no answer, It's no problem. My system works ok as it is and I don't *have* to have a new kernel.