If your going to put CentOS 5 on a machine with more than 4 gigs of ram you may need to use the PAE kernel. This is what I learned when moving from CentOS 4 to 5. I had a machine with dual Opteron 290's and 8 gig of ram (4 gig per processor). It was using CentOS 4 with the smp kernel from the CentOS plus repository. After upgrading it to CentOS 5 it put in a similar default kernel and the machine only saw 4 gig of ram.
I was trying to figured out why this was happening when I came across a note in the systems dmesg. Towards the top of the dmesg it said that it saw the 8 gig but was disabling the addressing of memory over 4 gig and to enable PAE. I have not heard of this PAE. So over to wikipedia I went.
I found this in the wikipedia entry:
Physical Address Extension (PAE) refers to a feature of x86 processors that allows for up to 64 Gigabytes (GB) of physical memory to be used in 32-bit systems, given appropriate operating system support. PAE is provided by Intel Pentium Pro and above CPUs (including all later Pentium-series processors except the 400 MHz bus versions on the Pentium M), as well as by some compatible processors such as those from AMD. The CPUID flag PAE is assigned for the purpose of identifying CPUs with this capability.
The processor hardware is augmented with additional address lines used to select the additional memory, and 36-bit page tables, but regular application software continues to use instructions with 32-bit addresses and a flat memory model limited to 4 gigabytes (GB). The operating system uses PAE to map this 32-bit address space onto the 64 gigabytes (GB) of total memory, and the map can be and usually is different for each process. In this way the extra memory is useful even though regular applications cannot access it all simultaneously.
For application software which needs access to more than 4 gigabytes (GB) of memory, some special mechanism may be provided by the operating system in addition to the regular PAE support. On Microsoft Windows this mechanism is called Address Windowing Extensions (AWE), while on Unix-like systems a variety of tricks are used, such as using mmap() to map regions of a file into and out of the address space as needed, none having been blessed as a standard.
So it looked like I needed PAE as my processors supported it (cat /proc/cpuinfo | grep pae) and I was using the 32bit version of CentOS. I remembered seeing a kernel with the PAE in it's name in the CentOS 5 plus repository. Sure enough the latest one was the kernel-PAE-2.6.18-8.1.15.el5.centos.plus.i686.rpm. After installing this kernel and rebooting the machine finally saw all 8 gig of memory.
Del.icio.us! | Digg Me! | Reddit!
This is a quick run through of my install of Kubuntu 7.10.
Let me start by saying install K/U/X/buntu 7.10 Gutsy without any network hooked up.
If you don't you may get what I got which was the "looking for mirrors" error at 82% of the install and have it hang. Curse who ever put a ridiculously high timeout (if there is one at all) on this part of the install. If you turn the network off it just warns you that it could not contact the mirrors and keeps going with the install. If your sitting at this error message then pull the plug on your network and it may time out. It did for me.
So I did the normal boot the cd an click the install icon on the desktop. Went through the prompts. Since I was upgrading I had my partitions already setup. I choose the advanced setup and set my / partition to format. I had my /home dir as it's own partition so I did not have to format it. All my configs and backups where in the /home dir so I was all good in formating the root partition. It finished all that and I rebooted.
On first start I had to change my network settings to a static ip. I went to System Settings -> Network Settings. Put in my ip and gateway info. Then clicked apply. The network said it was restarting but the window just sat there and after a min or two I killed it. So I had to restart networking by hand.
sudo /etc/init.d/networking restart
That restarted the network fine and it came right up. Now to modify my apt-sources file and put in extra repositories. During the install when the installer can not find the mirrors it comments out all of the repositories except for the cdrom. So I had to go back in and enable them after I got the network up and running. The line will look like the following.
# Line commented out by installer because it failed to verify:
Below that line is the deb line it commented out. So opened my /etc/apt/sources.list file with an text editor and uncommented the lines that where commented out. Then at the end of each line that had the word restricted put the words "universe multiverse". See the example below for what some of the lines should look like when your done. Just do the same for each section you want turned on (security updates, bug fixes, etc).
# Line commented out by installer because it failed to verify: deb http://us.archive.ubuntu.com/ubuntu/ gutsy main restricted universe multiverse # Line commented out by installer because it failed to verify: deb-src http://us.archive.ubuntu.com/ubuntu/ gutsy main restricted universe multiverse ## Major bug fix updates produced after the final release of the ## distribution. # Line commented out by installer because it failed to verify: deb http://us.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted universe multiverse # Line commented out by installer because it failed to verify: deb-src http://us.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted universe multiverse
I then saved that file and ran the following from a shell to update the sources I just changed
sudo apt-get update
It hung at
Ign cdrom://Kubuntu 7.10 _Gutsy Gibbon_ - Release i386 (20071016.1) gutsy/main Translation-en_US Ign cdrom://Kubuntu 7.10 _Gutsy Gibbon_ - Release i386 (20071016.1) gutsy/restricted Translation-en_US 35% [Waiting for headers]
I hit Ctrl-C to kill it. Then ran the update command again and it went right through.
Now it was time to install my restricted binary only nvidia driver (blob). I saw the icon come up in the taskbar about installed the restricted drivers. I clicked on it and then canceled it. At the time I did not know how to get it back so I just decided to do it with apt because I have always done it that way. So I installed the nvidia driver with the following command.
apt-get install linux-restricted-modules-`uname -r` nvidia-glx
After that I copied over my backed up xorg.conf file to /etc/X11/. I have a 3 monitor setup with Xinearama so it's a special config. If your intrested you can see this config in my section on X from the pantz.org menu. The entry is entitled "X.org config file for 3 monitors". So, Kubuntu saw two of the monitors but not the third. The third monitor was just a screen of colored blocks nothing setup correct at all. Good try kubuntu. Better luck next time. Anyway, I inserted the nvidia module.
sudo modprobe nvidia
Logged out. Then hit Ctrl-Alt-Backspace keys to restart X. All 3 montiors came up so I logged back in.
Then it was time to update some packages I use. I installed them with the following command.
sudo apt-get install ssh procmail mutt postfix lynx fetchmail kicker-applets openntpd binutils gcc make libc6-dev qiv xmms xmms-volnorm mplayer xpdf ispell conky thttpd xterm sox
After doing that I get this message.
Media change: please insert the disc labeled 'Kubuntu 7.10 _Gutsy Gibbon_ - Release i386 (20071016.1)' in the drive '/cdrom/' and press enter
I put the cdrom back in. Opened another shell and gave the command
sudo mount /cdrom
Pressed enter and it started the install. I got this message because I forgot the line
deb cdrom:[Kubuntu 7.10 _Gutsy Gibbon_ - Release i386 (20071016.1)]/ gutsy main restricted
Was at the top of the /etc/apt/sources.list file. I commented the line out for the future and issued a "apt-get update" after commenting it out.
After all the software installed I copied over all my configs I saved for postfix, openntpd, and thttpd.
sudo cp postfix/main.cf /etc/postfix/ sudo cp thttpd/thttpd.conf /etc/thttpd/ sudo cp openntpd/ntpd.conf /etc/openntpd/ sudo /etc/init.d/openntpd restart sudo /etc/init.d/thttpd restart sudo /etc/init.d/postfix restart
Soon after that I tried to start the binary version of firefox 2.0.7 and got this error.
firefox-bin: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
I fixed this by installing the standard libc++ 5 library.
sudo apt-get install libstdc++5
That was about it. Everything else just worked.
Del.icio.us! | Digg Me! | Reddit!
If your trying to insert a kernel module (insmod) after compiling it and get the error below:
insmod: error inserting 'arcmsr.ko': -1 Unknown symbol in module
Then you may not have loaded the modules that module depends on. In the example the arcmsr.ko is a raid scsi driver. But the scsi subsystem modules were not loaded before the scsi raid driver was inserted. So it failed with the error message. You would need to modprobe for the scsi devices modules first.
modprobe scsi_mod
modprobe sd_mod
Then insert the raid driver module.
insmod arcmsr.ko
To get a scsi raid driver to load on boot do the following. The example is for a scsi raid dirver from Areca compiled with the name arcmsr.ko. Get the raid (scsi) driver and make it. Take the made driver (for example arcmsr.ko) and copy to current kernel modules dir.
cp arcmsr.ko /lib/modules/`uname -r`/kernel/drivers/scsi/
Put "alias" line below in file /etc/modprobe.conf
echo alias scsi_hostadapter arcmsr >>/etc/modprobe.conf
Update a the lists the dependencies for every module.
depmod -A
Make the new initrd image and copy it into boot directory
mkinitrd -f -v /boot/initrd-`uname -r`.img `uname -r`
The above mkinitrd line is for CentOS 5 kernel. Your kernel name may be different. Also, note you might need --with=sd_mod --with=scsi_mod in mkinitrd line. Since the raid module is dependent on these. Try it without them first. Don't forget to change your /boot/grub/menu.lst file to reflect the new initrd image name if need be.
Del.icio.us! | Digg Me! | Reddit!