Připojení Karmen do WP2 Enterprise sítě

Zdravím,
na SSPŠ jsem nějakou dobu bojovali s připojením do WPA2 Enterprise sítě. Přes klasické nastavení parametrů sítě ve wpa_supplicant.conf se nám nepovedlo Karmen Pod do sítě stabilně připojit. IT oddělení vidí, že se to RPi připojí a ihned zase odpojí. Nepovedlo se nám vydebugovat, proč se to děje.

Do školní sítě lze připojit RPi (pár jich tam už prý běží), ale kolegové z IT oddělení to již nedělají přes wpa_supplicant.conf (prý je to zastaralé řešení).

Tedy zkusil jsem si udělat čistou instalaci Raspbian s GUI na mém RPI4 4GB RAM. Povedlo se mi pomocí rozhraní se normálně připojit do školní sítě. Stačilo kliknout na wifi a vyplnit potřebné údaje. Následně jsem udělal instalaci octoprintu, pomocí těchto příkazů:

sudo apt install python3-pip python3-dev python3-setuptools python3-venv git libyaml-dev build-essential
cd ~
mkdir OctoPrint && cd OctoPrint
python3 -m venv venv
source venv/bin/activate
pip install pip --upgrade
pip install octoprint
sudo usermod -a -G tty pi
sudo usermod -a -G dialout pi
sudo nano /etc/systemd/system/octoprint.service
[Unit]
Description = OctoPrint server
Wants = network-online.target
After = network.target network-online.target

[Service]
User = pi
ExecStart = /home/pi/OctoPrint/venv/bin/octoprint serve
RemainAfterExit = no
Restart = on-failure
RestartSec = 5s

[Install]
WantedBy = default.target
sudo systemctl enable octoprint.service
sudo systemctl start octoprint.service
sudo apt install haproxy
sudo nano /etc/haproxy/haproxy.cfg
frontend public
        bind *:80
        use_backend webcam if { path_beg /webcam/ }
        default_backend octoprint

backend octoprint
        option forwardfor
        server octoprint1 127.0.0.1:5000

backend webcam
        http-request replace-path /webcam/(.*)   /\1
        server webcam1  127.0.0.1:8080

Postupoval jsem podle tohoto tutoriálu, až na pár změn: https://3dprintscape.com/install-octoprint-on-linux/

(Nastavení Octoprintu jsem musel udělat na svém hotspotu, protože IT oddělení u nás na síti blokuje webové rozhraní.)

Octoprint fungoval správně a připojil jsme ho ke Karmen pomocí pluginu. Tedy celé to fungovalo skvěle a bylo to připojené do hlavní školní sítě.

Budeme přemisťovat dvě MK3S do učebny, kde není AP. Rozhodl jsem se, že tento proces zopakuji na Karmen Podu, který přeflashuji na Raspbian a provedu celý proces instalace Octoprintu znovu(ten první pokus jsem dělal na svém RPI4).

Tam jsem byl bohužel neúspěšný. Nepovedlo se mi dostat se do fáze, kdy by mi běžel Octoprint. Pokaždé se to RPi zaseklo, terminál nefungoval, bylo to celé zasekané. GUI se nedalo ovládat. Příkazy do terminálu přes SSH se propisovaly pomalu. Zkoušel jsem takto třikrát udělat novou instalaci a ten stejný proces jako u RPI4. Nikdy se mi to nepovedlo rozchodit.

Dal jsem tomu další pokus s nainstalovaným Raspbian Lite (měl jsem podezření, že to RPI3 neutáhne to GUI), který má jen příkazovou řádku. Tam se povedl rozjet octoprint na mém hotspotu bezproblémově, ale nevěděl jsem, jak to zase připojit do školní sítě.

Následně jsem našel, že existuje nmcli. Díky těmto příkazům se mi povedlo připojit RPI3 s
Raspbian Lite do WPA2 Enterprise sítě školy.

nmcli connection add type wifi ifname wlan0 con-name "skola" ssid "SSPS"
nmcli connection modify "skola" \
    802-1x.eap peap \
    802-1x.identity "navsteva" \
    802-1x.password "navsteva" \
    802-1x.phase2-auth mschapv2 \
    wifi-sec.key-mgmt wpa-eap
nmcli connection down "hotspot"
nmcli connection up "skola"
nmcli connection show

Po tomto nastavení wifi se mi povedlo i to RPI3 připojit do školní sítě a mít v něm Octoprint + Karmen. Tedy celé to krásně funguje až na kameru, kterou jsem se snažil rozchodit přes 1,5 hodiny.

Zkoušel jsem tam dodělat kameru dle postupu v tomto tutoriálu, ale neúspěšně. https://3dprintscape.com/install-octoprint-on-linux/

pi@raspberrypi:~ $ sudo systemctl status webcamd
● webcamd.service - Camera streamer for OctoPrint
     Loaded: loaded (/etc/systemd/system/webcamd.service; enabled; preset: enabled)
     Active: active (running) since Fri 2024-08-16 14:56:13 BST; 50s ago
   Main PID: 651 (webcamDaemon)
      Tasks: 3 (limit: 174)
        CPU: 40ms
     CGroup: /system.slice/webcamd.service
             ├─651 /bin/bash /home/pi/scripts/webcamDaemon
             └─674 ./mjpg_streamer -o "output_http.so -w ./www" -i "input_uvc.so -r 640x480 -f 10"

Aug 16 14:56:14 raspberrypi mjpg_streamer[674]: MJPG-streamer [674]: TV-Norm...........: DEFAULT
Aug 16 14:56:14 raspberrypi mjpg_streamer[674]: MJPG-streamer [674]: www-folder-path......: ./www/
Aug 16 14:56:14 raspberrypi mjpg_streamer[674]: MJPG-streamer [674]: HTTP TCP port........: 8080
Aug 16 14:56:14 raspberrypi mjpg_streamer[674]: MJPG-streamer [674]: HTTP Listen Address..: (null)
Aug 16 14:56:14 raspberrypi mjpg_streamer[674]: MJPG-streamer [674]: username:password....: disabled
Aug 16 14:56:14 raspberrypi mjpg_streamer[674]: MJPG-streamer [674]: commands.............: enabled
Aug 16 14:56:14 raspberrypi mjpg_streamer[674]: MJPG-streamer [674]: starting input plugin input_uvc.so
Aug 16 14:56:14 raspberrypi mjpg_streamer[674]: MJPG-streamer [674]: starting output plugin: output_http.so (ID: 00)
Aug 16 14:56:14 raspberrypi mjpg_streamer[674]: MJPG-streamer [674]: Can't enable video in first time
Aug 16 14:56:14 raspberrypi mjpg_streamer[674]: MJPG-streamer [674]: cleaning up resources allocated by input thread

Kdyby se povedla rozchodit ta kamera, tak by to bylo boží! Uměli bychom pak na SSPŠ připojit jakoukoliv 3D tiskárnu (kromě Bambulab, bohužel) do Karmen a nemuseli bychom se limitovat instalací a používáním AP.

Díky!

2 Likes

Zdravím Alexi,

moc díky, za tenhle super návod/postup/zkušenost. Zkusíme postup zopakovat a zprovoznit kameru a dáme zpátky vědět.

Ještě jednou moc díky, podařilo se vám z velké části vyřešit něco, k čemu jsme se dlouho nedostali.

Martin

Diky.

Tu kameru by to fakt chtelo u toho podu rozchodit. Máte moji plnou součinnost, pište/volejte.

Diky
Alex Naxera

Ahoj Alexi,

tak máme úspěšné řešení na DEBIAN a odzkoušeno i na tvém postupu, který jsem replikoval.
Nové distribuce debianu nejsou kompatibilní s původní službou na kameru.
Je potřeba tedy nové služby

Postup

Většinu postupu děláme skrze SSH.
Jako první krok se tedy přihlásíme do zařízení jako uživatel administrátor.

Pokud je spuštěna původní služba, tak těmito dvěma příkazy jí vypneme a vypneme její spouštění po startu zařízení.

sudo systemctl stop webcamd.service

sudo systemctl disable webcamd.service

Zbytek postupu je na nové DEBIAN distribuce

sudo apt update

sudo apt upgrade

sudo apt install git

cd /home/pi

git clone https://github.com/signag/raspi-cam-srv

cd raspi-cam-srv

python -m venv --system-site-packages .venv

cd ~/raspi-cam-srv

source .venv/bin/activate

sudo apt install -y python3-picamera2 --no-install-recommends

pip install Flask==3.0.0

deactivate

source .venv/bin/activate

flask --app raspiCamSrv init-db

sudo nano /etc/systemd/system/raspiCamSrv.service

Tento příkaz nám na adrese vytvořil soubor a ihned otevře textový editor do kterého vložíme následující kód a uložíme.

[Unit]
Description=raspiCamSrv
After=network.target

[Service]
ExecStart=/home/pi/raspi-cam-srv/.venv/bin/flask --app raspiCamSrv run --port 8080 --host=0.0.0.0
Environment=“PATH=/home/pi/raspi-cam-srv/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”
WorkingDirectory=/home/pi/raspi-cam-srv
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

sudo systemctl start raspiCamSrv.service

sudo systemctl enable raspiCamSrv.service

sudo reboot

A to je vše přes SSH

Nastavení adresy kamery v octoprint serveru

Otevřeme si Nastavení => Classic WebCam
A zde vyplníme Stream URL: http://127.0.0.1:8080/video_feed

http://127.0.0.1:8080/video_feed

A zde vyplníme Snapshot URL: http://127.0.0.1:8080/photo_feed

http://127.0.0.1:8080/photo_feed

Pro lepší představu screenshot