descriptionLinux kernel driver for EIB BCU1 compatible interfaces (PEI16)
homepage URLhttp://www.auto.tuwien.ac.at/~mkoegler/index.php/eibdriver
ownermkoegler@auto.tuwien.ac.at
last changeMon, 9 Nov 2009 18:17:31 +0000 (9 19:17 +0100)
content tags
add:
README
BCU 1 driver for Linux 2.6
--------------------------

Supported Linux versions: 2.6.14 - 2.6.31
Supported Hardware: Any PC with 16550A compatible serial ports (only tested on i386 Linux)

This is a driver to handle the low level protocol (PEI16)
to communicate with a KNX/EIB BCU 1 (or a BCU 2 configured to use PEI16).

It can be used to send/receive EMI 1 messages. 
eibd (part of the BCU SDK, http://www.auto.tuwien.ac.at/~mkoegler/index.php/bcusdk)
provides a high level interface on top of it. Several
existing applications also use this driver directly.

bcu1driver 0.2.6.5.1 is the last version, which supports kernels between
2.6.10 and 2.6.13

Usage:
------

Ensure that the build files of the current kernel are available at 
the default location:
ls -l /lib/modules/`uname -r`/build/

Fedore Core ships them as part of the kernel image, SuSE in the
kernel source packages.

Extract the driver and run
make

Load the driver (as root):
insmod eib-common.ko
insmod eib-8250.ko
insmod eib-pei16.ko

If you are using udev, /dev/eib0 to /dev/eib4 are created automatically.
To grant access to all users, copy eib.rules to the udev rule directory.

If you are not using udev, do the following as root:
mknod /dev/eib0 c `grep "eib" /proc/devices |cut -d' ' -f1` 0
mknod /dev/eib1 c `grep "eib" /proc/devices |cut -d' ' -f1` 1
mknod /dev/eib2 c `grep "eib" /proc/devices |cut -d' ' -f1` 2
mknod /dev/eib3 c `grep "eib" /proc/devices |cut -d' ' -f1` 3

Each device corresponds to a serial port (e.g., /dev/ttyS0 to /dev/eib0).
To use a port, the serial driver must be detached (as root):
setserial /dev/ttyS0 uart none

To start eibd on it, use:
eibd -u bcu1:/dev/eib0

To use different settings (I/O port, IRQ, UART base frequency), echo the new values
to /sys/bus/platform/devices/eib/eib[0-4]/(base|irq|port).
Make sure that you use the correct notation (eg. hex for the port). Read the file
after the change to verify.

The settings become effective at the next open of the device.

Ports:
------
If you are not using a 8250 compatible UART, you must port eib-8250.c
to your UART. There is an (untested) port to the PXA CPU in eib-pxa.c.

----------------------------------------------------------------------

Questions should be directed to the mailing list:
http://lists.sourceforge.net/lists/listinfo/bcusdk-list
List archive:
http://sourceforge.net/mailarchive/forum.php?forum_id=47098

Martin Koegler
mkoegler@auto.tuwien.ac.at
shortlog
2009-11-09 Martin KoeglerAdd support up to 2.6.31master
2009-11-02 Martin KoeglerRoute BCU reset to userspace
2009-02-26 Martin KoeglerUpdate for 2.6.28; hrtimers from 2.6.27
2009-01-27 Martin KoeglerEnhange debug logging
2008-11-24 Martin KoeglerInitial hrtimer code
2008-11-24 Martin KoeglerImplement abstraction layer
2008-10-27 Martin KoeglerUse better time source
2008-10-21 Martin KoeglerRemove support for Linux 2.6.10 to 2.6.13
2008-10-20 Martin KoeglerSupport for Linux 2.6.27
2008-10-16 Martin KoeglerUpdate documenetation
2008-08-19 Martin KoeglerSupport for Kernel 2.6.26
2008-03-08 Martin KoeglerNew Release
2008-03-08 Martin KoeglerUpdate Copyright
2008-03-04 Martin KoeglerLinux 2.6.24
2008-03-04 Martin KoeglerUART porting
2007-02-05 Martin KöglerFix modes
...
heads
14 years ago master