I’ve been trying to build a cross-compiler for x86, x86_64, PPC, PPC64 and ARM so I can built a DISTCC cluster… This hasn’t been going so well…
I tested on Gentoo and found the cross compiler there worked so I figured I’d spend a day and install Gentoo on a couple of older PCs… Spent a week on it =/
Machine #1: PowerMac G4 [PPC 1GHz, 384 MiB Ram, 80GB Disk]
Machine #2: PowerEdge 6450 [Quad Pentium 3 700MHz XEON, 1GiB Ram, 16GB Disk]
First Problem: The new minimal install CDs don’t seem to work on these so I use the old 2008 minimal CDs which boot fine.
Second Problem:
* ERROR: sys-apps/portage-2.1.9.25 failed:
* IO Failure -- Failed 'touch .unpacked' in /var/tmp/portage/sys-apps/portage-2.1.9.25
*
* Call stack:
* ebuild.sh, line 2320: Called ebuild_main
* ebuild.sh, line 2227: Called dyn_unpack
* ebuild.sh, line 746: Called die
* The specific snippet of code:
* touch "${PORTAGE_BUILDDIR}/.unpacked" || die "IO Failure -- Failed 'touch .unpacked' in ${PORTAGE_BUILDDIR}"
*
Imagine that… /bin/touch is broke?!
The fix: http://forums.gentoo.org/viewtopic-p-6521257.html�
Copied from external site:
mv /bin/touch /bin/oldtouch
echo '#!/bin/sh' > /bin/touch
echo 'echo -n >> "$1"' >> /bin/touch
chmod +x /bin/touch
After you get the system going, move the old touch back – It’s an issue with the old kernel on the boot cd and coreutils (i think)… the new kernel works fine.
Third Problem:
After a reboot, neither machine will finish the init process and the process is extremly slow. Then I noticed they kept repeating this message:
“caching service dependencies…”
There was also notices about the time being newer than it should be… So my time was in the future when I was setting up the Gentoo servers…
The fix:
find . -print0 | xargs -0 touch
(I had to undo my touch fix above to make this work.)
Fourth Problem:
The PPC Machine wouldn’t boot – it couldn’t find it’s root. Come to find out, in /dev I had no hdX or sdX devices…
> e2fsck_check_if_mount: Can't check if filesystem is mounted due to > missing mtab file > fsck.ext3: Device or resource busy while trying to open /dev/hda4 > Filesystem mounted or opened exclusively by another program?
I left this line in on the kernel setup:
General setup ---> � [ ] enable deprecated sysfs features to support old userspace tools
After I unchecked that, the machine ran with no probelm. The udev package creates these devices, but becuase the kernel was trying too… well, noone got along until I fixed the kernel. http://forums.gentoo.org/viewtopic-t-841573-start-0.html, http://forums.gentoo.org/viewtopic-t-854350-start-0.html
Fith Problem:
When I isntalled yaboot, it wouldn’t run… again it was because the new yaboot doesn’t like the old kernel… The fix was simple… Run the yaboot from the live cd specifying the –chroot /mnt/gentoo or –config /mnt/gentoo/etc/yaboot.conf
Sixth Problem:
On the PowerEdge 6450 server, after I installed Gentoo, the kernel would freeze on “BIOS data check”. After some google’ing I found that if I added “nobd” to lilo then it would auto skip the BIOS data check… Within lilo.conf you can set ‘suppress-boot-time-BIOS-data‘ in the global options. There maybe a kernel setting in make menuconfig but I haven’t looked hard enough. (This machine takes several minutes to boot so I REALLY don’t want to mess with this.)
Now both machines have Gentoo installed and are running a system update with modified CFLAGS (to take advantage of altivec, mmx, sse and so forth.)
Reason of post: So next time I do this I can quickly see how to fix these errors =P