Building QEMU 7.0 on Raspberry Pi OS

***NEW: Building QEMU 8.0 on Raspberry Pi OS***

The Introduction

And spring 2022 brings us another major release of QEMU – in this case, QEMU 7.0, available in all of its tar.xz’d loveliness directly from qemu.org.

Whilst the Raspberry Pi OS‘s package repository remains the fastest, simplest way to get QEMU onto your Pi, Pi OS’s Debian lineage often leaves it trailing the cutting edge – in the case of QEMU, the packaged release for Raspberry Pi OS (version 2022-04-04) is version 5.2 from way back in December 2020.

QEMU can be installed via the Raspberry Pi OS package manager – or via ‘apt install’ on the command line. Alas, the version offered is several years behind the latest release.

Fortunately, QEMU is fairly easy to download and compile ourselves.

Continue reading “Building QEMU 7.0 on Raspberry Pi OS”

Leaking Pipes with Swift and External Executables

Observed with MacOS 12.4/Xcode 13.4.1/Swift 5

There are quite a lot of tutorials out there covering the basics of running external executables from within Swift and, with very little effort, it’s quite easy to throw together something like this…

import Foundation

let wrappedUname = Process()
wrappedUname.executableURL = URL(fileURLWithPath: "/usr/bin/uname")
wrappedUname.arguments = ["-v"]
let unameOutputPipe = Pipe()
let unameErrorPipe = Pipe()
wrappedUname.standardOutput = unameOutputPipe
wrappedUname.standardError = unameErrorPipe
do{
    try wrappedUname.run()
} catch {
    print("Unexpected error: \(error).")
}
wrappedUname.waitUntilExit()
let unameOutput = String(decoding: unameOutputPipe.fileHandleForReading.readDataToEndOfFile(), as: UTF8.self)
let unameError = String(decoding: unameOutputPipe.fileHandleForReading.readDataToEndOfFile(), as: UTF8.self)
print("Output: " + unameOutput)
print("Error: " + unameError)
Continue reading “Leaking Pipes with Swift and External Executables”

Old Solaris Patches (Sunsite Mirrors)

sunsite.icm.edu.pl looks to be an old mirror of the pre-Oracle Sunsites. It’s quite useful for patches for older Solaris releases.

To get Internet Explorer 5.0 for Unix (Sparc) running on the Sparc release of Solaris 7 I ended up using:

108376-46: OpenWindows 3.6.1: Xsun Patch (Patch File)

106327-23: SunOS 5.7: 32-Bit Shared library patch for C++ (Patch File)

106950-24: SunOS 5.7: Linker Patch (Patch File)

And voila! Internet Explorer 5.0 for Unix running on the Sparc release of Solaris 7.0

PSPB – Period Sites in Period Browsers

So, I’ve built a new toy. It’s called PSPB (Period Sites in Period Browsers) and it pulls pages out of the Wayback Machine and renders them in various period specific browsers and operating systems (stripping off all the Archive.org rubbish as it does so).

As of launch it only has a half-dozen Operating System/Browsers combinations and around a dozen source sites – and the site that it posts them too is rather austere – but that’s likely to change as I poke around with it and get things up and running.

While I have no real idea how long it’ll last, PSPB can currently be found here.

Raspberry Pi with PCIe

The Raspberry Pi 4 is out! And I’m not going to buy one because A) revision zero is buggered, B) the load this site produces on it’s current 3B+ host is functionally zero (so there’s very little point in upgrading it) and C) I’m currently far too busy to do any pottering around with one outside of that.

However other people have and they’ve started playing around with the new PCIe bus – even going as far as desoldering the USB controller and adding a PCIe riser.

Which is very neat indeed.