[1] 2 3 4 >>> MLD-5.x / Systems / Raspberry PI / RPI2 und CEC
 

Offline X-99

  • Member
  • **
  • Posts: 64
    • View Profile
RPI2 und CEC
« on: February 20, 2016, 16:51:35 »
Hallo zusammen,

ich habe mir einen Philips LED zugelegt der ja EasylLnk unterstützt. Mit meinem neu aufgesetzten RPI2 geht das auch wunderbar. Allerdings nur ca. 20 min. Dann werden alle Befehle doppelt ausgeführt.

Kann ich das abschalten bzw. korrigieren?

Viele Grüße

Rainer

MLD 5.5 als Server
NUC - als Client mit 5.4

Offline X-99

  • Member
  • **
  • Posts: 64
    • View Profile
RPI2 und CEC
« Reply #1 on: February 21, 2016, 09:48:23 »
Also das mit den doppelten Befehlen hab ich hinbekommen. Ich musste nur den libcec-daemon deaktivieren

siehe hier:

http://minidvblinux.de/community/forum

Was nicht geht: Wenn ich mit der FB des TV den TV ausmache, müsste doch eigentlich auch der RPI in den Suspend gehen, oder? Der bleibt aber an. Damit bleibt auch der Server an, der eigentlich nur an sein sollte, wenn ein Client auf diesen zugreift.

Kann ich das lösen?

Gruß

Rainer
MLD 5.5 als Server
NUC - als Client mit 5.4

Online clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 20313
    • View Profile
    • ClausMuus.de
RPI2 und CEC
« Reply #2 on: February 21, 2016, 11:59:46 »
Hi,

würde der RPI in den suspend gehen, würde er nicht wieder aufwachen, denn das unterstützt der RPI nicht. Was aber von uns unterstützt wird, ist ein pseudo Suspend. Dabei wird lediglich der VDR gestoppt und die DVB Karten werden frei gegeben (um Strom zu sparen). in dem Zustand bekommt dann auch der (VDR) Server den Befehl sich aus zu schalten. Aktiviert wird das durch installation des suspend Paketes. Vorraussetzung ist dann, das der TV das cec Poweroff Signal an den RPI sendet.
Was ist denn der Grund dafür, das der Server an bleibt? Ein mount oder etwas anderes?

Claus
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 5.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 12TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline X-99

  • Member
  • **
  • Posts: 64
    • View Profile
RPI2 und CEC
« Reply #3 on: February 21, 2016, 13:10:12 »
Hallo Claus,

vielen Dank für die Rückmeldung. Beim RPI habe ich suspend.soft eingestellt. Ich habenoch einen zweiten RPI im Einsatz, dort geht es perfekt.Ich denke der tv sendet kein Poweroff Signal. Eingesetllt habe ich das am Philips TV. Es scheint aber nicht zu gehen.....

Das TV Verzeichnis der server wird über fstab gemoutet. Bei den anderen drei Geräten geht das aber wunderbar...

Muss also am TV liegen. Kann ich das im log sehen?

gruss

Rainer
MLD 5.5 als Server
NUC - als Client mit 5.4

Online clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 20313
    • View Profile
    • ClausMuus.de
RPI2 und CEC
« Reply #4 on: February 21, 2016, 13:28:22 »
Du kannst mit dem cec-daemon (ist nen extra Paket) wenn Du den manuell startest irgendwie einstellen, dass dieser Log Meldungen ausgibt. Da lässt sich dann sehen welche CEC Signale an den RPI gesendet werden.

Claus
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 5.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 12TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline TimUx

  • MLD-Tester
  • Expert Member
  • ******
  • Posts: 755
    • View Profile
RPI2 und CEC
« Reply #5 on: February 22, 2016, 10:21:15 »
Hallo zusammen,
es reicht auch aus, den cec-client einfach zu starten und zu beobachten, was dieser so in der Console ausgibt, wenn man wild auf der FB rum drückt.  ;)

Was mich mehr interessieren würde, wie schaltest du den den RPI wieder ein, wenn er im Suspend ist?
Da habe ich schon mehrfach eine Lösung gesucht, welche aktuell mit meinem SAMUNG und Panasonic sauber funktionieren würde.

Aktuell habe ich mir ein workaround in form eines Skriptes geschrieben, welches in kurzen Abständen den Status des TVs über CEC abfragt und dann bei Bedarf den RPI aus dem Suspend raus holt.

Gruß Timo
VDR Server:
- ASUS TROOPER B150 D3 -- Intel i5 6400T -- 8GB RAM -- 128GB SSD -- 2x L4M-Twin S2 ver 6.5
MLD 5.4.0 Server (streamdev server, vdr-plugin-epg2vdr, ...)

NAS:
Rockpi 4, 4GB, SATA-Head 4x 2TB SSD ZFS Raid 5, Nextcloud-Pi, Jellyfin-Server, NFS, SMB, EPG-Daemon

Clients:
- Rasperry pi 3 
MLD 5.4.0 (streamdev-client, epg2vdr)

- Sony Android TV (RoboTV, Jellyfin, ...)

-Xiaomi Android TV Stick (RoboTV, Jellyfin, ...)

Online clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 20313
    • View Profile
    • ClausMuus.de
RPI2 und CEC
« Reply #6 on: February 22, 2016, 12:06:59 »
Gute Frage. Ich hab grad mal nachgeschaut und feststellen müssen, dass ein Wakeup per cec Event derzeit nicht unterstützt wird.
Wie fragst Du den TV Zustand denn ab. Bis wir eine bessere Lösung haben, könnte das ja als workaround herhalten.
Optimal wäre wohl ein cec-daemon, der auf bestimmte cec Events lauscht.

Claus
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 5.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 12TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline TimUx

  • MLD-Tester
  • Expert Member
  • ******
  • Posts: 755
    • View Profile
RPI2 und CEC
« Reply #7 on: February 22, 2016, 12:29:41 »
Hi Claus,
im Groben habe ich eine Endlosschleife gebaut, welche auf einen bestimmten CEC-Event reagiert.

Sprich, wenn der VDR in den Suspend geschickt wird, starte ich ein Skript, welches den cec-client für die Eventüberwachung nutzt und wenn ein bestimmter CEC Event eintritt beende ich die schleife und wecke den VDR auf.


Code: [Select]

cec-client -m -sf /tmp/cec.txt > /dev/null &

while [ -f "/tmp/cec.txt" ]
do
        if grep "0f:a0:00:80:45:20:00:01" /tmp/cec.txt
        then
                killall cec-client
                echo "wakeup" > /var/spool/suspend
                rm /tmp/cec.txt
        fi
done


Der CEC-Event in meinem Beispiel ist leider Panasonic bezogen, beim Samung sieht er wieder anders aus.
Der Event kommt recht früh, in einer reihen von CEC-Events, wenn sich der TV einschaltet.

Es gibt auch was allgemeines, das müsste ich erst einmal raus suchen.
Der allgemeine Event kommt allerdings recht spät (15-30 sekunden nach TV poweron) und wertvolle Sekunden gehen verlohren.  ;)

Gruß Timo
« Last Edit: February 22, 2016, 12:32:41 by TimUx »
VDR Server:
- ASUS TROOPER B150 D3 -- Intel i5 6400T -- 8GB RAM -- 128GB SSD -- 2x L4M-Twin S2 ver 6.5
MLD 5.4.0 Server (streamdev server, vdr-plugin-epg2vdr, ...)

NAS:
Rockpi 4, 4GB, SATA-Head 4x 2TB SSD ZFS Raid 5, Nextcloud-Pi, Jellyfin-Server, NFS, SMB, EPG-Daemon

Clients:
- Rasperry pi 3 
MLD 5.4.0 (streamdev-client, epg2vdr)

- Sony Android TV (RoboTV, Jellyfin, ...)

-Xiaomi Android TV Stick (RoboTV, Jellyfin, ...)

Online clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 20313
    • View Profile
    • ClausMuus.de
RPI2 und CEC
« Reply #8 on: February 22, 2016, 13:06:04 »
Danke schon mal. Wäre super wenn Du noch das allgemeine Event raus suchen könntest, und falls möglich auch noch das Samsung spezifische. Dann lasse ich das Script einfach auf alle diese Events lauschen.

Claus
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 5.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 12TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline TimUx

  • MLD-Tester
  • Expert Member
  • ******
  • Posts: 755
    • View Profile
RPI2 und CEC
« Reply #9 on: February 22, 2016, 13:40:00 »
Ich begebe mich mal auf die Suche, weiß aber noch nicht, ob das heute was wird.

Gruß Timo
VDR Server:
- ASUS TROOPER B150 D3 -- Intel i5 6400T -- 8GB RAM -- 128GB SSD -- 2x L4M-Twin S2 ver 6.5
MLD 5.4.0 Server (streamdev server, vdr-plugin-epg2vdr, ...)

NAS:
Rockpi 4, 4GB, SATA-Head 4x 2TB SSD ZFS Raid 5, Nextcloud-Pi, Jellyfin-Server, NFS, SMB, EPG-Daemon

Clients:
- Rasperry pi 3 
MLD 5.4.0 (streamdev-client, epg2vdr)

- Sony Android TV (RoboTV, Jellyfin, ...)

-Xiaomi Android TV Stick (RoboTV, Jellyfin, ...)

Online clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 20313
    • View Profile
    • ClausMuus.de
RPI2 und CEC
« Reply #10 on: February 22, 2016, 13:58:00 »
Magst Du mal testen, ob diese Änderung bei Deinem Philips TV funktioniert:
Code: [Select]
--- a/etc/init.d/rc.suspend.soft
+++ b/etc/init.d/rc.suspend.soft
@@ -38,6 +38,9 @@ timer=$!
 # Wait for lirc wakeup
 test -e /usr/bin/irexec && irexec /etc/lircrc.suspend &
 irexec=$!
+# Wait for cec wakeup
+test -x /usr/bin/cec-client && cec-client -m | grep -q -m 1 "0f:a0:00:80:45:20:00:01" && echo cec > /var/spool/suspend &
+cec=$!
 # Wait for keybord wakeup
 read -n1 < /dev/tty$(fgconsole) && echo key > /var/spool/suspend &
 keyboard=$!
@@ -50,6 +53,7 @@ read event < /var/spool/suspend
 
 kill $tcpsvd 2>/dev/null
 kill $keyboard 2>/dev/null
+kill -9 $cec 2>/dev/null
 kill $irexec 2>/dev/null
 kill $timer 2>/dev/null
 rm /var/spool/suspend

Ich bin nicht sicher ob der cec-client beim Aufwachen beendet wird. Ein Test mit Aufwachen per Fernbedienung und einen per ENTER Tastendruck auf der Tastatur wäre gut.

Claus
« Last Edit: February 22, 2016, 14:11:22 by clausmuus »
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 5.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 12TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline TimUx

  • MLD-Tester
  • Expert Member
  • ******
  • Posts: 755
    • View Profile
RPI2 und CEC
« Reply #11 on: February 22, 2016, 16:51:45 »
Hi Claus,
werde ich bei Gelegenheit testen, wird heute aber nichts werden.

Muss mal schauen, wann es die Woche passt und wie meine Frau zu Hause ist.  ;)

Gruß Timo
VDR Server:
- ASUS TROOPER B150 D3 -- Intel i5 6400T -- 8GB RAM -- 128GB SSD -- 2x L4M-Twin S2 ver 6.5
MLD 5.4.0 Server (streamdev server, vdr-plugin-epg2vdr, ...)

NAS:
Rockpi 4, 4GB, SATA-Head 4x 2TB SSD ZFS Raid 5, Nextcloud-Pi, Jellyfin-Server, NFS, SMB, EPG-Daemon

Clients:
- Rasperry pi 3 
MLD 5.4.0 (streamdev-client, epg2vdr)

- Sony Android TV (RoboTV, Jellyfin, ...)

-Xiaomi Android TV Stick (RoboTV, Jellyfin, ...)

Online clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 20313
    • View Profile
    • ClausMuus.de
RPI2 und CEC
« Reply #12 on: February 22, 2016, 17:08:17 »
Ich habe die Änderung inzwischen online gestellt. Allerdings ist bisher nur der Philips Code enthalten.

Claus
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 5.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 12TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline TimUx

  • MLD-Tester
  • Expert Member
  • ******
  • Posts: 755
    • View Profile
RPI2 und CEC
« Reply #13 on: February 23, 2016, 20:17:23 »
Hi Claus,
ich bin zwar noch nicht zum testen gekommen, habe aber mal geschaut, was so passiert, wenn ich meinen Samsung ein- und ausschalte:

powerom:
Code: [Select]
DEBUG:   [           46733] GetPhysicalAddress - physical address = 1100
NOTICE:  [           46733] physical address changed to 1100
DEBUG:   [           46734] physical address unchanged (1100)
DEBUG:   [           52283] GetPhysicalAddress - physical address = 1100
NOTICE:  [           52284] physical address changed to 1100
DEBUG:   [           52284] physical address unchanged (1100)
DEBUG:   [           53583] GetPhysicalAddress - physical address = 1100
NOTICE:  [           53584] physical address changed to 1100
DEBUG:   [           53584] physical address unchanged (1100)
TRAFFIC: [           65137] >> 0f:80:00:00:10:00
DEBUG:   [           65138] >> TV (0) -> Broadcast (F): routing change (80)
DEBUG:   [           65138] TV (0): power status changed from 'standby' to 'on'
TRAFFIC: [           65251] >> 5f:81:11:00
DEBUG:   [           65252] >> Audio (5) -> Broadcast (F): routing information (81)
DEBUG:   [           65252] Audio (5): power status changed from 'unknown' to 'on'
DEBUG:   [           65253] making Recorder 1 (1) the active source
NOTICE:  [           65253] >> source activated: Recorder 1 (1)
DEBUG:   [           65254] sending active source message for 'Recorder 1'
NOTICE:  [           65254] << powering on 'TV' (0)
TRAFFIC: [           65255] << 10:04
NOTICE:  [           65345] << Recorder 1 (1) -> broadcast (F): active source (1100)
TRAFFIC: [           65346] << 1f:82:11:00
DEBUG:   [           65496] << Recorder 1 (1) -> TV (0): menu state 'activated'
TRAFFIC: [           65497] << 10:8e:00
DEBUG:   [           65768] device Audio (5) status changed to present after command routing information
TRAFFIC: [           65769] >> 0f:85
DEBUG:   [           65769] >> TV (0) -> Broadcast (F): request active source (85)
DEBUG:   [           65769] >> 0 requests active source
NOTICE:  [           65770] << Recorder 1 (1) -> broadcast (F): active source (1100)
TRAFFIC: [           65770] << 1f:82:11:00
TRAFFIC: [           66011] >> 0f:80:00:00:10:00
DEBUG:   [           66012] >> TV (0) -> Broadcast (F): routing change (80)
TRAFFIC: [           66012] >> 0f:32:67:65:72
DEBUG:   [           66013] >> TV (0) -> Broadcast (F): set menu language (32)
DEBUG:   [           66013] TV (0): menu language set to 'ger'
TRAFFIC: [           66084] >> 01:8d:02
DEBUG:   [           66085] >> TV (0) -> Recorder 1 (1): menu request (8D)
DEBUG:   [           66085] << Recorder 1 (1) -> TV (0): menu state 'activated'
TRAFFIC: [           66086] << 10:8e:00
TRAFFIC: [           66263] >> 01:1a:01
DEBUG:   [           66263] >> TV (0) -> Recorder 1 (1): give deck status (1A)
DEBUG:   [           66264] << Recorder 1 (1) -> TV (0): deck status 'stop'
TRAFFIC: [           66264] << 10:1b:1a
TRAFFIC: [           66441] >> 01:8d:02
DEBUG:   [           66441] >> TV (0) -> Recorder 1 (1): menu request (8D)
DEBUG:   [           66442] << Recorder 1 (1) -> TV (0): menu state 'activated'
TRAFFIC: [           66442] << 10:8e:00
TRAFFIC: [           66686] >> 5f:81:11:00
DEBUG:   [           66686] >> Audio (5) -> Broadcast (F): routing information (81)
DEBUG:   [           66687] Recorder 1 (1) was already marked as active source
NOTICE:  [           66687] >> source activated: Recorder 1 (1)
DEBUG:   [           66688] sending active source message for 'Recorder 1'
NOTICE:  [           66688] << powering on 'TV' (0)
TRAFFIC: [           66689] << 10:04
NOTICE:  [           66779] << Recorder 1 (1) -> broadcast (F): active source (1100)
TRAFFIC: [           66780] << 1f:82:11:00
DEBUG:   [           67020] << Recorder 1 (1) -> TV (0): menu state 'activated'
TRAFFIC: [           67021] << 10:8e:00
TRAFFIC: [           67262] >> 01:8d:02
DEBUG:   [           67262] >> TV (0) -> Recorder 1 (1): menu request (8D)
DEBUG:   [           67262] << Recorder 1 (1) -> TV (0): menu state 'activated'
TRAFFIC: [           67263] << 10:8e:00
TRAFFIC: [           69477] >> 01:8c
DEBUG:   [           69477] >> TV (0) -> Recorder 1 (1): give device vendor id (8C)
DEBUG:   [           69478] << Recorder 1 (1) -> TV (0): vendor id Pulse Eight (1582)
TRAFFIC: [           69478] << 1f:87:00:15:82
TRAFFIC: [           69707] >> 01:46
DEBUG:   [           69708] >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG:   [           69708] << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [           69709] << 10:47:43:45:43:54:65:73:74:65:72
TRAFFIC: [           70176] >> 01:a0:00:00:f0:23
DEBUG:   [           70177] >> TV (0) -> Recorder 1 (1): vendor command with id (A0)
TRAFFIC: [           70177] << 10:a0:00:00:f0:24:00:80
TRAFFIC: [           70477] >> 01:9f
DEBUG:   [           70477] >> TV (0) -> Recorder 1 (1): get cec version (9F)
DEBUG:   [           70477] << Recorder 1 (1) -> TV (0): cec version 1.4
TRAFFIC: [           70478] << 10:9e:05
TRAFFIC: [           70776] >> 5f:87:00:a0:de
DEBUG:   [           70777] >> Audio (5) -> Broadcast (F): device vendor id (87)
DEBUG:   [           70777] Audio (5): vendor = Yamaha (00a0de)
TRAFFIC: [           72015] >> 5f:84:10:00:05
DEBUG:   [           72015] >> Audio (5) -> Broadcast (F): report physical address (84)
DEBUG:   [           72016] Audio (5): physical address changed from ffff to 1000
TRAFFIC: [           72242] >> 8f:87:00:00:f0
DEBUG:   [           72243] >> Playback 2 (8) -> Broadcast (F): device vendor id (87)
DEBUG:   [           72243] Playback 2 (8): vendor = Samsung (0000f0)
DEBUG:   [           72243] device Playback 2 (8) status changed to present after command device vendor id
DEBUG:   [           72244] replacing the command handler for device 'Playback 2' (8)
TRAFFIC: [           75003] >> 8f:84:12:00:04
DEBUG:   [           75003] >> Playback 2 (8) -> Broadcast (F): report physical address (84)
DEBUG:   [           75004] Playback 2 (8): physical address changed from ffff to 1200
TRAFFIC: [           75094] >> 0f:85
DEBUG:   [           75094] >> TV (0) -> Broadcast (F): request active source (85)
DEBUG:   [           75095] >> 0 requests active source
NOTICE:  [           75095] << Recorder 1 (1) -> broadcast (F): active source (1100)
TRAFFIC: [           75096] << 1f:82:11:00
TRAFFIC: [           75297] >> 01:8d:02
DEBUG:   [           75297] >> TV (0) -> Recorder 1 (1): menu request (8D)
DEBUG:   [           75298] << Recorder 1 (1) -> TV (0): menu state 'activated'
TRAFFIC: [           75298] << 10:8e:00
TRAFFIC: [           75475] >> 01:8d:02
DEBUG:   [           75475] >> TV (0) -> Recorder 1 (1): menu request (8D)
DEBUG:   [           75476] << Recorder 1 (1) -> TV (0): menu state 'activated'
TRAFFIC: [           75476] << 10:8e:00

poweroff:
Code: [Select]
TRAFFIC: [          207551] >> 0f:36
DEBUG:   [          207552] >> TV (0) -> Broadcast (F): standby (36)
DEBUG:   [          207552] TV (0): power status changed from 'on' to 'standby'
DEBUG:   [          208707] GetPhysicalAddress - physical address = 1100
NOTICE:  [          208707] physical address changed to 1100
DEBUG:   [          208708] physical address unchanged (1100)

Meiner Meinung nach ist der Part interessant:
Code: [Select]
TRAFFIC: [           65137] >> 0f:80:00:00:10:00
DEBUG:   [           65138] >> TV (0) -> Broadcast (F): routing change (80)
DEBUG:   [           65138] TV (0): power status changed from 'standby' to 'on'
TRAFFIC: [           65251] >> 5f:81:11:00

Vielleicht sollte man einfach nach "TV (0): power status changed from 'standby' to 'on'" grepen oder so.

Und für diejeniegen, wie die Power-Taset des TVs für den RPI nicht funktioniert, könnte man auch während der VDR läuft, einen Daemon auf folgendes lauschen lassen und den RPI in Suspend setzten:

Code: [Select]
TRAFFIC: [          207551] >> 0f:36
DEBUG:   [          207552] >> TV (0) -> Broadcast (F): standby (36)
DEBUG:   [          207552] TV (0): power status changed from 'on' to 'standby'


Gruß Timo
« Last Edit: February 24, 2016, 09:03:18 by TimUx »
VDR Server:
- ASUS TROOPER B150 D3 -- Intel i5 6400T -- 8GB RAM -- 128GB SSD -- 2x L4M-Twin S2 ver 6.5
MLD 5.4.0 Server (streamdev server, vdr-plugin-epg2vdr, ...)

NAS:
Rockpi 4, 4GB, SATA-Head 4x 2TB SSD ZFS Raid 5, Nextcloud-Pi, Jellyfin-Server, NFS, SMB, EPG-Daemon

Clients:
- Rasperry pi 3 
MLD 5.4.0 (streamdev-client, epg2vdr)

- Sony Android TV (RoboTV, Jellyfin, ...)

-Xiaomi Android TV Stick (RoboTV, Jellyfin, ...)

Offline X-99

  • Member
  • **
  • Posts: 64
    • View Profile
RPI2 und CEC
« Reply #14 on: February 23, 2016, 21:46:55 »
Hallo, ich werde das erst am WE testen, weil ich die ganze Woche unterwegs bin.

Gruss Rainer
MLD 5.5 als Server
NUC - als Client mit 5.4

[1] 2 3 4 >>> MLD-5.x / Systems / Raspberry PI / RPI2 und CEC
 



Users Online Users Online

0 Members and 1 Guest are viewing this topic.