OpenBSD

The Monkeys Chased Away Puffy, or, Replacing OpenBSD with NetBSD at the Point of Sale

About one year ago, I wrote about how we used OpenBSD at the point of sale at the Basel Zoo. Well, the good news first: We replaced OpenBSD by NetBSD for our POS applications, both in development, but also for deployment.

Starting X11 Applications on OpenBSD at Boot Time

Every now and then someone asks on the OpenBSD public mailing list if it is possible to have a graphical application start at system boot time, circumventing the usual xdm login screen.

I had to do exactly this for info kiosks in public libraries, where a web browser is to be started for visitors to browse the online catalogue. Another application are point of sale systems where the POS application handles the login.

When Puffy Meets the Monkeys, or, OpenBSD at the Point of Sale

Basel has one of Europe's most beautiful zoological gardens, called the Zolli by the locals. It has a breathtaking aquarium with an enormous variety of rare fish, corals and lower animals. Pufferfish and Xenocara can be watched in their natural habitat. Starting january 1st, 2009, those two fish no longer only swim around in their aquariums but every visitor to the zoo must pass them...

Now Generally Useful: OpenBSD's GPIO Subsystem

OpenBSD has had support for General Purpose Input/Output devices since the 3.6 release. GPIO devices, or gpios for short, provide an easy way to interface electronic circuits which can be as simple as a LED or that provide more complex functionality like a OneWire or I2C bus.

The GPIO implementation in OpenBSD 3.6 up to and including 4.4, however, has some problems and drawbacks which made me rework larger parts of this subsystem during the h2k8 hardware hackathon in Coimbra, Portugal.

When seekdir() Won't Seek to the Right Position

The other day, I got an email from Edd, an OpenBSD user, claiming that Samba would crash when serving files off an MS-DOS filesystem. This was Samba built from sources and not the one from ports. Since I use myself Samba a lot and for a quite large user base, I got interested in the issue and started investigating it.

What I found out in the end is a surprise and was not expected: A bug that has been there in all BSDs for almost all the time, since the 4.2BSD times or for roughly 25 years...

Introducing embed-it/bsd

embed-it/bsd is a stripped down and slightly modified version of OpenBSD targeted at use in i386-based embedded devices like the PC-Engines ALIX boards. The most important design goals were

  • a very simple and quick installation,
  • a small memory footprint so that the system fits on a CF card or soldered flash memory
  • an easy upgrade method, by replacing a single "firmware" file on the device
  • retaining most of OpenBSD's features and the "look and feel"

Ideally there are not much user visible differences to a standard OpenBSD installation, but since the whole system can be installed on CF cards as small as 16 MB, some tradeoffs have been made in the selection of binaries available.

ldattach(8), a new command to attach line disciplines to a tty

Line disciplines have been in Unix since a long time. While they are not device drivers, they interact with tty devices in a very peculiar manner: They attach to a tty device and can then look at, or manipulate, the data as it flows through the tty device. Line disciplines are thus the natural choice when serial data is used in the kernel, e.g. to exchange TCP/IP packets over a serial link using the SLIP protocol or decoding date and time information and provide a timedelta sensor.

Support for the Meinberg Standard Time String: msts(4)

A while ago, Maurice Janssen (maurice@z74.net) sent me a modification of the nmea(4) line discipline to support the Meinberg Standard Time String format. With only a few changes, nmea(4) was turned into the msts(4) line discipline to support Meinberg's serial data format that can be emitted by all their radio clocks. I modified the code a bit, added a manual page, and added the bits needed to attach msts(4) to a tty to the ldattach(8) command. The result is that OpenBSD now has support for virtually any Meinberg radio-clock ever built.

Simulating GPIO Pins

I am currently writing a control and monitoring software system that makes use of GPIO pins. Since I was at the CCC congress in Berlin I did only have my laptop and no real GPIO hardware...

With only a laptop it's a bit hard to write GPIO software, since laptops usually don't have any GPIO pins. So what I needed to test my new software was either a real device (out of reach) or... writing a simulator.

<Nick> What is a GPIO Simulator?
<kettenis> You write to a pin and nothing happens...

Decoding the DCF77 and HBG Time Signal Stations Using OpenBSD

Marc Balmer , The OpenBSD Project

Copyright (C) 2006 Marc Balmer

Every computer is equipped with at least a clock chip or a general purpose device to provide a timer function. While these timers are certainly precise enough for measuring relatively short periods of time, they are not well suited for keeping the correct time and date over a longer period, since almost every chip drifts by a few seconds per day. Even so called real-time clocks only approximately meet the real time.

Time signal stations can be a solution to this problem as they emit very precise time information using specifically modulated radio frequencies. Time signal stations are available in many countries; while the coding schemes vary from time signal station to time signal station, the decoding principles are similar.

Syndicate content