linux_DE.html 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>fhem.pl - Hinweise zu GNU/Linux</title>
  5. <script type="text/javascript" src="fhemdoc.js"></script>
  6. <noscript>
  7. <link rel="stylesheet" type="text/css" href="../www/pgm2/style.css" />
  8. </noscript>
  9. <meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>
  10. </head>
  11. <body>
  12. <div id="menuScrollArea">
  13. <div id="logo"></div>
  14. <div id="menu">
  15. <h3>fhem.pl - Hinweise zu GNU/Linux</h3>
  16. Version: <a href="linux.html">EN</a>&nbsp;<b>DE</b>
  17. </div>
  18. </div>
  19. <div id="right">
  20. <h2>fhem.pl - Hinweise zu GNU/Linux</h2>
  21. <table border=1><tr><td>
  22. Anmerkung: Abhängig von der verwendteten Distribution (Debian, openSuSE, etc.) sowie der Version
  23. des Linux Kernels müssen Sie einige der im folgenden beschriebenen Schritte ausführen.<br>
  24. Als <b>erstes</b> sollten Sie versuchen, die Anleitung ohne Änderungen
  25. zu befolgen.<br> Wir haben die Kernel-Entwickler davon überzeugt, alle
  26. (bekannten) ELV-Geräte standardmäßig freizuschalten. Ab Kernel 2.6.24.2
  27. (z.B. openSUSE 11) sind die folgenden Veränderungen <b>nicht</b> mehr notwendig.
  28. Sie können Ihre aktuelle Kernel-Version durch Aufruf von
  29. <code><br>uname -r<br></code>
  30. in Erfahrung bringen.
  31. </td></tr></table>
  32. <hr>
  33. <p><b><a name="onedevice">Ein Gerät</a></b><br>
  34. Wenn Sie nur ein Gerät (FHZ1000PC, FHZ1300PC, EM1010PC, WS300, ...) an
  35. Ihren GNU/Linux Server anschließen, können Sie das normale Kernelmodul
  36. <i>ftdi_sio</i> verwenden, das Gerät wird jedoch erstmal nicht erkannt werden.
  37. Dazu müssen Sie den <i>Hersteller-</i> und den <i>Produkt-</i> Code herausfinden:
  38. <code><br>
  39. # lsusb<br>
  40. ...<br>
  41. Bus 002 Device 002: ID <b>0403</b>:<b>e0e8</b> Future Technology Devices International, Ltd <br>
  42. ...<br>
  43. </code><br>
  44. Abhängig von Ihrer Distribution ändern Sie jetzt bitte die Datei
  45. <code>/etc/modprobe.conf</code> oder <code>/etc/modprobe.conf.local</code>.
  46. Fügen Sie folgende Zeile hinzu:<br>
  47. <code><br>
  48. options ftdi_sio vendor=0x<b>0403</b> product=0x<b>e0e8</b><br>
  49. </code><br>
  50. Ändern Sie Hersteller und Produkt entsprechend der Ausgabe von <i>lsusb</i>.
  51. Anschließend laden Sie das Modul mit folgendem Aufruf neu:<br>
  52. <code><br>
  53. # modprobe ftdi_sio<br>
  54. </code><br>
  55. <hr>
  56. <p><b><a name="multipledevices">Mehrere Geräte</a></b><br>
  57. Bei Verwendung mehrerer USB-Geräte (FHZ1000PC, FHZ1300PC, EM1010PC, WS300,
  58. ...) funktioniert die oben beschriebene Methode nicht. Sie müssen das Kernelmodul
  59. ftdi_sio kernel anpassen, damit es funktioniert. Das folgende Beispiel bezieht
  60. sich auf openSuSE 10.1. Sie müssen die kernel-source-<i>version</i> (RPM) Ihres aktuellen Kernels
  61. installieren (Ausgabe mit: <code>uname -r</code>). Danach gehen Sie wie folgt vor:<br>
  62. <code><br>
  63. # cd /usr/src/linux<br>
  64. # make cloneconfig<br>
  65. # make modules_prepare<br>
  66. # cp /boot/symvers-2.6.*-default.gz /usr/src/linux<br>
  67. # mv symvers-2.6.*-default.gz Module.symvers.gz<br>
  68. # gunzip /usr/src/linux/Module.symvers.gz<br>
  69. # make modules_prepare<br>
  70. # cd drivers/usb/serial<br>
  71. </code>
  72. Für den EM1010PC ergänzen Sie gegebenfalls folgende Zeile:
  73. <code><br>
  74. # vi ftdi_sio.h<br>
  75. ...<br>
  76. #define FTDI_ELV_WS500_PID 0xE0E9 /* PC-Wetterstation (WS 500) */<br>
  77. <b>#define FTDI_ELV_EM1010PC_PID 0xE0EF /* EM 1010 PC */</b><br>
  78. </code><br>
  79. Entfernen Sie nun die Kommentarzeichen bei den entsprechenden Zeilen entfernt, um Ihre Geräte zu aktivieren:
  80. <code><br>
  81. # vi ftdi_sio.c<br>
  82. ...<br>
  83. { USB_DEVICE(FTDI_VID, FTDI_ELV_WS300PC_PID) }, <br>
  84. { USB_DEVICE(FTDI_VID, FTDI_ELV_FHZ1300PC_PID) },<br>
  85. { USB_DEVICE(FTDI_VID, FTDI_ELV_WS500_PID) }, <br>
  86. { USB_DEVICE(FTDI_VID, FTDI_ELV_EM1010PC_PID) },<br>
  87. ...<br>
  88. </code><br>
  89. Entfernen Sie <b>/*</b> and <b>*/</b> für Ihre Geräte und speichern Sie
  90. die Datei.
  91. <br>
  92. <code>
  93. # cd /usr/src/linux<br>
  94. </code>
  95. Es gibt nun drei Möglichkeiten:<br>
  96. <table border=1>
  97. <tr><td>
  98. <code>
  99. # mv Module.symvers Module.symvers.notneeded<br>
  100. # make M=drivers/usb/serial</code>
  101. <td>
  102. ... die verwendeten <i>usb serial</i> Module bauen.<br>
  103. Auf Geräten mit geringer Rechenleistung wie der ARM-Based NSLU2 reicht
  104. es aus, nur die benötigten Module zu kompilieren.
  105. </td></tr>
  106. <td><code>
  107. # make modules</code>
  108. </td><td>
  109. ... alle Module kompilieren (kann einige Zeit dauern).
  110. </td></tr>
  111. <tr><td>
  112. <code>
  113. # make driver/usb/serial/ftdi_sio.ko
  114. </code>
  115. </td><td>
  116. ... nur das Modul <i>ftdi_sio.ko</i> zu bauen. Diese Methode scheint
  117. aber nicht immer zu funktionieren.
  118. </td></tr>
  119. </table><br>
  120. Wenn Sie die Module erzeugt haben, führen Sie folgende Kommandos aus:<br>
  121. <code><br>
  122. # cd /lib/modules/<i>yourKernelVerion</i>/kernel/drivers/usb/serial<br>
  123. # cp ftdi_sio.ko ftdi_sio.ko_backup<br>
  124. # cp /usr/src/linux/drivers/usb/serial/ftdi_sio.ko .<br>
  125. </code><br>
  126. Zur Aktivierung müssen Sie Anwendungen (z.B. fhem) stoppen, die die Gerätedatei
  127. /dev/ttyUSB benutzen und das Modul entladen und erneut laden.<br>
  128. <code><br>
  129. # rmmod ftdi_so<br>
  130. # modprobe ftdi_so<br>
  131. </code><br>
  132. Sie sollten nun verschiedene ttyUSB Gerätedateien sehen:
  133. <code><br>
  134. # ls -l /dev/ttyUSB*<br>
  135. crw-rw---- 1 root uucp 188, 0 2007-02-11 23:00 /dev/ttyUSB0<br>
  136. crw-rw---- 1 root uucp 188, 1 2007-02-11 23:00 /dev/ttyUSB1<br>
  137. </code><br>
  138. <hr>
  139. <p><b><a name="devicelinks">Device links</a></b><br>
  140. Wenn einzelne Geräte fehlen oder nach einem Reboot, kann es bei der Verwendung
  141. mehrerer USB-Geräte (FHZ, EM, WS...) passieren, dass sich die Reihenfolge
  142. der Liste /dev/ttyUSB<i>n</i> ändert.<br> Mit Hilfe von UDEV können ab Kernel-Version 2.6
  143. statt der Nummern virtuelle Bezeichnungen vergeben werden.<br>
  144. Fügen Sie folgende Zeilen in die Datei <code>/etc/udev/rules.d/10-udev.rules</code>
  145. ein (evtl. müssen Sie die Datei erstellen): <br>
  146. Bis udev-Version 103:<br>
  147. <code>
  148. KERNEL=="ttyUSB*", SYSFS{product}=="ELV FHZ 1300 PC", SYMLINK+="elv_fhz1300pc"<br>
  149. KERNEL=="ttyUSB*", SYSFS{product}=="ELV EM 1010 PC", SYMLINK+="elv_em1010pc"<br>
  150. </code><br>
  151. Ab einschließlich Version 103 wurde "SYSFS" durch "ATTRS" ersetzt:
  152. <br>
  153. <code>
  154. KERNEL=="ttyUSB*", ATTRS{product}=="ELV FHZ 1300 PC", SYMLINK+="elv_fhz1300pc"<br>
  155. KERNEL=="ttyUSB*", ATTRS{product}=="ELV EM 1010 PC", SYMLINK+="elv_em1010pc"<br>
  156. </code><br>
  157. Um die Pfade <code><b>/dev/elv_fhz1300pc</b></code> oder <code><b>/dev/elv_em1010pc</b></code> in Ihrer FHEM Konfiguration verwenden zu können,
  158. muss das Kernel-Modul ftdio_sio per "rmmod"/"modprobe" neu geladen werden.
  159. <hr>
  160. <p><b><a name="log">Perl Device::SerialPort</a></b><br>
  161. Unter debian müssen Sie evtl. das Perl-Modul "Device::SerialPort" nachinstallieren:
  162. <pre>
  163. apt-get install libdevice-serialport-perl
  164. </pre>
  165. <hr>
  166. <p><b><a name="log">Logfile config</a></b><br>
  167. Eine Rotation der Datei fhem.log (logrotation) erreichen Sie durch Erweitern
  168. der Datei /etc/logrotate.conf:<br>
  169. <pre>
  170. /var/log/fhem.log {
  171. missingok
  172. weekly
  173. copytruncate
  174. rotate 5
  175. compress
  176. }
  177. </pre>
  178. </div>
  179. </body>
  180. </html>