Installation on MacMini (ppc)

From openSUSE

Contents

About

About two weeks ago, Anicka asked members on our internal mailing list to install openSUSE 10.3 on her friend's Mac mini (ppc).

This article describes a successful openSUSE 10.3 installation on Mac mini (ppc).

Hardware

  • Mac mini
    • Processor: Risc3 7447A @ 1.4 GHz
    • Memory: 1 GB RAM
    • Disk: HTS726060M9AT00, ATA, ~60 GB
    • GFX Card: ATI Technologies Inc RV280 [Radeon 9200]
    • Netcard: UniNorth 2 GMAC (Sun GEM)
  • Monitor: DVI LCD SAMSUNG SyncMaster 910T
  • USB Keyboard, USB Mouse
  • One green apple

Image:MacMini_Install_Hardware_Overview.jpg

Software

  • openSUSE 10.3 DVD (ppc)

Goals

  • Install openSUSE 10.3
  • It's not needed to keep the original partitioning and system
  • Make X-server run (without framebuffer if possible)

Pre-Installation

I was told that installation had been impossible on that hardware but the only problem I found was Partitioner versus Bootloader issues.

How Installation Works in General

openSUSE installation, as it is designed, is all proposed and tuned in memory unless you finally press the Install button. Everything, such as partitioning, selection of software to be installed, bootloader configuration, used languages, etc., is based on a current computer state and several proposals depend on other ones. E.g., automatic software selection depends on the fact which type of filesystem is used in partitioner, bootloader can be installed into selected partition, language selection influences installed localizations.

The Current Behavior is a Bit Buggy

If you have the whole disk occupied with some non-Linux system (MacOS), partitioner might refuse to shrink the current partitions to make enough room for Linux partitions. Additionally, ppc bootloader requires some special Apple partition (currently 0x102 Apple_HFS type) that doesn't exist and refuses to be installed / is not proposed. Even if partitioning is can be changed manually, it's impossible to persuade bootloader to use the newly proposed partition. This has been reported as [bug #343670].

Bug Workaround

There are two possibilities how to workaround this bug:

  • Boot your Mac mini to the previous system and use some tool that is able to shrink the current system to make some free space.
  • Boot the installation DVD and remove the whole partition with the old system.

Booting from the Installation DVD

Just turn on your Mac mini, insert the openSUSE DVD and hold the c key on your keyboard (attached to your Mac mini, of course :)) Mac mini system loader will boot from the CD/DVD drive. Alternatively hold the alt key to get into a graphical system loader to choose from all available boot-sources.

How to Remove the Old-System Partition

Boot from the installation DVD, type rescue and press Enter to boot the openSUSE 10.3 manual rescue mode.

yaboot menu

During booting the rescue system, you will be asked to select a keyboard by selecting from offered ones. Option 6 is for en_US.

Login as root without any password.

To edit the partitioning table use pdisk binary.

  • pdisk --list lists all partitions on all available disks and other local media.
  • pdisk /dev/hda enters an interactive mode with preselected /dev/hda disk to edit the partition table.
    • p in pdisk lists the current partition table.
    • d deletes the current partition, partition number to delete needs to be entered. WARNING: Do not delete the first 'Apple' partition!
    • w writes the new partition table to disk (needs to be confirmed with y).
    • q quits pdisk.

Manually removing partitions using openSUSE rescue mode from DVD

Then reboot the rescue system with /sbin/reboot.

First Stage Installation

Starting the Installation

Boot from the installation DVD (turn on your Mac mini, insert the openSUSE DVD and hold the c key on your keyboard to boot from the CD/DVD drive). When a yaboot menu appears, type install and press Enter.

yaboot menu

Installation system boots and runs YaST - the installation and configuration tool. Graphic installation program uses framebuffer resolution 1280x1024@16bit.

Initial installation - Overview of used add-ons

Initial Selections

At first, you have to select localization that will be used during the installation, then you have better validate your media in a Media Check dialog.

Choose New Installation in the Installation Mode dialog and select Online Repositories check-box if you want to install some openSUSE software from online repositories during the installation.

When installation loads the installation software repository from DVD, the drive makes very strange noises as it was a bit ill and it's quite slow, however it always succeeds at the end.

Then, you are asked whether you want to configure network. Tested Automatic Address Setup (via DHCP) works nicely. Then the list of available repositories is downloaded and repositories offered to be used.

Installation Proposal

Partitioning and other parts are proposed automatically because we have some free space available on the disk/ See the Pre-Installation part above.

The proposed installation proposal works and bootloader is able to use it, however I had decided to change it.

Installation proposal

Click on the Partitioning headline to change to current proposal. Make sure you choose the Base Partition Setup on This Proposal option.

Partitioner

This is how partitioner proposed the partitioning.

Proposed partitioning

  • /dev/hda2, type Apple_HFS mustn't be removed because the ppc bootloader will be installed into it.
  • /dev/hda3, type swap - seems to be too big, 1 GB should be enough
  • /dev/hda4, type Ext3 - might be too big (depends on how the computer is used), 15 GB should be enough
  • /dev/hda5, type Ext3 - the rest is reserved for /home

WARNING: When editing the proposed partitioning, do not remove the Apple_HFS partition even if you want to recreate is smaller or bigger, bootloader would be unable to install into it. Change the partition size instead. Anyway, you can still always reset the whole proposal.

Pressing the Accept button and confirming it by the Install button starts installation to repartition your disk and install all requested software.

Software installation...

After all the software is installed, installation program writes network and languages settings and the ppc bootloader (and many other settings). At the end, computer reboots to the just installed system.

Second Stage Installation

Installation boots automatically via yaboot to the second stage installation where you can change some system settings, run online update, create system users, etc.

I've left all the proposed values intact and kept pressing Next button when applicable. Network configuration went smooth as well as registration and adding the online update repository. Mac mini survived installing both online-update sets (online update of online-updater followed by application restart and the rest of online updates including Kernel update that made Mac to reboot).

Second stage installation followed (after some other steps) to the hardware configuration dialog where all the hardware was correctly recognized. The only problem was that I haven't found any driver for the graphics card so it still used framebuffer.

Hardware proposal

After finishing the installation, system boots to the graphical login.

Finally, we have openSUSE 10.3 installed on Mac mini (ppc).

openSUSE booting...

openSUSE 10.3 KDE

Some More Software/Hardware Details

Inspired by Installation_on_MacMini_Intel_(x86)...

 dhcp16:~ # lspci
 0000:00:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 AGP
 0000:00:10.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200] (rev 01)
 0001:10:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 PCI
 0001:10:17.0 Class Class ff00: Apple Computer Inc. KeyLargo/Intrepid Mac I/O
 0001:10:18.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
 0001:10:19.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
 0001:10:1a.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
 0001:10:1b.0 USB Controller: NEC Corporation USB (rev 43)
 0001:10:1b.1 USB Controller: NEC Corporation USB (rev 43)
 0001:10:1b.2 USB Controller: NEC Corporation USB 2.0 (rev 04)
 0002:20:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 Internal PCI
 0002:20:0d.0 Class Class ff00: Apple Computer Inc. UniNorth/Intrepid ATA/100
 0002:20:0e.0 FireWire (IEEE 1394): Apple Computer Inc. UniNorth 2 FireWire (rev 81)
 0002:20:0f.0 Ethernet controller: Apple Computer Inc. UniNorth 2 GMAC (Sun GEM) (rev 80)
 dhcp16:~ # lsmod
 Module                  Size  Used by
 binfmt_misc            13160  1 
 joydev                 12480  0 
 sg                     33548  0 
 st                     42364  0 
 sd_mod                 32624  0 
 sr_mod                 20228  0 
 scsi_mod              175080  4 sg,st,sd_mod,sr_mod
 ip6t_LOG                7168  0 
 nf_conntrack_ipv6      22544  0 
 xt_pkttype              1856  0 
 ipt_LOG                 6944  0 
 xt_limit                2752  0 
 snd_pcm_oss            62400  0 
 snd_mixer_oss          21248  1 snd_pcm_oss
 snd_seq                68320  0 
 snd_seq_device          9772  1 snd_seq
 ip6t_REJECT             6304  0 
 xt_tcpudp               3296  0 
 ipt_REJECT              5088  0 
 xt_state                2592  0 
 iptable_mangle          2944  0 
 iptable_nat             8196  0 
 nf_nat                 19698  1 iptable_nat
 iptable_filter          3104  0 
 ip6table_mangle         2784  0 
 nf_conntrack_ipv4      13096  2 iptable_nat
 nf_conntrack           71792  5 nf_conntrack_ipv6,xt_state,iptable_nat,nf_nat,nf_conntrack_ipv4
 nfnetlink               7096  4 nf_conntrack_ipv6,nf_nat,nf_conntrack_ipv4,nf_conntrack
 ip_tables              13800  3 iptable_mangle,iptable_nat,iptable_filter
 ip6table_filter         2848  0 
 ip6_tables             14856  3 ip6t_LOG,ip6table_mangle,ip6table_filter
 x_tables               17252  11 ip6t_LOG,xt_pkttype,ipt_LOG,xt_limit,ip6t_REJECT,xt_tcpudp,ipt_REJECT,
                                  xt_state,iptable_nat,ip_tables,ip6_tables
 ipv6                  306988  25 nf_conntrack_ipv6,ip6t_REJECT,ip6table_mangle
 apparmor               48876  0 
 loop                   22404  0 
 dm_mod                 66176  0 
 snd_aoa_codec_toonie    3332  2 
 snd_aoa_fabric_layout  13800  1 
 snd_aoa                20672  2 snd_aoa_codec_toonie,snd_aoa_fabric_layout
 snd_aoa_i2sbus         24452  1 
 snd_pcm               100644  2 snd_pcm_oss,snd_aoa_i2sbus
 snd_timer              28068  2 snd_seq,snd_pcm
 snd_page_alloc         12456  1 snd_pcm
 snd                    74516  12 snd_pcm_oss,snd_mixer_oss,snd_seq,snd_seq_device,snd_aoa_codec_toonie,
                                  snd_aoa_fabric_layout,snd_aoa,snd_aoa_i2sbus,snd_pcm,snd_timer
 ohci1394               41520  0 
 soundcore               8868  1 snd
 snd_aoa_soundbus        7844  2 snd_aoa_fabric_layout,snd_aoa_i2sbus
 ide_cd                 47364  0 
 ieee1394              106688  1 ohci1394
 cdrom                  43164  2 sr_mod,ide_cd
 sungem                 35268  0 
 sungem_phy             12896  1 sungem
 uninorth_agp           11692  1 
 agpgart                40220  1 uninorth_agp
 ehci_hcd               37772  0