Raspberry Pi
- Gegevens
- Categorie: Raspberry Pi
- Hits: 20
Om van je Raspberry Pi een netwerk printerserver te maken, kun je CUPS installeren.
CUPS is een veel gebruikte Linux service om printers te beheren.
#!/bin/bash
clear
sudo apt-get install cups
sudo usermod -a -G lpadmin pi
sudo cupsctl --remote-any
sudo /etc/init.d/cups restart
Je kunt de interface van CUPS benaderen via http://:631
Nu kun je de driver voor jouw (USB-)printer toevoegen.
Voor Linux is dat meestal een PPD-bestand.
Als je geen specifieke driver voor jouw printer hebt of kunt vinden, kun je ook de Unified Linux Driver gebruiken.
Soms wordt de Linux driver met de printer meegeleverd op de installatie CD. Anders zul je die op Internet moeten zoeken.
Meestal zit daar een installatie script bij waarmee je de printer op Linux installeert.
Daarna moet je de printer op je netwerk beschikbaar maken door hem te sharen.
Op deze manier, kun je een USB-printer op de Raspberry Pi aansluiten zodat de printer vanaf elk apparaat op jouw netwerk te gebruiken is.
Je moet dan alleen op elk apparaat de printer driver toevoegen. Vaak gebeurt dat automatisch als je de printer opzoekt via: \\\
Als je geen driver voor jouw printer kunt vinden, kun je voor Windows ook de Universal Print Driver gebruiken.
Als je een multi-functionele printer hebt dan zullen de basisfuncties voor printen werken maar scannen, mailen en faxen niet.
- Gegevens
- Categorie: Raspberry Pi
- Hits: 18
Met dit script installeer je AdGuard op een Raspberry Pi
!#/bin/bash
clear
sudo timedatectl set-timezone Europe/Amsterdam
sudo apt update
sudo apt update --fix-missing -y
sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y
#sudo reboot
sudo curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh
systemctl status AdGuardHome
- Gegevens
- Categorie: Raspberry Pi
- Hits: 20
Linux Cluster met Webmin
In deze opdracht ga je 2 Raspberry Pi’s in een cluster installeren. Een cluster is een groep servers die dezelfde functionaliteit hebben. Een server in een cluster heet een node.
Als je geen fysieke Raspberry Pi’s hebt, kun je dit ook in een VM doen door de ISO van Raspberry Pi Desktop OS te downloaden van www.raspberrypi.org. Je kunt dit dus ook op 2 VM’s met de Raspbian Desktop ISO doen.
Je kunt deze instructies ook met een andere Linux ISO doen op een Hypervisor zoals Hyper-V, VMWare of Proxmox.
Als je van een uitdaging houdt, kun kijken of je dit na het uitvoeren van de opdracht, in een combinatie van een VM en een echte Raspberry Pi kunt doen. In feite hoef je er dan enkel voor te zorgen dat de VM en de Pi in hetzelfde netwerk zitten. En ja, je kunt dit met meer dan 2 machines doen.
Benodigde tijd: 30 à 45 minuten
- Wat ga je doen?
- Je gaat Webmin installeren. Hiermee kun je via een webinterface de node beheren
- Je voegt de 2 Raspberry Pi’s (nodes) aan een cluster toe
- Je gaat met 1 druk op de knop op beide Raspberry Pi’s synchroon software installeren
- Je gaat met 1 druk op de knop op beide Raspberry Pi’s synchroon gebruikers aanmaken
- Je gaat met 1 druk op de knop op beide Raspberry Pi’s synchroon een groep / groepen aanmaken
- Je gaat met 1 druk op de knop op beide Raspberry Pi’s synchroon software installeren
- First things first
Voordat je iets nieuws gaat bouwen is het natuurlijk wel handig dat je weet wat je bouwen.
- Zoek op wat een cluster is.
- Waarom zou je computers in een cluster opnemen?
- Webmin installeren
Voeg aan /etc/apt/sources.list deze regel toe:
deb https://download.Webmin.com/download/repository sarge contrib
Sla het bestand op en sluit de editor.
Type nu onderstaande commando’s per regel in:
sudo apt update && sudo apt upgrade
cd /tmp
sudo wget http://www.Webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc
sudo apt --fix-broken install
sudo apt-get install Webmin -y
cd
sudo service Webmin restart
Nu kun je vanaf je laptop naar de beheerpagina gaan: IP-adres Raspberry Pi, Poort 10000
Bijv. https://192.168.190.132:10000
Mogelijk krijg je een foutmelding:
This web server is running in SSL mode. Try the URL https://raspberry:10000/ instead.
Pas dan in het bestand /etc/Webmin/miniserv.conf
De regel ssl=1 aan naar ssl=0
Sla het bestand op en herstart de Webmin service:
sudo service Webmin restart.
Nu kun je de beheerpagina zonder probleem openen.
- Twee Raspberry Pi’s in een cluster opnemen
- Log via Webmin in op de nieuw toegevoegde node
- Klik in het menu op Un-used Modules / Usermin Configuration
- Klik op de knop Install Usermin tar.gz package en wacht tot de installatie klaar is
- Herhaal dit voor de andere node
- Klik op één van de nodes links in het menu op Webmin
- Klik op Webmin Servers Index
- Klik op Scan for servers
- Als het goed is, worden alle nodes gezien
- Ga terug naar de Webmin Servers pagina
- Je moet nu een icoontje voor alle nodes zien
- Log weer via Webmin in op de eerste node waar je begon
- Klik in het menu op Cluster / Cluster Users and Groups
- Maak in dit scherm een groep aan voor de nodes (de naam mag geen spatie bevatten)
- Klik in het menu op Cluster / Cluster Webmin Servers
- Klik op Add servers in groep
- Doe hetzelfde voor de andere server(s)
- Gebruiker op 1 server aanmaken en repliceren naar de andere server(s)
- Zorg dat onder Cluster / Cluster Webmin Servers beide servers als Managed Servers te zien zijn
- Klik in het menu op System / Users and Groups
- Klik op de knop Create a new user
- Maak hier een nieuwe gebruiker aan met een wachtwoord, een Home directory en een groep
- Bekijk de opties goed voordat je een keuze maakt en op Create klikt
- Klik in het menu op Cluster / Cluster Users and Groups
- Type bij Find users whose de naam van de zojuist aangemaakte gebruiker in
- Klik op de knop Synchronize
Je hebt nu 2 servers in een cluster gezet.
Je gaat hieronder het voordeel van een cluster ervaren.
- Software installeren
Je gaat nu op beide server tegelijkertijd software installeren: vnstat.
Vnstat is een CLI-tool waarmee je o.a. kunt zien hoeveel netwerk pakketjes er zijn verstuurd en ontvangen.
Opmerking: Dit zou je bijvoorbeeld van een proxy server willen willen zien.
- Klik op Clusters / Cluster Software Packages
- Klik op Search APT .. en type vnstat
- Klik op de gevonden naam van het package
- Selecteer de Radio button bij Package from APT en klik op Install
- Kies bij Server(s) to install on voor
- Klik op Install
- Controleer dat het package op beide servers geïnstalleerd wordt
- Installeer op dezelfde manier het package vnstat
- Log via SSH in op beide servers en voer een PING opdracht uit: ping nu.nl -c60
- Type nu vnstat en kijk of je de uitvoer snapt
- Doe nu hetzelfde met het package bmon
- Staat dezelfde software op beide servers en/of heeft de software hetzelfde versienummer?
- Ga naar Cluster / Cluster Software Packages
- Klik op Compare Servers
- Klik op Compare Now
Wat zie je?
Doe hetzelfde, maar kies dan bij Packages to show voor All (in plaats van Only mismatched)
Welke extra informatie krijg je nu te zien?
Is er een package op beide servers met een verschillende versie?
- Wat heb je nu gedaan?
- Je hebt een cluster met 2 nodes aangemaakt. Beide nodes krijgen dezelfde functionaliteit
- Je hebt een of meer gebruikers aangemaakt op beide nodes tegelijk
- Je hebt een of meer groepen aangemaakt op beide nodes tegelijk
- Je hebt software geïnstalleerd op beide nodes tegelijk
- Je hebt gekeken of de servers identiek geïnstalleerd zijn
- Gegevens
- Categorie: Raspberry Pi
- Hits: 79
Hier volgt een beschijving hoe je een GIF-animatie automatisch start als je de Raspberry Pi aan zet.
Dit is naar aanleiding van een vraag om een GIF-animatie via een beamer boven een afvalbak te projecteren.
Benodigdheden
- Een Raspberry Pi (het model maakt niet zoveel uit)
- Raspberry Pi Imager
- Een microSD-kaartje van minimaal 8 GB
- UTP-kabel als je de Raspberry Pi met een netwerkkabel wilt aansluiten
- Beeldscherm
Punt 4 en 5 zijn optioneel want we kunnen de Raspberry Pi headless configureren en alles op afstand doen.
Raspberry Pi installeren en configureren
Stap 1: Download met Raspberry Pi Imager, één van de Raspberry Pi Desktop images voor jouw model van de Raspberry Pi.
Ik kies hier voor Raspberry Pi OS (32 bit)

Stap 2: Klik op Next. Je komt nu in het scherm OS aanpassen? Klik op AANPASSEN
Pas de configuratie aan om eventueel een andere gebruiker dan 'pi' in te stellen en stel een wachtwoord in
Optioneel: Pas de configuratie aan als je wilt dat de Raspberry Pi automatisch verbinding met een Access Point maakt. Maar voor ons project doen we dat NIET.
Maar wij sluiten de Raspberry Pi met een UTP-kabel aan. Dat is veiliger (zie onderaan dit artikel bij het kopje Beveiliging).
De Raspberry Pi krijgt dan automatisch een IP-adres van jouw router.

Schakel SSH in op het tabblad SERVICES. Dit doen we om de configuratie straks zonder toetsenbord en beeldscherm te kunnen doen.
Stap 3: Schrijf het image op een microSD-kaartje en wacht tot dat klaar is.
Stap 4: Sluit de Raspberry Pi met een HDMI-kabel op een monitor aan en sluit een UTP-kabel aan. Start de Raspberry Pi op met het microSD-kaartje.
Stap 5: Log met PuTTy in via SSH in op de Raspberry Pi. Vul het IP-adres van de Raspberry Pi in (dat kun je zien via de DHCP-opties van je router) om verbinding te maken.
Nu je remote verbinding hebt, kun je de commando's hieronder kopieren en in de SSH-terminal plakken. Plakken doe je door na het kopieren
op de rechter muisknop te klikken.
Stap 6: We gaan de Raspberry Pi eerst updaten en van enkele extra programma's voorzien:
sudo apt update && sudo apt upgrade -y
sudo apt install -y vlc xrdp fbi
Stap 7: Zoek op internet een geschikte GIF-animatie op, bijvoorbeeld van een afvalbak:

Stap 8: Download het bestand op de Raspberry Pi met:
wget https://www.animaties.com/data/media/576/vuilnisbak-en-prullenbak-bewegende-animatie-0005.gif
Stap 9: Maak het bash-script start_gif.sh:
sudo nano start_gif.sh
Stap 10: En vul het met de volgende inhoud:
#!/bin/bash
cvlc --loop --fullscreen --demux=avformat --no-video-title-show /home/pi/vuilnisbak-en-prullenbak-bewegende-animatie-0005.gif

Hiermee wordt de GIF met de command-line versie van VLC Player afgespeeld.
Opmerking: Je zou het ook met Framebuffer Image Viewer kunnen doen. Die is iets lichter dan VLC PlayerDan wordt het commando:
sudo fbi -T 1 -a home/pi/vuilnisbak-en-prullenbak-bewegende-animatie-0005.gif
Ik kies echter voor VLC Player.
Stap 11: Maak het bestand uitvoerbaar:
sudo chmod +x start_gif.sh
Stap 12: Test het script met:
sudo ./start_gif.sh
Als het goed is, wordt nu de GIF-animatie fullscreen afgespeeld.
Stap 13: Om ervoor te zorgen dat het bash-script automatisch start na het opstarten van de Raspberry Pi, maak je het bestand afvalbak.desktop aan. Deze methode werkt als de Raspberry Pi een GUI heeft!
Zie voor andere opties: 3 Ways to Run a Raspberry Pi Program or Script at Startup
sudo nano /etc/xdg/autostart/afvalbak.desktop

Stap 14: In het bestand afvalbak.desktop zet je de volgende inhoud:
[Desktop Entry]
Name=StartGif
Exec=/home/pi/start_gif.sh

Achter Name= kun je elke omschrijving zetten die je wilt.
Zorg dat achter Exec= het juiste pad en de naam van het bash-script staat!
Stap 15: Herstart de Raspberry Pi met:
sudo reboot
Stap 16: Start een Remote Desktop sessie naar de Raspberry Pi en log in.
Als het goed is, start de GIF-animatie nu automatisch op.
Klaar!
Automatisch uitschakelen
Om de Raspberry Pi op een veilige manier netjes af te sluiten, zorgen we ervoor dat dit dagelijks automatisch om 16:00 uur gebeurt.
Hiervoor stellen we een cron-job in.
Type crontab -e
Voeg onderaan, de volgende regel toe:
* 16 * * * sudo poweroff

Sla het bestand op en sluit nano editor af.
De Raspberry Pi schakelt nu elke dag om 16:00 uur uit.
Beveiliging
De Raspberry Pi wordt op een beamer aangesloten die aan het plafond hangt.
Daar is geen UTP-aansluiting in de buurt.
Omdat het Wi-Fi netwerk op de Raspberry Pi niet is geactiveerd, kan SSH aan blijven staan.
Dit maakt het gemakkelijker om toch onderhoud te kunnen plegen. Het enige wat dan gedaan hoeft te worden
is de Raspberry Pi van de beamer af te halen en hem met een UTP-kabel op een losse router aan te sluiten.
Als je dan ook een laptop op die manier op de router aansluit, dan kun je met SSH inloggen op de Raspberry Pi.
Raspberry Pi Tunen
Je kunt de Raspberry Pi evnetueel nog fine-tunen met Raspi-Config (sudo raspi-config), maar dat is eigenlijk niet nodig.
Voor de Raspberry Pi A+ versie 3: Laat het GPU geheugen op 64 Mb staan, anders wordt er geen beeld gegeven!
- Gegevens
- Categorie: Raspberry Pi
- Hits: 36
Let op: De uitvoering van dit script duurt een tijd omdat er source-code gecompileerd moet worden!
Je kunt dit daarom het beste uitvoeren op een Raspberry 4 of 5.
!#/bin/bash
#
# Zie voor wat je verder moet doen nadat je dit script hebt gedraaid!!!!
##
# https://qengineering.eu/deep-learning-examples-on-raspberry-32-64-os.html
#
# https://qengineering.eu/install-tensorflow-2.2.0-on-raspberry-pi-4.html
# en https://www.pantechsolutions.net/blog/installing-library-packages-in-raspberry-pi/ voor OpenCV
#
# Please make sure you have latest pip3 and python3 version installed,
# otherwise, pip may come with the message: ".whl is not a supported wheel on this platform".
#
#
# get a fresh start
sudo apt-get update
sudo apt-get upgrade
# Python3 en pip3 installeren
sudo apt-get install python3-pip
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install python3 -y
# remove old versions, if not placed in a virtual environment (let pip search for them)
sudo pip uninstall tensorflow
sudo pip3 uninstall tensorflow
# We gaan eerst Python 3.8 installeren
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz
tar xf Python-3.8.0.tar.xz
cd Python-3.8.0
./configure --prefix=/usr/local/opt/python-3.8.0
make -j 4
sudo make altinstall
cd ..
sudo rm -r Python-3.8.0
sudo rm Python-3.8.0.tar.xz
alias python='/usr/bin/python3.8'
. ~/.bashrc
# Let’s make Python 3.8 the default version, make aliases
sudo update-alternatives --config python
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
ls /usr/bin/python*
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 0
update-alternatives --list python
sudo update-alternatives --config python
python -V
echo "Nu gaan we TensorFlow 2.2.0 installeren..."
# install the dependencies
sudo apt-get install gfortran -y
sudo apt-get install libhdf5-dev libc-ares-dev libeigen3-dev -y
sudo apt-get install libatlas-base-dev libopenblas-dev libblas-dev -y
sudo apt-get install openmpi-bin libopenmpi-dev -y
sudo apt-get install liblapack-dev cython -y
sudo pip3 install keras_applications==1.0.8 --no-deps
sudo pip3 install keras_preprocessing==1.1.0 --no-deps
sudo pip3 install -U --user six wheel mock
sudo -H pip3 install pybind11
sudo -H pip3 install h5py==2.10.0
# upgrade setuptools 40.8.0 -> 52.0.0
sudo -H pip3 install --upgrade setuptools
# install gdown to download from Google drive
# pip install gdown
pip3 install gdown
# copy binairy
sudo cp ~/.local/bin/gdown /usr/local/bin/gdown
# download the wheel
gdown https://drive.google.com/uc?id=11mujzVaFqa7R1_lB7q0kVPW22Ol51MPg
# install TensorFlow
sudo -H pip3 install tensorflow-2.2.0-cp37-cp37m-linux_armv7l.whl
pip3 install keras
# and complete the installation by rebooting
sudo reboot
# OpenCV
# https://qengineering.eu/install-opencv-4.5-on-raspberry-pi-4.html
#
# Dependencies
cd
sudo mkdir opencv
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install cmake gfortran -y
sudo apt-get install libjpeg-dev libtiff-dev libgif-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev -y
sudo apt-get install libgtk2.0-dev libcanberra-gtk* -y
sudo apt-get install libxvidcore-dev libx264-dev libgtk-3-dev -y
sudo apt-get install libtbb2 libtbb-dev libdc1394-22-dev libv4l-dev -y
sudo apt-get install libopenblas-dev libatlas-base-dev libblas-dev -y
sudo apt-get install libjasper-dev liblapack-dev libhdf5-dev -y
sudo apt-get install protobuf-compiler -y
# Qt5
# only install if you want Qt5 to beautify your OpenCV GUI
# sudo apt-get install qt5-default -y
# mv opencv-4.5.0 opencv
# mv opencv_contrib-4.5.0 opencv_contrib
# get version
python3 --version
# get location
which python 3.7
# merge VIRTUALENVWRAPPER_PYTHON=location/version
echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.7" >> ~/.bashrc
# reload profile
source ~/.bashrc
sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc
mkvirtualenv cv450
# without sudo!:
pip3 install numpy
sudo mkdir ~/opencv/
cd ~/opencv/
mkdir build
cd build
# OpenCV 4.5.0
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules -D ENABLE_NEON=ON -D ENABLE_VFPV3=ON -D WITH_OPENMP=ON -D BUILD_TIFF=ON -D WITH_FFMPEG=ON -D WITH_TBB=ON -D BUILD_TBB=ON -D BUILD_TESTS=OFF -D WITH_EIGEN=OFF -D WITH_GSTREAMER=OFF -D WITH_V4L=ON -D WITH_LIBV4L=ON -D WITH_VTK=OFF -D WITH_QT=OFF -D OPENCV_ENABLE_NONFREE=ON -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_opencv_python3=TRUE -D OPENCV_GENERATE_PKGCONFIG=ON -D BUILD_EXAMPLES=OFF ..