===== pi-update 2022 bullseye =====
So ein Betriebssystem Update ist immer schwierig. Setzt man es komplett neu auf, oder versucht man ein upgrade? Letztes Jahr beim [[pisetup|Setup auf Buster]] bin ich den ersteren Weg gegangen. Dieses Mal den letzteren.
Ich habe buster auf bullseye aktualisiert - mit einigen Problemen. Man sollte nicht die Prozesse, wie z.B. die Datenbank beenden, da der update Tabellen kopieren will, wenn er die Software aktualisiert.
Ausserdem hat danach der 'sudo apt-get dist-upgrade' einen Fehler gebracht. Lösung aus [[https://linuxnews.de/2021/11/16/raspberry-pi-os-auf-bullseye-aktualisieren/|Artikel]].
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
libc6-dev : Beschädigt: libgcc-8-dev (< 8.4.0-2~) aber 8.3.0-6+rpi1 soll installiert werden'
Lösung: sudo apt install libgcc-8-dev gcc-8-base
Danach festgestellt, das das Redo-logfile von der MariaDB so gross ist. Das kann man von 100MB auf 8MB setzen. [[https://central.owncloud.org/t/mysql-mariadb-optimal-settings-for-running-on-raspberrypi-3-model-b/17004|Artikel]]
sudo systemctl stop mysql
/etc/mysql/mariadb.conf.d/50-server.cnf
innodb_log_file_size = 8M
innodb_log_buffer_size = 8M
cd /var/lib/mysql
sudo mv ib_logfile0 nach /tmp
Von aussen kam man nicht mehr an die Datenbank.
Fehlermeldungen:
2003: Can't connect to MySQL server on '{host}:3306' (-2 Name or service not known)
Unexpected error in connect_db:
Bessere Fehlermeldungen kommen, wenn man im code:
import mysql.connector
from mysql.connector import errorcode
und dann
try:
cnx = mysql.connector.connect(user='', password='', host='', database='')
except mysql.connector.Error as err:
print(err)
Lösung:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 0.0.0.0
Noch ein Problem in phpmysql. Wenn man dort auf Rechte klickt, kommt eine Fehlermeldung, dass 'collation' nicht stimmen. Lösung in dem [[https://github.com/phpmyadmin/phpmyadmin/issues/15463|Artikel]].
#1267 - Unerlaubte Mischung von Sortierreihenfolgen (utf8mb4_general_ci, COERCIBLE) und (utf8mb4_unicode_ci, COERCIBLE) für Operation '<>'
Lösung: Auf der Startseite von phpmysql muss man den Zeichensatz/Kollation der Verbindung zum Server:' von "utf8mb4_unicode_ci" auf "utf8mb4_general_ci" setzen, dann geht wieder alles.
Dann startete am Mac der Browser nicht mehr, nachdem ich Ventura 13.0 installiert hatte.
apachectl status
/usr/local/bin/apachectl: line 95: lynx: command not found
brew install lynx
sudo apachectl start
Achtung, wenn man bullseye neu aufsetzt, gibt es keinen default-user pi mehr!
sudo rename-user
Man kann sich einen Symlink /home/pi setzen, der wird die meisten Tools wieder zum Laufen bringen.
Wer will, verwendet als „neuen“ Nutzernamen bei der Einrichtung einfach wieder „pi/raspberry“.
Create a file named userconf in the boot folder to create a user. The contents of the file are as follows
username:password-hash
The password hash is generated using the following command
echo "password" | openssl passwd -6 -stdin
For example:
pi:$6$38HiUnLhwlE1DRdL$MHHb6/OsyAlZNqmW7igj333g/CRwG/g5nls7ylTEqZZg9rOIM/cUvE962.5x6M0ONMz/r6OlBy/G6f4v8zrH51
Nach dem Upgrade auf bullseye ging auch die Verbindung zu den beiden MO-Pflanzenüberwachungen nicht mehr. Man musste miflora wieder installieren. Wenn es nur so einfach wäre. Die Bluetooth Verbindungen gingen wohl alle nicht mehr. Und das Rollo ist morgens um 8 Uhr rauf gefahren, ohne dass ich was gemacht hatte.
sudo pip3 install miflora
Damit bluetooth wieder ging, einiges ausprobiert. Welches davon nicht nötig war, weiss ich jetzt nicht. Hier die Schritte
sudo apt-get install bluetooth
sudo pip3 install bluetooth
pip3 install bluetooth
pip3 install bluepy
pip install pybluez
pip install bluepy
sudo pip install pybluez
sudo apt-get install libatlas-base-dev
sudo apt install bluetooth bluez libbluetooth-dev
sudo systemctl status bluetooth
sudo systemctl restart bluetooth
sudo systemctl status bluetooth
sudo rfkill unblock bluetooth
Nachdem ich weitere Probleme mit bluetooth habe, liegt es wohl am neuen python 3.9. Also wird nach dieser [[https://www.linuxcapable.com/how-to-install-python-3-7-on-debian-11-bullseye/|Anleitung]] python3.7 installiert.
Beim neu kompilieren meiner Homeautomation (test.c), fand er usb.h und mysql.h nicht mehr.
sudo apt-get install libusb-dev
sudo apt-get install libmariadb-dev-compat libmariadb-dev
PHP Fatal error: Uncaught Error: Call to undefined function bcdiv() in /home/pi/HomeAutomation/check/luftbefeuchter_check.php:175
sudo apt-get install php-bcmath
pah.mqtt, also mosquitto geht auch nicht mehr. erst gemerkt, als morgens das Rollo um 8 Uhr automatisch rauf ging, statt wenn ich das iPad aus dem Flugmodus nehme
sudo pip3 install paho-mqtt
Und immer wieder das gleiche Problem: "pip3 install" Pakete landen unter der jeweiligen Python Version! Also aktuell unter /home/pi/.local/lib/python3.9/site-packages. Daher findet er nicht mehr diejenigen, die vorher unter python3.7 gelandet sind. Es kommt noch schlimmer. Da Eineige Programme ja mit sudo aufgerufen werden müssen, muss man ja mit "sudo pip3 install" installieren. Die landen wohl aber nicht unter /root, sondern unter /usr/local/lib/python3.9/dist-packages/.
Stand November 2022