{"id":26,"date":"2007-10-19T22:16:49","date_gmt":"2007-10-19T19:16:49","guid":{"rendered":"http:\/\/www.held.org.il\/blog\/?p=26"},"modified":"2007-10-19T22:16:49","modified_gmt":"2007-10-19T19:16:49","slug":"redhatcentos-5-on-intel-g33-based-motherboard","status":"publish","type":"post","link":"http:\/\/www.held.org.il\/blog\/2007\/10\/redhatcentos-5-on-intel-g33-based-motherboard\/","title":{"rendered":"RedHat\/CentOS 5 on Intel G33 based MotherBoard"},"content":{"rendered":"<p><strong>Update: <\/strong>read <a href=\"http:\/\/www.held.org.il\/blog\/?p=35\">this post<\/a> first. Issue was fixed on CentOS 5.1.<\/p>\n<p>This week I had to install CentOS5 on PCs with a new MoBo, having the <a href=\"http:\/\/www.intel.com\/products\/chipsets\/G33\/index.htm\">Intel G33 Express chipset<\/a>, and encountered two problems:<\/p>\n<ul>\n<li><strong>Kernel freezes on boot:<\/strong> after a quick search I found out that I should've added   <em>pci=nommconf<\/em> to the kernel boot arguments. (I couldn't yet realise what this mmconfig means exactly)<\/li>\n<li><strong>e1000 ethernet driver:<\/strong>\n<ul>\n<li>Default kernel's driver is too old: a <a title=\"e1000 project site\" href=\"http:\/\/e1000.sourceforge.net\">newer version<\/a> of the e1000 driver is needed.<\/li>\n<li>CentOS 5 installation doesn't recognize the pci Ethernet device as e1000: we should add the new pci id to the list<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>For those who don't need network at installation, the Ethernet driver may not matter much (they can install it afterwards). Instructions for enabling network (kickstart) are explained below.<\/p>\n<p><!--more--><\/p>\n<p><strong>1. Compile the <a href=\"http:\/\/e1000.sourceforge.net\">new e1000 driver<\/a><\/strong> on a system with the exact same kernel of the installation.<\/p>\n<p><strong>2. Find the card's PCI ID<\/strong> - required for auto-discovery of the card at installation boot: modprobe command should realize that this PCI card needs the e1000 driver, automatically. (Choosing the driver manually in anaconda didn't really help me, I didn't figure out why). So, four ways to do that:<\/p>\n<blockquote><p><strong>a. The accurate way<\/strong> (Thanks to Dan who helped me with this):<\/p>\n<blockquote><p>* Boot to Linux (yeah, not always trivial on a new PC, but try some <a href=\"http:\/\/www.knopper.net\/knoppix\">live cd<\/a>)<\/p><\/blockquote>\n<blockquote><p>* Find the ethernet controller with 'lspci'. It has some id at the beginning of the line, such as 02:07.0.<\/p><\/blockquote>\n<blockquote><p>* Find its directory file under \/sys\/devices, i.e. <code>find \/sys\/devices -name \\*02:07.0\\*<\/code><\/p><\/blockquote>\n<blockquote><p>* Read the file named <em>modalias<\/em> in that dir. You should find a string in this format: <em>pci:v0000109Ed00000350sv00000000sd00000000bc04sc00i00<\/em><\/p><\/blockquote>\n<\/blockquote>\n<blockquote><p><strong>b. (The impossible way?) :<\/strong> Try to find the card in the <a href=\"http:\/\/pci-ids.ucw.cz\/iii\/\">Linux PCI IDs repository<\/a><\/p><\/blockquote>\n<blockquote><p><strong>c. The \"let's try\" way:<\/strong> Try the <a href=\"http:\/\/pci-ids.ucw.cz\/iii\/?i=8086294c\">ID of my ethernet card<\/a> (maybe it's the same for all the Intel G33 chipsets?):  pci:v00008086d000010C5sv*sd*bc*sc*i*<\/p><\/blockquote>\n<blockquote><p><strong>d. The lazy way:<\/strong> Don't find the PCI ID,  force anaconda to load this driver by putting something like: \"alias eth0 e1000\" in the <em>modules.alias<\/em> file as explained later. It'll do problems for other NICs though.<\/p><\/blockquote>\n<p><strong>3. Last step: update the boot initrd.img:<\/strong> maybe there is a nice way, but I used the surgical way \ud83d\ude42<br \/>\nWhat I did was extract the initrd.img, overwrite the old e1000.ko, update modules.alias file, and re-pack it:<br \/>\n(We assume that original initrd.img, and newly created e1000.ko are in \/tmp)<\/p>\n<p><strong>Extract the initrd:<\/strong><br \/>\n<code>linbox:~# cd \/tmp<br \/>\nlinbox:\/tmp# mkdir a<br \/>\nlinbox:\/tmp# cd a<br \/>\nlinbox:\/tmp\/a# gunzip -c ..\/initrd.img | cpio -i<br \/>\n12907 blocks<br \/>\n<\/code><\/p>\n<p><strong>Now we extract the modules archive:<\/strong><code><br \/>\nlinbox:\/tmp\/a# cp modules\/modules.cgz \/tmp<br \/>\nlinbox:\/tmp\/a# mkdir ..\/b<br \/>\nlinbox:\/tmp\/a# cd ..\/b<br \/>\nlinbox:\/tmp\/b# gunzip -c ..\/modules.cgz | cpio -i<br \/>\n<\/code><\/p>\n<p>(now you get an error of nonexisting directory; maybe there's some flag I forgot, but I just manually did mkdir anyway..)<code><br \/>\nlinbox:\/tmp\/b# mkdir -p 2.6.18-8.el5\/i686<br \/>\nlinbox:\/tmp\/b# gunzip -c ..\/modules.cgz | cpio -i<br \/>\n17254 blocks<br \/>\n<\/code><strong><br \/>\nUpdate the insides; first overwrite the with newly compiled module:<\/strong><code><br \/>\nlinbox:\/tmp\/b# cp \/tmp\/e1000.ko.good 2.6.18-8.el5\/i686\/e1000.ko<br \/>\n<\/code><\/p>\n<p><strong>Pack the modules archive:<\/strong><code><br \/>\nlinbox:\/tmp\/b# find . | cpio -H newc -o | gzip -c &gt; \/tmp\/modules.cgz.new<br \/>\n17255 blocks<br \/>\n<\/code><\/p>\n<p><strong>Ok, we're back to business with the initrd.img contents, let's overwrite the modules archive with the one we've just created:<\/strong><br \/>\n<code>linbox:\/tmp\/b# cd ..\/a\/modules<\/code><br \/>\n<code>linbox:\/tmp\/a\/modules# cp \/tmp\/modules.cgz.new modules.cgz <\/code><\/p>\n<p><strong>Now put the PCI ID you've found earlier (haven't you?)<\/strong><code><br \/>\nlinbox:\/tmp\/a\/modules# vim modules.alias<br \/>\n<\/code><br \/>\n<strong>Add the new pci id<\/strong>, i.e.: alias pci:v00008086d0000294Csv*sd*bc*sc*i* e1000<\/p>\n<p><strong>We're done! let's pack initrd.img:<\/strong><br \/>\n<code>linbox:\/tmp\/a\/modules# cd ..<br \/>\nlinbox:\/tmp\/a# find . | cpio -H newc -o | gzip -c &gt; \/tmp\/initrd.img.new<br \/>\n12923 blocks<br \/>\n<\/code><\/p>\n<p>Yey.<\/p>\n<p><strong><br \/>\n<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Update: read this post first. Issue was fixed on CentOS 5.1. This week I had to install CentOS5 on PCs with a new MoBo, having the Intel G33 Express chipset, and encountered two problems: Kernel freezes on boot: after a quick search I found out that I should&#8217;ve added pci=nommconf to the kernel boot arguments. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[75],"tags":[],"_links":{"self":[{"href":"http:\/\/www.held.org.il\/blog\/wp-json\/wp\/v2\/posts\/26"}],"collection":[{"href":"http:\/\/www.held.org.il\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.held.org.il\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.held.org.il\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.held.org.il\/blog\/wp-json\/wp\/v2\/comments?post=26"}],"version-history":[{"count":0,"href":"http:\/\/www.held.org.il\/blog\/wp-json\/wp\/v2\/posts\/26\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.held.org.il\/blog\/wp-json\/wp\/v2\/media?parent=26"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.held.org.il\/blog\/wp-json\/wp\/v2\/categories?post=26"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.held.org.il\/blog\/wp-json\/wp\/v2\/tags?post=26"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}