[slackintosh-users] Slackintosh and 64-bit kernels (with Crux)

Hello all---

CruxPPC64-2.6 provides a useful 64bit chroot environment with 32bit
Slackintosh-12.1.  I used Crux to update my shipped g5ppc64 kernel,
and then I migrated my Slackintosh install to a JFS file system.
Maybe someone will find my experience useful.  I know that I rebooted
more than necessary, but at least nothing broke.

The end result:

$ uname -a
Linux crackintosh 2.6.36-slackintosh #2 Mon Nov 22 22:15:33 EST 2010
ppc64 PPC970FX, altivec supported PowerMac8,1 GNU/Linux

Partitioning:

My computer still has the typical map, bootstrap, and HFS partitions
for OS X.  The rest of the hard disk has survived a few previous Linux
installations. 

I used the CruxPPC64 installation disk to allocate the following Linux
partitions: 2GB swap, 75MB /boot (ext2), 3GB for Crux root (JFS), 5GB
for a temporary Slack root (ext3), 8GB for a permanent Slack root
(JFS), and one more partition for /home (JFS, with all my data from a
previous Linux install).

CruxPPC:

Installing CruxPPC is more involved than installing Slack, so follow
the handbook (http://cruxppc.org/Handbook2-6#InstallingFromCD-ROM).
For now, do not tell the installer about any partitions other than
swap, /boot and Crux root. The critical part is compiling the new
kernel.

The CruxPPC64 environment is pure 64-bit, so the kernel will run on a
G5 under Slackintosh.  Any modules compiled under Crux will be
unavailable to Slackintosh, however, so no hardware support can depend
on any modules.  My machine required Sungem, Phy, several filesystems,
full G5 support, and plenty of crypto to be compiled directly into the
kernel; others will also need SMP support.

Set up yaboot as normal and reboot to test.  If lsmod shows that Crux
still depends on modules, it's probably worth compiling another
kernel.

Slackintosh, Part 1:

Install Slackintosh-12.1 to the temporary ext3-formatted root as
normal, but only tell the installer about the temporary Slack root
partition, and skip the yaboot installation.  

Reboot into Crux and edit yaboot.conf to boot into the temporary Slack
root using the Crux kernel; run ybin -v.  Make sure that the
temporary Slack installation works as expected with the Crux kernel.

Slackintosh, Part 2:

Follow the Zipslack FAQ
(http://slackware.com/faq/do_faq.php?faq=zipslack) to migrate the root
partition from the temporary Slack root to the permanent one:

# mkdir /mnt/newroot
# mount /dev/sdXX /mnt/newroot
# umask 000
# cp
-a /bin /boot /dev /etc /lib /root /sbin /tmp /usr /var /mnt/newroot/ 
# mkdir /mnt/newroot/proc /mnt/newroot/home 

Edit /mnt/newroot/etc/fstab
to reflect the new root partition and correct /boot partition, and add
the dangling /home partition.

Either reboot into Crux, edit yaboot.conf, and run ybin -v, or copy
yaboot.conf from the Crux partition and run ybin -v directly from
Slackware. If everything has worked so far, then there won't be much
need to boot into Crux anymore.

Final notes:

Boot into permanent Slackware and compute.  I followed the
Slackintosh-current ChangeLog to update my toolchain, and then I
downloaded new kernel source and upgraded the kernel once again from
inside Slack by using the Crux installation as a chroot.  Most 13.1
and later SlackBuild scripts now work with no editing.

I prefer my current setup to Debian or Crux, but it is not perfect.  I
get minor warnings whenever I su or quit screen.  I would be interested
if anyone else is running something similar. 

Cheers,
-derek

-- 

Other related posts: