Saturday, April 20, 2013

Using QEMU to navigate a 3000 tons ship

Some time ago I was approached by a passionate engineer Jean Michel Schramm, who asked whether QEMU would help saving public finances and a navigation system of a 3000 tons ship.

The project looked interesting, so we gave it a try and succeeded!

More details for those who plan to use QEMU for replacement of
hardware becoming extinct.
 The two devices to be replaced were a Sun SPARCStation-5-like computer (CPU-5CE, VME form factor from Force Computer GmbH) and a SCSI terminal server, both from early 90th. The mission was keeping the original software running under SunOS 4.1.3_U1, using a CG3 frame-buffer for output, 2 network interfaces and 4 serial ports for input.
Sailing QEMU
For the new hardware platform Jean Michel picked a merchant marine approved fanless computer PIP22 from a Swiss company MPL (http://www.mpl.ch/t24b0.html). The question was what to do with the software.

The cg3 frame buffer emulation was already done by Bob Breuer (and soon will be in the upstream QEMU, thanks to Mark Cave-Ayland).

Adding more serial ports and an additional Ethernet card to QEMU is easy. But how to force the OS to see them? The SS-5 OBP doesn't auto detect onboard devices, so some Forth was necessary:

cd /obio
new-device " zs" device-name " serial" device-type c " interrupts"
integer-attribute 0 xdrint 20 xdrint xdr+ 8 xdrint xdr+ " reg"
attribute 2c xdrint 0 xdrint xdr+  " intr" attribute   0 0 "
port-a-ignore-cd" attribute 0 0 " port-b-ignore-cd" attribute
device-end

And voilà, the OS saw the ports, and thanks to hard work of Jean Michel, the 3000 tons ship is sailing again.

3 comments:

Martin Bochnig said...

Privyet Artyom!


Wow, you have a very interesting blog and technical background.

Thanks for your offer regarding the Ultra 45. But I actually feel bad if somebody just "gives" me money.

What about buying my Ultra45, rather than just donating me $$$ ?



Poka! %martin

atar said...

Hallo Martin,

bin froh von Dir zu hören! Martux 0.2 war die erste OpenSolaris Version die ich zum laufen gebracht habe.

Ich habe nur eine kleine Wohnung, und somit leider keinen Platz für noch ne U45. Ich habe schon eine U60, und sie reicht mir völlig aus. Außerdem bei Dir kann die Maschine sicherlich sinnvoller eingesetzt werden. Momentan habe ich nur sehr wenig mit SPARCs zu tun, und auch wenn ich dazu komme, währe es sicherlich nur die emulierte CPUs (die benötigen nicht so viel Platz).

Martin Bochnig said...

Hi!

Oh, Du hast ja doch geantwortet. Sorry, sehe ich erst jetzt. Ich dachte schon, meine "Privyet" wirkte komisch. Es ist von weitem vermutlich auch nicht fuer jedermann sofort ersichtlich, wie engagiert ich mich mit Politik und Geschichte befasse, und weshalb ich deshalb der Meinung bin, Gerechtigkeit (und somit Russland) verteidigen zu muessen. Es ehrt micht echt, dass Du schon seit 2006 MartUX fan bist! Das ist gut, sowas zu lesen.

Naja, das einzige was die U45 mehr kann, als meine Blade 2000, ist die USB-boot Sache. Insofern brauche ich die U45 dafuer, um USB-boot (nachdem es nun laeuft) weiterhin gegenzutesten. Und natuerlich der immense Platz mit 8 3.5" hot-swap bays. Zwar habe ich in der Blade 2000 auch bootfaehiges SAS und einen einfachen Festplattenkaefig fuer 4 Platten unten drin, aber nicht hot-swappable, und man muss mit Kabeln und Schrauben herum fuchteln. Nunja, mein Gedanke war trotzdem, die U45 zu opfern. Meine Wohnung ist 1 Zimmer (28 Quadratmeter) und zwischenzeitlich habe ich hier ueber 20 Computer gehabt. Ist also kein Argument. Aber wie gesagt, nur von Kapitalisten wuerde ich Geld nehmen, aber genau die denken gar nicht daran, mir welches zu geben. Das ist das Dilemma ...


Danke jedenfalls fuer den Versuch, mir zu helfen.

rgds., https://twitter.com/martinbochnig