Vorstellung Homerserver auf Banana Pi Basis

Begonnen von cerberus, 14 November 2014, 09:31:26

Vorheriges Thema - Nächstes Thema

Waldmensch

#15
Etwas seltsam sehen die Rechte der ttyS* aus. ttyS0 ist in einer anderen Gruppe. Irgendwie bekommt ttyS2 immer ein neues Datum wenn ich fhem starte. fhem läuft unter root (htop) wenn ich das richtig sehe und sollte ja eigentlich zugreifen dürfen. Wie kann ich aus fhem ein paar mehr Meldungen rauskitzeln als dieses "Cannot init ". Selbst mit verbose 5 kommt nur das:

2014.12.21 13:29:55 5: Cmd: >define COC CUL /dev/ttyS2@38400 1234<
2014.12.21 13:29:55 5: Loading ./FHEM/00_CUL.pm
2014.12.21 13:29:55 3: Opening COC device /dev/ttyS2
2014.12.21 13:29:55 3: Setting COC baudrate to 38400
2014.12.21 13:29:55 3: COC device opened
2014.12.21 13:29:55 5: SW: V
2014.12.21 13:29:58 5: SW: V
2014.12.21 13:30:01 5: SW: V
2014.12.21 13:30:04 1: Cannot init /dev/ttyS2, ignoring it (COC)


stty bringt das (9600???) - wenn ich im define 9600 setze klappt es aber auch nicht
root@bananapi ~ # stty -F /dev/ttyS2
speed 9600 baud; line = 0;
kill = ^H; min = 100; time = 2;
-icrnl -imaxbel
-opost -onlcr
-isig -icanon -echo


root@bananapi ~ # ls -l /dev/ttyS*
crw-rw---- 1 root tty     4, 64 Jan  1  2010 /dev/ttyS0
crw-rw---T 1 root dialout 4, 65 Jan  1  2010 /dev/ttyS1
crw-rw---T 1 root dialout 4, 74 Jan  1  2010 /dev/ttyS10
crw-rw---T 1 root dialout 4, 75 Jan  1  2010 /dev/ttyS11
crw-rw---T 1 root dialout 4, 76 Jan  1  2010 /dev/ttyS12
crw-rw---T 1 root dialout 4, 77 Jan  1  2010 /dev/ttyS13
crw-rw---T 1 root dialout 4, 78 Jan  1  2010 /dev/ttyS14
crw-rw---T 1 root dialout 4, 79 Jan  1  2010 /dev/ttyS15
crw-rw---T 1 root dialout 4, 80 Jan  1  2010 /dev/ttyS16
crw-rw---T 1 root dialout 4, 81 Jan  1  2010 /dev/ttyS17
crw-rw---T 1 root dialout 4, 82 Jan  1  2010 /dev/ttyS18
crw-rw---T 1 root dialout 4, 83 Jan  1  2010 /dev/ttyS19
crw-rw---T 1 root dialout 4, 66 Dec 21 02:01 /dev/ttyS2
crw-rw---T 1 root dialout 4, 84 Jan  1  2010 /dev/ttyS20
crw-rw---T 1 root dialout 4, 85 Jan  1  2010 /dev/ttyS21
crw-rw---T 1 root dialout 4, 86 Jan  1  2010 /dev/ttyS22


Hier noch was aus dem Banana Log
root@bananapi ~ # dmesg | grep ttyS
[    0.000000] Kernel command line: console=ttyS0,115200 console=tty0 sunxi_g2d_mem_reserve=0 sunxi_ve_mem_reserve=0 disp.screen0_output_mode=EDID:1280x720p50 hdmi.audio=EDID:0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
[    0.654588] sunxi-uart.0: ttyS0 at MMIO 0x1c28000 (irq = 33) is a U6_16550A
[    1.259811] console [ttyS0] enabled
[    1.300026] sunxi-uart.2: ttyS1 at MMIO 0x1c28800 (irq = 35) is a U6_16550A
[    1.343651] sunxi-uart.3: ttyS2 at MMIO 0x1c28c00 (irq = 36) is a U6_16550A
[    1.387248] sunxi-uart.7: ttyS3 at MMIO 0x1c29c00 (irq = 52) is a U6_16550A
root@bananapi ~ #


Nach einiger googelei habe ich einblick in die script.bin bekommen. Sieht eigentlich eingeschaltet aus?!

[uart_para3]
uart_used = 1
uart_port = 3
uart_type = 2
uart_tx = port:PH00<4><1><default><default>
uart_rx = port:PH01<4><1><default><default>

noice

so ..
also ich musste meien UART3 schnittstelle freischalten. Allerdings benutze ich ein anderes Image.
das ganze habe ich mit bin2fex und fex2bin machen müssen
root@bananapi:/boot# bin2fex  bananapi.bin bananapi.fex

danach muss die bananapi.fex editiert werden:
[uart_para3]
uart_used = 0 <--- auf 1 setzen ..


dann das ganze wieder umgekert in .bin zurückschreiben
root@bananapi:/boot# fex2bin  bananapi.fex bananapi.bin

ups seh gerade du nutz ja ttyS2 .. bei mir läuft das unter ttyS1

bin mir jetzt nicht sicher unter welche UART der SCC läuft da es ja bei mir das addon Board von Locutus ist



BananaPI, RaspberryPi+AddonBoard,HMLAN,  miniCUL 433,nanoCUL 433,nanoCUL868,FHEMduino 433, Jeelink clone diverse Homematic, FS20, MAX, TFA und IT Komponenten.
10" Tablet mit andFhem, Daitem D14000

Waldmensch

ttyS2 gibt busware vor. Der para3 ist bei mir bereits eingeschaltet  :-\

[uart_para2]
uart_used = 1
uart_port = 2
uart_type = 4
uart_tx = port:PI18<3><1><default><default>
uart_rx = port:PI19<3><1><default><default>
uart_rts = port:PI16<3><1><default><default>
uart_cts = port:PI17<3><1><default><default>

[uart_para3]
uart_used = 1
uart_port = 3
uart_type = 2
uart_tx = port:PH00<4><1><default><default>
uart_rx = port:PH01<4><1><default><default>

[uart_para4]
uart_used = 0
uart_port = 4
uart_type = 2
uart_tx = port:PH04<4><1><default><default>
uart_rx = port:PH05<4><1><default><default>

[uart_para5]
uart_used = 0
uart_port = 5
uart_type = 2
uart_tx = port:PH06<4><1><default><default>
uart_rx = port:PH07<4><1><default><default>

[uart_para6]
uart_used = 0
uart_port = 6

noice

BananaPI, RaspberryPi+AddonBoard,HMLAN,  miniCUL 433,nanoCUL 433,nanoCUL868,FHEMduino 433, Jeelink clone diverse Homematic, FS20, MAX, TFA und IT Komponenten.
10" Tablet mit andFhem, Daitem D14000

Waldmensch

Joa, ich habe schon alle durchprobiert. Ich komm mit der Pin Bezeichnung in der Script.bin nicht wirklich klar. Sond denn PH00 und PH01 die Pins, die COC oder SCC benutzen? Laut dieser Seite wären das die physischen Pins 8 und 10

RPi: http://www.elektronik-kompendium.de/sites/raspberry-pi/1907101.htm
BPi: https://microdotup.wordpress.com/2014/07/04/87/

Sollte gleich sein und passen.

Laut dem hier ist es auch aktiv und laut bootlog liegt es auf ttyS2

[uart_para3]
uart_used = 1
uart_port = 3
uart_type = 2
uart_tx = port:PH00<4><1><default><default>
uart_rx = port:PH01<4><1><default><default>


screen /dev/ttyS2 38400 bringt mir auch nur eine leer konsole die auf nix reagiert. Ich bin so langsam am verzweifeln

noice

jetzt steh ich auch etwas aufm schlauch .. mal ein anderes Image probiert?

die Anleitung von Busware hast du aber schon gemacht ... ?
BananaPI, RaspberryPi+AddonBoard,HMLAN,  miniCUL 433,nanoCUL 433,nanoCUL868,FHEMduino 433, Jeelink clone diverse Homematic, FS20, MAX, TFA und IT Komponenten.
10" Tablet mit andFhem, Daitem D14000

Waldmensch

Naja, was heißt Anleitung? Die GPIO 17+18 fahre ich in der rc.local ab. COC bestätigt den Reset auch mit 1x kurz aufblitzen. Verweise auf ttyAMA0 in der inittab gibt es nicht - wäre ja auch quatsch, da es den Anschluß auf dem BPi nicht gibt. Eine cmdline.txt gibt es auf dem BPi nicht. Mehr Anleitung ist ja nicht auf Busware. Die Firmware ist auf dem COC ja bereits vorhanden. Steck ich den COC auf den alten RPi funktioniert FHEM dort auf Anhieb.

Neben Bananian habe ich auch Raspbian getestet (allerdings nicht so intensiv wie Bananian)

Es gibt eine uEnv.txt (vermutlich als ersatz für die cmdline.txt) Aber auch da wird ttyS2 nicht irgendwie blockiert
bootargs=console=ttyS0,115200 console=tty0 sunxi_g2d_mem_reserve=0 sunxi_ve_mem_reserve=0 disp.screen0_output_mode=EDID:1280x720p50 hdmi.audio=EDID:0 c$
aload_script=fatload mmc 0 0x43000000 script.bin;
aload_kernel=fatload mmc 0 0x48000000 uImage; bootm 0x48000000;
uenvcmd=run aload_script aload_kernel

noice

#22
http://www.igorpecovnik.com/2014/09/07/banana-pi-debian-sd-image/ ich benutze dieses image... aber nur weil da die Display Treiber im Kernel sind
Evtl kann cerberus da weiter helfen... ich bin da leider raus...

Sollte mir noch was einfallen poste ich es hier
BananaPI, RaspberryPi+AddonBoard,HMLAN,  miniCUL 433,nanoCUL 433,nanoCUL868,FHEMduino 433, Jeelink clone diverse Homematic, FS20, MAX, TFA und IT Komponenten.
10" Tablet mit andFhem, Daitem D14000

Waldmensch

#23
Ich habe das COC grad wieder auf den RPI gesteckt. Dabei fiel mir auf, das der COC nach dem Init schon arbeitet (ich hatte in FHEM noch ttyS2 eingestellt, was es auf dem RPI nicht gibt) Also geht scheinbar der Reset schief und COC initialisiert sich gar nicht auf dem BPi

An welcher stelle führst Du den init (echo pin 17/18) durch? Bei mir ist das in der rc.local, bevor fhem gestartet wird. Ist das eventuell zu früh oder passt da was nicht?


Kann es sein, das der UART2 die pins 17/18 belegt und diese dann nicht per echo gesetzt werden können bzw. müll bei rauskommt? Wobei ich nicht weiß ob PI18 dem /sys/class/gpio/gpio18 entspricht

[uart_para2]
uart_used = 1
uart_port = 2
uart_type = 4
uart_tx = port:PI18<3><1><default><default>
uart_rx = port:PI19<3><1><default><default>
uart_rts = port:PI16<3><1><default><default>
uart_cts = port:PI17<3><1><default><default>

noice

#24
den benötige ich normal nicht dem SCM.
Ich hatte aber irgendwo hier im forum gelesen das das jemand geändert hat ... also die startreihenfolge

hast du wiringPi installiert?

bekommst du unter fhem ein "opened" vom Cul wenn du das COC nicht installiert hast?
BananaPI, RaspberryPi+AddonBoard,HMLAN,  miniCUL 433,nanoCUL 433,nanoCUL868,FHEMduino 433, Jeelink clone diverse Homematic, FS20, MAX, TFA und IT Komponenten.
10" Tablet mit andFhem, Daitem D14000

Waldmensch

Ja, die wiringPi habe ich installiert, weil ich das gpio readall nicht hatte.

Das opened teste ich morgen - heute ist die Luft raus.

Jedenfalls nehme ich ganz stark an, das das COC nicht resettet wird. Nach einem Reset muß die gelbe LED blinkern wenn Telegramme eingehen. Das COC arbeitet ja quasi autark. Ich habe FHEM auf nem USB Stick, den ich für RPi und BPi gleichermaßen nutzen kann. Ich muß nur das Devive für das COC ändern. Beim Booten des RPi steht das noch auf ttyS2 was auf dem RPi ja fehlschlägt. Trotzdem empfängt das COC munter Telegramme und blitzt vor sich hin. Auf dem BPi ist das nicht so. Dort blitzt beim Reset die led nur kurz auf und dann nichts mehr

Ich habe mir die 17/18 auch mal angeschaut. Der 18er sieht nach dem Reset genauso aus wie der 17 unten

BPi:
root@bananapi /sys/class/gpio/gpio17 # ls -l
total 0
-rw-r--r-- 1 root root 4096 Dec 22 00:02 active_low
lrwxrwxrwx 1 root root    0 Dec 22 00:02 device -> ../../../gpio-sunxi/
-rw-r--r-- 1 root root 4096 Dec 21 23:59 direction
-rw-r--r-- 1 root root 4096 Dec 22 00:02 edge
drwxr-xr-x 2 root root    0 Dec 22 00:02 power/
-rw-r--r-- 1 root root 4096 Dec 22 00:02 pull
lrwxrwxrwx 1 root root    0 Dec 21 23:59 subsystem -> ../../../../../class/gpio/
-rw-r--r-- 1 root root 4096 Dec 21 23:59 uevent
-rw-r--r-- 1 root root 4096 Dec 21 23:59 value
root@bananapi /sys/class/gpio/gpio17 # cat value
1
root@bananapi /sys/class/gpio/gpio17 # cat direction
out


RPi:
root@raspberrypi:~# cd /sys/class/gpio/gpio17
root@raspberrypi:/sys/class/gpio/gpio17# ls -l
total 0
-rwxrwx--- 1 root gpio 4096 Dec 21 23:13 active_low
-rwxrwx--- 1 root gpio 4096 Dec 21 23:13 direction
-rwxrwx--- 1 root gpio 4096 Dec 21 23:13 edge
drwxrwx--- 2 root gpio    0 Dec 21 23:13 power
lrwxrwxrwx 1 root gpio    0 Dec 21 23:13 subsystem -> ../../../../class/gpio
-rwxrwx--- 1 root gpio 4096 Dec 21 23:13 uevent
-rwxrwx--- 1 root gpio 4096 Dec 21 23:13 value
root@raspberrypi:/sys/class/gpio/gpio17# cat direction
out
root@raspberrypi:/sys/class/gpio/gpio17# cat value
1
root@raspberrypi:/sys/class/gpio/gpio17#

noice

Mir fallen da auf Anhieb die Berechtigungen auf ... weiss aber nicht ob es damit zu tun hat
BananaPI, RaspberryPi+AddonBoard,HMLAN,  miniCUL 433,nanoCUL 433,nanoCUL868,FHEMduino 433, Jeelink clone diverse Homematic, FS20, MAX, TFA und IT Komponenten.
10" Tablet mit andFhem, Daitem D14000

noice

ach ähm .. das schon gemacht?

Man muss in der /etc/init.d/fhem unter Start folgendes einfügen.


if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio17/direction
echo 1 > /sys/class/gpio/gpio17/value
BananaPI, RaspberryPi+AddonBoard,HMLAN,  miniCUL 433,nanoCUL 433,nanoCUL868,FHEMduino 433, Jeelink clone diverse Homematic, FS20, MAX, TFA und IT Komponenten.
10" Tablet mit andFhem, Daitem D14000

Waldmensch

Das verstehe ich jetzt nicht. In diesem Block (busware Anleitung) wird doch das gemacht und das steht in der rc.local

echo "resetting 868MHz extension..."
if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi                  <----------------
if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio17/direction                                                                     <----------------
echo out > /sys/class/gpio/gpio18/direction
echo 1 > /sys/class/gpio/gpio18/value
echo 0 > /sys/class/gpio/gpio17/value                                                                              <----------------
sleep 1
echo 1 > /sys/class/gpio/gpio17/value                                                                              <----------------
sleep 1

cerberus

Also meine  /etc/init.d/fhem schaut wie folgt aus.

#!/bin/sh
# description: Start or stop the fhem server
# Added by Alex Peuchert

### BEGIN INIT INFO
# Provides:             fhem.pl
# Required-Start:       $local_fs $remote_fs
# Required-Stop:        $local_fs $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    FHEM server
### END INIT INFO

set -e
cd /opt/fhem
port=7072

case "$1" in
'start')
if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio17/direction
echo 1 > /sys/class/gpio/gpio17/value
        echo "Starting fhem..."
        perl fhem.pl fhem.cfg
        RETVAL=$?
        ;;
'stop')
        echo "Stopping fhem..."
        perl fhem.pl $port "shutdown"
        RETVAL=$?
        ;;
'status')
        cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l`
        if [ "$cnt" -eq "0" ] ; then
                echo "fhem is not running"
        else
                echo "fhem is running"
        fi
        ;;
*)
        echo "Usage: $0 { start | stop | status }"
        RETVAL=1
        ;;
esac
exit $RETVAL
Banana PI mit Bananian + Fhem 5.5, 2x SCC SlowRF/Homematic + RS485 LAN Gateway HMW-LGW-O-DR-GS-EU + RPI2 I2C to 1-Wire Host Adapter for Raspberry Pi