Hier die komplette Liste aller Operationen die ausgeführt werden müssen um eine funktionsfähige CCU2 auf einem Raspberry zum Laufen zu bekommen :
Ermitteln der Datenträgerbezeichnung der SD-Karte
# Die folgenden Operationen wurden auf einem LINUX Rechner durchgeführt (installiert war Debian)
# ls -la /dev/sd*
brw-rw---T 1 root disk 8, 0 Aug 5 10:29 /dev/sda
brw-rw---T 1 root disk 8, 1 Aug 5 10:29 /dev/sda1
brw-rw---T 1 root disk 8, 2 Aug 5 10:29 /dev/sda2
brw-rw---T 1 root disk 8, 5 Aug 5 10:29 /dev/sda5
brw-rw---T 1 root disk 8, 6 Aug 5 10:29 /dev/sda6
brw-rw---T 1 root disk 8, 7 Aug 5 10:29 /dev/sda7
brw-rw---T 1 root disk 8, 8 Aug 5 10:29 /dev/sda8
brw-rw---T 1 root disk 8, 9 Aug 5 10:29 /dev/sda9
brw-rw---T 1 root floppy 8, 16 Aug 5 10:29 /dev/sdb
brw-rw---T 1 root floppy 8, 32 Aug 5 10:29 /dev/sdc
brw-rw---T 1 root floppy 8, 33 Aug 5 10:29 /dev/sdc1
Wechseldatenträger werden mit "floppy" gekennzeichnet.
Auf "/dev/sdc" existiert eine Partition "/dev/sdc1"
fdisk starten und die Partitionstabelle der SD-Karte anzeigen:
# fdisk /dev/sdc
Command (m for help):p
Disk /dev/sdc: 1977 MB, 1977614336 bytes
61 heads, 62 sectors/track, 1021 cylinders, total 3862528 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: 0x00000000
Ggfs. vorhandene Partitionen (in diesem Beispiel 4) löschen:
Command (m for help):d
Partition number (1-4):1
Command (m for help):d
Partition number (1-4):2
Command (m for help):d
Partition number (1-4):3
Command (m for help):d
Partition number (1-4):4
Änderungen speichern:
Command (m for help):w
fdisk schreibt die Änderungen und wird daraufhin beendet.
Berechnen der Anzahl der Zylinder:
Größe des Datenträgers in Bytes / 255 / 63 / 512
Beispiel: 1977614336 / 255 / 63 / 512 = 240
Geometrie der SD-Karte festlegen und 1. Partition einrichten:
# fdisk /dev/sdc
Command (m for help): x
Expert command (m for help): h
Number of heads (1-256, default 61): 255
Expert command (m for help): s
Number of sectors (1-63, default 62): 63
Expert command (m for help): c
Number of cylinders (1-1048576, default 1021): 240
Expert command (m for help): r
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-3862392, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-3862392, default 3862392): +75M
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 1
Changed system type of partition 1 to 1 (FAT12)
Command (m for help): c
DOS Compatibility flag is set (DEPRECATED!)
Command (m for help): a
Partition number (1-4): 1
Command (m for help): w
Den restlichen Speicherbereich der SD-Karte als zweite Partition einrichten:
# fdisk /dev/sdc
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (1-4, default 2): 2
First sector (155648-3862392, default 155648): 155648
Last sector, +sectors or +size{K,M,G} (155648-3862392, default 3862392): 3862527
Command (m for help): p
Disk /dev/sdc: 1977 MB, 1977614336 bytes
176 heads, 38 sectors/track, 577 cylinders, total 3862528 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: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdc1 * 2048 155647 76800 1 FAT12
/dev/sdc2 155648 3862527 1853440 83 Linux
Command (m for help): w
Partitionen der SD-Karte formatieren:
# mkfs.msdos -F 32 /dev/sdc1 -n BOOT
# mkfs.ext4 /dev/sdc2
Das Vorbereiten der SD-Karte ist damit abgeschlossen!
ANLEITUNG VON "IRINAMUELLER" MIT KORREKTUREN VON "PAULG4H":
(Datenträgerbezeichnung der SD-Karte ggfs. anpassen!)
# mkdir -p coc
# mkdir -p /media/BOOT
# mkdir -p /media/rootfs
# mkdir -p /media/ubi
# cd coc
# wget http://files.busware.de/RPi/kernel+boot+modules-3.6.11-busware.tar.gz
# tar -C ./ -xzvf kernel+boot+modules-3.6.11-busware.tar.gz
# mount /dev/sdc1 /media/BOOT/
# mount /dev/sdc2 /media/rootfs/
# cd boot
# cp * /media/BOOT/
mtd-utils installieren, wenn noch nicht geschehen
# apt-get install mtd-utils
# cd ~
AB HIER NUR WEITER, WENN IHR EINE CCU2 HABT!!!
weitere Infos zu den Befehlen hier: http://pjankows.blogspot.de/2012/01/how-to-mount-ubi-image.html und http://www.linux-mtd.infradead.org/faq/ubi.html
# wget http://www.eq-3.de/Downloads/Software/HM-CCU2-Firmware_Updates/HM-CCU2-2.3.15.tar.gz
# tar -xzvf HM-CCU2-2.3.15.tar.gz
# modprobe nandsim first_id_byte=0x20 second_id_byte=0xaa third_id_byte=0x00 fourth_id_byte=0x15
# ubiformat /dev/mtd0 -f rootfs.ubi -O 2048
# modprobe ubi
# ubiattach /dev/ubi_ctrl -m 0 -O 2048
# mkdir -p /media/ubi
# mount -t ubifs ubi0:root /media/ubi
# cd /media/ubi
# vi /media/ubi/etc/inittab
jetzt die Zeile 'ttyGS0::respawn:/sbin/getty -L ttyGS0 115200 vt100 # USB SERIAL' suchen und mit dem Cursor auf das erste Zeichen gehen, i drücken und mit einer # auskommentieren, dann ESC drücken und :wq
Kopieren des CCU2 Images auf die SDKarte
# cp -Rav /media/ubi/* /media/rootfs/
# umount /media/BOOT/
# umount /media/rootfs/
Die SD-Karte kann nun in den Raspberry Pi gesteckt und dieser neu gebootet werden.
Um das Wiederherstellen von CCU-Backups zu ermöglichen müssen an der Installation noch Anpassungen vorgenommen werden.
Dazu verbindet man sich über SSH mit dem Rasperry Pi:
IP: <beim Bootvorgang ablesen>
Benutzername: root
Passwort: MuZhlo9n%8!G
Um die Anpassungen vorzunehmen werden folgende Befehle markiert und per Rechtsklick in das Fenster der SSH-Session eingefügt.
(den CR der leztzten Zeile mit kopieren!)
#/etc/inittab
sed -i 's/ttyGS0::respawn:\/sbin\/getty -L ttyGS0 115200 vt100 # USB SERIAL/#ttyGS0::respawn:\/sbin\/getty -L ttyGS0 115200 vt100 # USB SERIAL/g' /etc/inittab
sed -i 's/ttyAMA0::respawn:\/sbin\/getty -L ttyAMA0 115200 vt100 # GENERIC_SERIAL/#ttyAMA0::respawn:\/sbin\/getty -L ttyAMA0 115200 vt100 # GENERIC_SERIAL/g' /etc/inittab
sed -i 's/::restart:\/bin\/update_firmware_run/#::restart:\/bin\/update_firmware_run/g' /etc/inittab
#/etc/init.d/S00eQ3SystemStart
sed -i 's/ echo 255 > \/sys\/class\/leds\/power\/brightness/# echo 255 > \/sys\/class\/leds\/power\/brightness/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/ echo default-on > \/sys\/class\/leds\/power\/trigger/# echo default-on > \/sys\/class\/leds\/power\/trigger/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/ echo none > \/sys\/class\/leds\/internet\/trigger/# echo none > \/sys\/class\/leds\/internet\/trigger/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/ echo timer > \/sys\/class\/leds\/info\/trigger/# echo timer > \/sys\/class\/leds\/info\/trigger/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/ echo 255 > \/sys\/class\/leds\/info\/brightness/# echo 255 > \/sys\/class\/leds\/info\/brightness/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/ echo 100 > \/sys\/class\/leds\/info\/delay_off/# echo 100 > \/sys\/class\/leds\/info\/delay_off/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/ echo 100 > \/sys\/class\/leds\/info\/delay_on/# echo 100 > \/sys\/class\/leds\/info\/delay_on/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/^ / /g' /etc/init.d/S00eQ3SystemStart
sed -i 's/^ modprobe spidev/# modprobe spidev/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/^ modprobe ic200_spi/# modprobe ic200_spi/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/^ modprobe spi_eq3_gpio/# modprobe spi_eq3_gpio/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/^ modprobe spi_bitbang/# modprobe spi_bitbang/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/^ mknod spidev0.0 c 153 0/# mknod spidev0.0 c 153 0/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/^ modprobe gpio-keys/# modprobe gpio-keys/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/^ modprobe fsl_usb2_udc.ko/# modprobe fsl_usb2_udc.ko/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/^ if grep -q "eQ3Mode=production" \/proc\/cmdline ; then/# if grep -q "eQ3Mode=production" \/proc\/cmdline ; then/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/^ modprobe g_multi luns=1/# modprobe g_multi luns=1/g' /etc/init.d/S00eQ3SystemStart
sed -i '/iSerialNumber="$SERIAL"/{ N; s/iSerialNumber="$SERIAL"
fi/iSerialNumber="$SERIAL"
# fi/ }' /etc/init.d/S00eQ3SystemStart
sed -i 's/^ modprobe ehci-hcd/# modprobe ehci-hcd/g' /etc/init.d/S00eQ3SystemStart
sed -i 's/^ \/bin\/update_firmware_pre/# \/bin\/update_firmware_pre/g' /etc/init.d/S00eQ3SystemStart
#/etc/init.d/40UsbNetwork
mv /etc/init.d/S40UsbNetwork /etc/init.d/_40UsbNetwork
#/etc/init.d/S50eq3configd
sed -i 's/ / /g' /etc/init.d/S50eq3configd
sed -i 's/ radio_mac=$(cat \/sys\/module\/plat_eq3ccu2\/parameters\/radio_mac)/ sss=`grep Serial \/proc\/cpuinfo | cut -d" " -f2`
pp5=`expr length $sss - 5`
pp6=`expr length $sss - 6`
radio_mac=0x${sss:$pp6}/g' /etc/init.d/S50eq3configd
sed -i 's/board_serial=$(cat \/sys\/module\/plat_eq3ccu2\/parameters\/board_serial)/board_serial=`printf "RPI%07d" 0x${sss:$pp5}`/g' /etc/init.d/S50eq3configd
#/etc/init.d/S60rfd
sed -i 's/^ / /g' /etc/init.d/S60rfd
sed -i 's/^ update/# update/g' /etc/init.d/S60rfd
#/etc/init.d/S99eQ3SystemStarted
sed -i 's/^ / /g' /etc/init.d/S99eQ3SystemStarted
sed -i 's/^SERIAL=$(cat \/sys\/module\/plat_eq3ccu2\/parameters\/board_serial)/#SERIAL=$(cat \/sys\/module\/plat_eq3ccu2\/parameters\/board_serial)/g' /etc/init.d/S99eQ3SystemStarted
sed -i 's/^ echo 255 > \/sys\/class\/leds\/power\/brightness/# echo 255 > \/sys\/class\/leds\/power\/brightness/g' /etc/init.d/S99eQ3SystemStarted
sed -i 's/^ echo default-on > \/sys\/class\/leds\/power\/trigger/# echo default-on > \/sys\/class\/leds\/power\/trigger/g' /etc/init.d/S99eQ3SystemStarted
sed -i 's/^ echo none > \/sys\/class\/leds\/internet\/trigger/# echo none > \/sys\/class\/leds\/internet\/trigger/g' /etc/init.d/S99eQ3SystemStarted
sed -i 's/^ echo none > \/sys\/class\/leds\/info\/trigger/# echo none > \/sys\/class\/leds\/info\/trigger/g' /etc/init.d/S99eQ3SystemStarted
sed -i 's/^ \/bin\/hss_led 2>&1 > \/dev\/null &/# \/bin\/hss_led 2>&1 > \/dev\/null &/g' /etc/init.d/S99eQ3SystemStarted
#/www/api/methods/bidcosrf/setconfiguration-rf.tcl
sed -i 's/^puts $fd "\\\[Interface 0\\\]"/#puts $fd "\\\[Interface 0\\\]"/g' /www/api/methods/bidcosrf/setconfiguration-rf.tcl
sed -i 's/^puts $fd "Type = CCU2"/#puts $fd "Type = CCU2"/g' /www/api/methods/bidcosrf/setconfiguration-rf.tcl
sed -i 's/^puts $fd "Description = CCU2-Coprocessor"/#puts $fd "Description = CCU2-Coprocessor"/g' /www/api/methods/bidcosrf/setconfiguration-rf.tcl
sed -i 's/^puts $fd "ComPortFile = \/dev\/ttyAPP0"/#puts $fd "ComPortFile = \/dev\/ttyAPP0"/g' /www/api/methods/bidcosrf/setconfiguration-rf.tcl
sed -i 's/^puts $fd "AccessFile = \/dev\/null/#puts $fd "AccessFile = \/dev\/null/g' /www/api/methods/bidcosrf/setconfiguration-rf.tcl
sed -i 's/^puts $fd "ResetFile = \/dev\/ccu2-ic200"/#puts $fd "ResetFile = \/dev\/ccu2-ic200"/g' /www/api/methods/bidcosrf/setconfiguration-rf.tcl
sed -i 's/^puts $fd ""/#""/g' /www/api/methods/bidcosrf/setconfiguration-rf.tcl
#/etc/config_templates/netconfig
sed -i 's/^HOSTNAME=homematic-ccu2/#HOSTNAME=homematic-rcu/g' /etc/config_templates/netconfig
#/bin/update_firmware_run
sed -i 's/^\/update_script CCU2/\/update_script RCU/g' /bin/update_firmware_run
#/www/config/cp_security.cgi
sed -i 's/exec umount \/usr\/local/#exec umount \/usr\/local/g' /www/config/cp_security.cgi
sed -i 's/exec \/usr\/sbin\/ubidetach -p \/dev\/mtd6/#exec \/usr\/sbin\/ubidetach -p \/dev\/mtd6/g' /www/config/cp_security.cgi
sed -i 's/exec \/usr\/sbin\/ubiformat \/dev\/mtd6 -y/#exec \/usr\/sbin\/ubiformat \/dev\/mtd6 -y/g' /www/config/cp_security.cgi
sed -i 's/exec \/usr\/sbin\/ubiattach -p \/dev\/mtd6/#exec \/usr\/sbin\/ubiattach -p \/dev\/mtd6/g' /www/config/cp_security.cgi
sed -i 's/exec \/usr\/sbin\/ubimkvol \/dev\/ubi1 -N user -m/#exec \/usr\/sbin\/ubimkvol \/dev\/ubi1 -N user -m/g' /www/config/cp_security.cgi
sed -i 's/exec mount \/usr\/local/#exec mount \/usr\/local
exec rm -rf \/usr\/local\/*/g' /www/config/cp_security.cgi
sed -i 's/exec mount -o remount,ro \/usr\/local/#exec mount -o remount,ro \/usr\/local/g' /www/config/cp_security.cgi
sed -i 's/exec mount -o remount,rw \/usr\/local/#exec mount -o remount,rw \/usr\/local/g' /www/config/cp_security.cgi
Herzlichen Dank an unseren Techniker der das ganze für mich zusammengestellt hat sowie an IRINA MUELLER, PAULG4H und MULE aus dem FHZ Forum : http://homematic-forum.de/forum/viewtopic.php?f=26&t=13303&p=107260#p107260
PS. Als Hardware benötigt man neben dem Raspberry und der SD Karte auch mindestens einen Homematic LAN Adapter