Menu

Tree [63b3c2] bcu1driver-0.2.6.6.1 /
 History

HTTPS access


File Date Author Commit
 Makefile 2007-01-03 Martin Kögler Martin Kögler [ad0f25] Use eib-pei16
 README 2010-08-27 Martin Koegler Martin Koegler [798299] Build fix
 eib-8250.c 2010-08-27 Martin Koegler Martin Koegler [798299] Build fix
 eib-common.c 2010-12-07 Martin Koegler Martin Koegler [63b3c2] Build fixes for newer kernel
 eib-common.h 2008-03-08 Martin Koegler Martin Koegler [6d680f] Update Copyright
 eib-pei16.c 2010-12-07 Martin Koegler Martin Koegler [63b3c2] Build fixes for newer kernel
 eib-pxa.c 2010-08-27 Martin Koegler Martin Koegler [798299] Build fix
 eib.h 2005-04-21 mkoegler mkoegler [00a788] Überarbeitet
 eib.rules 2006-01-17 mkoegler mkoegler [bb242d] udev Rules file

Read Me

BCU 1 driver for Linux 2.6
--------------------------

Supported Linux versions: 2.6.14 - 2.6.35
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
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.