RaspberryPi
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 (Raspbian)
- 20 SMB-Freigabe einrichten
- 21 Sprachausgabe
- 22 Beispiele für Sprachausgabe
- 23 Radio hören
- 24 Interessante Links
- 25 Putty (für Windows) "richtig" einstellen:
- 26 VNC Viewer
- 27 Bildschirmauflösung anzeigen lassen
- 28 Bildschirmauflösung fest einstellen
- 29 RPi an unterbechungsfreier Stromversorgung USV (USB-Anbindung)
- 30 RPi Temperaturmessung mit Dallas D18B20
- 31 RPi Temperaturmessung mit USB-Stick
- 32 DMM Digitalmultimeter Metex/Voltcraft M3850 auslesen
- 33 SSH untern Windows einschalten bei "frisch auf SD-Karte aufgespieltem Rasbian"
- 34 Diashow
- 35 RPi Monitor
- 36 Seriennummer
- 37 LAN-Interface-Status
- 38 MAC-Adresse
- 39 CID von SD-Karte lesen
- 40 Leaseinfo/time
- 41 screen off/on
- 42 IP-Adresse für Erststart vorgeben
- 43 Webcam einrichten (Aiptek Hyper Vcam Fun / Aiptek Hyper Vcam Mobile / Logitech, Inc. QuickCam Messenger Plus
- 44 Splashscreen ändern (Raspbian Jessie)
Updates & Upgrades
sudo apt-get update
sudo apt-get upgrade
AVM FRITZ!WLAN USB Stick installieren/einrichten
- Konrolle ob Hardearetyp "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:
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 (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:
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
- 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 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
- auskommentieren:
- agentAddress udp:127.0.0.1:161
- Kommentar löschen:
agentAddress udp:161,udp6:[::1]:161
- # entfernen:
#rocommunity public localhost
in:
rocommunity public localhost
- 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 /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:
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
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ß