Eib4BSD
FreeBSD kernel driver to access the EIB BCU1

FreeBSD daemon

Introduction

The European Installation Bus is a system for home controlling and automation. A bus coupling unit (BCU1) is in most cases the base for a RS-232 interface to a computer system. Due to very restrict timing constraints the low level communication protocol can not be handled in userland applications.

A FreeBSD kernel driver has been developed to access the BCU1 (External Physical Interface Type 16). It was influenced heavily by the open source Linux Device Driver for the European Installation Bus and shares the same device (userland) API.


Status

Works stable on FreeBSD 6/7, was used for several years on FreeBSD 4.2.

News

2007-11-16
eib4bsd for FreeBSD-7 available
2006-02-22
eib4bsd for FreeBSD-5/6 available
2005-10-02
development of driver for FreeBSD-5/6/7 started
2004-10-31
after 2 years usage and no changes public download possible
2002-10-05
1st bus access

Documentation

There is no much documentation. Important information about resource assignment is in eib(4) manual page in the port for FreeBSD versions 5.x and later.

A good introduction is in the diploma thesis of Bernd Thallner, author of the Linux device driver (see links)

History

In spring 2002 I started a survey on accessing the EIB under FreeBSD. Unfortunately I didn't found any solution, but a device driver for Linux. I contacted the author and started the port. I had success in creating a loadable kernel module for FreeBSD but shortly after I had no time to continue. In autumn 2002 I tried to continue, but I felt it was too difficult to port the several Linux APIs for timer access, locking, device interfaces and so on. So I made a break and started again with an empty device driver skeleton. First I tested the interrupt handling and later I implemented the interface protocol. In opposite to the Linux driver there is no state machine used at this time.

The Linux device driver source code was used to start the FreeBSD port and was a very useful help in further development, but the current kernel driver does not contain any parts of it.

In October 2002 after a lot of debugging and testing the 1st bus access was possible.

In October 2004 a made a package quick and dirty ready for download. The code has still no good quality, but was sufficient for daily usage for 2 years. ;-)

In autumn 2005 the version for FreeBSD 6 was finished and went into "production".

How to get

Download the sources for FreeBSD 4.x eib4bsd_0.17.tgz.

For FreeBSD 6.x/7.x/8.x is a port available. It should compile and run under FreeBSD 5.x as well, but this is not tested yet.

Links

Acknowledgements

Copyright

Copyright © 2002-2008 Frank Behrens, Germany
All rights reserved.
The FreeBSD license applies to this software:

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 


© Frank Behrens 2008-02-19

BSD Daemon Copyright 1988 by Marshall Kirk McKusick. All Rights Reserved.

Valid HTML 4.01!