Category Archives: Linux

Stuff about Linux

EIB/KNX: Upstart startup script for eibd

Hi,

as a follow up of the 2 previous posts(compiling eibd and SysV startup script) here is a sample Upstart script for the eibd daemon. Some Ubuntu based distributions uses the upstart start mechanism.

Login as root at your machine where eibd is installed and add a user under  which the eibd process should run.

useradd eibd -s /bin/false -U -M

Create the upstart conf file /etc/init/eibd.conf

#######################################################################
# eibd - startscript for the eibd daemon
description "eibd daemon Upstart script"
author "Michael Albert info@michlstechblog.info"

start on (filesystem or resume)
stop on (suspend or runlevel [!2345])
expect fork
normal exit 0

pre-start script
route add 224.0.23.12 dev eth0 2>&1 > /dev/null || true
end script

script
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/eibd
DAEMON_OPTS="-d -D -T -R -S -i -u --eibaddr=1.1.128 ipt:192.168.56.1"
exec start-stop-daemon --start -c eibd --exec $DAEMON -- $DAEMON_OPTS
end script

post-stop script
route delete 224.0.23.12 2>&1 > /dev/null || true
end script
#######################################################################

Continue reading EIB/KNX: Upstart startup script for eibd

KNX/EIB: System V startscript for eibd

Hi,

in a previous post I have descriped how to compile the eibd daemon for the Raspberry PI. Here is a sample debian startscript to start eibd at system boot.

Login as root at your EIBd box and  created a user under which the daemon should run.

useradd eibd -s /bin/false -U -M

Create the script eibd in /etc/init.d
Continue reading KNX/EIB: System V startscript for eibd

Raspberry PI: Cross compiling the KNX/EIB eibd

Hello,

if you want to use the Raspberry PI as a EIB/KNX Gateway or Tunnel you must compile the eibd sources from the scratch, because no precomplied binaries are currently available.

There are two ways to build the eibd. Compiling directly on the Raspberry PI or you compile it on your i386 PC. The last option means you have to “cross” compile the sources, because the RapsberryPi has a different processor architecture than your Intel/AMD PC. Here are the steps to build the eibd on an i386 using a crosscompiler for the ARM architucture.

I verfied the steps at a minimal debian system in a VirtualBox. So it is reproducible:-)

Install all necessary packages. Login as root

apt-get -y install git rsync cmake make gcc g++ binutils automake flex bison patch
Now you can Login as a “normal” user. Define a working folder
export BUILD_PATH=~/eibdbuild
mkdir -p $BUILD_PATH
cd $BUILD_PATH
We need a cross compiler respectively the toolchain for the arm1176jzf arm processor.
Continue reading Raspberry PI: Cross compiling the KNX/EIB eibd

Linux: Multiple ways to mount a partition in a disk image file

Hi,

there are several ways to mount a partition which is within a diskimage file created for example with dd.

The first and hard way  is to determine the offset of the partition start sector and mounting the disk by specifing the offset as parameter for the loop device.

You can use the  file or fdisk command to examine the file.
root@ubdev:/mnt/RaspberryPI # file 2012-07-15-wheezy-raspbian.img
2012-07-15-wheezy-raspbian.img: x86 boot sector; partition 1: ID=0xc, starthead 130, startsector 8192, 114688 sectors; partition 2: ID=0x83, starthead 165, startsector 122880, 3665920 sectors, code offset 0xb8

or

root@ubdev:/mnt/RaspberryPI # fdisk 2012-07-15-wheezy-raspbian.img

Command (m for help): p

Disk 2012-07-15-wheezy-raspbian.img: 1939 MB, 1939865600 bytes
255 heads, 63 sectors/track, 235 cylinders, total 3788800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000714e9

Device Boot                               Start         End      Blocks   Id  System
2012-07-15-wheezy-raspbian.img1            8192      122879       57344    c  W95 FAT32 (LBA)
2012-07-15-wheezy-raspbian.img2          122880     3788799     1832960   83  Linux

For example the startsector of partition 2 is 122880,  this multiplied with the 512 bytes per sector is the byte offset of the partition. 122880*512=62914560.
Continue reading Linux: Multiple ways to mount a partition in a disk image file

Linux: Automount Windows or Samba shares

Hi,

today I will explain how to easy it is to automatically mount a windows share on linux.

The following packages are necessary: autofs, cifs/samba client tools

In this example I use a debian linux system.

root@dev # apt-get install autofs cifs-utils

edit the auto.master file with your favorite editor:

root@dev # vi /etc/auto.master

add the following line

/media/cifs /etc/auto.cifs --ghost

  • /media/cifs – is the root directory where the mount points are created (this is not the mount point itself!), the directory must exist.
  • /etc/auto.cifs – the definition file of the mount points
  • --ghost This option will create the mount point permanently, even the share isn’t mounted (there are doubledashes before ghost:-))

Create a new file /etc/auto.cifs and add your share definition. In this example the Windows computer is mediaserver with the share multimedia$ (Note: you have to quote the $ character in auto.cifs file or you got  cifs_mount failed w/return code = -6). The share should be mounted as user michl which has UID 1000 and GID 1000. Insert the following line to /etc/auto.cifs:

root@dev # touch /etc/auto.cifs

root@dev # vi /etc/auto.cifs
Continue reading Linux: Automount Windows or Samba shares