Linux for PowerPC
Back in the 1990s Apple, IBM and Motorola (Wikipedia) got together and created the PowerPC architecture (Wikipedia), which would be used in IBM's RS/6000 series systems, Apple's Power Macintosh systems and many Motorola products, including desktop computers and embedded processors. Apple's short lived licensing of Macintosh clones during the mid-1990s, Microsoft Windows NT supporting PowerPC (alongside Alpha, MIPS, and x86), and Apple supporting MkLinux development, drove additional interest in the platform and saw production of affordable PowerPC desktop computers.
While IBM would continue development of PowerPC into their 64-bit POWER architecture, Apple had cut-off the Macintosh clone business in 1997, and then Apple switched away from PowerPC in 2006. Leaving a lot of PowerPC based hardware in circulation, with few operating system options remaining.
Linux on PowerPC has a long, and somewhat complex history, with initial work beginning in 1994, the first Linux distributions appearing in 1996, and PowerPC support being integrated in the mainline Linux kernels with Linux 2.2 in 1999. While the PowerPC architecture has been sunset by many distributions, a few remain.
Debian Linux
Debian added support for PowerPC to its Linux distribution in 2000 with the release of Debian GNU/Linux 2.2 (potato), and while official support for 'powerpc' (32-bit PowerPC and 64-bit big-endian PowerPC) ended in 2020 with Debian 8 (jessie), Debian ports continues to make unstable/testing builds for the 'powerpc' architecture, and has official releases for the 64-bit POWER based systems ('ppc64le').
In the interests of simplicity, reproducibility and ease of comparison, I'm going to use Debian Linux 8 (jessie) for PowerPC, since it has a DVD image available, which means the lack of online repositories won't be a problem and we don't have to consider package version variation.
QEMU
The widespread use of PowerPC processors in computers and embedded systems has driven a need for emulators capable of supporting development and testing for those platforms. The QEMU emulator includes a wide range of processor and system emulations for PowerPC processors, making it a excellent options for these roles at minimal cost.
The 32-bit PowerPC processors were used in a wide range of systems, so QEMU has a variety of system emulations to choose from:
$ qemu-system-ppc --machine ? Supported machines are: 40p IBM RS/6000 7020 (40p) bamboo bamboo g3beige Heathrow based PowerMAC (default) mac99 Mac99 based PowerMAC mpc8544ds mpc8544ds none empty machine ppce500 generic paravirt e500 platform ref405ep ref405ep sam460ex aCube Sam460ex taihu taihu virtex-ml507 Xilinx Virtex ML507 reference design
For a bit more detail see QEMU PowerPC Systems.
The QEMU wiki has a description of how to install various operating systems on the available emulated systems (Documentation/Platforms/PowerPC - QEMU), and the 'mac99' system is suggested for Linux, so let's give it a go...
Checking Apple Support, EveryMac.com, Wikipedia the hardware specification for the 'mac99' would be:
System | Apple Power Mac G4 (AGP Graphics) ("graphite") |
---|---|
Model | PowerMac3,1 |
Mac Firmware | NewWorld |
CPU | PowerPC 7400 @ 350, 400, 450, or 500 MHz, G4 |
RAM | 64, 128 or 256 MiB (2 GiB max.) |
Bus | PCI (3 slots) with a 2x AGP slot |
Storage | built-in IDE controller Ultra ATA/66, max. 128 GB drives |
10 to 27 GB IDE hard disk | |
5x DVD-ROM ATAPI | |
Video | ATI Rage 128, ATI Rage 128 Pro, 2x AGP, 16 MiB VRAM |
Audio | built-in Screamer |
Network | built-in 10 Mb/s 10/100baseT Ethernet |
Firewire controller | 400 Mb/s |
USB controller | USB 1.1 (12 Mb/s) |
Keyboard & Mouse | USB |
SCSI was a order option which used a PCI SCSI controller and swapped the IDE hard drive for up to three SCSI drives.
Third-party upgrades were available (see Guide to CPU Upgrades for AGP G4 Power Macs) that used later versions of the forth generation (G4) PowerPC processors and gave higher clocks (e.g. 7455 @ 1.3 GHz and 7447A @ 1.6 GHz). Some processor cards featured dual processors (e.g. Giga Designs G-Celerator G4/1.2 Dual AGP/100 (5D-1212G) Specs: EveryMac.com) providing a significant performance boot in operating systems supporting SMP.
While the Power Mac G4 (AGP Graphics) supports dual processors, trying to run the 'mac99' emulation in SMP mode gives:
$ qemu-system-ppc -M mac99 -smp cpus=2 qemu-system-ppc: Invalid SMP CPUs 2. The max CPUs supported by machine 'mac99' is 1
So the 'mac99' emulated system is uniprocessor only.
Emulation Command
blah
qemu-system-ppc \ --machine mac99,via=pmu \ -m 2048M \ -hda hda_DebianLinux_mac99.qcow2 \ -cdrom debian-8.11.0-powerpc-DVD-1.iso \ -net nic \ -net "user,guestfwd=:10.0.2.1:22-cmd:netcat 127.0.0.1 22,hostfwd=::2222-:22" \ -prom-env 'boot-device=hd:,\yaboot' \ -prom-env 'boot-args=conf=hd:,\yaboot.conf' \ -g 1024x768x32 \ -boot c \ -name 'Debian Linux 8 (jessie) on Power Macintosh G4 (AGP)'
blah
Debian Linux 8 (jessie) - System Information
With Debian Linux 8 (jessie) for PowerPC installed, lets see what it has to say about the system.
For comparison details of real hardware systems running Linux can be found with "65 (PowerMac G4 AGP Graphics)" - Google Search.
uname & lsb_release
Operating system name, version, revision and platform information.
$ uname -a Linux deb8-mac99 3.16.0-6-powerpc #1 Debian 3.16.56-1+deb8u1 (2018-05-08) ppc GNU/Linux
So a "Linux" kernel, running on a node named "deb8-mac99", kernel release "3.16.0-6-powerpc" (a patched 3.16.0 kernel), kernel version "#1 Debian 3.16.56-1+deb8u1 (2018-05-08))", platform architecture "ppc", for operating system "GNU/Linux".
Distribution information from Linux Standard Base (LSB):
$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.11 (jessie) Release: 8.11 Codename: jessie
Looking at the Debian release information files:
$ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 8 (jessie)" NAME="Debian GNU/Linux" VERSION_ID="8" VERSION="8 (jessie)" ID=debian HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" $ cat /etc/debian_version 8.11
Confirmed as a Debian Linux 8 (jessie) distribution.
lscpu & /proc/cpuinfo
System processor(s) information:
$ lscpu Architecture: ppc CPU op-mode(s): 32-bit Byte Order: Big Endian CPU(s): 1 On-line CPU(s) list: 0 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 1 Model: PowerMac3,1 BogoMIPS: 200.00 L1d cache: 32K L1i cache: 32K $ cat /proc/cpuinfo processor : 0 cpu : 7400, altivec supported temperature : 50-126 C (uncalibrated) clock : 900.000000MHz revision : 2.9 (pvr 000c 0209) bogomips : 200.00 timebase : 100000000 platform : PowerMac model : PowerMac3,1 machine : PowerMac3,1 motherboard : PowerMac3,1 MacRISC MacRISC2 Power Macintosh detected as : 65 (PowerMac G4 AGP Graphics) pmac flags : 00000004 pmac-generation : NewWorld Memory : 2048 MB
As well as the processor there is a bit of information about the system here, confirming this as a Power Mac G4 (AGP Graphics). The claimed processor clock and the BogoMips result look a bit odd (see Benchmark - BogoMips).
/proc/meminfo
System memory report:
$ cat /proc/meminfo MemTotal: 2068052 kB MemFree: 1985756 kB MemAvailable: 2024860 kB Buffers: 8092 kB Cached: 47764 kB SwapCached: 0 kB Active: 40252 kB Inactive: 28240 kB Active(anon): 12780 kB Inactive(anon): 5368 kB Active(file): 27472 kB Inactive(file): 22872 kB Unevictable: 0 kB Mlocked: 0 kB HighTotal: 1310720 kB HighFree: 1265088 kB LowTotal: 757332 kB LowFree: 720668 kB SwapTotal: 358200 kB SwapFree: 358200 kB Dirty: 4 kB Writeback: 0 kB AnonPages: 12648 kB Mapped: 16060 kB Shmem: 5516 kB Slab: 7824 kB SReclaimable: 3488 kB SUnreclaim: 4336 kB KernelStack: 520 kB PageTables: 624 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 1392224 kB Committed_AS: 49320 kB VmallocTotal: 225496 kB VmallocUsed: 24420 kB VmallocChunk: 186428 kB
So we have 2.0 GiB RAM and about 358 MB of swap.
lspci
Report PCI devices:
$ lspci -v 00:0b.0 Host bridge: Apple Inc. UniNorth PCI Subsystem: Red Hat, Inc Device 1100 Flags: fast devsel 00:0c.0 Unassigned class [ff00]: Apple Inc. KeyLargo Mac I/O Subsystem: Red Hat, Inc Device 1100 Flags: bus master, fast devsel, latency 0 Memory at 80000000 (32-bit, non-prefetchable) [size=512K] Kernel driver in use: macio 00:0d.0 USB controller: Apple Inc. KeyLargo/Intrepid USB (prog-if 10 [OHCI]) Subsystem: Red Hat, Inc QEMU Virtual Machine Flags: bus master, fast devsel, latency 0, IRQ 28 Memory at 80080000 (32-bit, non-prefetchable) [size=256] Kernel driver in use: ohci-pci 00:0e.0 VGA compatible controller: Device 1234:1111 (rev 02) (prog-if 00 [VGA controller]) Subsystem: Red Hat, Inc Device 1100 Flags: fast devsel Memory at 81000000 (32-bit, prefetchable) [size=16M] Memory at 82000000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at 82010000 [disabled] [size=64K] Kernel driver in use: bochs-drm 00:0f.0 Ethernet controller: Apple Inc. UniNorth GMAC (Sun GEM) (rev 01) Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 30 Memory at 82200000 (32-bit, non-prefetchable) [size=2M] Kernel driver in use: gem
Leaving aside the generic VGA device in place of the ATI Rage 128 or ATI Rage 128 Pro, this looks okay when compared to a real system (from PowerPC Dynamic Recompiler (patch) - Page 2 \ VOGONS):
0000:10:0b.0 Host bridge: Apple Inc. UniNorth PCI 0000:10:0d.0 PCI bridge: Digital Equipment Corporation DECchip 21154 (rev 05) 0000:11:07.0 Unassigned class [ff00]: Apple Inc. KeyLargo Mac I/O (rev 02) 0000:11:08.0 USB controller: Apple Inc. KeyLargo USB 0000:11:09.0 USB controller: Apple Inc. KeyLargo USB 0000:11:0a.0 FireWire (IEEE 1394): Texas Instruments TSB12LV23 IEEE-1394 Controller 0001:21:0b.0 Host bridge: Apple Inc. UniNorth Internal PCI 0001:21:0f.0 Ethernet controller: Apple Inc. UniNorth GMAC (Sun GEM) (rev 01) 5f08:00:0b.0 Host bridge: Apple Inc. UniNorth AGP 5f08:00:10.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Rage 4 [Rage 128 PRO AGP 4X TMDS]
The Firewire controller and second USB controller would be nice, but it's understandable that the emulation omits these.
lsusb
Report USB devices:
$ lsusb Bus 001 Device 005: ID 0627:0001 Adomax Technology Co., Ltd Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub $ lsusb -t /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/3p, 12M |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 2: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 12M
So the root hub and the emulated USB keyboard and mouse.
report-hw
Report hardware information using commands:
$ report-hw uname -a: Linux deb8-mac99 3.16.0-6-powerpc #1 Debian 3.16.56-1+deb8u1 (2018-05-08) ppc GNU/Linux lspci -knn: 00:0b.0 Host bridge [0600]: Apple Inc. UniNorth PCI [106b:001f] lspci -knn: Subsystem: Red Hat, Inc Device [1af4:1100] lspci -knn: 00:0c.0 Unassigned class [ff00]: Apple Inc. KeyLargo Mac I/O [106b:0022] lspci -knn: Subsystem: Red Hat, Inc Device [1af4:1100] lspci -knn: Kernel driver in use: macio lspci -knn: 00:0d.0 USB controller [0c03]: Apple Inc. KeyLargo/Intrepid USB [106b:003f] lspci -knn: Subsystem: Red Hat, Inc QEMU Virtual Machine [1af4:1100] lspci -knn: Kernel driver in use: ohci-pci lspci -knn: 00:0e.0 VGA compatible controller [0300]: Device [1234:1111] (rev 02) lspci -knn: Subsystem: Red Hat, Inc Device [1af4:1100] lspci -knn: Kernel driver in use: bochs-drm lspci -knn: 00:0f.0 Ethernet controller [0200]: Apple Inc. UniNorth GMAC (Sun GEM) [106b:0021] (rev 01) lspci -knn: Kernel driver in use: gem usb-devices: usb-devices: T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 3 usb-devices: D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 usb-devices: P: Vendor=1d6b ProdID=0001 Rev=03.16 usb-devices: S: Manufacturer=Linux 3.16.0-6-powerpc ohci_hcd usb-devices: S: Product=OHCI PCI host controller usb-devices: S: SerialNumber=0000:00:0d.0 usb-devices: C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA usb-devices: I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub usb-devices: usb-devices: T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 usb-devices: D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 usb-devices: P: Vendor=0627 ProdID=0001 Rev=00.00 usb-devices: S: Manufacturer=QEMU usb-devices: S: Product=QEMU USB Keyboard usb-devices: S: SerialNumber=68284-pci.2:0d.0-1 usb-devices: C: #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA usb-devices: I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=01 Driver=usbhid usb-devices: usb-devices: T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 4 Spd=12 MxCh= 0 usb-devices: D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 usb-devices: P: Vendor=0627 ProdID=0001 Rev=00.00 usb-devices: S: Manufacturer=QEMU usb-devices: S: Product=QEMU USB Mouse usb-devices: S: SerialNumber=89126-pci.2:0d.0-2 usb-devices: C: #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA usb-devices: I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid lsmod: Module Size Used by lsmod: nls_utf8 1220 0 lsmod: isofs 33608 0 lsmod: udf 87257 0 lsmod: crc_itu_t 1163 1 udf lsmod: uinput 7802 2 lsmod: nfsd 264823 2 lsmod: auth_rpcgss 49048 1 nfsd lsmod: oid_registry 2255 1 auth_rpcgss lsmod: nfs_acl 2919 1 nfsd lsmod: nfs 185328 0 lsmod: lockd 76158 2 nfs,nfsd lsmod: fscache 42624 1 nfs lsmod: sunrpc 237002 6 nfs,nfsd,auth_rpcgss,lockd,nfs_acl lsmod: bochs_drm 16809 1 lsmod: ttm 58895 1 bochs_drm lsmod: drm_kms_helper 43002 1 bochs_drm lsmod: evdev 11401 7 lsmod: drm 230603 4 ttm,bochs_drm,drm_kms_helper lsmod: syscopyarea 2930 1 bochs_drm lsmod: sysfillrect 3514 1 bochs_drm lsmod: sysimgblt 1851 1 bochs_drm lsmod: autofs4 27653 2 lsmod: ext4 474308 1 lsmod: crc16 1143 1 ext4 lsmod: mbcache 6076 1 ext4 lsmod: jbd2 73772 1 ext4 lsmod: hid_generic 789 0 lsmod: usbhid 43497 0 lsmod: hid 89472 2 hid_generic,usbhid lsmod: ohci_pci 3908 0 lsmod: ehci_pci 3796 0 lsmod: ohci_hcd 47541 1 ohci_pci lsmod: ehci_hcd 65950 1 ehci_pci lsmod: sg 22219 0 lsmod: usbcore 186804 5 ohci_hcd,ohci_pci,ehci_hcd,ehci_pci,usbhid lsmod: sd_mod 38704 3 lsmod: crc_t10dif 963 1 sd_mod lsmod: crct10dif_generic 1401 1 lsmod: sungem 28515 0 lsmod: sungem_phy 10726 1 sungem lsmod: sr_mod 15552 0 lsmod: cdrom 43116 1 sr_mod lsmod: usb_common 2048 1 usbcore lsmod: crct10dif_common 1220 2 crct10dif_generic,crc_t10dif df: Filesystem 1K-blocks Used Available Use% Mounted on df: /dev/sda3 20157516 821188 18289332 5% / df: udev 10240 0 10240 0% /dev df: tmpfs 413612 5516 408096 2% /run df: tmpfs 1034024 0 1034024 0% /dev/shm df: tmpfs 5120 0 5120 0% /run/lock df: tmpfs 1034024 0 1034024 0% /sys/fs/cgroup free: total used free shared buffers cached free: Mem: 2068052 209800 1858252 5520 16824 157912 free: -/+ buffers/cache: 35064 2032988 free: Swap: 358200 0 358200 /proc/cmdline: root=UUID=a6bc5a9f-a6bf-484c-87b7-752884dc0b76 ro /proc/cpuinfo: processor : 0 /proc/cpuinfo: cpu : 7400, altivec supported /proc/cpuinfo: temperature : 50-126 C (uncalibrated) /proc/cpuinfo: clock : 900.000000MHz /proc/cpuinfo: revision : 2.9 (pvr 000c 0209) /proc/cpuinfo: bogomips : 200.00 /proc/cpuinfo: timebase : 100000000 /proc/cpuinfo: platform : PowerMac /proc/cpuinfo: model : PowerMac3,1 /proc/cpuinfo: machine : PowerMac3,1 /proc/cpuinfo: motherboard : PowerMac3,1 MacRISC MacRISC2 Power Macintosh /proc/cpuinfo: detected as : 65 (PowerMac G4 AGP Graphics) /proc/cpuinfo: pmac flags : 00000004 /proc/cpuinfo: pmac-generation : NewWorld /proc/cpuinfo: Memory : 2048 MB /proc/ioports: 00000000-007fffff : /pci@f2000000 /proc/ioports: 00000000-00000fff : Legacy IO /proc/iomem: 00000000-7fffffff : System RAM /proc/iomem: 80000000-8fffffff : /pci@f2000000 /proc/iomem: 80000000-8007ffff : 0000:00:0c.0 /proc/iomem: 80000000-8007ffff : 0.80000000:mac-io /proc/iomem: 80000050-8000007f : 0.00000050:gpio /proc/iomem: 80008b00-80008bff : 0.00020000:ata-3 /proc/iomem: 80008b00-80008bff : pata-macio-dma /proc/iomem: 80008d00-80008dff : 0.00021000:ata-3 /proc/iomem: 80008d00-80008dff : pata-macio-dma /proc/iomem: 80013000-80013000 : 0.00013000:ch-b /proc/iomem: 80013000-80013000 : pmac_zilog /proc/iomem: 80013010-80013010 : 0.00013000:ch-b /proc/iomem: 80013010-80013010 : pmac_zilog /proc/iomem: 80013020-80013020 : 0.00013020:ch-a /proc/iomem: 80013020-80013020 : pmac_zilog /proc/iomem: 80013030-80013030 : 0.00013020:ch-a /proc/iomem: 80013030-80013030 : pmac_zilog /proc/iomem: 80013040-80013040 : 0.00013000:ch-b /proc/iomem: 80013040-80013040 : pmac_zilog /proc/iomem: 80013050-80013050 : 0.00013020:ch-a /proc/iomem: 80013050-80013050 : pmac_zilog /proc/iomem: 80016000-80017fff : 0.00016000:via-pmu /proc/iomem: 80020000-80020fff : 0.00020000:ata-3 /proc/iomem: 80020000-80020fff : pata-macio /proc/iomem: 80021000-80021fff : 0.00021000:ata-3 /proc/iomem: 80021000-80021fff : pata-macio /proc/iomem: 80040000-8007ffff : 0.00040000:interrup /proc/iomem: 80080000-800800ff : 0000:00:0d.0 /proc/iomem: 80080000-800800ff : ohci_hcd /proc/iomem: 81000000-81ffffff : 0000:00:0e.0 /proc/iomem: 81000000-81ffffff : bochs-drm /proc/iomem: 82000000-82000fff : 0000:00:0e.0 /proc/iomem: 82000000-82000fff : bochs-drm /proc/iomem: 82010000-8201ffff : 0000:00:0e.0 /proc/iomem: 82200000-823fffff : 0000:00:0f.0 /proc/iomem: 82200000-823fffff : sungem /proc/interrupts: CPU0 /proc/interrupts: 16: 14979 MPIC 1 13 Level pata-macio /proc/interrupts: 18: 3131 MPIC 1 14 Level pata-macio /proc/interrupts: 25: 5568 MPIC 1 25 Level VIA-PMU /proc/interrupts: 28: 102 MPIC 1 28 Level ohci_hcd:usb1 /proc/interrupts: 30: 3387 MPIC 1 30 Level eth0 /proc/interrupts: 47: 2825 MPIC 1 47 Level GPIO1 ADB /proc/interrupts: 55: 0 MPIC 1 55 Edge NMI - XMON /proc/interrupts: LOC: 275102 Local timer interrupts for timer event device /proc/interrupts: LOC: 256 Local timer interrupts for others /proc/interrupts: SPU: 0 Spurious interrupts /proc/interrupts: PMI: 0 Performance monitoring interrupts /proc/interrupts: MCE: 0 Machine check exceptions /proc/meminfo: MemTotal: 2068052 kB /proc/meminfo: MemFree: 1858252 kB /proc/meminfo: MemAvailable: 2020272 kB /proc/meminfo: Buffers: 16824 kB /proc/meminfo: Cached: 157912 kB /proc/meminfo: SwapCached: 0 kB /proc/meminfo: Active: 88276 kB /proc/meminfo: Inactive: 99472 kB /proc/meminfo: Active(anon): 13160 kB /proc/meminfo: Inactive(anon): 5368 kB /proc/meminfo: Active(file): 75116 kB /proc/meminfo: Inactive(file): 94104 kB /proc/meminfo: Unevictable: 0 kB /proc/meminfo: Mlocked: 0 kB /proc/meminfo: HighTotal: 1310720 kB /proc/meminfo: HighFree: 1192052 kB /proc/meminfo: LowTotal: 757332 kB /proc/meminfo: LowFree: 666200 kB /proc/meminfo: SwapTotal: 358200 kB /proc/meminfo: SwapFree: 358200 kB /proc/meminfo: Dirty: 0 kB /proc/meminfo: Writeback: 0 kB /proc/meminfo: AnonPages: 13028 kB /proc/meminfo: Mapped: 16308 kB /proc/meminfo: Shmem: 5520 kB /proc/meminfo: Slab: 16048 kB /proc/meminfo: SReclaimable: 11564 kB /proc/meminfo: SUnreclaim: 4484 kB /proc/meminfo: KernelStack: 520 kB /proc/meminfo: PageTables: 652 kB /proc/meminfo: NFS_Unstable: 0 kB /proc/meminfo: Bounce: 0 kB /proc/meminfo: WritebackTmp: 0 kB /proc/meminfo: CommitLimit: 1392224 kB /proc/meminfo: Committed_AS: 53236 kB /proc/meminfo: VmallocTotal: 225496 kB /proc/meminfo: VmallocUsed: 24616 kB /proc/meminfo: VmallocChunk: 186044 kB /proc/bus/input/devices: I: Bus=0019 Vendor=0001 Product=0001 Version=0100 /proc/bus/input/devices: N: Name="PMU" /proc/bus/input/devices: P: Phys= /proc/bus/input/devices: S: Sysfs=/devices/virtual/input/input0 /proc/bus/input/devices: U: Uniq= /proc/bus/input/devices: H: Handlers=kbd event0 /proc/bus/input/devices: B: PROP=0 /proc/bus/input/devices: B: EV=23 /proc/bus/input/devices: B: KEY=100000 0 0 0 /proc/bus/input/devices: B: SW=1 /proc/bus/input/devices: /proc/bus/input/devices: I: Bus=0003 Vendor=0627 Product=0001 Version=0111 /proc/bus/input/devices: N: Name="QEMU QEMU USB Keyboard" /proc/bus/input/devices: P: Phys=usb-0000:00:0d.0-1/input0 /proc/bus/input/devices: S: Sysfs=/devices/pci0000:00/0000:00:0d.0/usb1/1-1/1-1:1.0/0003:0627:0001.0001/input/input1 /proc/bus/input/devices: U: Uniq=68284-pci.2:0d.0-1 /proc/bus/input/devices: H: Handlers=sysrq kbd event1 /proc/bus/input/devices: B: PROP=0 /proc/bus/input/devices: B: EV=120013 /proc/bus/input/devices: B: KEY=10000 7 ff9f207a c14057ff febeffdf ffefffff ffffffff fffffffe /proc/bus/input/devices: B: MSC=10 /proc/bus/input/devices: B: LED=1f /proc/bus/input/devices: /proc/bus/input/devices: I: Bus=0003 Vendor=0627 Product=0001 Version=0001 /proc/bus/input/devices: N: Name="QEMU QEMU USB Mouse" /proc/bus/input/devices: P: Phys=usb-0000:00:0d.0-2/input0 /proc/bus/input/devices: S: Sysfs=/devices/pci0000:00/0000:00:0d.0/usb1/1-2/1-2:1.0/0003:0627:0001.0003/input/input3 /proc/bus/input/devices: U: Uniq=89126-pci.2:0d.0-2 /proc/bus/input/devices: H: Handlers=mouse0 event2 /proc/bus/input/devices: B: PROP=0 /proc/bus/input/devices: B: EV=17 /proc/bus/input/devices: B: KEY=70000 0 0 0 0 0 0 0 0 /proc/bus/input/devices: B: REL=103 /proc/bus/input/devices: B: MSC=10 /proc/bus/input/devices: /proc/bus/input/devices: I: Bus=0006 Vendor=001f Product=001f Version=0000 /proc/bus/input/devices: N: Name="Mouseemu virtual keyboard" /proc/bus/input/devices: P: Phys= /proc/bus/input/devices: S: Sysfs=/devices/virtual/input/input4 /proc/bus/input/devices: U: Uniq= /proc/bus/input/devices: H: Handlers=sysrq kbd event3 /proc/bus/input/devices: B: PROP=0 /proc/bus/input/devices: B: EV=100003 /proc/bus/input/devices: B: KEY=1ffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe /proc/bus/input/devices: /proc/bus/input/devices: I: Bus=0006 Vendor=001f Product=001e Version=0000 /proc/bus/input/devices: N: Name="Mouseemu virtual mouse" /proc/bus/input/devices: P: Phys= /proc/bus/input/devices: S: Sysfs=/devices/virtual/input/input5 /proc/bus/input/devices: U: Uniq= /proc/bus/input/devices: H: Handlers=mouse1 event4 /proc/bus/input/devices: B: PROP=0 /proc/bus/input/devices: B: EV=7 /proc/bus/input/devices: B: KEY=70000 0 0 0 0 0 0 0 0 /proc/bus/input/devices: B: REL=103 /proc/bus/input/devices:
Lots of information about the emulated hardware and the operating system here.
dmesg
System messages:
$ dmesg [ 0.000000] Using PowerMac machine description [ 0.000000] Total memory = 2048MB; using 4096kB for hash table (at cfc00000) [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.16.0-6-powerpc (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 Debian 3.16.56-1+deb8u1 (2018-05-08) [ 0.000000] Found initrd at 0xc1600000:0xc2389000 [ 0.000000] Found UniNorth memory controller & host bridge @ 0xf8000000 revision: 0x07 [ 0.000000] Mapped at 0xff7c0000 [ 0.000000] Found a Keylargo mac-io controller, rev: 0, mapped at 0xff740000 [ 0.000000] Processor NAP mode on idle enabled. [ 0.000000] PowerMac motherboard: PowerMac G4 AGP Graphics [ 0.000000] bootconsole [udbg0] enabled [ 0.000000] Found UniNorth PCI host bridge at 0x00000000f2000000. Firmware bus number: 0->0 [ 0.000000] PCI host bridge /pci@f2000000 (primary) ranges: [ 0.000000] IO 0x00000000f2000000..0x00000000f27fffff -> 0x0000000000000000 [ 0.000000] MEM 0x0000000080000000..0x000000008fffffff -> 0x0000000080000000 [ 0.000000] via-pmu: Server Mode is disabled [ 0.000000] PMU driver v2 initialized for Core99, firmware: 01 [ 0.000000] nvram: Checking bank 0... [ 0.000000] Invalid signature [ 0.000000] Invalid checksum [ 0.000000] nvram: gen0=0, gen1=0 [ 0.000000] nvram: Active bank is: 0 [ 0.000000] nvram: OF partition at 0xffffffff [ 0.000000] nvram: XP partition at 0xffffffff [ 0.000000] nvram: NR partition at 0xffffffff [ 0.000000] Top of RAM: 0x80000000, Total RAM: 0x80000000 [ 0.000000] Memory hole size: 0MB [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x00000000-0x2fffffff] [ 0.000000] Normal empty [ 0.000000] HighMem [mem 0x30000000-0x7fffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x00000000-0x7fffffff] [ 0.000000] On node 0 totalpages: 524288 [ 0.000000] free_area_init_node: node 0, pgdat c07269c8, node_mem_map c248e000 [ 0.000000] DMA zone: 1536 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 196608 pages, LIFO batch:31 [ 0.000000] HighMem zone: 2560 pages used for memmap [ 0.000000] HighMem zone: 327680 pages, LIFO batch:31 [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 522752 [ 0.000000] Kernel command line: root=UUID=a6bc5a9f-a6bf-484c-87b7-752884dc0b76 ro [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Sorting __ex_table... [ 0.000000] Memory: 2052768K/2097152K available (5164K kernel code, 424K rwdata, 1428K rodata, 404K init, 1403K bss, 44384K reserved, 1310720K highmem) [ 0.000000] Kernel virtual memory layout: [ 0.000000] * 0xfffcf000..0xfffff000 : fixmap [ 0.000000] * 0xff800000..0xffc00000 : highmem PTEs [ 0.000000] * 0xfec36000..0xff800000 : early ioremap [ 0.000000] * 0xf1000000..0xfec36000 : vmalloc & ioremap [ 0.000000] NR_IRQS:512 nr_irqs:512 16 [ 0.000000] mpic: Resetting [ 0.000000] mpic: Setting up MPIC " MPIC 1 " version 1.2 at 80040000, max 1 CPUs [ 0.000000] mpic: ISU size: 64, shift: 6, mask: 3f [ 0.000000] mpic: Initializing for 64 sources [ 0.000000] GMT Delta read from XPRAM: 0 minutes, DST: on [ 0.000000] time_init: decrementer frequency = 100.000000 MHz [ 0.000000] time_init: processor frequency = 900.000000 MHz [ 0.000832] clocksource: timebase mult[a000000] shift[24] registered [ 0.001810] clockevent: decrementer mult[1999999a] shift[32] cpu[0] [ 0.011687] Console: colour dummy device 80x25 [ 0.012101] console [tty0] enabled [ 0.012854] bootconsole [udbg0] disabled [ 0.015823] pid_max: default: 32768 minimum: 301 [ 0.016801] Security Framework initialized [ 0.020970] AppArmor: AppArmor disabled by boot time parameter [ 0.021052] Yama: disabled by default; enable with sysctl kernel.yama.* [ 0.022540] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.022604] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.036381] Initializing cgroup subsys memory [ 0.036906] Initializing cgroup subsys devices [ 0.037312] Initializing cgroup subsys freezer [ 0.037457] Initializing cgroup subsys net_cls [ 0.037664] Initializing cgroup subsys blkio [ 0.037784] Initializing cgroup subsys perf_event [ 0.037890] Initializing cgroup subsys net_prio [ 0.038459] ftrace: allocating 17989 entries in 53 pages [ 0.127059] devtmpfs: initialized [ 0.134829] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.145851] NET: Registered protocol family 16 [ 0.154753] PMU i2c /pci@f2000000/mac-io@c/via-pmu@16000 [ 0.154854] channel 1 bus <multibus> [ 0.154898] channel 2 bus <multibus> [ 0.161958] PCI: Probing PCI hardware [ 0.163553] PCI host bridge to bus 0000:00 [ 0.164048] pci_bus 0000:00: root bus resource [io 0x0000-0x7fffff] [ 0.164316] pci_bus 0000:00: root bus resource [mem 0x80000000-0x8fffffff] [ 0.164679] pci_bus 0000:00: root bus resource [bus 00-ff] [ 0.164949] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to ff [ 0.166144] pci 0000:00:0b.0: [106b:001f] type 00 class 0x060000 [ 0.168986] pci 0000:00:0c.0: [106b:0022] type 00 class 0xff0000 [ 0.170029] pci 0000:00:0c.0: reg 0x10: [mem 0x80000000-0x8007ffff] [ 0.174194] pci 0000:00:0d.0: [106b:003f] type 00 class 0x0c0310 [ 0.174733] pci 0000:00:0d.0: reg 0x10: [mem 0x80080000-0x800800ff] [ 0.177995] pci 0000:00:0e.0: [1234:1111] type 00 class 0x030000 [ 0.179585] pci 0000:00:0e.0: reg 0x10: [mem 0x81000000-0x81ffffff pref] [ 0.181811] pci 0000:00:0e.0: reg 0x18: [mem 0x82000000-0x82000fff] [ 0.186015] pci 0000:00:0e.0: reg 0x30: [mem 0x82010000-0x8201ffff pref] [ 0.186614] pci 0000:00:0f.0: [106b:0021] type 00 class 0x020000 [ 0.187200] pci 0000:00:0f.0: reg 0x10: [mem 0x82200000-0x823fffff] [ 0.191756] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00 [ 0.196897] pci_bus 0000:00: resource 4 [io 0x0000-0x7fffff] [ 0.196941] pci_bus 0000:00: resource 5 [mem 0x80000000-0x8fffffff] [ 0.218773] vgaarb: setting as boot device: PCI:0000:00:0e.0 [ 0.218952] vgaarb: device added: PCI:0000:00:0e.0,decodes=io+mem,owns=io+mem,locks=none [ 0.219071] vgaarb: loaded [ 0.219136] vgaarb: bridge control possible 0000:00:0e.0 [ 0.221072] SCSI subsystem initialized [ 0.222042] libata version 3.00 loaded. [ 0.232487] Switched to clocksource timebase [ 0.299347] NET: Registered protocol family 2 [ 0.307715] TCP established hash table entries: 8192 (order: 3, 32768 bytes) [ 0.307974] TCP bind hash table entries: 8192 (order: 3, 32768 bytes) [ 0.308730] TCP: Hash tables configured (established 8192 bind 8192) [ 0.311055] TCP: reno registered [ 0.311159] UDP hash table entries: 512 (order: 1, 8192 bytes) [ 0.311375] UDP-Lite hash table entries: 512 (order: 1, 8192 bytes) [ 0.313663] NET: Registered protocol family 1 [ 0.316492] PCI: CLS 0 bytes, default 32 [ 0.322648] Unpacking initramfs... [ 1.980255] Freeing initrd memory: 13860K (c1600000 - c2389000) [ 1.981580] Thermal assist unit using timers, shrink_timer: 500 jiffies [ 1.986508] audit: initializing netlink subsys (disabled) [ 1.987795] audit: type=2000 audit(1624123104.916:1): initialized [ 1.993956] zbud: loaded [ 1.995727] VFS: Disk quotas dquot_6.5.2 [ 1.995931] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) [ 1.997581] msgmni has been set to 1478 [ 2.018335] alg: No test for stdrng (krng) [ 2.018631] bounce: pool size: 64 pages [ 2.018943] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) [ 2.019803] io scheduler noop registered [ 2.020079] io scheduler deadline registered [ 2.020533] io scheduler cfq registered (default) [ 2.025557] Using unsupported 1024x768 QEMU,VGA at 81000000, depth=32, pitch=4096 [ 2.053333] Console: switching to colour frame buffer device 128x48 [ 2.070423] fb0: Open Firmware frame buffer device on /pci@f2000000/QEMU,VGA@e [ 2.072030] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled [ 2.076377] pmac_zilog: 0.6 (Benjamin Herrenschmidt <benh@kernel.crashing.org>) [ 2.082520] Serial: MPC52xx PSC UART driver [ 2.083016] Generic non-volatile memory driver v1.1 [ 2.083826] Linux agpgart interface v0.103 [ 2.086134] MacIO PCI driver attached to Keylargo chipset [ 2.091711] 0.00013020:ch-a: ttyPZ0 at MMIO 0x80013020 (irq = 37, base_baud = 230400) is a Z85c30 ESCC - Serial port [ 2.097890] 0.00013000:ch-b: ttyPZ1 at MMIO 0x80013000 (irq = 36, base_baud = 230400) is a Z85c30 ESCC - Serial port [ 2.105394] adb: starting probe task... [ 2.105886] adb: finished probe task... [ 3.640557] pata-macio 0.00020000:ata-3: Activating pata-macio chipset KeyLargo ATA-3, Apple bus ID 0 [ 3.652430] scsi0 : pata_macio [ 3.656416] ata1: PATA max MWDMA2 irq 16 [ 4.195413] ata1.01: NODEV after polling detection [ 4.202151] ata1.00: ATA-7: QEMU HARDDISK, 2.5+, max UDMA/100 [ 4.202820] ata1.00: 41943040 sectors, multi 16: LBA48 [ 4.207812] ata1.00: configured for MWDMA2 [ 4.224659] scsi 0:0:0:0: Direct-Access ATA QEMU HARDDISK 2.5+ PQ: 0 ANSI: 5 [ 4.684270] pata-macio 0.00021000:ata-3: Activating pata-macio chipset KeyLargo ATA-3, Apple bus ID 1 [ 4.688949] scsi1 : pata_macio [ 4.690647] ata2: PATA max MWDMA2 irq 18 [ 4.699661] mousedev: PS/2 mouse device common for all mice [ 4.706026] rtc-generic rtc-generic: rtc core: registered rtc-generic as rtc0 [ 4.733423] PowerMac i2c bus pmu 2 registered [ 4.742247] PowerMac i2c bus pmu 1 registered [ 4.755384] ledtrig-cpu: registered to indicate activity on CPUs [ 4.769488] TCP: cubic registered [ 4.777595] NET: Registered protocol family 10 [ 4.803124] mip6: Mobile IPv6 [ 4.810586] NET: Registered protocol family 17 [ 4.823545] mpls_gso: MPLS GSO support [ 4.833736] registered taskstats version 1 [ 4.846936] ata2.01: NODEV after polling detection [ 4.847478] ata2.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100 [ 4.868181] input: PMU as /devices/virtual/input/input0 [ 4.880247] ata2.00: configured for MWDMA2 [ 4.898364] rtc-generic rtc-generic: setting system clock to 2021-06-19 17:18:27 UTC (1624123107) [ 4.917284] scsi 1:0:0:0: CD-ROM QEMU QEMU DVD-ROM 2.5+ PQ: 0 ANSI: 5 [ 4.931960] PM: Hibernation image not present or could not be loaded. [ 5.017320] Freeing unused kernel memory: 404K (c0674000 - c06d9000) [ 5.671613] systemd-udevd[56]: starting version 215 [ 5.747811] random: systemd-udevd: uninitialized urandom read (16 bytes read, 0 bits of entropy available) [ 6.194680] sungem.c:v1.0 David S. Miller <davem@redhat.com> [ 6.254087] sd 0:0:0:0: [sda] 41943040 512-byte logical blocks: (21.4 GB/20.0 GiB) [ 6.269509] sr0: scsi3-mmc drive: 4x/4x cd/rw xa/form2 tray [ 6.285752] cdrom: Uniform CD-ROM driver Revision: 3.20 [ 6.309558] gem 0000:00:0f.0 eth0: Sun GEM (PCI) 10/100/1000BaseT Ethernet 52:54:00:12:34:56 [ 6.350246] sd 0:0:0:0: [sda] Write Protect is off [ 6.357850] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 [ 6.406580] usbcore: registered new interface driver usbfs [ 6.420842] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 6.431856] sr 1:0:0:0: Attached scsi CD-ROM sr0 [ 6.454017] usbcore: registered new interface driver hub [ 6.489538] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ 6.518901] usbcore: registered new device driver usb [ 6.534735] sr 1:0:0:0: Attached scsi generic sg1 type 5 [ 6.547072] sda: [mac] sda1 sda2 sda3 sda4 sda5 [ 6.591800] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 6.657422] sd 0:0:0:0: [sda] Attached SCSI disk [ 6.677769] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 6.714770] ehci-pci: EHCI PCI platform driver [ 6.787220] ohci-pci: OHCI PCI platform driver [ 6.845485] ohci-pci 0000:00:0d.0: OHCI PCI host controller [ 6.877128] ohci-pci 0000:00:0d.0: new USB bus registered, assigned bus number 1 [ 6.921677] ohci-pci 0000:00:0d.0: irq 28, io mem 0x80080000 [ 7.002043] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001 [ 7.009902] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 7.017070] usb usb1: Product: OHCI PCI host controller [ 7.027448] usb usb1: Manufacturer: Linux 3.16.0-6-powerpc ohci_hcd [ 7.035535] usb usb1: SerialNumber: 0000:00:0d.0 [ 7.157630] hub 1-0:1.0: USB hub found [ 7.198973] hub 1-0:1.0: 3 ports detected [ 7.650267] usb 1-1: new full-speed USB device number 2 using ohci-pci [ 7.931730] usb 1-1: New USB device found, idVendor=0627, idProduct=0001 [ 7.939364] usb 1-1: New USB device strings: Mfr=1, Product=4, SerialNumber=11 [ 7.945939] usb 1-1: Product: QEMU USB Keyboard [ 7.958739] usb 1-1: Manufacturer: QEMU [ 7.965913] usb 1-1: SerialNumber: 68284-pci.2:0d.0-1 [ 8.067460] hidraw: raw HID events driver (C) Jiri Kosina [ 8.102830] usbcore: registered new interface driver usbhid [ 8.110179] usbhid: USB HID core driver [ 8.137237] input: QEMU QEMU USB Keyboard as /devices/pci0000:00/0000:00:0d.0/usb1/1-1/1-1:1.0/0003:0627:0001.0001/input/input1 [ 8.157111] hid-generic 0003:0627:0001.0001: input,hidraw0: USB HID v1.11 Keyboard [QEMU QEMU USB Keyboard] on usb-0000:00:0d.0-1/input0 [ 8.209817] usb 1-2: new full-speed USB device number 3 using ohci-pci [ 8.424994] PM: Starting manual resume from disk [ 8.432827] PM: Hibernation image partition 8:4 present [ 8.432874] PM: Looking for hibernation image. [ 8.434942] PM: Image not found (code -22) [ 8.434985] PM: Hibernation image not present or could not be loaded. [ 8.473829] usb 1-2: New USB device found, idVendor=0627, idProduct=0001 [ 8.481807] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=9 [ 8.494398] usb 1-2: Product: QEMU USB Mouse [ 8.502261] usb 1-2: Manufacturer: QEMU [ 8.512518] usb 1-2: SerialNumber: 89126-pci.2:0d.0-2 [ 8.581884] input: QEMU QEMU USB Mouse as /devices/pci0000:00/0000:00:0d.0/usb1/1-2/1-2:1.0/0003:0627:0001.0002/input/input2 [ 8.591478] hid-generic 0003:0627:0001.0002: input,hidraw1: USB HID v0.01 Mouse [QEMU QEMU USB Mouse] on usb-0000:00:0d.0-2/input0 [ 9.556691] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: (null) [ 10.529616] random: systemd: uninitialized urandom read (16 bytes read, 128 bits of entropy available) [ 10.548374] random: nonblocking pool is initialized [ 10.575081] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR) [ 10.599828] systemd[1]: Detected architecture 'ppc'. [ 10.746089] systemd[1]: Inserted module 'autofs4' [ 10.767221] systemd[1]: Set hostname to <deb8-mac99>. [ 12.164273] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory. [ 12.206927] systemd[1]: Starting Forward Password Requests to Wall Directory Watch. [ 12.225188] systemd[1]: Started Forward Password Requests to Wall Directory Watch. [ 12.240597] systemd[1]: Starting Remote File Systems (Pre). [ 12.269153] systemd[1]: Reached target Remote File Systems (Pre). [ 12.285320] systemd[1]: Starting Encrypted Volumes. [ 12.314825] systemd[1]: Reached target Encrypted Volumes. [ 12.326519] systemd[1]: Starting Arbitrary Executable File Formats File System Automount Point. [ 12.362151] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point. [ 12.372785] systemd[1]: Starting Dispatch Password Requests to Console Directory Watch. [ 12.383321] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. [ 12.396218] systemd[1]: Starting Paths. [ 12.418810] systemd[1]: Reached target Paths. [ 12.431878] systemd[1]: Expecting device dev-disk-by\x2duuid-99d2fb27\x2dec78\x2d46f1\x2d918d\x2df6d2cebfdd26.device... [ 12.454349] systemd[1]: Starting Root Slice. [ 12.483560] systemd[1]: Created slice Root Slice. [ 12.498010] systemd[1]: Starting User and Session Slice. [ 12.525955] systemd[1]: Created slice User and Session Slice. [ 12.535941] systemd[1]: Starting Delayed Shutdown Socket. [ 12.562005] systemd[1]: Listening on Delayed Shutdown Socket. [ 12.572605] systemd[1]: Starting /dev/initctl Compatibility Named Pipe. [ 12.598851] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe. [ 12.610864] systemd[1]: Starting Journal Socket (/dev/log). [ 12.637574] systemd[1]: Listening on Journal Socket (/dev/log). [ 12.648981] systemd[1]: Starting udev Control Socket. [ 12.670188] systemd[1]: Listening on udev Control Socket. [ 12.685523] systemd[1]: Starting udev Kernel Socket. [ 12.720868] systemd[1]: Listening on udev Kernel Socket. [ 12.730747] systemd[1]: Starting Journal Socket. [ 12.758010] systemd[1]: Listening on Journal Socket. [ 12.766313] systemd[1]: Starting System Slice. [ 12.787268] systemd[1]: Created slice System Slice. [ 12.802094] systemd[1]: Started File System Check on Root Device. [ 12.811769] systemd[1]: Starting system-getty.slice. [ 12.832305] systemd[1]: Created slice system-getty.slice. [ 12.840022] systemd[1]: Starting Increase datagram queue length... [ 12.926484] systemd[1]: Starting Load Kernel Modules... [ 13.006882] systemd[1]: Mounting POSIX Message Queue File System... [ 13.135803] systemd[1]: Starting udev Coldplug all Devices... [ 13.285401] systemd[1]: Mounting Debug File System... [ 13.446946] systemd[1]: Starting Create list of required static device nodes for the current kernel... [ 13.634560] systemd[1]: Mounted Huge Pages File System. [ 13.732791] systemd[1]: Started Set Up Additional Binary Formats. [ 13.780376] systemd[1]: Starting Slices. [ 13.884706] systemd[1]: Reached target Slices. [ 14.031417] systemd[1]: Mounted Debug File System. [ 14.113765] systemd[1]: Mounted POSIX Message Queue File System. [ 14.228912] systemd[1]: Started Increase datagram queue length. [ 14.298206] systemd[1]: systemd-modules-load.service: main process exited, code=exited, status=1/FAILURE [ 14.373489] systemd[1]: Failed to start Load Kernel Modules. [ 14.389422] systemd[1]: Unit systemd-modules-load.service entered failed state. [ 14.464251] systemd[1]: Started Create list of required static device nodes for the current kernel. [ 14.847029] systemd[1]: Started udev Coldplug all Devices. [ 14.963385] systemd[1]: Starting Create Static Device Nodes in /dev... [ 15.008397] systemd[1]: Mounted Configuration File System. [ 15.030450] systemd[1]: Starting Apply Kernel Variables... [ 15.101475] systemd[1]: Mounted FUSE Control File System. [ 15.125342] systemd[1]: Starting Syslog Socket. [ 15.194735] systemd[1]: Listening on Syslog Socket. [ 15.220980] systemd[1]: Starting Journal Service... [ 15.377350] systemd[1]: Started Journal Service. [ 16.134454] systemd-udevd[140]: starting version 215 [ 18.745870] [drm] Initialized drm 1.1.0 20060810 [ 19.136980] checking generic (81000000 300000) vs hw (81000000 1000000) [ 19.137035] fb: switching to bochsdrmfb from OFfb QEMU,VGA [ 19.233902] Console: switching to colour dummy device 80x25 [ 19.318956] [drm] Found bochs VGA, ID 0xb0c5. [ 19.319051] [drm] Framebuffer size 16384 kB @ 0x81000000, mmio @ 0x82000000. [ 19.357473] [TTM] Zone kernel: Available graphics memory: 378666 kiB [ 19.357569] [TTM] Zone highmem: Available graphics memory: 1034026 kiB [ 19.357670] [TTM] Initializing pool allocator [ 19.643636] Console: switching to colour frame buffer device 128x48 [ 19.801994] bochs-drm 0000:00:0e.0: fb0: bochsdrmfb frame buffer device [ 19.802274] bochs-drm 0000:00:0e.0: registered panic notifier [ 19.802757] [drm] Initialized bochs-drm 1.0.0 20130925 for 0000:00:0e.0 on minor 0 [ 25.417634] Adding 358200k swap on /dev/sda4. Priority:-1 extents:1 across:358200k FS [ 26.311189] EXT4-fs (sda3): re-mounted. Opts: errors=remount-ro [ 27.127373] systemd-journald[137]: Received request to flush runtime journal from PID 1 [ 31.921007] sungem_phy: PHY ID: 406210, addr: 0 [ 31.921317] gem 0000:00:0f.0 eth0: Found BCM5201 PHY [ 31.949208] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 33.156670] gem 0000:00:0f.0 eth0: Link is up at 100 Mbps, full-duplex [ 33.235179] gem 0000:00:0f.0 eth0: Pause is disabled [ 33.251113] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 39.022897] RPC: Registered named UNIX socket transport module. [ 39.032679] RPC: Registered udp transport module. [ 39.038849] RPC: Registered tcp transport module. [ 39.051804] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 39.272740] FS-Cache: Loaded [ 39.442227] FS-Cache: Netfs 'nfs' registered for caching [ 39.593423] Installing knfsd (copyright (C) 1996 okir@monad.swb.de). [ 42.945131] usb 1-2: USB disconnect, device number 3 [ 43.260776] usb 1-2: new full-speed USB device number 4 using ohci-pci [ 43.538071] usb 1-2: New USB device found, idVendor=0627, idProduct=0001 [ 43.538118] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=9 [ 43.538144] usb 1-2: Product: QEMU USB Mouse [ 43.538169] usb 1-2: Manufacturer: QEMU [ 43.538193] usb 1-2: SerialNumber: 89126-pci.2:0d.0-2 [ 43.760685] input: QEMU QEMU USB Mouse as /devices/pci0000:00/0000:00:0d.0/usb1/1-2/1-2:1.0/0003:0627:0001.0003/input/input3 [ 43.792976] hid-generic 0003:0627:0001.0003: input,hidraw1: USB HID v0.01 Mouse [QEMU QEMU USB Mouse] on usb-0000:00:0d.0-2/input0 [ 45.644327] input: Mouseemu virtual keyboard as /devices/virtual/input/input4 [ 45.672895] input: Mouseemu virtual mouse as /devices/virtual/input/input5 [ 2023.649748] UDF-fs: warning (device sr0): udf_fill_super: No partition found (2) [ 2023.675215] ISO 9660 Extensions: Microsoft Joliet Level 3 [ 2023.766527] ISO 9660 Extensions: RRIP_1991A
Lots of information about hardware detection and initialization.
Benchmark
Since this is an emulated machine an obvious question is, how well does it perform compared to the real thing?
BogoMips
The BogoMips (Wikipedia) pseudo-benchmark has a behavior where the score is related to the processor clock speed, and has an easily available collection of results from a range of systems (see BogoMips mini-Howto). BogoMips is used by the Linux kernel to calibrate a wait loop. The value is obtained at boot, and is reported by '/proc/cpuinfo' and 'lscpu' (see above). Depending on the platform the BogoMips result may also be reported in 'dmesg' along with an indication of the method used to derive the score.
On our emulated 'mac99' system we get (from /proc/cpuinfo):
BogoMIPS: 200.00
Since the BogoMips score for PowerPC is about twice the processor clock speed, this would suggest that the emulated processor is roughly equivalent to a G4 running at 100 MHz, but...
Comparing with some results from physical hardware found online:
CPU | Kernel | BogoMips | Source |
---|---|---|---|
7400 @ 500 MHz | 2.4 | 992.87 | [Mono-bugs] [Bug 61435][Blo] Changed - mono (JIT) crashes on kernel 2.4 |
7400 @ 500 MHz dual SMP | 2.4 | 1985.74 | [Mono-bugs] [Bug 61435][Blo] Changed - mono (JIT) crashes on kernel 2.4 |
7400 @ 450 MHz | 2.6 | 894.97 | kernel 2.6 difference between g4 and powerpc kernel |
7400 @ 450 MHz dual SMP | 2.6 | 1789.95 | kernel 2.6 difference between g4 and powerpc kernel |
7400 @ 400 MHz | 2.6.8 | 794.62 | APM/ ACPI im Kernel aktivieren? PowerMac - debianforum.de |
7400 @ 350 MHz | 2.6.22 | 49.66 | Se puede Cargar linux en UNA COM****DORA MAC |
7400 @ 500 MHz | 3.0.20 | 49.81 | [PPC] Possible solution to gem RX MAC fifo overflow smac errors in dmesg [Archive] - Ubuntu Forums |
7400 @ 500 MHz dual SMP | 3.0.20 | 99.63 | [PPC] Possible solution to gem RX MAC fifo overflow smac errors in dmesg [Archive] - Ubuntu Forums |
7400 @ 400 MHz | 4.4.0 | 49.81 | PowerPC Dynamic Recompiler (patch) - Page 2 \ VOGONS |
Hmmm... that looks like there might be a change in the Linux 2.6 series of kernels that changed the results for these systems. Around this point the Linux kernel for some platforms switched from using a BogoMips calculation to calibrate the kernel busy-wait loop, to deriving the BogoMips value from an available system timer. From our dmesg output it appears the BogoMips are calculated from doubling time_init: decrementer frequency = 100.000000 MHz. This looks to correspond to the presence of timebase in the /proc/cpuinfo output: timebase : 100000000.
Verifying with install disks for various Debian Linux releases on our QEMU 'mac99' system:
Debian Release | Linux Kernel | BogoMips Source | BogoMips Result |
---|---|---|---|
3.0r6 (woody) | 2.4.18 | dmesg | Calibrating delay loop... 1058.40 BogoMIPS |
3.1r8 (sarge) | 2.6.8 | dmesg | Calibrating delay loop... 1048.57 BogoMIPS |
4.0r9 (etch) | 2.6.18 | dmesg | Calibrating delay loop... 197.63 BogoMIPS (lpj=395264) |
5.0.10 (lenny) | 2.6.26 | dmesg | Calibrating delay loop... 232.96 BogoMIPS (lpj=465920) |
6.0.10 (squeeze) | 2.6.32 | cpuinfo | bogomips : 200.00 |
7.11.0 (wheezy) | 3.2.0 | cpuinfo | bogomips : 200.00 |
8.11.0 (jessie) | 3.16.0 | cpuinfo | bogomips : 200.00 |
That looks like there were two changes in the Linux 2.6 series, one to switch to a timer based calibration (results around 200.0 with an lpj value) and later, a second change to use the timer frequency directly (the 200.00 exact results). Since the older kernels give processor based Bogomips results, we can estimate the equivalent processor clock for these numbers. The PowerPC Bogomips is normally about twice the processor clock, so the little over 1000 results suggest a processor clock of a little over 500 MHz. Which would place this emulated system around the performance of the higher end models of the original hardware.
OpenSSL
The OpenSSL cryptographic library provides a tool providing a command-line interface to the library methods and one aspect of this provides a speed test. Since I'm mostly interested in older systems I'm going to focus on the common RSA and MD5 methods.
$ openssl speed md5 Doing md5 for 3s on 16 size blocks: 382529 md5's in 2.98s Doing md5 for 3s on 64 size blocks: 375153 md5's in 2.97s Doing md5 for 3s on 256 size blocks: 314587 md5's in 2.98s Doing md5 for 3s on 1024 size blocks: 193543 md5's in 2.98s Doing md5 for 3s on 8192 size blocks: 41341 md5's in 2.98s OpenSSL 1.0.1t 3 May 2016 built on: Thu Mar 29 12:14:07 2018 options:bn(64,32) rc4(ptr,char) des(idx,risc1,16,long) aes(partial) blowfish(idx) compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DB_ENDIAN -DTERMIO -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DAES_ASM The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes md5 2053.85k 8084.11k 27024.92k 66506.05k 113646.13k $ openssl speed rsa Doing 512 bit private rsa's for 10s: 5422 512 bit private RSA's in 9.93s Doing 512 bit public rsa's for 10s: 54095 512 bit public RSA's in 9.92s Doing 1024 bit private rsa's for 10s: 1073 1024 bit private RSA's in 9.92s Doing 1024 bit public rsa's for 10s: 15633 1024 bit public RSA's in 9.92s Doing 2048 bit private rsa's for 10s: 130 2048 bit private RSA's in 9.96s Doing 2048 bit public rsa's for 10s: 4890 2048 bit public RSA's in 9.92s Doing 4096 bit private rsa's for 10s: 23 4096 bit private RSA's in 10.34s Doing 4096 bit public rsa's for 10s: 1482 4096 bit public RSA's in 9.93s OpenSSL 1.0.1t 3 May 2016 built on: Thu Mar 29 12:14:07 2018 options:bn(64,32) rc4(ptr,char) des(idx,risc1,16,long) aes(partial) blowfish(idx) compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DB_ENDIAN -DTERMIO -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DAES_ASM sign verify sign/s verify/s rsa 512 bits 0.001831s 0.000183s 546.0 5453.1 rsa 1024 bits 0.009245s 0.000635s 108.2 1575.9 rsa 2048 bits 0.076615s 0.002029s 13.1 492.9 rsa 4096 bits 0.449565s 0.006700s 2.2 149.2
Extracting the relevant figures for comparisons (see OpenSSL Speed Results):
- OpenSSL speed MD5 8,192 bytes: 113,646.13k
- OpenSSL speed RSA 4,096 bytes sign/s: 2.2
- OpenSSL speed RSA 4,096 bytes verify/s: 149.2
Looking at various compilations of RSA results, this looks to be around the ballpark of the PowerMac G4 1.0 DP (MDD) (EveryMac), which featured two 7455 @ 1.0 GHz processors. Quite a step up from the single 7400 @ 500 MHz in the "graphite".
For reference a complete run of the speed test gave:
OpenSSL 1.0.1t 3 May 2016 built on: Thu Mar 29 12:14:07 2018 options:bn(64,32) rc4(ptr,char) des(idx,risc1,16,long) aes(partial) blowfish(idx) compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DB_ENDIAN -DTERMIO -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DAES_ASM The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes md2 0.00 0.00 0.00 0.00 0.00 mdc2 0.00 0.00 0.00 0.00 0.00 md4 2214.63k 9754.70k 32222.15k 80124.91k 147574.60k md5 1983.44k 7711.42k 25725.41k 62708.11k 110622.34k hmac(md5) 2076.18k 7745.01k 24848.24k 63068.40k 112175.42k sha1 2103.25k 7034.12k 25993.95k 72138.74k 138919.22k rmd160 1058.40k 3224.05k 6854.68k 9811.84k 11221.39k rc4 29387.58k 36751.47k 38678.59k 39426.07k 38084.55k des cbc 9349.28k 10581.86k 10918.79k 10994.94k 11112.99k des ede3 3288.78k 3471.24k 3551.33k 3515.28k 3513.21k idea cbc 0.00 0.00 0.00 0.00 0.00 seed cbc 12109.40k 14074.37k 14670.70k 14744.69k 14883.05k rc2 cbc 11849.52k 13769.23k 14297.56k 14471.73k 14355.24k rc5-32/12 cbc 0.00 0.00 0.00 0.00 0.00 blowfish cbc 14396.41k 17447.89k 18190.14k 18204.10k 18432.00k cast cbc 12367.67k 14920.04k 15657.55k 16052.75k 16326.27k aes-128 cbc 13027.26k 15174.94k 15626.43k 15656.51k 15719.26k aes-192 cbc 11724.97k 13175.85k 13696.26k 13739.18k 13882.42k aes-256 cbc 10625.36k 11853.86k 12270.90k 12210.00k 12362.22k camellia-128 cbc 13984.52k 16153.45k 17010.86k 17153.55k 17170.21k camellia-192 cbc 12008.40k 13497.64k 14133.78k 13663.68k 14264.53k camellia-256 cbc 11914.37k 13400.69k 14009.47k 13956.98k 13873.99k sha256 5211.07k 16740.53k 41245.72k 65138.12k 78409.54k sha512 608.28k 2482.06k 3589.60k 5044.93k 5668.42k whirlpool 447.84k 952.13k 1554.99k 1858.32k 1968.28k aes-128 ige 12548.53k 14529.85k 15034.16k 15311.55k 15287.15k aes-192 ige 11233.12k 12825.99k 13060.81k 13464.74k 13465.77k aes-256 ige 10173.50k 11563.70k 11973.56k 12063.61k 12007.60k ghash 18364.74k 23390.64k 24970.65k 25328.19k 25364.86k sign verify sign/s verify/s rsa 512 bits 0.001938s 0.000188s 516.0 5313.8 rsa 1024 bits 0.009413s 0.000675s 106.2 1482.1 rsa 2048 bits 0.079520s 0.001942s 12.6 514.9 rsa 4096 bits 0.473810s 0.006792s 2.1 147.2 sign verify sign/s verify/s dsa 512 bits 0.002142s 0.001939s 466.8 515.6 dsa 1024 bits 0.007206s 0.007862s 138.8 127.2 dsa 2048 bits 0.021802s 0.023093s 45.9 43.3 sign verify sign/s verify/s 160 bit ecdsa (secp160r1) 0.0021s 0.0070s 476.4 143.3 192 bit ecdsa (nistp192) 0.0025s 0.0091s 398.1 110.4 224 bit ecdsa (nistp224) 0.0030s 0.0114s 328.9 87.4 256 bit ecdsa (nistp256) 0.0036s 0.0144s 281.2 69.3 384 bit ecdsa (nistp384) 0.0068s 0.0306s 147.1 32.7 521 bit ecdsa (nistp521) 0.0124s 0.0625s 80.7 16.0 163 bit ecdsa (nistk163) 0.0046s 0.0213s 219.6 46.9 233 bit ecdsa (nistk233) 0.0087s 0.0415s 115.4 24.1 283 bit ecdsa (nistk283) 0.0129s 0.0754s 77.2 13.3 409 bit ecdsa (nistk409) 0.0330s 0.1894s 30.3 5.3 571 bit ecdsa (nistk571) 0.0757s 0.3850s 13.2 2.6 163 bit ecdsa (nistb163) 0.0043s 0.0223s 230.1 44.8 233 bit ecdsa (nistb233) 0.0084s 0.0447s 119.3 22.4 283 bit ecdsa (nistb283) 0.0126s 0.0809s 79.2 12.4 409 bit ecdsa (nistb409) 0.0314s 0.1951s 31.9 5.1 571 bit ecdsa (nistb571) 0.0743s 0.4473s 13.5 2.2 op op/s 160 bit ecdh (secp160r1) 0.0057s 175.9 192 bit ecdh (nistp192) 0.0075s 132.9 224 bit ecdh (nistp224) 0.0094s 106.2 256 bit ecdh (nistp256) 0.0117s 85.6 384 bit ecdh (nistp384) 0.0244s 41.0 521 bit ecdh (nistp521) 0.0504s 19.9 163 bit ecdh (nistk163) 0.0102s 98.4 233 bit ecdh (nistk233) 0.0198s 50.6 283 bit ecdh (nistk283) 0.0354s 28.2 409 bit ecdh (nistk409) 0.0846s 11.8 571 bit ecdh (nistk571) 0.1917s 5.2 163 bit ecdh (nistb163) 0.0110s 90.8 233 bit ecdh (nistb233) 0.0218s 45.8 283 bit ecdh (nistb283) 0.0400s 25.0 409 bit ecdh (nistb409) 0.0981s 10.2 571 bit ecdh (nistb571) 0.2244s 4.5
Note: this build has been compiled with assembler implementations for SHA-1, SHA-256 and AES.
Further Sources
- PowerPC - Wikipedia
- Power Macintosh - Wikipedia
- Macintosh clone - Wikipedia
- Classic Mac OS - Wikipedia
- Power Mac G4 - Wikipedia
- Documentation/Platforms/PowerPC - QEMU
- Running Qemu-system-ppc with Mac OS/OSX guests in macOS [E-Maculation wiki]
- PowerPC/SoundCards - Debian Wiki
- PPC Developers Reference Release 1.0 - The PowerPC Linux Installation Guide - An Addendum to The Official Red Hat Linux Installation Guide [Internet Archive]
- penguinppc.org [Internet Archive]
- linuxppc.org [Internet Archive]
- LinuxPPC - Linux for PowerPC Computers. [Internet Archive]
- IBM RS/6000 - Wikipedia
- AIM alliance - Wikipedia
QEMU PowerPC Systems
The PowerPC processor has been used in a wide range of systems, so QEMU has a variety of system emulations to choose from:
QEMU 32-bit PowerPC desktop/server systems (qemu-system-ppc) | ||
QEMU Name | QEMU description | System |
---|---|---|
40p | IBM RS/6000 7020 (40p) | IBM RS/6000 Type 7020 Model 40P; PReP; PowerPC 601 |
g3beige | Heathrow based PowerMAC (default) | Apple Power Macintosh G3 ("beige") series; "Heathrow" I/O contoller (see EveryMac); PowerPC 750 (G3) |
mac99 | Mac99 based PowerMAC | Apple Power Mac G4 (AGP) ("graphite") series, PowerMac3,1 (see EveryMac); PowerPC 7400 (G4) |
QEMU 32-bit PowerPC evaluation/reference boards (qemu-system-ppc) | ||
QEMU Name | QEMU description | System |
bamboo | bamboo | IBM/AMCC 440ep (Bamboo) reference board; PowerPC 440EP with PowerPC 440 core |
mpc8544ds | mpc8544ds | Freescale MPC8544DS evaluation board; MPC8544E PowerQUICC III with PowerPC e500 core |
none | empty machine | An empty system for building up from component parts |
ppce500 | generic paravirt e500 platform | virtual system for PowerPC e500 |
ref405ep | ref405ep | Reference board for PowerPC 405EP |
sam460ex | aCube Sam460ex | ACube Systems Sam460ex; PowerPC 460EX with PowerPC 440 core |
taihu | taihu | AMCC PPC 405EP (TAIHU); PowerPC 405EP with PowerPC 405 core |
virtex-ml507 | Xilinx Virtex ML507 reference design | AMD Xilinx ML507, Virtex-5 FXT FPGA evaluation board; PowerPC 440 core |
QEMU provides emulation of a wider range of PowerPC processors than the system specifications above might indicate. So system processors can be switched for alternative models if required.
No comments:
Post a Comment