Monday 23 August 2021

Raspberry Pi OS on QEMU raspi2b - System Information

Raspberry Pi OS

The popular Raspberry Pi (Wikipedia) is often used with a tuned Linux distribution: Raspberry Pi OS (formerly Raspbian), which is based on Debian Linux.

QEMU

The system emulator QEMU provides machine profiles for a selection of Raspberry Pi models:

The 32-bit ARM models, ARMv6 & ARMv7:

$ qemu-system-arm -machine help | grep rasp
raspi0               Raspberry Pi Zero (revision 1.2)
raspi1ap             Raspberry Pi A+ (revision 1.1)
raspi2               Raspberry Pi 2B (revision 1.1) (alias of raspi2b)
raspi2b              Raspberry Pi 2B (revision 1.1)

The 64-bit ARM models, ARMv8:

$ qemu-system-aarch64 -machine help | grep rasp
raspi0               Raspberry Pi Zero (revision 1.2)
raspi1ap             Raspberry Pi A+ (revision 1.1)
raspi2               Raspberry Pi 2B (revision 1.1) (alias of raspi2b)
raspi2b              Raspberry Pi 2B (revision 1.1)
raspi3ap             Raspberry Pi 3A+ (revision 1.0)
raspi3               Raspberry Pi 3B (revision 1.2) (alias of raspi3b)
raspi3b              Raspberry Pi 3B (revision 1.2)

The 64-bit emulation presumably includes the 32-bit models in order to allow for hypothetical upgraded versions of these systems by swapping the ARM processor core. This also provides support for the revisions of the Raspberry Pi 2B, the original board used a BCM2836 SoC with a 32-bit ARM v7 processor, but later versions of the 2B board used a BCM2837 with a 64-bit ARM v8 processor.

These options cover three processors:

  • Broadcom BCM2835 SoC in the Zero and A+
    • ARM1176JZF-S @ 700 Mhz core, 32-bit ARMv6
  • Broadcom BCM2836 SoC in the 2B
    • ARM Cortex-A7 @ 900 MHz, quad-core, 32-bit ARMv7
  • Broadcom BCM2837 SoC in the 3A+ and 3B
    • ARM Cortex-A53 @ 1.2 GHz or 1.4 GHz, quad-core, 64-bit ARMv8

That is three generations of the ARM architecture and coverage of the older models.

Sunday 15 August 2021

NetBSD/hppa on QEMU - System Information

NetBSD on PA-RISC

Originally inspired by OpenBSD/hppa the current NetBSD/hppa started as a port for HP 9000/700 systems and carried the name NetBSD/hp700. An initial experimental source release with NetBSD 2.0 in 2004, was followed by a binary release with NetBSD 3.0 in 2005. For NetBSD 7.0 in 2021 the port adopted the 'hppa' architecture name. The port now covers most PA-RISC HP 9000 systems, albeit in 32-mode.

Platform

HP developed the Precision Architecture (HP-PA or PA-RISC) RISC processor during the early 1980s in order to consolidate its compute platforms on to two architectures: Intel x86 and HP PA-RISC. The PA-RISC based HP 9000 series 700 entered the market in 1991

Emulator and Platform

The QEMU system emulator provides a 32-bit PA-RISC emulation based on the HP Visualize B160L (9000/778), a 1996 HP-UX workstation. From HP Visualize B132L, B160L, B180L PA-RISC Workstations - OpenPA.net the B160L system specifications are:

  • CPU: PA-7300LC 160 MHz
  • RAM: 32 MiB to 1.5 GiB max.
  • Bus: GSC, EISA, PCI
  • Storage controllers:
    • NCR 53C710 narrow SCSI-2
    • NCR 53C720 Fast-Wide HVD SCSI-2
  • Network interface: Intel 82596CA 10 Mb/s ethernet
  • Graphics: Visualize-EG (Graffiti) 2MB
  • Audio: Harmony

The emulated system doesn't implement the audio, ethernet or SCSI controllers (yet), instead replacing the SCSI controllers and ethernet interface with PCI devices to provide the same functionality:

  • CPU: one (or more) PA-7300LC at 250 MHz
  • RAM: 512 MiB default, up to 3.0 GiB
  • Bus: GSC, EISA, PCI
  • Storage controllers: Symbios Logic 53c895 Fast Wide LVD SCSI-2, PCI
  • Network interface: DEC Tulip 21142/43 100 Mb/s ethernet, PCI
  • Graphics: HPA208LC1280 aka. Artist

The addition of multi-processor (SMP) support diverges from the source workstation, but provides an alternative means for increasing the system performance.

Sunday 8 August 2021

Slackware Linux 3.0 on QEMU

Slackware

Established back in 1993, Slackware (The Slackware Linux Project; Wikipedia) is the oldest surviving Linux distribution...

Slackware Linux 3.0 was the first Slackware release to have an official CD-ROM distribution and support installation from CD-ROM. Released in November 1995, the same month as the Pentium Pro, it doesn't have support for a lot of the more modern hardware emulated by QEMU...


QEMU

The default QEMU i386 system emulation ('pc') is based on Intel's "Natoma" (Intel 440FX & PIIX3) chipset for Pentium Pro and Pentium II processors, which was released in 1996 (List of Intel chipsets - Wikipedia):

  • Model: "pc" - Intel 440FX & PIIX3 "Natoma"
  • CPU: "qemu32" - QEMU Virtual CPU (default)
  • RAM: 128 MiB default, 2 GiB max.
  • Bus: PCI and ISA
  • Storage controller: IDE (PIIX3)
  • Network interface: "e1000" - Intel 82540EM Gigabit Ethernet Controller, 1,000 Mb/s ethernet
  • Graphics: "std" - Standard VGA (with Bochs VBE)

Since the kernels included with Slackware 3.0 are older than this, they don't recognize the hardware and use generic methods to run on the system. Distributions based on the Linux 2.0 series or later kernels would be a better choice for the 'pc' machine (Linux Version 2.0 | Linux Journal).

Fortunately QEMU has a generic ISA based PC system profile ('isapc') which provides an option that is more in keeping with the hardware available when Slackware 3.0 was released:

  • Model: "isapc" - ISA bus PC
  • CPU: "486" - Intel i486DX/4
  • RAM: 128 MiB default, 2 GiB max.
  • Bus: ISA
  • Storage controller: IDE
  • Network interface: "ne2k_isa" - NE2000 ISA, 10 Mb/s ethernet (IRQ 9, I/O 0x300)
  • Graphics: "cirrus" - Cirrus GD-5446 VGA ISA
This isn't ideal, given that PCI based 486 and Pentium based systems existed at the time, but QEMU doesn't provide the appropriate chipsets for those systems, so exploration of those options will have to be on real hardware, or using other emulators (e.g. Bochs, PCem, etc.).

Wednesday 4 August 2021

BeOS - System Information

BeOS

The BeOS operating system (Wikipedia) is a multimedia operating system from the late 1990s...

BeOS 5 Pro in VirtualBox

Platform

BeOS Release 5.0 Professional supported two system architectures (see BeOS Ready Hardware List):

  1. PowerPC - BeBox and various pre-G3 Power Macintosh systems and compatibles
  2. x86 - various systems based on Intel Pentium, Pentium Pro, Pentium II, Pentium III & Celeron processors and compatibles (e.g. AMD K6, K6-2, K6-III & Athlon; Cyrix 686mx, 686GXm, & M II; IDT WinChip C6 & WinChip 2).

The hardware that can run BeOS is aging and can be difficult to obtain, so there is a need to consider emulation/virtualization options as alternatives to sourcing hardware.