Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tools:raspbian [2023/07/22 11:39]
darron [Upgrade]
tools:raspbian [2024/05/16 11:52] (current)
darron [Upgrade]
Line 148: Line 148:
 <code> <code>
 apt-get update apt-get update
-apt-get dist-upgrade+apt-get full-upgrade
 </code> </code>
  
Line 269: Line 269:
  
  
 +===WiFi problems===
 +
 +==Hotplug==
 +
 +At least on one setup the WiFi fails to start during boot. It seems that the interface
 +has no name as yet or is renamed to something else then renamed back to wlan0 but after
 +wpa_supplicant runs which results in network failure.
 +
 +Error looks like this in syslog:
 +<code>
 +wpa_supplicant[434]: Successfully initialized wpa_supplicant
 +wpa_supplicant[434]: Could not read interface wlan0 flags: No such device
 +wpa_supplicant[434]: nl80211: Driver does not support authentication/association or connect commands
 +wpa_supplicant[434]: nl80211: deinit ifname=wlan0 disabled_11b_rates=0
 +wpa_supplicant[434]: Could not read interface wlan0 flags: No such device
 +wpa_supplicant[434]: rfkill: Cannot get wiphy information
 +wpa_supplicant[434]: Could not read interface wlan0 flags: No such device
 +wpa_supplicant[434]: WEXT: Could not set interface 'wlan0' UP
 +wpa_supplicant[434]: wlan0: Failed to initialize driver interface
 +</code>
 +
 +To solve this configure /etc/network/interfaces using "allow-hotplug wlan0", but
 +if this also fails, replace rc.local with the following:
 +
 +<code>
 +#!/bin/sh
 +#
 +# 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.
 +#
 +
 +check() {
 +        /sbin/ifconfig wlan0 1>/dev/null 2>/dev/null
 +}
 +check
 +while test $? -eq 1; do
 +        sleep 1
 +        check
 +done
 +ifup wlan0
 +
 +# Print the IP address
 +_IP=$(hostname -I) || true
 +if [ "$_IP" ]; then
 +  printf "My IP address is %s\n" "$_IP"
 +fi
 +
 +exit 0
 +</code>
 +
 +==Keep alive==
 +
 +Pi4 WiFi can both disconnect with wpa_supplicant still running or crash.
 +
 +In the former case we can reconnect but in the latter a reboot is required.
 +
 +<code>
 +#! /bin/bash
 +
 +check() {
 +        LOSS=`ping -c 3 -i 1 192.168.0.1 | awk 'match($0, /[0-9]+%/) { print substr($0, RSTART, RLENGTH) }'`
 +}
 +while test 1; do
 +        sleep 30
 +        check
 +        if test "$LOSS" = "100%"; then
 +                ifdown wlan0 1>/dev/mull 2>/dev/null
 +                ifup   wlan0 1>/dev/null 2>/dev/null
 +                sleep 5
 +                check
 +                if test "$LOSS" = "100%"; then
 +                        reboot
 +                fi
 +        fi
 +done
 +</code>
 +
 +Change the IP address to that of your access point or modem.
 === Upgrade === === Upgrade ===
  
Line 290: Line 374:
  
 EG. EG.
 +
 +to bullseye from buster
  
 <code> <code>
 sed -i 's/buster/bullseye/g' /etc/apt/sources.list sed -i 's/buster/bullseye/g' /etc/apt/sources.list
 </code> </code>
 +
 +or edit for from bullseye to bookworm
 +<code>
 +deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
 +deb http://deb.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware
 +deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
 +</code>
 +
 +If keys need importing (if import fails try again, and again)
 +
 +<code>
 +apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0E98404D386FA1D9
 +apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 6ED0E7B82643E131
 +apt-key adv --recv-keys --keyserver keyserver.ubuntu.com F8D2585B8783D481
 +apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 54404762BBB6E853
 +apt-key adv --recv-keys --keyserver keyserver.ubuntu.com BDE6D2B9216EC7A8
 +</code>
 +
  
 Update Update
Line 304: Line 408:
  
 Change RPi sources list Change RPi sources list
 +
  
 <code> <code>
Line 309: Line 414:
 </code> </code>
  
 +or
 +
 +<code>
 +sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/raspi.list
 +</code>
 Update Update
  
Line 327: Line 437:
 wget https://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-bootloader_1.20230405-1_armhf.deb wget https://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-bootloader_1.20230405-1_armhf.deb
 wget https://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-kernel_1.20230405-1_armhf.deb wget https://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-kernel_1.20230405-1_armhf.deb
 +wget https://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-kernel-headers_1.20230405-1_armhf.deb
 dpkg -i ./raspberrypi-bootloader_1.20230405-1_armhf.deb dpkg -i ./raspberrypi-bootloader_1.20230405-1_armhf.deb
-dpkg -i ./raspberrypi-kernerl_1.20230405-1_armhf.deb+dpkg -i ./raspberrypi-kernel_1.20230405-1_armhf.deb 
 +dpkg -i ./raspberrypi-kernel-headers_1.20230405-1_armhf.deb
 </code> </code>
  
Line 335: Line 447:
  
  
-===Problems===+===MicroSD problems===
  
 MicroSD cards can be unreliable and often times installed binaries become corrupt. MicroSD cards can be unreliable and often times installed binaries become corrupt.
Line 372: Line 484:
 Continue from the start until debums reports no errors in binary files. If there are lots of problem it may be sensible to reinstall the OS or use a different sdcard completely. Continue from the start until debums reports no errors in binary files. If there are lots of problem it may be sensible to reinstall the OS or use a different sdcard completely.
  
 +A script
 +<code>
 +#! /bin/bash
 +PACKAGES=`debsums -s 2>&1 | awk '/^debsums:\ changed\ file/ { print $6 }' | sort -u`
 +for PACKAGE in $PACKAGES; do
 +        sudo apt-get install --reinstall "$PACKAGE"
 +done
 +exit 0
 +</code>
  
 ===Kernel=== ===Kernel===
Line 649: Line 770:
  
 ===Miscellaneous=== ===Miscellaneous===
 +
 +Install shell
 +
 +<code>
 +apt install tcsh
 +</code>
  
 Install locales Install locales