SMT-Wakeup

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Daten gefunden http://www.vdr-portal.de/board/thread.php?postid=706866#post706866)
K
 
(4 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 460: Zeile 460:
  
 
[[Kategorie:Wakeup]]
 
[[Kategorie:Wakeup]]
 +
[[Kategorie:SMT]]

Aktuelle Version vom 27. Februar 2010, 19:13 Uhr

Inhaltsverzeichnis

[Bearbeiten] Über SMT-WakeUp

Dokumentation zur SMT-WakeUp-Erweiterung, vorgestellt und entwickelt im VDR-Portal von "Steve135". Link zum Thread im VDR-Portal

Die SMT-WakeUp-Erweiterung dient zum timergesteuerten Aufwecken des linuxfähigen DVB-S-Receivers Samsung SMT7020s. Die Festplattenaktivität und der Timerstatus werden über zwei zusätzliche LEDs im Frontpanel derSMT7020s angezeigt. Optional ist eine PWM-Lüftersteuerung integriert. Die Funktionen werden über einen Atmel ATmega48-RISC-Prozessor gesteuert, der auch die Kommunikation über die serielle Schnittstelle ttyS0 der SMT7020s bewerkstelligt.

Die Erweiterung besteht aus drei Platinen, einer Hauptplatine, einer Temperatursensorplatine und einer Frontpanelplatine. Die Hauptplatine ersetzt nach dem Umbau die Modemplatine in der SMT7020s. Für die Kommunikation mit der Wakeup-Controller-Platine wird die bisher durch das integrierte Modem verwendete serielle Schnittstelle ttyS0 benutzt.

[Bearbeiten] Anleitung zum "Bau" der Platine

Die zwei folgenden Links zeigen jeweils auf einen Warenkorb bei Reichelt, welcher die Bauelemente für eine der zwei möglichen Bestückungsvarianten enthält:

http://www.reichelt.de/?ACTION=20;AWKID=67515;PROVID=2084

http://www.reichelt.de/?ACTION=20;AWKID=67519;PROVID=2084

Der erste Warenkorb beinhaltet alle Bauelemente die für die Komplettversion (inklusive Lüftersteuerung) benötigt werden. Der zweite Warenkorb beinhaltet ausschließlich die Bauelemente, die für die reine Wakeup Funktion der Platine benötigt werden.

Hier ist die Platine im Rohzustand zu sehen:

SMT Wakeup Rohplatine.jpg

Zum Bestücken der Platinen bitte folgende Stück-Liste benutzen: Die Bauelemente-Positionen sind jeweils mit den Abkürzungen der Bauteile durch den Bestückungsdruck auf der Platine gekennzeichnet:

C1 22pF
C2 22pF
C3 0,1μ
C4 0,1μ
C5 0,1μ
C6 0,1μ
C7 47μ
C8 330μ
C9 22μ (47μ)
C10 0.1μ
D1 1N5819
IC1 74HCT00
IC2 ATMEGA48
IC3 LM75CIM-5
K1 AVR-ISP
K2 K1X10
K3 K1X5
K4 K1X3
K5 K1X5
K6 K1X5
K7 K1X2
K8 K1X13
K9 K1X5
Q1 11,0592MHZ
R1 15K
R2 150
R3 15K
R4 15K
R5 1,0K
R6 15K
R7 1K
R8 120
R9 10K
R10 1,5K
R11 1K
R12 1K
R13 1K
R14 1K
R15 1K
R16 1K
R17 15K
R18 15K
R19 15K
T1 BC556B
T2 BC550B
T3 BC550B
T4 BC547C (BC550B/C)
T5 BC640

Bestückt und gelötet sieht das dann folgendermaßen aus (oben ohne Lüftersteuerung, unten mit Lüftersteuerung):

SMT Wakeup Bestueckt.jpg

Nachdem die Platinen fertig sind, geht es ans Kabelverlegen...

Fangen wir mit der Spannungsversorgung an. Hier ist zu beachten, dass Netzteile lange Spannung speichern können und noch einige Zeit nach dem Abschalten gefährliche Spannung führen können. Deswegen am besten den Netzstecker ziehen und anschließend den Einschalter nochmals drücken um die Entladung der Kondensatoren im Netzteil zu unterstützen.

Auf dem Bild sind die entsprechenden Lötpunkte zum Anlöten der Stromversorgung für die Wakeup-Controller-Platine an das Netzteil zu sehen:

SMT Wakeup Netzteil.jpg Belegung Netzteil Stecker:

1: GND
2: 12V
3: Nicht belegt
4: 5V
5: Dauer 5V

Zum Anschluß der Hauptplatine an die SMT7020s wird die bisherige Modem-Schnittstelle verwendet. Die Hauptplatine besitzt zwei Bohrungen, sodass diese dann statt dem Modem an der vorhandenen Modemhalterung befestigt werden kann. Zum Anschließen wird das originale Modem-Kabel verwendet, welches direkt über dem Anschluß auf der 'alten' Modemplatine abgeschnitten wird. Anschließend wird die zur Wakeup-Controller-Platine führende Seite des Kabels mit den Metallsteckkontakten verlötet die dann in die zehnpoligen Stecker-Leergehäuse 'eingeklickt' werden.

SMT Wakeup Modemkabel.jpg

Auf diesem Bild sieht man das Kabel angeschlossen an der Box und Platine.

SMT Wakeup Platine verbaut.jpg

[Bearbeiten] Frontpanel

Kommen wir nun zum Frontpanel. Hier müssen ein paar Leitungen angeschlossen werden um die Box später durch den Wakeup-Controller ein- und ausschalten zu können. Zusätzlich werden 2 LED's in das Sichtfenster des Frontpanels gelegt (HDD, Timer). Auf dem 1.Bild ist rechts die Platine für das Frontpanel zu sehen. Diese wird mittels einer in ein Stück Plastik eingeklebten M3-Schraube befestigt(Bild 2). Auf Bild 3 ist die Platine für das Frontpanel zusehen.

Bild 1 SMT Wakeup Power taster.jpg

Bild 2 SMT Wakeup Schraube.jpg

Bild 3 SMT Wakeup Frontplatine.jpg


Hier ist jetzt die genaue Beschaltung der Frontplatine zu sehen, extra durchnummeriert SMT Wakeup Frontplatine beschriftet.jpg

Die Beschaltung ist wie folgt:

Die Belegung der Anschlüsse der Frontpanel-Zusatzplatine:

1: GND
2: HDD-LED-Kathode
3: Panel-Reset
4: Power-Switch
5: Timer-LED-Anode (1-5) werden verbunden mit "Front" links auf der Hauptplatine.
6: Timer-Led Anode (+)
7: Timer-Led Kathode (-)
8: zum Power-Taster (weiss)
9: zum Panel Reset (grau)
10: HDD LED Kathode
11: HDD LED Anode
12: Frontpanel 5V (rot)
13: Frontpanel GND (blau)

[Bearbeiten] Beschaltung der Hauptplatine

SMT Wakeup Hauptplatine beschriftet.jpg

Die Kabel die an der Front Platine der Samsung Box angebracht werden müssen, werden wie folgt verbunden

SMT Wakeup Frontplatine samsung.jpg auf der Rückseite der Platine ist noch ein weiteres Kabel anzulöten wie auf dem Bild zusehen. Auf dem Foto ist leider nicht genau zu sehen wohin Pin9 verbunden werden muss - direkt unterhalb der beiden anderen Punkte (13 und 12).

SMT Wakeup Power taster 2.jpg

Dann müssen nur noch die LED's auf Pin 6,7(Timer Led) und 10,11(HDD Led) angelötet werden

SMT Wakeup LEDs.jpg

Die Led's müssen mit einem Stück Plastik isoliert von der Platine auf dieser verklebt werden, hierfür hat sich Sekundenkleber als praktisch erwiesen (Anmerkung: Bei mir funktionierte Heisskleber wesentlich besser). Um die Led-Zuleitungen etwas zu fixieren, diese am besten vorsichtig durch die Kontakte des Steckverbinders fädeln. Wenn alles fertig verlötet ist sollte es etwa so aussehen wie auf der nächsten Seite. Bevor das Front-Panel wieder angebracht wird sollte noch das Loch für die Befestigungsschraube (M3-Senkkopf) des Temperatur-Sensors an der Gehäuse-Vorderseite gebohrt werden (wird natürlich für die 'nur Wakeup-Variante' nicht benötigt!). Natürlich kann man die Schraube auch auf einem Stück Metall innen ankleben. Beim Bohren bitte aufpassen das keine Metall-Späne in das Gehäuse bzw. das Mainboard fallen! Aus dieser Sicht ist das Ankleben eines Stückchen Metalls mit der Schraube wohl der 'sichere' Weg. Bitte nochmal überprüfen das die Kabel des Sensors weit genug vom Gehäuse weg sind damit es keine Kurzschlüsse gibt. Anschließend natürlich noch das Kabel des Temperatur-Sensors an den Wakeup-Controller anstecken. Über den Schraubenkopf habe ich zur Sicherheit immer nochmal drei Lagen Isolierband geklebt damit er auch im ungünstigsten Fall keinen Kurzschluss auf der Front-Panel-Platine 'zaubern' kann.

[Bearbeiten] Temperaturfühler Platine

Fertig bestückt sollte die Platine etwa so aussehen:

SMT Wakeup Temp platine.jpg

Oben auf dem Bild mit der beschrifteten Hauptplatine ist zu sehen wie die Temperaturfühlerplatine mit der Hauptplatine verbunden werden muss.

[Bearbeiten] HDD LED

Bei Verwendung einer 3,5" Festplatte muss Pin 39 am IDE Kabel(liegt bei der Nase), mit Pin 2 auf der Hauptplatine verbunden werden.

Zu der Variante mit einer 2,5" Festplatte gibt es ein Bild zur Beschaltung, Pin 1 an der Platine muss an das schwarze Kabel an dem IDE Adapter, Pin 2 siehe Bild

SMT Wakeup 2 5 Zoll.jpg

Bei LEDs ist auf die Polung zu achten, da die LED sonst nicht leuchtet, zur Erkennung von Anode und Kathode die Markierungen an den LEDs wie nachstehend beachten.


SMT Wakeup SMD LED.jpg

[Bearbeiten] Programmierung

Der verbaute ATMEGA muss erst noch programmiert werden um seine Funktion auszuführen. Dies geschieht über die standardisierte ISP Schnittstelle die auf der Wakeup-Controller-Platine enthalten ist. Zur Programmierung kann jeder zum Atmel-STK 200/300/500 kompatible Programmer verwendet werden.

SMT Wakeup ISP.jpg

Die Belegung des Stecker lautet:

Pin 1 MOSI
Pin 2 5V
Pin 3 n.c.
Pin 4 GND
Pin 5 /Reset
Pin 6 GND
Pin 7 SCK
Pin 8 GND
Pin 9 MISO
Pin10 GND

Zum Programmieren des ATMEGA48 kann entweder ein fertiges Programmiergerät verwendet werden oder es besteht auch die Möglichkeit solch eines selbst zu bauen. Auf dieser Seite gibt es z. B. Anleitungen für Parallele und Serielle Interfaces: http://s-huehn.de/elektronik/avr-prog/avr-prog.htm

Zum Programmieren unter Windows/Linux kann die kostenlose Software PonyProg benutzt werden. Das aktuelle Flash-File ladet ihr am besten direkt im VDR Portal.

Wichtig ist, dass für den Atmel-Controller einmalig die entsprechenden Fuse-Bits gesetzt werden, bevor der ATMEGA48 mit dem eigentlichen 'Abarbeitungsprogramm' programmiert wird. Ein geschirmtes Kabel zwischen ISP und Interface ist zu empfehlen, um Übertragungsfehler zu vermeiden. Die benötigte Einstellung der Fuse-Bits ist auf dem folgenden Bild zu sehen. Vor dem Programmieren sicherstellen, dass die 5V an PIN 2 anliegen und der ATMEGA seine Betriebsspannung erhält. Die Platine muss zum Programmieren mit den 5V versorgt werden, da die einfachen seriellen und parallelen Programmierschaltungen die 5V selbst nicht bereitstellen.

SMT Wakeup FuseBits.jpg

[Bearbeiten] Inbetriebnahme

[Bearbeiten] Funktion des Controllers prüfen

Dazu müssen die Spannungsversorgung, das zweipolige Kabel zur Festplatte und das Frontpanel an der Mikrocontroller-Platine angeschlossen sein. Es schadet nicht, wenn Temperatursensor und Modemkabel auch angeschlossen sind, sonst muss man dies vor dem Einspielen der Software nachholen. Nun die Box starten. Bei Festplattenzugriffen sollte nun die rote LED im Frontpanel aufleuchten. Da der Mikrocontroller das Signal vom IDE-Kabel abgreift und damit die LED steuert, ist das ein Zeichen, dass der Mikrocontroller arbeitet.

Falls die LED nicht leuchtet können folgende Fehler aufgetreten sein:

  • die LED wurde falsch herum angelötet (verpolt)
  • der Atmega48 wurde nicht richtig programmiert
  • Versorgungsspannung (Gnd = schwarz, 5V = lila) liegt nicht korrekt an.
  • der Quartz schwingt nicht
  • Kabelbrüche oder kalte Lötstellen


Warnung
Warnung

Vor Änderungen an der Elektrik immer den Stecker der Box aus der Steckdose ziehen, weil das Wakeup-Board mit der ATX 5V-Standby-Spannung des Netzteils versorgt wird. Ausschalten reicht nicht, um das Board spannungsfrei zu machen! Nach dem Ausziehen Powertaster so lange drücken zum Einschalten der Box, bis alle Kondensatoren des Netzteils entladen sind! Erst dann die SMT öffnen!


[Bearbeiten] Die Modemschnittstelle aktivieren

Im Verzeichnis /usr/model/7020 oder /usr/sbin (je nach Distribution) befindet sich das Programm smt-ready, das bei seinem Aufruf die interne Modemschnittstelle im BIOS deaktiviert. Mit folgenden Befehlen schaltet man das Programm aus:

cd /usr/model/7020
mv smt-ready smt-ready.orig
touch smt-ready
chmod +x smt-ready 

Anschließend das System neu starten und mit der F2-Taste in das BIOS gehen. Hier müssen jetzt die beiden Punkte bei ICH2 GPUs Configuration auf Off gestellt werden. Falls in Euren Startscripten das Programm 'smt-ready' bisher nicht aufgerufen wurde ist jetzt damit schon alles O.K. Falls das Programm 'smt-ready' jedoch auf Eurer Box schon mal ausgeführt wurde, müssen wir die Sache jetzt leider aufwändiger beheben. Es hat sich nachfolgendes Vorgehen bewährt:

Wenn die beiden Punkte bei "ICH2 GPUs Configuration" im BIOS schon auf OFF stehen, diese bitte auf ON stellen und die BIOS-Daten speichern. Jetzt startet die 'Kiste' ja neu. Sofort beim 'blauen BIOS-Bildschirm' wieder F2-Taste drücken und in das BIOS gehen. Die beiden Punkte jetzt auf OFF stellen, speichern und bis in das Betriebssystem (Linux) booten. Sollten die Punkte im BIOS allerdings von Anfang an auf ON gestanden haben, ist vorher nochmal ein Schritt von ON auf OFF notwendig!

Ablauf bei Anfangswert OFF im BIOS: von OFF auf ON stellen-->speichern-->BIOS-reboot-->von ON auf OFF stellen-->speichern-->Linux booten Ablauf bei Anfangswert ON im BIOS: von ON auf OFF stellen-->speichern-->BIOS-reboot-->von OFF auf ON stellen-->speichern-->BIOS-reboot-->von ON auf OFF stellen-->speichern-->Linux booten

Falls Ihr die Einstellungen im SMT-BIOS nicht korrekt vornehmt, ist später keine Kommunikation der Box über die interne Modemschnittstelle mit dem Wakeup-Controller möglich! Sprich die ganze Sache funktioniert dann nicht!

[Bearbeiten] Einspielen und Übersetzen der Software

Hinweis
Hinweis

Die folgende Beschreibung bezieht sich auf Det's-ISO V2.0b. Bitte selber an die eigene Distribution anpassen und danach diese Beschreibung hier ergänzen.


Die Box ist mit dem Linux-Betriebssystem gebootet. Jetzt bitte das Archiv mit den von Steve135 im VDR-Portal-Thread zur Verfügung gestellten Linux-Quellen herunterladen und z. B. in /usr/local/src/SMT entpacken. Die beiden Quelldateien heißen:

SMTWakeup_LinuxSrc.zip 
SMTWakeup_LinuxBeispielScripts.zip 

Auf Seite 6 des Threads finden sich entsprechende Scripte für andere Distributionen:

gen2vdr_scripte.tar.bz2 
zenslack_scripte.tar.bz2 

Von den Quellen wird zunächst SMTWakeup_LinuxSrc gebraucht. Wir gehen nun in jedes der sechs Unterverzeichnisse von /usr/local/src/SMT und übersetzen das jeweilige Programm mit

make all 

Außer dem Programm SMTConnectTest werden alle übersetzten Programme in das Verzeichnis /usr/model/7020 kopiert. Hatte man die .zip-Dateien unter Windows entpackt, kann es sein, dass SMTSCD sich nicht übersetzen lässt, da die Groß- in eine Kleinschreibung umgewandelt wurde. Hier den Dateinamen einfach wieder in Großschreibung ändern.

Die Aufgaben der Programme:

SMCSCD ist der Kommunikations-Daemon, der die eigentliche Kommunikation mit dem Atmel-Controller über die TTYS0 abwickelt. Alle anderen Programme 'sprechen' mit SMTSCD über zwei Named-Pipes. Einzige Ausnahme davon ist SMTPowerOff. Da zum Zeitpunkt des Aufrufes von SMTPowerOff der Daemon SMTSCD nicht mehr aktiv ist (wurde ja wie alle Prozesse vom RCShutdown bzw. halt Script beim herunterfahren beendet) schreibt dieses Programm direkt auf die TTYS0 zum Atmel-Controller.

SMTPowerOff schaltet nach einer über den Kommandozeilenparameter -p anzugebenden Zeit in Sekunden die Betriebsspannung der Box über einen Reset des Frontpanels hart aus. Deshalb sollten vor dem Aufruf von SMTPowerOff noch ein paar Kommandos zum Sync, Read-Only-Mount der HDD-Partitionen sowie dem vorherigen Parken der Festplatte ausgeführt werden. Der Aufruf des Programms gehört deshalb nicht direkt in das VDR-Shutdown-Script '/usr/local/bin/vdrshutdown' sondern in die RCShutdown und das halt Script. (siehe auch 'Einbinden der Programme')

SMTPowerOff [Optionen]

Optionen:
-p n	 Setzt Power-Off-Zeit in n Sekunden (n im Bereich von 1..255)
-l       Logge Ausgaben zu syslogd anstatt zu stdout/stderr
-v       Drucke Versionsinformation
-h       Drucke Hilstext (unabhängig von Option -l)

SMTWakeup überträgt die Zeit in Sekunden bis zum nächsten Timer an den Atmel-Controller. Dieses Programm wird daher im VDR-Shutdown-Script '/usr/local/bin/vdrshutdown' aufgerufen (wird dem VDR per Parameter -s auf der Kommandozeile übergeben. Siehe auch 'Einbinden der Programme'). Wenn kein aktiver Timer mehr vorhanden ist wird dem Atmel-Controller beim herunterfahren '-s 0' gesendet, was einen eventuell noch gespeicherten Timer im Atmel löscht. Ein aktiver Timer muss mindestens 30 Minuten in der Zukunft liegen, falls es weniger ist, verschiebt der VDR automatisch den 'Aufwachtermin' auf SYSTIME+30 Minuten!!! Das ist keine Funktionalität von mir, sondern eine VDR-Standard-Funktionalität! Im Normalfall kommt ja auch beim Herunterfahren des VDR dann eine Warnung das ein Timer in weniger als 30 Minuten ansteht. Diese Warnung sollte man eigentlich dann auch nicht ignorieren!

SMTWakeup [Optionen]

Optionen:
-s n	 Setzt Aufwachzeit in n Sekunden (n=0 deaktiviert den Wakeup)
-d       Deaktiviert den Wakeup (dasselbe wie Option -s 0)
-l       Logge Ausgaben zu syslogd anstatt zu stdout/stderr
-v       Drucke Versionsinformation
-h       Drucke Hilstext (unabhängig von Option -l)

SMTGetTemp fragt die Temperatur vom SMTSCD über Named-Pipes ab. Der Atmel-Controller sendet dazu jede Sekunde die aktuell vom Temperatursensor gemessene Temperatur an SMTSCD.

SMTSetPWM steuert mittels Pulsweitenmodulation die Drehzahl des an das Wakeup-Board angeschlossenen Lüfters.

SMTSetPWM [Optionen]

Optionen:
-s n	 Setzt Pulsweite zur Steuerung des Lüfters (n im Bereich von 1..255)
-l       Logge Ausgaben zu syslogd anstatt zu stdout/stderr
-v       Drucke Versionsinformation
-h       Drucke Hilstext (unabhängig von Option -l)

SMTConnectTest dient dem Test der TTYS0-Verbindung. Es wird im eigentlichen Betrieb nicht mehr gebraucht.

[Bearbeiten] Test der Modemschnittstelle

Jetzt gehen wir in das Verzeichnis /usr/local/src/SMT/SMTConnectTest und rufen das übersetzte Programm SMTConnectTest auf. Wenn die Kommunikation korrekt läuft und alles funktioniert kommen jetzt z.Bsp. nachfolgende Bildschirmausgaben:

Gelesener Wert: 6
Gelesener Wert: 27

Das sagt nur aus, das vom Atmel-Controller ein Kommando 'GetTemp' (Wert 6) mit dem Wert 27 (sprich 27 Grad) übermittelt wurde. Im Sekundentakt sollte jetzt eigentlich immer so eine Kommandosequenz eintreffen. Der Wert für die Temperatur ist natürlich von der Temp in Eurer Box abhängig und es ist kein Fehler wenn er nicht 27 ist! Für diesen Verbindungstest darf das Programm SMTSCD welches sich auch in dem Quellarchiv befindet noch nicht aktiv sein!!! Wenn soweit alles O.K. war und Ihr die entsprechenden Konsolenausgaben bekommen habt, SMTConnectTest einfach mit Ctrl+C abbrechen.

[Bearbeiten] Einbinden der Programme

Nun das Archiv mit den Beispiel-Scripts SMTWakeup_LinuxBeispielScripts.zip öffnen. Im Archiv findet man im Verzeichnis /usr/model/7020 die zwei Scripte fanmon2.sh und TemperatureInfo.sh. Diese nach /usr/model/7020 kopieren und mit chmod ausführbar machen. Dann aus dem Archiv das Script /usr/local/bin/vdrshutdown nach /usr/local/bin kopieren und auch wieder mit chmod ausführbar machen. Im Archiv befindet sich jetzt noch im Verzeichnis /etc/init.d/ das Beispiel-Script RCStart. Ihr müsst in Eure RCStart jetzt noch den Aufruf von SMTSCD und fanmon2.sh einfügen. Das könnt z.Bsp. so aussehen:

Datei
/etc/init.d/RCStart
##### Model #####
if lspci | egrep '01:08.0' > /dev/null
then
# fbset 720x576-60
modprobe i2c-dev 
modprobe i2c-i810 
modprobe cx88xx card=57 
modprobe cx88-dvb 
modprobe dvb-core 
modprobe stv0299
/usr/model/7020/fanmon.sh &
/usr/model/7020/fanmon2.sh &
/usr/model/7020/SMTSCD
/usr/model/7020/smtlircd
/usr/bin/irexec &
/usr/model/7020/tvout.sh
fi 


Nun müssen wir noch im Script /etc/init.d/Runvdr den Parameter '-s /usr/local/bin/vdrshutdown' an den Aufruf vom vdr-Programm anhängen.

Im Script /etc/init.d/RCShutdown muss jetzt noch der nachfolgende Block angepasst werden. Das sollte dann in etwa so aussehen:

Datei
/etc/init.d/RCShutdown
if [ ${MODEL} == SMT ]; then
hwclock --systohc
/bin/sync
sleep 2
#Power-Off in 3 Sekunden
/usr/model/7020/SMTPowerOff -p 3
/sbin/hdparm -Y /dev/hda
sleep 5
#und jetzt das spezielle poweroff
echo -e -n "\x20\x30\x20\x30\x20\x30\x01\x01" > /dev/ttyS1
else 


Den Block im Script /etc/init.d/halt in etwa so anpassen:

Datei
/etc/init.d/halt
if [ ${MODEL} == SMT ]; then
/bin/sync
sleep 2
#Power-Off in 3 Sekunden
/usr/model/7020/SMTPowerOff -p 3 
/sbin/hdparm -Y /dev/hda
sleep 5
#und jetzt das spezielle poweroff
echo -e -n "\x20\x30\x20\x30\x20\x30\x01\x01" > /dev/ttyS1
else
if [ ${MODEL} == Z101 ]; then 
/bin/stty 38400 cs8 -parenb -cstopb < /dev/ttyS1 > /dev/ttyS1
echo -e '\xa2\xb1\xa2\xb1\xa2\xb1' > /dev/ttyS1
fi
#und fuer die normalen Rechner
halt -d -f $netdown $poweroff $hddown
fi 


Jetzt sind erstmal die Start/Stop-Scripte so angepasst, das das Ausschalten mit der 'neuen Technik' korrekt funktionieren sollte. Leider können wir den VDR nun immer noch nicht mit einem kurzen Druck auf die Power-Taste der Fernbedienung ausschalten. Damit das korrekt funktioniert, sind noch zwei weitere Änderungen notwendig:

In /etc/lirc/lircrc den nachfolgenden Block entfernen...

Datei
/etc/lirc/lircrc
begin
button = POWER
prog = irexec
repeat = 0
config = /usr/model/7020/smt-sleep.sh
end 


In /etc/vdr/remotes.conf die Zeile 'LIRC.Power Power' in 'LIRC.Power POWER' abändern.

Jetzt lässt sich nach einem Neustart der VDR durch einen kurzen Druck auf die Power-Taste der Fernbedienung herunterfahren/ausschalten.

Im VDR-Einstellungsmenü noch bei 'System-->VDR-Setup-->VDR-Einstellungen-->Sonstiges-->VDR ausschalten bei Inaktivität(min)' einen Wert > 0 (z.Bsp. 180) eintragen.

Jetzt sollten alle notwendigen Veränderungen durchgeführt sein und der VDR lässt sich mit einem aktiven Timer (muss mindestens 30 Minuten in der Zukunft liegen!!!) herunterfahren. Dabei sollte dann natürlich die gelbe Timer-LED im Frontpanel angehen.

[Bearbeiten] Einbau eines leisen Lüfters

Ein geeigneter leiser Lüfter ist der 'SilenX iXtrema PRO 80mm 11 dBa - 15 mm (IXP-52-11)', da er eine Bauhöhe von nur 15mm hat. Er kostet z.B. bei HoH etwa 12€.

Der Lüfter wird an der Innenseite des Deckels befestigt, weshalb ein Loch von 75 mm Durchmesser dort hinein muss (Maße, siehe Bild).

SMT Wakeup Luefterloch.jpg

Bei diesen Maßen passt der Lüfter auch bei eingebautem Wakeup-Board und 2,5 Zoll Festplatte. Wenn man den Lüfter einklebt, werden die vier Befestigungslöcher im Bild nicht gebraucht.

Mit dem Zirkel oder mit Hilfe des Lüfters das Loch innen anzeichnen. Die Oberfläche aussen wo das Loch hin soll grossflächig mit Malerkrepp abkleben (falls man mal abrutscht ;-)). Dann einfach oben und unten je ein Loch innen nah an den Kreisrand bohren und das ganze dann mit der Laubsäge und runden Metallsägeblättern langsam und vorsichtig innen vom Strich aussägen. Das Loch ist dann noch nicht perfekt und muss nachgearbeitet werden. Hierzu zwei erprobte Möglichkeiten:

  • Eine Spraydose bzw. Flasche mit geeignetem Durchmesser suchen und Schleifpapier (besser welches mit Textilem Grundträger-kein Papier) mit Körnung 40 drumwickeln. Damit dann das Loch korrekt rund aufreiben/feilen. Da vergeht übrigens einige Zeit... Am wichtigsten ist wirklich das vorherige, vorsichtige und genaue Sägen am Kreis-Innen-Strich. Sonst machst Du Dich bei der 'Nacharbeit' mit der Spraydose 'blasig'.
  • Einen großen runden Schleifstein (4 cm bis 5 cm Durchmesser) für die Bohrmaschine besorgen und bei nicht zu hoher Drehtzahl das Loch glattschleifen. Dadurch, dass man den Druck nicht gleichmäßig aufbringt, kann man sich aber auch leicht ein "Ei" schleifen. Hat das Loch die richtige Form, muss es noch entgratet werden. Besonders dabei kann man leicht abrutschen.

Damit die Kanten nicht rosten werden sie mit Klarlack eingepinselt. Jetzt erst darf der Malerkrepp beseitigt werden.

Als Abdeckung habe ich mit Heißkleber ein 80mm Lüftergitter in das Loch geklebt (der äußere Ring hatte genau 75 mm). Die Ösen des Gitters waren nicht flach, weshalb ich sie mit der Zange bearbeiten musste. Dabei brechen die Ösen leicht ab. Bei dem Beispiellüfter sind Gummibefestigungen dabei. Diese in die Lüfterbefestigungslöcher stecken und das Ganze mit Sekundenkleber am Deckel befestigen. Der Abstand zum Lüftergitter ist dann noch so groß, dass sich die beiden nicht berühren.

Wen das Röhren des alten Lüfters beim Booten stört, kann einen 51 Ohm Widerstand in dessen Zuleitung löten und ihn mit Gummipuffern direkt am Kühlkörper des Prozessors festmachen. Die entsprechenden Gummipuffer zur Befestigung gibt's unter anderem bei Reichelt für 4 Stück x 0,54€. Damit dreht er auf jeden Fall schnell genug für die CPU-Kühlung.

Test des Lüfters:

Mit

killall SMT-fanmon2.sh

die Steuerung des Lüfters per Skript deaktivieren. Danach mit

/usr/bin/SMTSetPWM -s 255

den Lüfter 'volles Rohr' laufen lassen.

Falls das nicht funktioniert, SMTGetTemp aufrufen. Es sollte auf jeden Fall ein Wert größer 0 angezeigt werden, da sonst der Lüfter nicht läuft.