Installing Xenix 2.x on Qemu

From Computer History Wiki
Jump to: navigation, search
Xenix 2.3.4 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 Actual Capacity
fd0 Flexible disk drive 2 64 all
fd0135 3 1/2" Flexible disk drive 2 60 up to 1.72Mb
fd0135ds18 high density 1.44Mb diskette 2 60 1.44Mb
fd0135ds9 low density 720Kb diskette 2 36 720Kb
fd048 5 1/4" Flexible disk drive (low density) 2 4
fd048ds9 360K double sided nine sector diskette 2 4 360Kb
fd048ds8 DOS version 1.1 double sided eight sector diskette 12 320Kb
fd048ss8 DOS version 1.1 single sided eight sector diskette 2 8 160Kb
fd048ss9 DOS single sided nine sector diskette 2 0 180Kb
fd096 5 1/4" Flexible disk drive (high density) 2 52 Up to s
fd096ds15 1.2MB diskette 2 52 1.2Mb
fd096ds18* DMF format for 5 1/4" diskette 2 60 unknown
fd096ds9 720K 5 1/4" diskette 2 36 720Kb


'* 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[ecially] with the floppy driver being very touchy, 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

Floppy Disk formats

I've also demonstrated how to do this in a video.