RaspberryPi: Unterschied zwischen den Versionen
Eman (Diskussion | Beiträge) (→RFID-RC522 Lesemodul in Betrieb nehmen (Raspbian Buster)) |
Eman (Diskussion | Beiträge) (→Navigation installieren) |
||
(24 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt) | |||
Zeile 1.456: | Zeile 1.456: | ||
[https://tipps.computerbild.de/hardware/komponenten/raspberry-pi-uhrzeit-ohne-internet-einrichten-715221.html Quelle:] | [https://tipps.computerbild.de/hardware/komponenten/raspberry-pi-uhrzeit-ohne-internet-einrichten-715221.html Quelle:] | ||
− | ==RFID-RC522 Lesemodul in Betrieb nehmen (Raspbian Buster)== | + | ==RFID-RC522 Lesemodul in Betrieb nehmen (Raspbian Buster) funktioniert bei mir momentan nur, wenn ich auf RPI2-Hardware einrcihte, später aber mit RPI3 wenn ich MicroSD einwechsle== |
[https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf Datasheet] | [https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf Datasheet] | ||
Zeile 1.467: | Zeile 1.467: | ||
!PIN am RF522 Modul!!Adernfarbe!!Hardware PIN am<br> Raspberry Pi 2!!GPIO!!Signal | !PIN am RF522 Modul!!Adernfarbe!!Hardware PIN am<br> Raspberry Pi 2!!GPIO!!Signal | ||
|- | |- | ||
− | |style="text-align:center;font-weight:bold"|SDA||style="text-align:center;font-weight:bold;color:purple"|violett||style="text-align:center;font-weight:bold"|24||style="text-align:center;font-weight:bold"|8||style="text-align:center;font-weight:bold"| | + | |style="text-align:center;font-weight:bold"|SDA||style="text-align:center;font-weight:bold;color:purple"|violett||style="text-align:center;font-weight:bold"|24||style="text-align:center;font-weight:bold"|8||style="text-align:center;font-weight:bold"|CE0 (Chip Enable 0) / SS (Slave Select) / CS Chip Select |
|- | |- | ||
− | |style="text-align:center;font-weight:bold"|SCK||style="text-align:center;font-weight:bold;color:gray"|grau||style="text-align:center;font-weight:bold"|23||style="text-align:center;font-weight:bold"|11||style="text-align:center;font-weight:bold"| | + | |style="text-align:center;font-weight:bold"|SCK||style="text-align:center;font-weight:bold;color:gray"|grau||style="text-align:center;font-weight:bold"|23||style="text-align:center;font-weight:bold"|11||style="text-align:center;font-weight:bold"|Serial Clock |
|- | |- | ||
− | |style="text-align:center;font-weight:bold"|MOSI||style="text-align:center;text-shadow: 1px 1px 1px gray, 1px -1px 1px gray, -1px 1px 1px gray, -1px -1px 1px gray;font-weight:bold;color:white"|weiß||style="text-align:center;font-weight:bold"|19||style="text-align:center;font-weight:bold"|10||style="text-align:center;font-weight:bold"| | + | |style="text-align:center;font-weight:bold"|MOSI||style="text-align:center;text-shadow: 1px 1px 1px gray, 1px -1px 1px gray, -1px 1px 1px gray, -1px -1px 1px gray;font-weight:bold;color:white"|weiß||style="text-align:center;font-weight:bold"|19||style="text-align:center;font-weight:bold"|10||style="text-align:center;font-weight:bold"|Master Out Slave In |
|- | |- | ||
− | |style="text-align:center;font-weight:bold"|MISO||style="text-align:center;font-weight:bold"|schwarz||style="text-align:center;font-weight:bold"|21||style="text-align:center;font-weight:bold"|9||style="text-align:center;font-weight:bold;font-weight:bold"| | + | |style="text-align:center;font-weight:bold"|MISO||style="text-align:center;font-weight:bold"|schwarz||style="text-align:center;font-weight:bold"|21||style="text-align:center;font-weight:bold"|9||style="text-align:center;font-weight:bold;font-weight:bold"|Master In Slave Out |
|- | |- | ||
|style="text-align:center;font-weight:bold"|IRQ||style="text-align:center;color:red;font-weight:bold"|rot||style="text-align:center"|-||style="text-align:center"|-||style="text-align:center"|- | |style="text-align:center;font-weight:bold"|IRQ||style="text-align:center;color:red;font-weight:bold"|rot||style="text-align:center"|-||style="text-align:center"|-||style="text-align:center"|- | ||
Zeile 1.496: | Zeile 1.496: | ||
*Software installieren: | *Software installieren: | ||
+ | sudo apt-get install git python-dev --yes | ||
git clone https://github.com/lthiery/SPI-Py.git | git clone https://github.com/lthiery/SPI-Py.git | ||
+ | cd SPI-Py | ||
git checkout -b 8cce26b9ee6e69eb041e9d5665944b88688fca68 | git checkout -b 8cce26b9ee6e69eb041e9d5665944b88688fca68 | ||
sudo python setup.py install | sudo python setup.py install | ||
+ | cd.. | ||
git clone https://github.com/mxgxw/MFRC522-python.git | git clone https://github.com/mxgxw/MFRC522-python.git | ||
*Lesen testen: | *Lesen testen: | ||
Zeile 1.514: | Zeile 1.517: | ||
[https://tutorials-raspberrypi.de/raspberry-pi-rfid-rc522-tueroeffner-nfc/ Quelle1:] | [https://tutorials-raspberrypi.de/raspberry-pi-rfid-rc522-tueroeffner-nfc/ Quelle1:] | ||
− | [https://github.com/mxgxw/MFRC522-python/issues/69 | + | [https://www.nikolaus-lueneburg.de/2014/06/rfid-rc522-modul-mit-spi-schnittstelle/ Quelle2:] |
− | [https://github.com/lthiery/SPI-Py | + | [https://github.com/mxgxw/MFRC522-python/issues/69 Quelle3:] |
− | [https://www.raspberrypi.org/forums/viewtopic.php?t=154814 | + | [https://github.com/lthiery/SPI-Py Quelle4:] |
− | [https://www.python-forum.de/viewtopic.php?t=44113 | + | [https://www.raspberrypi.org/forums/viewtopic.php?t=154814 Quelle5:] |
− | [https://hackmethod.com/hacking-mifare-rfid/?v=3a52f3c22ed6 | + | [https://www.python-forum.de/viewtopic.php?t=44113 Quelle6:] |
+ | [https://hackmethod.com/hacking-mifare-rfid/?v=3a52f3c22ed6 Quelle7:] | ||
+ | |||
+ | ==nginx mit PHP7.3 auf RaspberryPi installieren== | ||
+ | ssh-datei auf CF-Karte für SSH-Zugriff erstellen | ||
+ | passwd | ||
+ | sudo raspi-config (Zeitzone, Sprach, Hostname etc.) | ||
+ | sudo apt-get update | ||
+ | sudo apt-get upgrade | ||
+ | sudo apt dist upgrade | ||
+ | (sudo apt-get full-upgrade) | ||
+ | (sudo rpi-eeprom-update) | ||
+ | sudo apt-get install php7.3 php7.3-fpm php7.3-cli php7.3-opcache php7.3-mbstring php7.3-curl php7.3-xml php7.3-gd | ||
+ | sudo apt-get install php-xml | ||
+ | sudo systemctl restart php7.3-fpm | ||
+ | sudo apt-get install nginx | ||
+ | sudo mv /etc/nginx/sites-available/default /home/pi/nginx_default | ||
+ | sudo nano /etc/nginx/sites-available/default | ||
+ | ''Inhalt:'' | ||
+ | <pre>server { | ||
+ | listen 80 default_server; | ||
+ | listen [::]:80 default_server; | ||
+ | |||
+ | root /var/www/html; | ||
+ | |||
+ | index index.php index.html index.htm index.nginx-debian.html; | ||
+ | |||
+ | server_name [your public IP]; | ||
+ | |||
+ | location / { | ||
+ | try_files $uri $uri/ =404; | ||
+ | } | ||
+ | |||
+ | location ~ \.php$ { | ||
+ | include snippets/fastcgi-php.conf; | ||
+ | fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; | ||
+ | } | ||
+ | |||
+ | location ~ /\.ht { | ||
+ | deny all; | ||
+ | } | ||
+ | |||
+ | |||
+ | location ~ /(data|conf|bin|inc|vendor)/ { | ||
+ | deny all; | ||
+ | } | ||
+ | |||
+ | |||
+ | }</pre> | ||
+ | sudo nginx -t | ||
+ | ''=> Es dürfen keine Fehler angezeigt werden!'' | ||
+ | sudo systemctl reload nginx | ||
+ | <pre>wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz</pre> | ||
+ | sudo cp /home/pi/dokuwiki-stable.tgz /var/www/html/ | ||
+ | sudo cd /var/www/html/ | ||
+ | sudo tar -xzvf dokuwiki-stable.tgz | ||
+ | sudo mv dokuwiki-2* dokuwiki | ||
+ | (sudo groupadd www-data) | ||
+ | (sudo usermod -a -G www-data www-data) | ||
+ | sudo chown -R www-data:www-data /var/www | ||
+ | |||
+ | *Im Webbrowser DokuWiki aufrufen: | ||
+ | http://server/dokuwiki_install.php | ||
+ | *Installation durchführen | ||
+ | |||
+ | sudo mv ./install.php /home/pi/dokuwiki_install.php | ||
+ | sudo mv ./index.nginx-debian.html /home/pi/index.nginx-debian.html | ||
+ | |||
+ | [https://wiki.byte-welt.net/wiki/Raspberry_Pi_als_Webserver_einsetzen Quelle1:] | ||
+ | [https://forum.dokuwiki.org/d/18343-php-function-xml-parser-create-is-not-available Quelle2:] | ||
+ | [https://www.dokuwiki.org/security#web_access_security Quelle3:] | ||
+ | |||
+ | ==DokuWiki== | ||
+ | |||
+ | ===Logo und FavIcon ändern=== | ||
+ | |||
+ | ====Logo ändern==== | ||
+ | *Eine Datei namens logo.png in der passenden Größe erzeugen. | ||
+ | *Diese Datei mit dem Medienmanager ins Wurzelverzeichnis des Medienmanagers hochladen | ||
+ | |||
+ | ====Favicon ändern==== | ||
+ | *Die Datei '''logo.png''' mit Paint.Net auf eine Größe von 48×48 Pixel bringen | ||
+ | *Das Bild aus Paint.NET als favicon.ico speichern | ||
+ | ''Paint.Net kann standardmäßig keine .ico-Dateien erzeugen: siehe "mit Paint.NET Icons erstellen" '' | ||
+ | *Alternativ können Sie jpg- bzw. png-Dateien auch online ins ICO-Format konvertieren. | ||
+ | *Die Datei favicon.ico in Wurzelverzeichnis des Medienmanagers hochladen | ||
+ | |||
+ | [https://whermanns.de/wiki/dokuwiki/logo_aendern Quelle:] | ||
+ | |||
+ | ====Navigation installieren==== | ||
+ | * in '''Admin''' > '''Erweiterungen verwalten''' > '''Suchen und installieren''' > "'''Navigation Plugin von Andreas Gohr'''" installieren | ||
+ | * in '''Admin''' > '''Konfiguration''' > '''Basis''' > "Name der Sidebar-Seite" von "'''sidebar'''" auf "'''navigationmenu'''" ändern | ||
+ | * "ganz unten" > '''Speichern''' | ||
+ | * die Seite '''navigationmenu''' anlegen: | ||
+ | <pre>http://server/dokuwiki/doku.php?id=navigationmenu</pre> | ||
+ | *Inhalt: | ||
+ | <pre> * [[navigationmenu|Nagivation]] | ||
+ | |||
+ | * [[start|Welcome]] | ||
+ | * [[Products]] | ||
+ | * [[Foomatic 2000]] | ||
+ | * [[Foomatic 2010]] | ||
+ | * [[Service]] | ||
+ | * [[about|About Foo Inc.]] | ||
+ | * [[Contact]] | ||
+ | * [[syntax|Wiki Syntax]]</pre> | ||
+ | |||
+ | ==Mit Paint.NET Icons erstellen== | ||
+ | |||
+ | * DLL-Datei herunterladen: [https://forums.getpaint.net/applications/core/interface/file/attachment.php?id=8112 IcoCur.zip 21,65kB] | ||
+ | * entpacken | ||
+ | * DLL nach '''C:\Program Files\paint.net\FileTypes''' verschieben/kopieren | ||
+ | |||
+ | [https://www.fmjf.de/2013/01/paint-net-icons-schnell-und-einfach-erstellen/ Quelle1:] | ||
+ | [https://forums.getpaint.net/topic/927-icon-cursor-and-animated-cursor-format-v37-may-2010/ Quelle2:] |
Aktuelle Version vom 1. November 2021, 12:10 Uhr
Inhaltsverzeichnis
- 1 Updates & Upgrades
- 2 AVM FRITZ!WLAN USB Stick installieren/einrichten
- 3 Realtek RTL8188CUS Mini-USB Stick installieren/einrichten
- 4 TFTP-Server installieren
- 5 FTP-Server installieren:
- 6 Python -Setuptools installieren:
- 7 PIP installieren:
- 8 Feedparser installieren:
- 9 Cron-Logging einstellen
- 10 Uhrzeit per NTPDATE synchronisieren
- 11 Cron - Einstellungen aus Datei "Einstellungen_crontab.txt" importieren:
- 12 Fernseher über HDMI-CEC steuern
- 12.1 CEC-Client installieren, normales Paket
- 12.2 CEC-Client installieren, Neue Anleitung
- 12.3 cec-client installieren
- 12.4 Test
- 12.5 Fernseher per CEC-Client einschalten
- 12.6 Fernseher per CEC-Client ausschalten
- 12.7 Power-Status per CEC-Client auslesen
- 12.8 Fernseher per CEC-Client auf HDMI1 umschalten
- 12.9 Fernseher per CEC-Client auf HDMI4 umschalten
- 12.10 Fernseher wieder auf TV umschalten
- 12.11 Sprache des Fernsehers rausfinden
- 12.12 Befehle von "cec-client" anzeigen
- 12.13 CEC-Codes herausfinden
- 12.14 alle HDMI-CEC Geräte anzeigen
- 12.15 Python HDMI-CEC
- 13 Projekt: Raspberry spielt mit IR-Lichtschranke als Sensor eine MP3-Datei ab
- 14 USB-Sticks komfortabel mounten
- 15 Windows-Netzwerkfreigabe mounten
- 16 RaspberryPi per Script sichern
- 17 RDP einrichten
- 18 Email einrichten
- 19 Proxy einstellen (offizielle Anleitung)
- 20 Proxy einstellen (Raspbian)
- 21 SMB-Freigabe einrichten
- 22 Sprachausgabe
- 23 Beispiele für Sprachausgabe
- 24 Radio hören
- 25 Interessante Links
- 26 Putty (für Windows) "richtig" einstellen:
- 27 VNC Viewer
- 28 Bildschirmauflösung anzeigen lassen
- 29 Bildschirmauflösung fest einstellen
- 30 RPi an unterbechungsfreier Stromversorgung USV (USB-Anbindung)
- 31 RPi Temperaturmessung mit Dallas D18B20
- 32 RPi Temperaturmessung mit USB-Stick
- 33 DMM Digitalmultimeter Metex/Voltcraft M3850 auslesen
- 34 SSH untern Windows einschalten bei "frisch auf SD-Karte aufgespieltem Rasbian"
- 35 Diashow
- 36 RPi Monitor
- 37 Seriennummer
- 38 LAN-Interface-Status
- 39 MAC-Adresse
- 40 CID von SD-Karte lesen
- 41 Leaseinfo/time
- 42 Bildschirm Aus/Einschalten screen off/on
- 43 IP-Adresse für Erststart vorgeben
- 44 Webcam einrichten (Aiptek Hyper Vcam Fun / Aiptek Hyper Vcam Mobile / Logitech, Inc. QuickCam Messenger Plus
- 45 Splashscreen ändern (Raspbian Jessie)
- 46 Bildschirmschoner abschalten
- 47 Proxyeinstellung Iceweasel/Firefox prüfen
- 48 Squid Filter-Beispieldatei
- 49 LEDs
- 50 Epiphany-browser fullscreen + Autostart (Raspbian Buster)
- 51 Raspberry Pi A+ Pinout
- 52 Datum und Uhrzeit "von Hand" setzen
- 53 RFID-RC522 Lesemodul in Betrieb nehmen (Raspbian Buster) funktioniert bei mir momentan nur, wenn ich auf RPI2-Hardware einrcihte, später aber mit RPI3 wenn ich MicroSD einwechsle
- 54 nginx mit PHP7.3 auf RaspberryPi installieren
- 55 DokuWiki
- 56 Mit Paint.NET Icons erstellen
Updates & Upgrades
sudo apt-get update
sudo apt-get upgrade
AVM FRITZ!WLAN USB Stick installieren/einrichten
- Konrolle ob Hardwaretyp "zutrifft":
lsusb
eingeben.
- Die Ausgabe sollte so aussehen:
ID 057c:8401 AVM GmbH Fritz!WLAN N [Atheros AR9001U]
- Freie Firmware intallieren:
sudo apt-get install firmware-linux-free
- WLAN-Key einstellen/angeben
sudo pico /etc/wpa_supplicant/wpa_supplicant.conf
- Inhalt der Datei anpassen + speichern. Z. B.:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1
network={ ssid="yyy" scan_ssid=1 proto=RSN group=CCMP pairwise=CCMP key_mgmt=WPA-PSK psk="xxxxxxxxxxxxxxxx" }
- In der Zeile ssid="yyy" den Netznamen (SSID) eintragen.
- In der Zeile psk="xxxxxxxxxxxxxxxx" den WLAN-Schlüssel eintragen.
- Test ob WLAN/WiFi-Netze gefunden werden:
sudo ifdown wlan0 sudo ifup wlan0 sudo iwlist wlan0 scan
oder
sudo iwlist wlan0 scan |grep "ESSID\|Quality"
Realtek RTL8188CUS Mini-USB Stick installieren/einrichten
- Kontrolle ob Hardwaretyp "zutrifft":
lsusb
eingeben.
- Die Ausgabe sollte so aussehen:
0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
ifconfig
eingeben.
- Die Ausgabe sollte so ähnlich aussehen:
wlan0 Link encap:Ethernet Hardware Adresse 00:13:ef:90:4b:2a UP BROADCAST MULTICAST MTU:1500 Metrik:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 Kollisionen:0 Sendewarteschlangenlänge:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
- nach verfügbaren Netzwerken scannen:
sudo iwlist wlan0 scan
- Die Ausgabe sollte so ähnlich aussehen:
wlan0 Scan completed : Cell 01 - Address: 24:65:11:86:E7:53 ESSID:"xxx" Protocol:IEEE 802.11bgn Mode:Master Frequency:2.412 GHz (Channel 1) Encryption key:on Bit Rates:300 Mb/s Extra:rsn_ie=3014010xxxxxx040100000fac040100000xxc020000 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: DD6F0050F204104A0001101044000102103B00010310470010E5F1E6174F806C1C241124651186E74F1021000341564D1023000446426F78102400043030303010420004303030301054 000800060050F20400011011000446426F78100800022788103C0001031049000600372A000120 Quality=81/100 Signal level=63/100
- WLAN-Key einstellen/angeben
sudo pico /etc/wpa_supplicant/wpa_supplicant.conf
- Inhalt der Datei anpassen + speichern. Z. B.:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1
network={ ssid="yyy" key_mgmt=WPA-PSK psk="xxxxxxxxxxxxxxxx" }
- In der Zeile ssid="yyy" den Netznamen (SSID) eintragen.
- In der Zeile psk="xxxxxxxxxxxxxxxx" den WLAN-Schlüssel eintragen.
- Neu starten
sudo reboot
- Test ob IP-Adresse bezohen wurde:
sudo ifconfig wlan0
- Ausgabe sollte so Änlich aussehen:
wlan0 Link encap:Ethernet Hardware Adresse 00:13:ef:xx:xx:xx inet Adresse:192.168.xxx.xxx Bcast:192.168.xxx.xxx Maske:255.xxx.xxx.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1 RX packets:45 errors:0 dropped:0 overruns:0 frame:0 TX packets:5 errors:0 dropped:0 overruns:0 carrier:0 Kollisionen:0 Sendewarteschlangenlänge:1000 RX bytes:15320 (14.9 KiB) TX bytes:1398 (1.3 KiB)
- Stromsparmodus abschalten:
dazu eine Datei mit:
sudo nano /etc/modprobe.d/8192cu.conf
anlegen.
- Inhalt:
# Disable power saving options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
Kontrolle:
cat /sys/module/8192cu/parameters/rtw_power_mgnt cat /sys/module/8192cu/parameters/rtw_enusbss
Mögliche Parameter anzeigen:
ls /sys/module/8192cu/parameters/
TFTP-Server installieren
- Server installieren:
sudo apt-get install tftpd-hpa
- Einstelllungen anpassen:
sudo nano /etc/default/tftpd-hpa
Inhalt der Datei wie folgt ändern:
TFTP_USERNAME=”tftp” TFTP_DIRECTORY=”/srv/tftp” TFTP_ADDRESS=”0.0.0.0:69″ TFTP_OPTIONS=”–secure -4”
- Server neu starten:
sudo service tftpd-hpa restart
Hinweis: Dateien in /srv/tftp
ablegen.
FTP-Server installieren:
sudo apt-get install vsftpd
- FTP-Server konfigurieren:
sudo nano /etc/vsftpd.conf
- Folgende Änderungen (Auskommentieren) machen:
anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=YES local_umask=022
- Neuen Nutzer hinzufügen
sudo useradd -m -s /sbin/false -g users ftpuser
- Kennwort setzen
sudo passwd ftpuser
- Sicherheitseinstellungen vornehmen:
sudo nano /etc/pam.d/vsftpd
- PAM konfigurieren (Auskommentieren)
#auth required pam_shells.so
- Server neu starten:
sudo service vsftpd restart
- Berechtigungen setzen:
sudo chmod a-w /home/ftpuser
Python -Setuptools installieren:
sudo apt-get install python-setuptools
PIP installieren:
sudo apt-get install python-pip
Feedparser installieren:
sudo pip install feedparser
Cron-Logging einstellen
sudo pico /etc/rsyslog.conf
- Auskommentieren (Rubrik:
############### #### RULES #### ###############)
# cron.* /var/log/cron.log
zu:
cron.* /var/log/cron.log
- Cron neu starten:
sudo /etc/init.d/rsyslog restart
Uhrzeit per NTPDATE synchronisieren
sudo apt-get purge ntp
sudo dpkg-reconfigure tzdata
sudo apt-get install ntpdate
Cron - Einstellungen aus Datei "Einstellungen_crontab.txt" importieren:
sudo crontab ./Einstellungen_crontab.txt
Fernseher über HDMI-CEC steuern
CEC-Client installieren, normales Paket
sudo apt-get install cec-utils
CEC-Client installieren, Neue Anleitung
CEC-client installieren:
- das Erste ist den RPI auf die letzen Paketstand zu bringen:
sudo apt-get update && sudo apt-get dist-upgrade sudo rpi-update sudo reboot
- als nächstes installiere die Voraussetzungen um libcec zu schaffen:
sudo apt-get install git cmake g++-4.8 checkinstall liblockdev1-dev libudev-dev libxrandr-dev python-dev swig
- clone das pluse-eight libcec repository:
cd /usr/src sudo git clone --recursive git://github.com/Pulse-Eight/libcec.git
- erzeuge die Platformbibliothek:
cd /usr/src/libcec/src/platform sudo mkdir build cd build cmake -DCMAKE_CXX_COMPILER=g++-4.8 .. sudo cmake -DCMAKE_CXX_COMPILER=g++-4.8 .. sudo make sudo checkinstall
- bilde letzlich libcec:
cd /usr/src/libcec sudo mkdir build cd build sudo cmake -DRPI_INCLUDE_DIR=/opt/vc/include -DRPI_LIB_DIR=/opt/vc/lib -DCMAKE_CXX_COMPILER=g++-4.8 -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=1 .. sudo make sudo -s export LIBRARY_PATH=/opt/vc/lib checkinstall
cec-client installieren
sudo apt-get install autoconf build-essential git liblockdev1-dev libtool libudev-dev pkg-config git clone git://github.com/Pulse-Eight/libcec.git cd libcec/ ./bootstrap ./configure --with-rpi-include-path=/opt/vc/include --with-rpi-lib-path=/opt/vc/lib --enable-rpi
make sudo make install sudo ldconfig
Test
cec-client -l
Fernseher per CEC-Client einschalten
echo "on 0" | sudo cec-client -s -d 1
Fernseher per CEC-Client ausschalten
echo "standby 0" | sudo cec-client -s -d 1
Power-Status per CEC-Client auslesen
echo "pow 0" | sudo cec-client -s -d 1
Fernseher per CEC-Client auf HDMI1 umschalten
echo "tx 4F 82 10 00" | cec-client -s
Fernseher per CEC-Client auf HDMI4 umschalten
echo "tx 4F 82 40 00" | cec-client -s
Fernseher wieder auf TV umschalten
echo "txn 40 9D 00 00" | cec-client -s
Sprache des Fernsehers rausfinden
echo 'lang 0' | cec-client -t p -p 1 -d 1 -s | tail -n1 | grep 'language' | awk '{print $3}'
Befehle von "cec-client" anzeigen
echo h | cec-client -s -d 1
Ausgabe:
opening a connection to the CEC adapter... ================================================================================ Available commands: [tx] {bytes} transfer bytes over the CEC line. [txn] {bytes} transfer bytes but don't wait for transmission ACK. [on] {address} power on the device with the given logical address. [standby] {address} put the device with the given address in standby mode. [la] {logical address} change the logical address of the CEC adapter. [p] {device} {port} change the HDMI port number of the CEC adapter. [pa] {physical address} change the physical address of the CEC adapter. [as] make the CEC adapter the active source. [is] mark the CEC adapter as inactive source. [osd] {addr} {string} set OSD message on the specified device. [ver] {addr} get the CEC version of the specified device. [ven] {addr} get the vendor ID of the specified device. [lang] {addr} get the menu language of the specified device. [pow] {addr} get the power status of the specified device. [name] {addr} get the OSD name of the specified device. [poll] {addr} poll the specified device. [lad] lists active devices on the bus [ad] {addr} checks whether the specified device is active. [at] {type} checks whether the specified device type is active. [sp] {addr} makes the specified physical address active. [spl] {addr} makes the specified logical address active. [volup] send a volume up command to the amp if present [voldown] send a volume down command to the amp if present [mute] send a mute/unmute command to the amp if present [self] show the list of addresses controlled by libCEC [scan] scan the CEC bus and display device info [mon] {1|0} enable or disable CEC bus monitoring. [log] {1 - 31} change the log level. see cectypes.h for values. [ping] send a ping command to the CEC adapter. [bl] to let the adapter enter the bootloader, to upgrade the flash rom. [r] reconnect to the CEC adapter. [h] or [help] show this help. [q] or [quit] to quit the CEC test client and switch off all connected CEC devices. ================================================================================
CEC-Codes herausfinden
alle HDMI-CEC Geräte anzeigen
echo scan | cec-client -s -d 1
Python HDMI-CEC
Projekt: Raspberry spielt mit IR-Lichtschranke als Sensor eine MP3-Datei ab
Materialien:
Hardware:
- IR-Lichtschranke aus Ausbildung zum Kommunkationselektroniker bei der DBP/Deutschen Telekom Modul 2.11.06 bestehend aus:
- Sender
- Empfänger mit Relais
- 2 SteckerNetzteile mit möglichst guter Gleichrichtung. Eingang: 230V ~ Ausgang: 12V min. 200mA
- RaspberryPi Model B
- 1 SteckerNetzteil mit MiniUSB-Anschluss zum Betrieb des RaspberryPi (z. B. Ansmann Micro USB Charger 1A). Eingang: 230V ~ Ausgang: 5V max. 1A
- 16 GB SD-Karte
- "Aktive" Lautsprecherboxen (am besten mit Lautstärkeregler) für PC mit 3,5mm Klinkenstecker-Anschluss oder passendem Adapter.
Software:
Hardware Installation:
- Die zwei Relaiskontakte für dem Schliesser der Lichtschranke (3-poliger Schraubverbinder am DIL-Relais auf der Platine) mit 2 Drähten:
- 1x an PIN (Ground)
- 1x an PIN (GPIO24)
- des GPIO-Steckers des RaspberryPi anschliessen:
Software Installation:
- NOOBS installieren wie hier beschrieben
- SD-Karte in RaspberryPi stecken
- Strom anschliessen und booten
- in der grafischen Oberfläche "Deutsch + Deutsche Tastatur" einstellen
- Raspbian auswählen und installieren lassen
- Neu starten
- raspi-config ausführen - Punkte:
configure_keyboard - Set keyboard layout change_pass - Change password for 'pi' user change_locale - Set locale
Anmerkung: Am besten alle 3 deutschen 'locales' auswählen + die mit UTF-8 als aktuelle setzen.
change_timezone - Set timezone
durcharbeiten.
Einrichten
- Raspbian auf den "neusten Stand" bringen:
sudo apt-get update sudo apt-get upgrade
- MP3-Software installieren (alternativ geht auch
aplay
, dann eben mit.wav
-files (sollte vorinstalliert sein):
sudo apt-get install mpg321
- ALSA-Sound-Werkzeuge (falls nicht vorhanden):
sudo apt-get install alsa-utils
- optional - Wenn man später mit Python arbeiten will (falls nicht vorhanden):
sudo apt-get install python-dev sudo apt-get install python-rpi.gpio
- Dateien:
lightbarrier.sh lightbarrier_ini.sh hwk.mp3
Nach Verzeichnis /home/pi
kopieren. Z. B. über FTP-Zugriff oder vom Raspberry aus über sudo wget --ftp-user=Benutzer --ftp-password=Kennwort ftp://ftp.server.net/hwk.mp3
- Rechte der Dateien z. B. mit
sudo chmod 755 *
auf ausführbar setzen.
- Datei
/etc/rc.local
editieren:
sudo nano /etc/rc.local
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. sudo /home/pi/lightbarrier_ini.sh sudo /home/pi/lightbarrier.sh # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi exit 0
- Audio Ausgang auf 3,5mm Klinke (grüne Buchse) einstellen
sudo amixer cset numid=3 1
- Kontrolle:
sudo amixer cget numid=3 1
sollte so ausehen:
numid=3,iface=MIXER,name='PCM Playback Route' ; type=INTEGER,access=rw------,values=1,min=0,max=2,step=0 : values=1
- Lautstärke auf Maximum setzen:
amixer sset 'PCM' 100%
- Raspberry neu booten
sudo reboot
bash-Scripte
-
/home/pi/lightbarrier_ini.sh:
#!/bin/bash # export GPIO pin 24 and set to input with pull-up echo "24" > /sys/class/gpio/export echo "in" > /sys/class/gpio/gpio24/direction echo "high" > /sys/class/gpio/gpio24/direction
-
/home/pi/lightbarrier.sh:
#!/bin/bash # export GPIO pin 24 and set to input with pull-up is done by seperate script "lightbarrier_ini.sh" because this should be done only once # monitor GPIO pin 24 (wiringPi pin 5) for light-barrier signal # wait for pin to go low while [ true ] do if [ "$(cat /sys/class/gpio/gpio24/value)" == '0' ] then echo "playing mp3 ..." #exit 0 mpg123 /home/pi/hwk.mp3 fi sleep .1 done
Fehlersuche, Tuning ...
- Die
sleep
-Anweisung in obigem Script ist eine Art "Auslöse-Hysterese" ... je nach Länge der MP3-Datei ... - Zugriffsrechte auf z. B.
audio:x:29:pi,root sys:x:3:pi,root gpio:x:1003:pi,root
- anpassen.
- Kontrolle:
less /etc/group
- Ändern z. B.:
sudo usermod -aG gpio pi
- Lautstärkeregler (ALSA) "aufgedreht" + Regler an Aktivboxen + eingeschaltet?
- richtiger Audio-Ausgang mit
amixer
gesetzt? - Verkabelung des Relaiskontaktes? Kontrolle ob am GPIO24 richtig eingelesen wird:
cat /sys/class/gpio/gpio24/value
USB-Sticks komfortabel mounten
- Werkzeuge installieren:
sudo apt-get install usbmount
- Rechte (Schreiben) anpassen:
sudo nano /etc/usbmount/usbmount.conf
Zeile in:
FS_MOUNTOPTIONS="-fstype=vfat,gid=users,dmask=0007,fmask=0117"
ändern
Windows-Netzwerkfreigabe mounten
- CIFS-Software installieren
sudo apt-get install cifs-utils
- Verzeichnis erstellen
mkdir /media/nas
- Freigabe mounten:
sudo mount.cifs //<IP-Adresse des Servers>/<Freigabename> /media/nas -o user=<Benutzername>,pass=<Passwort>,sec=ntlm
[Quelle: http://www.forum-raspberrypi.de/Thread-freigegebenen-ordner-einbinden?pid=41711#pid41711]
... automatisch bei Boot
- z. B. Bash-Script mountscript.sh mit folgendem Inhalt erstellen:
#!/bin/bash sudo mount.cifs //server/share /media/y: -o user=Benutzer,pass=Kennwort,sec=ntlm,iocharset=utf8
- script ausführbar machen:
sudo chmod +x mountscript.sh
- Script bei boot aufrufen - dazu in /etc/rc.local vor der Zeile mit exit 0 einfügen:
/home/pi/mountscript.sh &
- per:
sudo raspi-config
im Punkt:
3 Boot Options Configure options for start-up
den Unterpunkt:
B2 Wait for Network at Boot Choose whether to wait for network connection during boot line
auf:
Waiting for network on boot is enabled
stellen.
RaspberryPi per Script sichern
- Script downloaden:
curl -s -L -O https://www.linux-tips-and-tricks.de/raspiBackupInstallUI.sh && sudo bash ./raspiBackupInstallUI.sh
alt: wget http://www.linux-tips-and-tricks.de/raspiBackupInstall.sh -O raspiBackupInstall.sh -q && sudo bash raspiBackupInstall.sh
- Script ausführen:
neu ab ~ Version 0.6.1.2 :
sudo /usr/local/bin/raspiBackup.sh -a : -o : -t dd -z -v /media/nas
alt:
sudo /usr/local/bin/raspiBackup.sh -p /media/nas -t dd -z -v
- Bei Problemen (z. B. wenn RPi hinter einem Proxy betrieben wird:
- Script downloaden:
wget http://www.linux-tips-and-tricks.de/raspiBackupInstall.sh
- Script mit Rechten versehen:
sudo chmod +x raspiBackupInstall.sh
- Proxy-Einträge in Script einfügen
sudo nano raspiBackupInstall.sh
- nach der ersten Zeile (Shebang) einfügen:
export http_proxy=http://192.168.10.1:3128 export https_proxy=http://192.168.10.1:3128 export ftp_proxy=http://192.168.10.1:3128
- Script ausführen:
sudo ./raspiBackupInstall.sh
- keine Betaversion auswählen
- Als Modus "normal" nicht: partitionsorientiert auswählen
- z. B. DD auswählen
- z. B. Sprache Deutsch auswählen
- z. B. ausführliche Meldungen auswählen
RDP einrichten
- X-VNC-Server deinstallieren (bei neueren RPi-Images ~nach 6/2016)
sudo apt-get purge realvnc-vnc-server
sudo apt-get install xrdp
- weitere Einstellmöglichkeiten (nicht getestet):
/etc/xrdp/xrdp.ini und /etc/xrdp/sesman.ini
Email einrichten
https://rpi.tnet.com/project/faqs/smtp
Proxy einstellen (offizielle Anleitung)
- Umgebung anpassen
sudo nano /etc/environment
- einfügen:
export http_proxy="http://username:password@proxyipaddress:proxyport" export https_proxy="http://username:password@proxyipaddress:proxyport" export no_proxy="localhost, 127.0.0.1"
- sudoers updaten:
sudo visudo
- einfügen:
Defaults env_keep+="http_proxy https_proxy no_proxy"
- Neu starten:
reboot
Proxy einstellen (Raspbian)
Falls sich Ihr Raspberry Pi hinter einem Proxy-Server befindet, müssen Sie diesen für ausgehende HTTP-, HTTPS- und möglicherweise auch FTP-Verbindungen eintragen. Dazu erstellen Sie die Datei /etc/profile.d/proxy.sh mit einem Editor.
pi@raspberrypi ~ $ sudo vi /etc/profile.d/proxy.sh
- Fügen Sie die folgenden Zeilen in die Datei ein und passen die IP-Adressen und Portnummern entsprechend Ihrem Proxy-Server an.
export http_proxy=http://192.168.10.1:3128 export https_proxy=http://192.168.10.1:3128 export ftp_proxy=http://192.168.10.1:3128
export HTTP_PROXY=$http_proxy export HTTPS_PROXY=$https_proxy export FTP_PROXY=$ftp_proxy
Sollte für den Zugriff auf den Proxy-Server eine Authentifizierung mit Benutzername und Passwort nötig sein, können Sie diese Daten wie folgt angeben.
export http_proxy="http://username:password@192.168.10.1:3128" export https_proxy="http://username:password@192.168.10.1:3128" export ftp_proxy="http://username:password@192.168.10.1:3128"
export HTTP_PROXY=$http_proxy export HTTPS_PROXY=$https_proxy export FTP_PROXY=$ftp_proxy
Wenn Sie Ihre aktuelle Terminal-Sitzung beenden und sich erneut anmelden, werden die Einstellungen automatisch geladen.
sudo nano /etc/apt.conf.d/10proxy
- Inhalt:
Acquire::http::Proxy "http://proxy_server_address:port";
sudo nano ~/.profile
- Inhalt:
# Proxy server (example: http://username:password@10.0.0.1:8080). User/pass optional.
export http_proxy=http://[user]:[pass]@[proxy_server_address]:[port]
# Proxy exclusions (don't use the proxy server for these hostnames and IP addresses). export no_proxy=localhost,127.0.0.0/8
Proxy für git-clone einstellen
- einstellen
sudo git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
- anzeigen lassen:
sudo git config --global --get http.proxy
- aufheben:
git config --global --unset http.proxy
SMB-Freigabe einrichten
Software installieren
sudo apt-get update sudo apt-get install samba samba-common smbclient
- Prüfen ob die Dienste aktiv sind:
sudo service smbd status sudo service nmbd Status
Konfiguration
- Für die Samba-Grundkonfiguration gibt es eine zentrale Konfigurationsdatei "/etc/samba/smb.conf". Diese Datei ist in der Vorkonfiguration äußerst umfangreich und dadurch unübersichtlich. Für eine einfache Grundkonfiguration empfiehlt sich die Datei umzubenennen und neu zu erstellen.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf_alt sudo nano /etc/samba/smb.conf
- Die folgende Grundkonfiguration ist nicht allgemeingültig, sondern für die meisten Anwendungen sinnvoll und zweckmäßig anzusehen. Das heißt, für den Anfang reicht es aus. Später muss sie vielleicht individuell angepasst werden.
[global] workgroup = WORKGROUP security = user encrypt passwords = yes
- Dann testen wir diese Konfigurationsdatei. Das hat den Vorteil, dass wenn wir etwas falsch oder fehlerhaft eintragen, dann können wir den Fehlstart des Samba-Servers vermeiden.
testparm
- Nach jeder Änderung an der Konfigurationsdatei müssen die Samba-Dienste neu gestartet werden. Erst dann wird die Konfiguration übernommen.
sudo service smbd restart sudo service nmbd restart
Sprachausgabe
- Paket herunterladen:
wget http://www.dr-bischoff.de/raspi/pico2wave.deb
- Voraussetzungen installieren:
sudo apt-get install libpopt-dev
- zusätzlich falls nicht vorhanden (in alsa-utils enthalten):
sudo apt-get install aplay
- Paket installieren:
sudo dpkg --install pico2wave.deb
- ausprobieren:
sudo amixer cset numid=3 1
pico2wave --lang=de-DE --wave=/tmp/test.wav "hallo welt hier spricht der räspberri pei"; aplay /tmp/test.wav;rm /tmp/test.wav
- Deeinstallation:
sudo apt-get remove pico2wave
Beispiele für Sprachausgabe
- mit espeak:
ipadd=$(ifconfig wlan0 | grep "inet " | awk -F' ' '{print $2}' | tr -d "Adresse:") &&
/usr/bin/espeak -vde "meine Weeh-LAhN ei pie Adresse lautet" &&
espeak -s 150 -v german ${ipadd//./punkt} && ipadd=""
- mit pico2wave:
ipadd=$(ifconfig wlan0 | grep "inet " | awk -F' ' '{print $2}' | tr -d "Adresse:") &&
pico2wave --lang=de-DE --wave=/tmp/test.wav "meine Weeh-LAhN ei pie Adresse lautet"; aplay /tmp/test.wav;rm /tmp/test.wav &&
pico2wave --lang=de-DE --wave=/tmp/test.wav ${ipadd//./punkt}; aplay /tmp/test.wav;rm /tmp/test.wav &&
ipadd=""
Radio hören
mpg123 -@ http://swr-mp3-m-swr3.akacast.akamaistream.net/7/720/137136/v1/gnl.akacast.akamaistream.net/swr-mp3-m-swr3
Interessante Links
Putty (für Windows) "richtig" einstellen:
VNC Viewer
- mit
sudo raspi-config
unter
Advanced Options
scrollen
VNC > Yes
den VNC-Server einschalten
Download des VNC-Viewers (z. B. für Windows-PC
https://www.realvnc.com/download/viewer/
Bildschirmauflösung anzeigen lassen
- Die aktuelle Auflösung des angeschlossenen Bildschirms anzeigen:
/opt/vc/bin/tvservice -s
- Unterstützte Auflösungen des HDMI-Bildschirms mit CEA:
/opt/vc/bin/tvservice -m CEA
- Unterstützte Auflösungen des HDMI-Bildschirms mit DMT:
/opt/vc/bin/tvservice -m DMT
Bildschirmauflösung fest einstellen
- Möglichkeit 1:
- im Auswahlpunkt "Advanced Options / Resolution“ die Auflösung einzustellen.
sudo raspi-config
- Möglichkeit 2:
Die Auflösung kann man in der folgenden Konfigurationsdatei festlegen:
sudo nano /boot/config.txt
Zuerst nehmen wir eine sinnvolle Grundkonfiguration vor. Die folgenden Zeilen fügt man einfach in der Datei unten an.
# HDMI auch ohne Monitor in Betrieb nehmen (optional) hdmi_force_hotplug=1 # Audio über HDMI ausgeben (optional) hdmi_drive=2 # DMT-Betriebsmodus aktivieren hdmi_group=2
Anschließend legen wir die Auflösung nach DMT fest (nur eine davon):
# Auflösung: 1024x768 / 60 Hz hdmi_mode=16 # Auflösung: 1280x768 / 60 Hz hdmi_mode=23 # Auflösung: 1366x768 / 60 Hz hdmi_mode=81 # Auflösung: 1920x1080 / 60 Hz (1080p) hdmi_mode=82
RPi an unterbechungsfreier Stromversorgung USV (USB-Anbindung)
- USB-Tools installieren:
sudo apt-get install usbutils
- Prüfen ob USV angeschlossen ist:
lsusb
- Ausgabe sollte z. B. sein:
Bus 001 Device 004: ID 0463:ffff MGE UPS Systems UPS
- Networktools installieren
sudo apt-get install nut-client nut-server
- konfigurieren:
sudo nano /etc/nut/ups.conf
- einfügen:
[EllipseECO1200] driver = usbhid-ups port = auto desc = "EATON Ellipse ECO 1200 UPS 1200VA"
- Rechte setzen, Verzeichniss anlegen + neu starten:
sudo mkdir /var/run/nut sudo chown root.nut /var/run/nut/ sudo chmod 770 /var/run/nut/ sudo upsdrvctl start sudo reboot
- Dienst starten:
sudo upsdrvctl start
- anzeigen ob Dienste "laufen":
ps -ef | grep ups
- Ergebnis:
nut 937 1 0 11:26 ? 00:00:13 /lib/nut/usbhid-ups -a EllipseECO1200 nut 953 1 0 11:26 ? 00:00:00 /lib/nut/upsd root 958 1 0 11:26 ? 00:00:00 /lib/nut/upsmon nut 959 958 0 11:26 ? 00:00:00 /lib/nut/upsmon pi 1161 1051 0 12:41 pts/0 00:00:00 grep --color=auto ups
- konfigurieren:
sudo nano /etc/nut/upsd.conf
- einfügen:
LISTEN 127.0.0.1 3493 LISTEN 10.207.22.16 3493
- konfigurieren:
sudo nano /etc/nut/upsd.users
- einfügen
[admin] password = <Kennwort> actions = SET instcmds = ALL # # --- Configuring for a user who can execute tests only # [testuser] password = <Kennwort> instcmds = test.battery.start instcmds = test.battery.stop # # --- Configuring for upsmon # # To add a user for your upsmon, use this example: # [upsmon_local] password = <Kennwort> upsmon master [upsmon_remote] password = <Kennwort> upsmon slave
- konfigurieren:
sudo nano /etc/nut/upsmon.conf
- einfügen:
MONITOR EllipseECO1200@localhost 1 upsmon_local local_pass master
- konfigurieren:
sudo nano /etc/nut/nut.conf
- einfügen:
MODE=none ändern in MODE=netserver
- testen:
upsc EllipseEco1200
- mögliche Kommandos anzeigen:
upscmd -l EllipseEco1200
WinNut für Windows einstellen
- in upsmon.conf eintragen:
MONITOR EllipseECO1200@10.207.22.16:3493 1 upsmon_remote <Kennwort> slave
- falls nichts funktioniert: Firewall(s) der Antivierensoftware pürfen etc. oder z. B. firewall.cpl aufrufen und winNut eintragen.
Mailversand einrichten
- STMP installieren:
sudo apt-get install ssmtp mailutils
- konfigurieren:
sudo nano /etc/ssmtp/ssmtp.conf
- eintragen/ändern:
mailhub=<Mailserver>
- Test:
echo "Test Email von RPi" | mail -s "Test Email von RPi" empfänger@firma.de
Mailversand von NUT einstellen
- konfigurieren:
sudo nano /etc/nut/upsmon.conf
- eintragen:
NOTIFYCMD /etc/nut/upssched-cmd.sh NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
- upssched-cmd.sh erstellen:
sudo nano /etc/nut/upssched-cmd.sh echo "$*" | mail -s "USV Haus OG02 DV01 INV10xxxx EATON 1200VA 750W" admin@firma.de
- Rechte usw. ändern:
sudo chown nut:nut /etc/nut/upssched-cmd.sh sudo chmod 700 /etc/nut/upssched-cmd.sh
- Test:
sudo /etc/nut/upssched-cmd.sh "This is a test message"
- neu starten:
sudo service nut-client restart
Webseite einrichten
- Webserver installieren:
sudo apt-get install apache2 -y
- Test
http://10.207.22.16
(Webseite aus /var/www/html wird angezeigt)
- CGI "einschalten"
sudo a2enmod cgi sudo systemctl restart apache2 (alt: sudo service apache2 restart)
- Nut-cgi installieren (Ziel: /usr/lib/cgi-bin/nut/...)
sudo apt-get install nut-cgi
- konfigurieren
sudo nano /etc/nut/hosts.conf
- eintragen:
MONITOR EllipseECO1200@localhost "EllipseECO1200@req8e0"
- Test
http://10.207.22.16/cgi-bin/nut/upsstats.cgi?host=EllipseECO1200@localhost http://10.207.22.16/cgi-bin/nut/upsstats.cgi
Link
Link
Link2
Doku und Projektseite
SNMP einrichten
- SNMP installieren
sudo apt-get update sudo apt-get install snmpd snmp
- editieren:
sudo nano /etc/snmp/snmpd.conf
- belassen:
#agentAddress udp:127.0.0.1:161
- unter:
#agentAddress udp:161,udp6:[::1]:161
- einfügen:
agentAddress udp:161
- # entfernen:
#rocommunity public localhost
in:
rocommunity public localhost
- SNMP-Dämon bei Systemstart einschalten
systemctl enable snmpd
- SNMP neu starten:
sudo /etc/init.d/snmpd restart
NUT-SNMP einrichten
- scripte downloaden:
sudo mkdir /etc/nut/snmpagent cd /etc/nut/snmpagent wget https://github.com/luizluca/nut-snmpagent/archive/master.zip
- entpacken
unzip nut-snmpagent-master.zip
- konfigurieren:
sudo nano /etc/snmp/snmpd.conf
- eintragen
pass_persist .1.3.6.1.4.1.26376.99 /etc/nut/snmpagent/nut-snmpagent-master/snmp-static.nut
- SNMP neu starten:
sudo systemctl restart snmpd alt: sudo /etc/init.d/snmpd restart
RPi Temperaturmessung mit Dallas D18B20
- In die Datei /boot/config.txt nachfolgende Zeilen am Ende eintragen:
sudo nano /boot/config.txt
# activating 1-wire with pullup dtoverlay=w1-gpio-pullup
- neu starten
sudo reboot
- prüfen ob die richtigen Module geladen wurden:
sudo lsmod | grep ^w1
- Ausgabe sollte so ähnlich sein:
w1_therm 3584 0 w1_gpio 3657 0
- Ins 1-Wire-Verzeichnis wechseln:
cd /sys/bus/w1/devices/w1_bus_master1/
- enthaltene Dateien ansehen:
ls
- ins Verzeichnis wechseln, das mit 28 beginnt:
cd 28*
- Sensordaten lesen
cat w1_slave
Beispiel:
b5 01 4b 46 7f ff 0b 10 a3 : crc=a3 YES b5 01 4b 46 7f ff 0b 10 a3 t=27312
- Kurzform:
cat /sys/bus/w1/devices/w1_bus_master1/28-*/w1_slave
RPi Temperaturmessung mit USB-Stick
- Pakete installieren:
apt-get install libusb-dev
- Proxy für Git einstellen (wenn RpI nicht hinter Proxy nicht erforderlich)
git config --global http.proxy http://<server-ip>:3128
- Repository clonen:
git clone https://github.com/petervojtek/usb-thermometer.git
- In Verzeichnis wechslen:
cd usb-thermometer
- Rules kopieren
cp 99-tempsensor.rules /etc/udev/rules.d/
- Kompilieren:
make
- USB-STick anschliessen
- Testen:
sudo ./pcsensor
- Kopieren
cp pcsensor /usr/local/bin/
Quelle1: Quelle2: Quelle3: Quelle4:
DMM Digitalmultimeter Metex/Voltcraft M3850 auslesen
- DMM mit COM/USB-Wandler und Adapterkabel anschliessen und einschalten
- pyserial installieren (je nach Python Version):
sudo apt-get install python-serial
oder
sudo apt-get install python3-serial
- read_dmm.py erstellen:
nano read_dmm.py
- einfügen:
import serial # 1200 baud, 7 data bits, 2 stop bits, no parity, no flow control. comm = serial.Serial("/dev/ttyUSB0", 1200, 7, "N", 2, timeout=1.) # DTR line must be set to high, RTS line must be set to low. comm.setDTR(1) comm.setRTS(0) # The instrument sends back currently displayed measurement each time # you send 'D' over the line. comm.write('D') # This returns 14 characters that show type of measurement, value and # unit - for example "DC 0.000 V\n". print comm.readline()
- speichern
- read_py aufrufen:
python read_dmm.py
SSH untern Windows einschalten bei "frisch auf SD-Karte aufgespieltem Rasbian"
- Im für Windows sichtbaren Ordner die Datei
SSH
(ohne) Dateiendung erstellen.
Diashow
http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2011/11/Der-schnelle-Bildbetrachter-Feh http://www.netzmafia.de/skripten/hardware/RasPi/Projekt-Monitor/fbi.html
RPi Monitor
- Paketquellen hinzufügen:
sudo wget http://goo.gl/vewCLL -O /etc/apt/sources.list.d/rpimonitor.list
- Schlüssel hinzufügen:
- Work-around:
sudo -i
wget -qO - 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xe4e362de2c0d3c0f' | sudo apt-key add -
- eigentlich/ursprünglich:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2C0D3C0F
- Quellinhalte updaten:
sudo apt-get update
- RPI-Monitor installieren:
sudo apt-get install rpimonitor
- Webseite aufrufen
http://<RPi-IpAddress:8888>/
- OS-Versionsdaten aktualisieren
sudo /etc/init.d/rpimonitor update
- Konfigurationsdatei
sudo nano /etc/rpimonitor/data.conf
- Neustart nach Änderungen:
sudo /etc/init.d/rpimonitor restart
- Helfer für Datendefinitionen:
rpimonitord -i
Temperatursensor einbinden
Internet Explorer Kompatibilitätsmodus in Webseite angeben
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
Seriennummer
cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2
LAN-Interface-Status
mii-tool
MAC-Adresse
cat /sys/class/net/eth0/address
CID von SD-Karte lesen
cd /sys/class/mmc_host/mmc?/mmc?:* echo "man:$(cat manfid) oem:$(cat oemid) name:$(cat name) hwrev:$(cat hwrev) fwrev:$(cat fwrev)"
Leaseinfo/time
cat /var/log/syslog | grep leased | tail -1 dhcpcd -U eth0 stat -c %Y /var/lib/dhcpcd5/dhcpcd-eth0.lease date -d @`stat -c %Y /var/lib/dhcpcd5/dhcpcd-eth0.lease`
- Shellscript: getleasetime.sh
#!/bin/bash leaselast=`cat /var/log/syslog | grep leased | tail -1 | cut -d ' ' -f 10` filemtime=`stat -c %Y /var/lib/dhcpcd5/dhcpcd-eth0.lease` echo "Lease erhalten :" $filemtime "=" `date -d @$filemtime` leaseend=$(( (filemtime) + leaselast )) echo "Lease gültig bis:" $leaseend "=" `date -d @$leaseend` currtime=`date +%s` echo "momentane Zeit :" $currtime "=" `date -d @$currtime` seconds=$((leaseend - currtime )) echo "verbleibend :" $seconds "=" `eval "echo $(date -ud "@$seconds" +'$((%s/3600/24)) Tage %H Stunden %Minuten %S Sekunden')"`
sudo dhclient -v
Bildschirm Aus/Einschalten screen off/on
Möglichkeit 1:
- ausschalten:
vcgencmd display_power 0
- einschalten:
vcgencmd display_power 1
Möglichkeit 2:
- ausschalten:
tvservice -o
- einschalten:
tvservice -p
- Konsole (Text) umschalten:
sudo chvt 1
- Konsole (Grafik)
sudo chvt 7
IP-Adresse für Erststart vorgeben
- in /boot/cmdline.txt ans Ende der Zeile schreiben:
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
client-ip: Die IP die der Raspberry haben/bekommen soll.
server-ip: Definiert normalerweise die IP des Netboot-Server's, wird in diesem Fall aber nicht benötigt!
gw-ip: Die Gateway-IP, normalerweise die IP eures Routers.
netmask: Ist eigentlich immer 255.255.255.0 aber sollte für euer Netzwerk passen.
hostname: Hostname des RaspberryPI, über den er im LAN ansprechbar wäre (DNS). Wird hier nicht benötigt!
device: Das Netzwerk Device für das diese Zuweisung gelten soll, in diesem Fall fürs Kabel: eth0
autoconf: erlaubt die Aktivierung/Deaktivierung der automatischen Konfiguration. Hier wählen Sie off
Wichtig ist das ihr keine IP doppelt belegt, die client-ip darf also noch nicht benutzt werden!
Achtet außerdem darauf das ihr in cmdline.txt nur eine Zeile habt!
- Beispiel:
ip=10.207.22.19::10.207.22.19:255.255.255.192:rpi:eth0:off
Webcam einrichten (Aiptek Hyper Vcam Fun / Aiptek Hyper Vcam Mobile / Logitech, Inc. QuickCam Messenger Plus
- Paket fswebcam installieren:
sudo apt-get install fswebcam
- Paket webcam (xawtv) installieren
sudo apt-get install webcam
- Bilder erzeugen (Beispiele):
sudo LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libv4l/v4l1compat.so fswebcam -d /dev/video0 logitech.jpeg sudo LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libv4l/v4l1compat.so fswebcam -d /dev/video1 aiptek.jpeg
Quelle1:
Quelle2:
Quelle3:
Quelle4:
Quelle5:
Hilreiche Kommandos
lsusb dmesg | grep input sudo apt-get install hwinfo hwinfo --camera lsmod find / -name v4l1compat.so
Splashscreen ändern (Raspbian Jessie)
- Datei:
/usr/share/plymouth/themes/pix/splash.png
ersetzen.
Die Datei ist 1024x768 Pixel groß
Bildschirmschoner abschalten
sudo nano /home/pi/.xsession
- auskommentieren/einfügen:
@xset -dpms @xset s noblank @xset s off
- kontrollieren (per SSH)
export DISPLAY=:0 xdg-screensaver status
sudo nano /boot/cmdline.txt
- anfügen:
consoleblank=0
Proxyeinstellung Iceweasel/Firefox prüfen
cat ~/.mozilla/firefox/*.default/prefs.js | grep "proxy.http"
Squid Filter-Beispieldatei
acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 443 # https acl CONNECT method CONNECT acl all src 0.0.0.0/0.0.0.0 #no_cache deny all acl whitelist dstdom_regex "/etc/squid/whitelist" http_access allow whitelist # Deny requests to certain unsafe ports http_access deny !Safe_ports # Deny CONNECT to other than secure SSL ports http_access deny CONNECT !SSL_ports # Only allow cachemgr access from localhost http_access allow localhost manager http_access deny manager #http_access allow localnet http_access allow localhost # And finally deny all other access to this proxy http_access deny all # Squid normally listens to port 3128 http_port 3128
UHD (4K) (Jessie)
- /boot/config:
hdmi_group=2 hdmi_mode=87 hdmi_ignore_edid=0xa5000080 hdmi_cvt 3840 2160 24 max_framebuffer_width=3840 max_framebuffer_height=2160 hdmi_pixel_freq_limit=400000000
LEDs
echo mmc0 | sudo tee /sys/class/leds/led1/trigger echo cpu0 | sudo tee /sys/class/leds/led0/trigger
Epiphany-browser fullscreen + Autostart (Raspbian Buster)
- installieren:
sudo apt-get install epiphany-browser x11-xserver-utils xautomation unclutter
- Script erstellen:
sudo nano ~./fullsceen.sh
- Inhalt:
sudo -u pi epiphany-browser -a -i --profile ~/.config [URL] --display=:0 & sleep 15s; xte "key F11" -x:0
- Eintrag für Autostart:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
- Inhalt:
@xset s off @xset -dpms @xset s noblank @/home/pi/fullscreen.sh
Raspberry Pi A+ Pinout
Datum und Uhrzeit "von Hand" setzen
sudo date 0211114620
RFID-RC522 Lesemodul in Betrieb nehmen (Raspbian Buster) funktioniert bei mir momentan nur, wenn ich auf RPI2-Hardware einrcihte, später aber mit RPI3 wenn ich MicroSD einwechsle
- Modul anschliessen:
Anschlusstabelle | |||||
---|---|---|---|---|---|
PIN am RF522 Modul | Adernfarbe | Hardware PIN am Raspberry Pi 2 |
GPIO | Signal | |
SDA | violett | 24 | 8 | CE0 (Chip Enable 0) / SS (Slave Select) / CS Chip Select | |
SCK | grau | 23 | 11 | Serial Clock | |
MOSI | weiß | 19 | 10 | Master Out Slave In | |
MISO | schwarz | 21 | 9 | Master In Slave Out | |
IRQ | rot | - | - | - | |
GND | braun | 6 | GND | GND | |
RST | orange | 22 | 25 | RESET | |
3,3V | gelb | 1 | 3V3 | VCC |
- SPI einschalten:
sudo raspi-configUnter
„ 5 Interfacing Options“ > „P4 SPI Enable/Disable automatic loading of SPI kernel module “aktivieren und den Neustart bestätigen (alternativ:
sudo reboot now).
- Prüfen ob SPI Module geladen wurden:
lsmod | grep "spi"
Ausgabe sollte sein:
spidev 20480 0 spi_bcm2835 20480 0
- Software installieren:
sudo apt-get install git python-dev --yes git clone https://github.com/lthiery/SPI-Py.git cd SPI-Py git checkout -b 8cce26b9ee6e69eb041e9d5665944b88688fca68 sudo python setup.py install cd.. git clone https://github.com/mxgxw/MFRC522-python.git
- Lesen testen:
cd MFRC522-python sudo python Read.py
Ausgabe sollte sein:
Welcome to the MFRC522 data read example Press Ctrl-C to stop. Card detected Card read UID: 217,132,xxx,xxx Size: 8 Sector 8 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Quelle1:
Quelle2:
Quelle3:
Quelle4:
Quelle5:
Quelle6:
Quelle7:
nginx mit PHP7.3 auf RaspberryPi installieren
ssh-datei auf CF-Karte für SSH-Zugriff erstellen passwd sudo raspi-config (Zeitzone, Sprach, Hostname etc.) sudo apt-get update sudo apt-get upgrade sudo apt dist upgrade (sudo apt-get full-upgrade) (sudo rpi-eeprom-update) sudo apt-get install php7.3 php7.3-fpm php7.3-cli php7.3-opcache php7.3-mbstring php7.3-curl php7.3-xml php7.3-gd sudo apt-get install php-xml sudo systemctl restart php7.3-fpm sudo apt-get install nginx sudo mv /etc/nginx/sites-available/default /home/pi/nginx_default sudo nano /etc/nginx/sites-available/default
Inhalt:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name [your public IP]; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; } location ~ /\.ht { deny all; } location ~ /(data|conf|bin|inc|vendor)/ { deny all; } }
sudo nginx -t
=> Es dürfen keine Fehler angezeigt werden!
sudo systemctl reload nginx
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
sudo cp /home/pi/dokuwiki-stable.tgz /var/www/html/ sudo cd /var/www/html/ sudo tar -xzvf dokuwiki-stable.tgz sudo mv dokuwiki-2* dokuwiki (sudo groupadd www-data) (sudo usermod -a -G www-data www-data) sudo chown -R www-data:www-data /var/www
- Im Webbrowser DokuWiki aufrufen:
http://server/dokuwiki_install.php
- Installation durchführen
sudo mv ./install.php /home/pi/dokuwiki_install.php sudo mv ./index.nginx-debian.html /home/pi/index.nginx-debian.html
DokuWiki
Logo und FavIcon ändern
Logo ändern
- Eine Datei namens logo.png in der passenden Größe erzeugen.
- Diese Datei mit dem Medienmanager ins Wurzelverzeichnis des Medienmanagers hochladen
Favicon ändern
- Die Datei logo.png mit Paint.Net auf eine Größe von 48×48 Pixel bringen
- Das Bild aus Paint.NET als favicon.ico speichern
Paint.Net kann standardmäßig keine .ico-Dateien erzeugen: siehe "mit Paint.NET Icons erstellen"
- Alternativ können Sie jpg- bzw. png-Dateien auch online ins ICO-Format konvertieren.
- Die Datei favicon.ico in Wurzelverzeichnis des Medienmanagers hochladen
- in Admin > Erweiterungen verwalten > Suchen und installieren > "Navigation Plugin von Andreas Gohr" installieren
- in Admin > Konfiguration > Basis > "Name der Sidebar-Seite" von "sidebar" auf "navigationmenu" ändern
- "ganz unten" > Speichern
- die Seite navigationmenu anlegen:
http://server/dokuwiki/doku.php?id=navigationmenu
- Inhalt:
* [[navigationmenu|Nagivation]] * [[start|Welcome]] * [[Products]] * [[Foomatic 2000]] * [[Foomatic 2010]] * [[Service]] * [[about|About Foo Inc.]] * [[Contact]] * [[syntax|Wiki Syntax]]
Mit Paint.NET Icons erstellen
- DLL-Datei herunterladen: IcoCur.zip 21,65kB
- entpacken
- DLL nach C:\Program Files\paint.net\FileTypes verschieben/kopieren