RSSAmplifier

Blog

Warner's Random Hacking Blog

A Diary of Warner's Hacking Projects and other random thoughts

bsdimp.blogspot.comRSS feed ↗25 posts

Latest posts

FreeBSD/armv7 in Qemu

Armv7 Virtualization Just a quick note for booting an FreeBSD/armv7 virtual machine. I'll document a few bumps that I hit along the way. We'll be booting with qemu's virt armv7 virutal machine. We'll use EDK II as the firmware. The Setup: required packages Before we get started, we need to install a few things. Thankfully, they are all installed with one command: % sudo pkg install qemu As of this…

Some Hints For Splitting Commits

Some Hints For Splitting Commits Sometimes in a code review, the commentators suggest that commits be broken up into smaller pieces. Here are a few of the collected tricks I have learned over the years. They are presented as 'editing the current tip of the tree' for simplicity. However, you can apply them to rebasing as well using the 'edit' action. The last section offers a strategy when you need…

DEC Rainbow Floppies Found on EBAY

DEC Rainbow Floppies on EBAY A group called "Australia SDC" recently liquidated their DEC Rainbow floppy collection on EBAY. I won the auction and will be placing them up once I have them imaged. There were a lot of application floppies that I'll do a separate blog post about (about half of the lot are programs like tk-solver, 20/20, MT Pascal, CBASIC, etc) However, interestingly they had the…

DEC Rainbow Power Supply Specs

DEC Rainbow 100B Power Supply Specs For the next time I'm looking for this... The DEC Rainbow power supply, as documented in the TM100 technical reference manual, is: Output: +5.1V +/- 6% 2.5-11.5A, +12.1V +/- 6% 0.6-6.7A, -12V +/- 7% 0.0-0.15A Input: 115V 6A (218W) Pinout: Pin Function 1 ACOK H 2 DCBIAS (unused) 3 Key 4 -12V Input 5,6 +12V Input 7,8,9 +5V Input 10,11,12,13 Ground (DC Return) Most…

Spelling Fixes -- Some Advice

Some Thoughts on Spelling Fixes I've been looking at a number of FreeBSD pull requests lately. Many of them are spelling fixes. I'd like to offer some suggestions for people submitting them. The same advice applies to typo fixes and grammar corrections. Keep number of changes small. Use separate commits per directory Use descriptive commit messages Set your email correctly Don't correct code Keep…

A new path: vm86-based venix emulator

Venix Emulator Update It's been a while since I've had time to work on the Venix emulator. When I set it aside over a year ago, I'd taken it as far as I could with the 8088 emulator I'd found online. It had no FP emulation and there were a number of things misbehaving that I couldn't quite get right. And exec was proving hard to implement. Despite being written in C++, the original emulator…

On Updating QEMU's bsd-user fork

QEMU bsd-user bsd-user is a 'user mode' emulation tool. It emulates FreeBSD's system calls on FreeBSD well, and $OTHER-BSD system calls elsewhere to varying degrees of success. It's primary mission has been to build FreeBSD packages using user-mode emulation to speed the process over using system mode. It speeds things up because the compilers and other huge CPU hogs can be built natively. Of…

Customizing Emacs for Git Commit Messages

Customizing Emacs for Git Commit Messages I do a lot of commits to the FreeBSD project and elsewhere. It would be nice if I could setup emacs in a custom way for each commit message that I'm editing. Fortunately, GNU Emacs provides a nice way to do just that. While I likely could do some of these things with git commit hooks, I find this to be a little nicer. First up, we need to do something when…

EPSON QX-10 20MB Hard disk

EPSON QX-10 20MB Hard Disk I've been looking for some DEC Rainbow 3rd party hard drives of late. QCS (Quality Computer Services) made an external hard disk for the DEC Rainbow. There's advertisements in Digital Review and other trade magazines at the time. It uses a SASI interface, and likely had a DEC Rainbow specific add-in card that they rewarmed from other designs... One recently came up for…

How to Recover From a BIOS Upgrade

Recovering From Firmware Upgrade Recently, I booted Windows on my laptop for the first time in a while to play Portal 2 with my son. It asked me to upgrade, and I said 'sure, upgrade the BIOS.' And then I couldn't boot FreeBSD... The BIOS upgrade deleted all the BootXXXX variables. So it only booted Windows. I'm stuck, right? I have to download a FreeBSD image and boot off the USB drive. Or did I?…

FreeBSD Subversion to Git Migration: Pt 2 Primer for Users

FreeBSD git Primer for Users Today's blog is actually a preview of a git primer I'm writing for the FreeBSD project. It covers what a typical user will need, including those relatively rare users that may have some changes to the base. Please let me know what you think, and ways it can be improved. I'm keen on especially clear and useful pointers for the topics as well. Also note: The cgit-beta…

FreeBSD Subversion to Git Migration: Pt 1 Why?

FreeBSD moving to Git: Why With luck, I'll be writing a few blogs on FreeBSD's move to git later this year. Today, we'll start with "why"? Why? There's a number of factors motivating the change. We'll explore the reasons, from long term viability of Subversion, to wider support for tools that will make the project better. Today I'll enumerate these points. There are some logistical points around…

How to transport a branch from one git tree to another

git branch transport Recently, I had need to move a branch from one repo to another. Normally, one would do a 'get push' or 'get fetch' to do this. It's fundamental to git. If you are looking for how to do this, you should see something else. So what abnormal thing am I doing? git svn. So I have two git svn trees. They both point to FreeBSD's upstream subversion repo. git svn is cool and all, but…

A 35-year-old bug in patch found in efforts to restore 29 year old 2.11BSD

A 35 Year Old Bug in Patch. Larry Wall posted patch 1.3 to mod.sources on May 8, 1985. A number of versions followed over the years. It's been a faithful alley for a long, long time. I've never had a problem with patch until I embarked on the 2.11BSD restoration project. In going over the logs very carefully, I've discovered a bug that bites this effort twice. It's quite interesting to use 27 year…

Recovering 2.11BSD, fighting the patches

Recovering 2.11BSD, fighting the patches 2.11BSD was released March 14, 1991 to celebrate the 20th anniversary of the PDP-11. It was released 15 months after 2.10.1BSD was released in January 1989. 2.11BSD was quite the ambitious release. The high points include: The kernel logger (/dev/klog) The namei cache and argument encapsulation calling sequence readv(2)/writev(2) as system calls rather than…

Bootstrapping 2.11BSD (no patches) from 2.11BSD pl 195

Bootstrapping 2.11BSD (original) I've had the sources for what I think is the original 2.11BSD for some time now. However, how do I know these sources are good? That's a very good question. I have a series of tests that I'm doing to verify that the sources are consistent with what we know, or have some kind of known deviation / reconstruction when not. They had passed only the first of my many…

Missing 2.11BSD patches

2.11BSD Missing Patches While looking into some date anomalies in the final image (since I'd like to get the dates right) I discovered a number of source directories had dates slightly newer than the date in the announcement. This lead me to discover some missing patches in a couple of different places. The Anomaly I've automated the system generation, tape generation and installing from tapes to…

When Unix learned to reboot(2).

History of Reboot(2) Recently, a friend asked me the history of halt, and when did we have to stop with the sync / sync / sync dance before running halt or reboot. The two are related, it turns out. That sync; sync; sync Thing... If you go looking around the net, you'll find some people giving advice like "when shutting down, type 'sync; sync; sync; halt' to be safe." There's good reasons behind…

First screen shot of 2.11BSD as released

My automation produced this today... which is the first time something close to a 2.11BSD, unmodified, has booted in 30 years... Alas, it's only in SIMH, but still, I've reached 'as released' or as close as I can reconstruct. I've uploaded all the tools to github if you'd like to check it out. I've not yet uploaded images, since I want to cleanup a blog I've been keeping about this and post them…

Adding Networking to the 2.11BSD pl 195 system

Adding Networking to 2.11BSD pl 195 So, now that I have an auto-installer, it would be nice, sometimes, to have networking. It also gives us a chance to push the envelop a little and learn about kernel builds. These instructions are for FreeBSD, alas, and other system may differ. However, the first section is the only part that's FreeBSD specific. Simh config changes I added the following to my…

SIMH Setup for 2.11BSD restoration project

SIMH Setup for 2.11BSD pl 0 Project So, you'd like to do more than just follow along with my 2.11bsd as released project. You'd like to see if you can recreate the work I've done. So I've written up the setup I'm using in the hopes that it will be helpful to others. There's many other tutorials on how to do this generically, but there's some special needs for this project not adequately covered…

Traditional Unix Toolchains

Traditional Unix Toolchains Older Unix systems tend to be fairly uniform in how they handle the so-called 'toolchain' for creating binaries. This blog will give a quick overview of the toolchain pipeline for Unix systems that follow the V7 tradition (which evolved along with Unix, a topic for a separate blog maybe). Unix is a pipeline based system, either physically or logically. One program takes…

2.11BSD Original Tapes Recreation

In Search of 2.11BSD, as released Almost all of the BSD releases have been well preserved. If you want to find 1BSD, or 2BSD or 4.3-TAHOE BSD you can find them online with little fuss. However, if you search for 2.11BSD, you'll find it easily enough, but it won't be the original. You'll find either the latest patched version (2.11BSD pl 469), or one of the earlier popular version (pl 430 is…

Old-school Disk Partitioning

Old-School Disk Partitions Unix started out life in 1970. Many of the things it did, it had to invent on the fly. Disk handling was one of those items. Something we take utterly for granted today was, once upon a time, an area of active innovation. This blog will explore the early days of Unix: when we had static partitioning compiled into the driver. Typical drive of the era: large, and difficult…

Whither chroot?

Chroot Origins This blog post will examine original artifacts to clear up some confusion about where chroot(2) and chroot(8) came from. The answer turns out to be simple, and the confusion was understandable. This shows the benefits of groups like TUHS in preserving Unix history, and how the kindness of Caldera and Lucent in releasing the historic Unix systems has helped in our understanding of…