Installing Xenix 2.x on Qemu
As of Qemu 0.14.0 you can actually install Xenix version 2. This works for both the i386 & the i286 versions.
I've documented it here on my blog.
The whole thing hinges on changing the boot strings so that instead of detecting the media type, it is instead forced to use the actual media type. For example, using the 3 1/2 inch diskette the boot string goes from:
fd(64)xenix root=fd(64) swap=ram(0) pipe=ram(1) swplo=0 nswap=1000 ronly
Into this:
fd(60)xenix root=fd(60) swap=ram(0) pipe=ram(1) swplo=0 nswap=1000 ronly
Things to keep in mind is that the largest IDE hard disk that Xenix 2.x can support is 500MB.
media table
Device Name | Description | Major | Minor |
---|---|---|---|
fd0 | Flexible disk drive | 2 | 64 |
fd0135 | 3 1/2" Flexible disk drive | 2 | 60 |
fd0135ds18 | high density 1.44Mb diskette | 2 | 60 |
fd0135ds9 | low density 720Kb diskette | 2 | 36 |
fd048 | 5 1/4" Flexible disk drive (low density) | 2 | 4 |
fd048ds9 | 360K double sided nine sector diskette | 2 | 4 |
fd048ds8 | DOS version 1.1 double sided eight sector diskette | 12 | |
fd048ss8 | DOS version 1.1 single sided eight sector diskette | 2 | 8 |
fd048ss9 | DOS single sided nine sector diskette | 2 | 0 |
fd096 | 5 1/4" Flexible disk drive (high density) | 2 | 52 |
fd096ds15 | 1.2MB diskette | 2 | 52 |
fd096ds18* | DMF format for 5 1/4" diskette | 2 | 60 |
fd096ds9 | 720K 5 1/4" diskette | 2 | 36 |
- This format was created specifically to lower the costs of manufacturing, i.e. use less disks for distribution.
Hopefully this will make some sense.. Esp with the floppy driver being very touch, but at least with the device table at hand you can hard code /dev/install and friends so that things will 'just work'. The big thing to watch for is high density vs low density....
From the manual:
"
/dev/dsk/f0d9d 48tpi floppy device /dev/dsk/fOd9dt 48tpi entire disk floppy device /dev/dsk/fOq15d 96tpi floppy device /dev/dsk/fOq15dt 96tpi entire disk floppy device /dev/rdsk/fOd9d raw 48tpi floppy device /dev rdsk/fOd9dt raw 48tpi entire disk floppy device /dev/rdsk/fOq15d raw 96tpi floppy device /dev/rdsk/fOq15dt raw 96tpi entire disk floppy device"
"The very first thing to understand is that these files are NOT the drivers for the devices. Drivers are in the kernel itself (/unix or /xenix or /stand/unix), and the files in /dev do not actually contain anything at all: they are just pointers to where the driver code can be found in the kernel. There is nothing more to it than that. These aren't programs, they aren't drivers, they are just pointers." Unix device pointer explanation
I've also demonstrated how to do this in a video.