Jörg Reinholz: Das Skript zum Sonntag - Raspberry 2b+, Ubuntu-Server 14.04, Kernel-Upgrade auf Linux 4.1.7

Beitrag lesen

Moin!

Vor ein paar Wochen habe ich ein Skript veröffentlicht, welches (unter Ubuntu) Ubuntu 14.04 LTS für einem Raspberry auf einer Speicherkarte installiert und (anders als das Original) für den headless-Betrieb (Keine Maus, keine Tastatur, kein Monitor - aber mit ssh-Server, individuellem Benutzer und Passwort) vorbereitet.

Heute nun dafür das Upgrade des Kernels auf die Version 4.1 (Aktuell 4.1.17-v7+ armv7l).

Anders als andere Lösungen von anderen erzeugt das Skript eine neue initrd, sorgt auch für ein Update der Firmware und kopiert den Kernel nebst initrd und Firmware nach /boot/firmware.

Da mein Ubuntu-Server Installer /boot/firmware schreibgeschützt eingehängt hat werden auch die beiden nötigen remounts durchgeführt.

Weniger todesmutige machen zuvor mit dd ein Abbild (Backup) der Speicherkarte…

Das benötigte und so freundlich wie praktisch ohne Einschränkungen für die Öffentlichkeit auf github bereitgestellte Skript für das Firmwareupdate stammt von Liam McLoughlin alias Hexxeh.

Hier nun mein kleines Werk:

#! /bin/sh

if [ $EUID -ne 0 ]; then
  echo "Fataler Fehler: Starten Sie das Skript mit root-Rechten. Exit!"
  exit 1;
fi

apt-get update;
apt-get dist-update;
apt-get install -s --install-recommends linux-gen$EUIDeric-lts-wily;

startDir=`pwd`;

if [ ! -f /usr/local/bin/rpi-update ]; then

  wget --no-check-certificate https://raw.githubusercontent.com/Hexxeh/rpi-update/master/rpi-update -O /tmp/rpi-update;

  if [ "0" != "$?" ]; then
     echo "Fataler Fehler: Download von rpi-update hat nicht funktioniert. Exit!";
     exit 2;
  fi

  file /tmp/rpi-update | grep 'Bourne-Again shell script' > /dev/null;
  if [ $? -ne 0 ]; then
     echo "Fataler Fehler: Download von rpi-update lieferte kein Shellskript. Exit!";
     exit 4;
  fi

  mv /tmp/rpi-update /usr/local/bin/rpi-update;
  chmod 0700 /usr/local/bin/rpi-update
fi

mount -o remount,rw /boot/firmware;
if [ $? -ne 0 ]; then
     echo "Fataler Fehler: Der Ordner /boot/firmware konnte nicht im rw-Modus eingehängt werden. Exit!";
     exit 8;
fi

cd /tmp;
/usr/local/bin/rpi-update;

cd /boot;
mkinitramfs -v -o initrd7.img
cp -v bcm* bootcode.bin fixup* start* kernel7.img initrd7.img /boot/firmware/ ;
mount -o remount,ro /boot/firmware;

cd $startDir;
exit 0;

Noch eine gute Nachricht aus Hamburg:

Mindestens ein Container mit etlichen Banana Pi M3 war auf dem gestrandeten China-Dampfer und hat verspätet aber unversehrt die Hafenkante überquert.

Jörg Reinholz