Monthly Archive:: March 2023

Customizing the startup chime on a 1999 G3 iMac

If you’ve been reading my blog for a while, you might remember back in 2012 when I changed the startup sound on my Power Mac G3 (Blue and White). That was a fun introduction to the Forth programming language. I had to reverse-engineer just enough of Apple’s firmware update script to understand what was going on. Recently, Aidan Halpin, a reader of this site, asked me if I could do the same kind of startup sound customization on his iMac. This particular iMac is officially known as the “iMac (Slot Loading)” and has a model identifier of PowerMac2,1. As you can guess from the name, it has a slot-loading CD-ROM drive unlike the original iMac that had a laptop-style tray-loading drive. By the way, Aidan’s iMac is special because it has a PowerPC G4 processor soldered onto the logic board instead of the original G3. He sent me Apple’s last firmware update for this model: iMac Firmware Update 4.1.9. I went to work looking at the update contents to see if I could figure out how to modify the chime the same way I did with my Power Mac G3. I thought it would be fun to take everyone along for a ride and show exactly what was involved in changing the sound. And of course, this post wouldn’t be complete without also sharing the code for the utility I created to inject the new chime into the firmware update file. This is an insane amount of work for something that doesn’t really matter in the end. I love it.

Qualcomm wants to replace eSIMs with iSIMs, has the first certified SoC

Here’s an interesting bit of news out of Mobile World Congress: Qualcomm says the Snapdragon 8 Gen 2 has been certified as the “world’s first commercially deployable iSIM (Integrated SIM)”. What the heck is an iSIM? Didn’t we just go through a SIM card transition with eSIM? We did, but iSIM is better than eSIM. We’ll explain, but the short answer is that iSIM is the next step in the continual march to reduce the size of SIM cards. eSIMs are still a chip taking up space on your motherboard, and that’s not ideal if you want to squeeze every square millimeter of space out of a phone. The next shrinking step is iSIM—an Integrated Subscriber Identity Module. Rather than a chip on the motherboard, iSIMs are integrated directly onto the SoC. SoC (system on a chip) integration is the technology that makes smartphones possible. Instead of a thousand little chips for things like the CPU, GPU, RAM, modem, and a bunch of other things, everything gets packed into one single do-everything piece of silicon. Individual chips require more space and power thanks to having to make motherboard traces to connect everything and having to deal with chip packages. I’m still using an old-fashioned traditional SIM card, and while I’m sure going with eSIM and now iSIM is great from a simplification and power usage point of view, I feel like they’re both also about taking control away from the user and shifting it towards the carrier. It was a long fight to get rid of locked phones (mostly), but with eSIM/iSIM it seems locking devices down in more fine-grained ways only becomes easier. I might be overreacting, but little red flags go up when I read about eSIM and now iSIM.

Update 2 of AmigaOS 3.2 released

Hyperion Entertainment has released another update for AmigaOS 3.2 for classic Amigas, coming with a number of improvements and bug fixes. I’m not entirely sure what to make of all this, though, since the drama around the ownership of the Amiga operating system, the trademarks, and more, as well as continuous accusations of Hyperion not paying any of its developers, have reached a fever pitch, as documented in this elaborate piece. As much as I would want to dive into all this and properly vet every single source in that article, for the sake of my sanity, I am just not going to. The soap opera around the Amiga has been going on for so long, and has jumped the shark so many times, I just don’t know where to start. I’ll leave you all with the detailed piece and its sources, and let you decide for yourself what to make of it all. I ain’t got the patience for this.

Refurbishing a Cobalt RaQ 2

Cobalt Networks were one of the early pioneers in network appliance hardware and produced some of the first turn-key webserver boxes you could buy, founded in 1996 as Cobalt Microserver. Cobalt boxes are immediately identifiable from their distinctive deep blue plastic bezels starting with the 1998 Cobalt Qube 2700. The Qube used a 150MHz QED RM5230; these CPUs are part of QED’s R5000 family and we’ll talk about their architecture a bit later. They came with 2.1GB hard disks with later larger options, 10Mbit Ethernet, 16MB of RAM standard with up to 256MB supported, and a “console” consisting of a backlit rear-mounted 2-line LCD and control buttons (on later machines, but not the original 2700, a serial port provided an actual console if you held down a button during startup). A fair number of typical configuration tasks such as setting its IP address could be done directly from the panel and the rest were intended to be done through its Perl-based web console. They were designed to run Linux from the ground up and shipped with Red Hat using a 2.0.x kernel. Cobalt’s network appliances were so exotic back in the day, and once they started hitting the used market, I almost pulled the trigger quite a few times. These days, they’re harder to come by, and their use is, of course, inherently limited now, but that doesn’t make them any less eye-catching.

Hacking the Nintendo DSi browser

The DSi browser uses Opera 9.50. There are no security mitigations whatsoever. Jumping to shellcode is back on the menu! Stack buffer overflows are viable. Exploiting use-after-frees, which are often common in browsers, is easier than ever. In fact, the DSi doesn’t even have an operating system, so there’s no kernel to exploit. Various system privileges are handled by the SCFG register. The browser has enough privileges to run most homebrew, but not enough to gain persistence across boots without another exploit. Browsing on the DS was a nightmare – and Nintendo charged for it. Crazy how times have changed.

ChatGPT is nothing like a human

Tech-makers assuming their reality accurately represents the world create many different kinds of problems. The training data for ChatGPT is believed to include most or all of Wikipedia, pages linked from Reddit, a billion words grabbed off the internet. (It can’t include, say, e-book copies of everything in the Stanford library, as books are protected by copyright law.) The humans who wrote all those words online overrepresent white people. They overrepresent men. They overrepresent wealth. What’s more, we all know what’s out there on the internet: vast swamps of racism, sexism, homophobia, Islamophobia, neo-Nazism. Tech companies do put some effort into cleaning up their models, often by filtering out chunks of speech that include any of the 400 or so words on “Our List of Dirty, Naughty, Obscene, and Otherwise Bad Words,” a list that was originally compiled by Shutterstock developers and uploaded to GitHub to automate the concern, “What wouldn’t we want to suggest that people look at?” OpenAI also contracted out what’s known as ghost labor: gig workers, including some in Kenya (a former British Empire state, where people speak Empire English) who make $2 an hour to read and tag the worst stuff imaginable — pedophilia, bestiality, you name it — so it can be weeded out. The filtering leads to its own issues. If you remove content with words about sex, you lose content of in-groups talking with one another about those things. These things are not AI. Repeat after me: these things are not AI. All they do is statistically predict the best next sequence of words based on a corpus of texts. That’s it. I’m not worried about these things leading to SkyNet – I’m much more worried about smart people falling for the hype.

RISC-V Business: testing StarFive’s VisionFive 2 SBC

The JH7110 isn’t amazing. But it’s not bad, either. I still wouldn’t recommend most people buy this board, unless you already know a lot about Linux and SBCs in general. That may change a year from now, but right now, this board isn’t targeted at the same market as a Raspberry Pi. At around $100, and not being quite production-ready, I’m only recommending this board to people interested in exploring RISC-V for now. This seems like an expected experience for a relatively new architecture that still has rather limited hardware and software support. When the first Raspberry Pi came out, the situation wasn’t much better either, so give it a few years and RISC-V will be in a better place in the market for sub-€100 single-board computers.

COBOL: You’re thinking about it wrong

And while headlines might indicate the language had fallen into disfavor, the amount of COBOL in use continues to grow, with 800 billion lines running in production systems daily, according to a global survey conducted last year by enterprise software firm Micro Focus. COBOL is considered strategic by 92% of survey respondents, and over half said they expect their organizations to keep running their COBOL applications for at least another 10 years.  I feel like COBOL is one of those things that can guarantee you a career. If you know COBOL, you will most likely find a job and have a good career future, but it’s probably not going to be anything sexy or anything that has the (albeit tiny) opportunity of making you filthy rich – but you won’t ever be without a job for long either.

Cubic lets you easily create customised Ubuntu and Debian ISOs

Cubic (Custom Ubuntu ISO Creator) is a GUI wizard to create a customized Live ISO image for Ubuntu and Debian-based distributions. Cubic permits effortless navigation through the ISO customization steps and features an integrated virtual command line environment to customize the Linux file system. You can create new customization projects or modify existing projects. Important parameters are dynamically populated with intelligent defaults to simplify the customization process. This is an incredibly neat tool, and it’s given me the urge to see if I can create my own custom ISO with my personal defaults all set out of the box.