Ping-Antwort (ICMP-Echo) unter Linux deaktiveren

Manchmal macht es Sinn, unter Linux die Ping-Antwort zu verhindern, d.h. der Rechner reagiert dann nicht mehr auf Ping-Anfragen.

Hier hilft die Datei /etc/sysctl.conf weiter, die man um diesen Eintrag erweitern muss:

net.ipv4.icmp_echo_ignore_all=1

Mit diesem Befehl werden die Einstellungen ohne Neustart übernommen:

sysctl -p

Freifunk – manuelles Router-Upgrade

Gerade bei meinen FritzBoxen 4040 im Freifunk-Netz klappt ab und an mal das automatische Firmware-Update der Freifunk-Firmware nicht. Oder falls das automatische Update ausgeschaltet ist, hier der Weg, wie man schnell per SSH das Update durchführen kann:

per SSH auf dem Router einloggen (geht nur aus dem Freifunk-Netz heraus). IPv6-Adresse findet man im Monitoring.

sync
echo 3 > /proc/sys/vm/drop_caches
cd /tmp
wget http://..../gluon-...-sysupgrade.bin
sysupgrade gluon-...-sysupgrade.bin

Mit Sync werden alle Änderungen geschrieben, mit dem Echo-Befehl die Caches geleert.

LibreOffice – wie viele unterschiedliche Werte / eindeutige Werte sind in einer Spalte

Ich habe eine Tabelle in der viele Werte stehen. In meinem Fall waren es Postleitzahlen. Nun wollte ich möglichst einfach mit einer Formel zählen, wie viele verschiedene eindeutige Werte in der Spalte vorkommen. Am Anfang erschien mir dieses Problem mit einer einfachen Formel fast unlösbar. Im Internet fand ich nur eine recht komplexe Lösung mit einer Pivot-Tabelle. Im Beispiel sind meine Daten in der Spalte A. Am Ende kam dann folgende Formel heraus:

=SUMME(1/ZÄHLENWENN(A2:A18;A2:A18))

Zwei Dinge sind hier wichtig:

1. der Bereich mit Werten muss komplett angegeben werden. In meinem Beispiel funktioniert es nicht, wenn man z.B. bis A20 geht und somit noch leere Zeilen angibt. Für mich war das kein Problem. Eventuell wären Bereiche hier eine Möglichkeit, das eleganter zu lösen.

2. Wenn die Formel eingegeben wurde, kommt ein Wert mit 0,irgendwas raus. Nun muss man den Funktions-Assistenten öffnen und unten links „Matrix“ anklicken.

2 Faktor-Authentifizierung für Webmin unter CentOS 7

Eigentlich ist die Aktivierung der 2-Faktor-Authentifizierung für Webmin ganz einfach. Allerdings scheitert das unter CentOS 7 beim Installieren der nötigen CPAN-Pakete. Über die Webmin-GUI hat es bei mir absolut nicht geklappt.

Lösung brachte es, diese Befehl per SSH am Server auszuführen:

yum -y install perl-CPAN
perl -MCPAN -e "install Test::Moose"
perl -MCPAN -e "install Types::Standard"
perl -MCPAN -e "install Moo"
perl -MCPAN -e "install Authen::OATH"

Danach kann dann die 2FA über Webmin „normal“ aktiviert werden.

Snom D7 Erweiterungsmodul – Standby-Hintergrundbeleuchtung ausschalten

Danke HomeOffice habe ich mein Snom D715-Telefon um ein D7-Erweiteurngsmodul erweitert. Das „Ding“ stellt man neben das Telefon und es erweitert das Telefon um 18 zusätzliche Tasten. Nach dem anschließen per USB und dem Software-Update auf dem Erweiterungsmodul kam aber die erste Enttäuschung:

Das „Ding“ steht zwar neben dem Telefon, ist aber mechanisch nicht mit ihm verbunden und hat einen anderen Schwarz-Farbton als das Telefon. Diese Punkte kann ich leider nicht beheben.

Wenn die Beleuchtung des Telefondisplays ausgeht, leuchtet das Erweiterungsmodul etwas dunkler weiter. Das geht überhaupt nicht. Ich will das die Beleuchtung aus geht, wenn es nicht genutzt wird.

Zum Glück gibt es eine einfach Lösung für das Problem, die aber etwas kompliziert zu finden war. Im Webbrowser ruft man auf:

http://IP-des-Telefons/dummy.htm?settings=save&uxm_backlight_idle=0

Damit geht das Licht aus, wenn es auch am Telefon aus geht. Werte sind hier von 0-15 zulässig, wobei 1 der Standardwert ist.

Nachtrag 27.11.2020 – Seit Firmware-Version 8.4.33 bzw. 8.7.2 verhält sich das ganze ein kleines bisschen anders. Grundsätzlich gilt obenstehendes noch. Alleridings muss an die URLs hinten noch &store_settings=save angefügt werden, um die Änderungen in den Flash-Speicher zu schreiben. Außerdem muss die Option „Versteckte Tags“ in den erweiterten Einstellungen im Webinterface deaktiviert werden (ist standardmäßig aktiv).

 

Hier noch ein Foto, wie diese sinnlose Lichtbelästigung ausgesehen hat:

HP Notebook Pavilion g7 braucht ewig um Windows 10 zu starten

Kürzlich hatte ich ein HP Notebook vom Typ Pavilion g7 in der Mangel. Unter Windows 7 lief es einwandfrei, aber seit dem Update auf Windows 10 bleibt es beim Starten ziemlich genau 2 Minuten lang mit einem schwarzen Bildschirm stehen, bevor der Start weiterläuft. Insgesamt braucht es über 3 Minuten zum hochfahren. Die Festplatte wurde schon gegen eine SSD getauscht, daran konnte es also nicht liegen.

Der erste Verdächtige in so einem Fall ist die Windows-Installation. Also erstmal Windows 10 neu installiert. Leider ohne Änderung. Danach dann ein BIOS-Update auf die aktuelle Version F66 installiert. Auch das brachte nichts. Treiberprobleme konnte ich aufgrund der Neuinstallation eher ausschließen.

Also blieb nur eins: Mit F10 beim Start ins BIOS und die BIOS-Einstellungen mal etwas genauer ansehen. Hier bin ich dann nach einem probieren bei der Einstellung „Switchable Graphics Mode“ gelandet. Per Default steht diese Einstellung auf „Dynamic Mode“. Wenn man das auf „Fixed“ ändert, sieht die Welt schon anders aus: aus den etwas über 3 Minuten sind jetzt gute 35 Sekunden für den Windows-Start geworden.

Fazit: Ich habe vorher schon etwas in Google gesucht und dort wird genau dieses langsame Starten von Windows 10 bei älteren HP-Notebooks oft als Problem aufgeführt. Aber eine Lösung habe ich in den entsprechenden Einträgen nie gefunden. Nun gut wenn das so einfach zu lösen ist.

Linux – Inhalt in vielen Dateien suchen / ersetzen

Manchmal hat man die Themenstellung, das man in vielen Textdateien einen bestimmten Text suchen und ersetzen muss. Manuell ist das natürlich viel zu viel Aufwand, aber unter Linux geht das zum Glück recht einfach.

Soll das ganze in nur einer einzelnen Datei gemacht werden, hilft dieser Befehl weiter:

sed -i 's/SUCHMUSTER/ERSETZUNGSTEXT/g' /pfad/zur/datei

Sollen alle Dateien in einem Verzeichnis entsprechend bearbeitet werden, dann hilft diese Kombination aus find und sed weiter:

find /pfad/zu/dateien -type f -exec sed -i 's/SUCHMUSTER/ERSETZUNGSTEXT/g' {} \;

Ein Beispiel aus der Praxis währe dann zum Beispiel:

find /pfad/zu/dateien -type f name „*.html“ -exec sed -i ’s/iso-8859-1/UTF-8/g‘ {} \; 

Snom D7xx – rote LED deaktivieren

Mein IP-Telefon Snom D715 hat oben rechts eine riesige rote LED, die falls Nachts ein Anruf kommt oder ein Anruf in Abwesenheit erfolgte, den Raum (das Schlafzimmer) richtig gut beleuchtet. Fast schon wie ein Baustrahler. Den Baustrahler kann man leider über das Webinterface nicht ausschalten. Aber es gibt eine einfach Möglichkeit.

Zunächst meldet man sich im Webinterface des Telefons an. Dann ruft man die folgende Adresse auf (IP-Adresse natürlich noch entsprechend ergänzen) und schon ist die LED deaktiviert:

http://IP-des-Telefons/dummy.htm?settings=save&led_call_indicator_usage=

Will man den ursprünglichen Zustand wieder herstellen, hilft diese Adresse:

http://IP-des-Telefons/dummy.htm?settings=save&led_call_indicator_usage=PhoneHasCallInStateRinging%20PhoneHasCallInStateCalling%20PhoneHasCallInStateRingback%20PhoneHasCallInStateConnected%20PhoneHasCallInStateOffhook%20PhoneHasCallInStateHolding%20PhoneHasCall%20PhoneHasMissedCalls%20DateOngoing%20DateReminding

Alternativ kann man die LED auch nur leuchten lassen, wenn ein Anruf reinkommt und während ein Gespräch geführt wird. Das geht so:

http://IP-des-Telefons/dummy.htm?settings=save&led_call_indicator_usage=PhoneHasCallInStateRinging%20PhoneHasCall

Weitere Infos findet man im Snom-Wiki.

Nachtrag 27.11.2020 – Seit Firmware-Version 8.4.33 bzw. 8.7.2 verhält sich das ganze ein kleines bisschen anders. Grundsätzlich gilt obenstehendes noch. Alleridings muss an die URLs hinten noch &store_settings=save angefügt werden, um die Änderungen in den Flash-Speicher zu schreiben. Außerdem muss die Option „Versteckte Tags“ in den erweiterten Einstellungen im Webinterface deaktiviert werden (ist standardmäßig aktiv).

RTC-Modul für Raspberry Pi

Der Raspberry Pi hat ja bekanntlich kein RTC-Modul. Wird der Raspberry Pi ohne funktionierende Netzwerkverbindung gestartet, so passt die Uhrzeit nicht, da er sich die im Betrieb erst per NTP abholt. Abhilfe schafft ein RTC (RealTimeClock)-Modul. Solche findet man bei EBay, Amazon & Co massenweise für wenige Euros.

Ich kaufte mir für 7,99 EUR das „Baoblaze DS1307 Echtzeituhr-Speichermodul“. Neben dem Modul benötigt man noch eine Knopfzelle. Hat man die eingesetzt, kommt der spannende Teil: es gibt keine brauchbare Anleitung für das Teil. In der Packung war auch nichts.

Beginnen wir erstmal mit der Montage des Moduls. Wie es auf den Raspberry Pi aufgesteckt werden muss, kann man anhand des Produktfotos erahnen:

Daraufhin passierte aber erstmal nichts. Logisch – man muss das Modul im Raspberry Pi auch erstmal konfigurieren. Da ich mir die Anleitungen aus vielen Bruchstücken im Netz zusammengesucht habe, hier die komplette Fassung:

  1. Modul einbauen
  2. I2C-Interface aktivieren -> sudo raspi-config aufrufen, dann auf Punkt 5 „Interfacing Options“ gehen und dort das I2C-Interface auf enabled stellen, Raspberry dann neu starten
  3. Zwei weitere Pakete müssen instaliert werden, was der Befehl erledigt: sudo apt-get install python-smbus i2c-tools
  4. Nun kann man prüfen, ob das Modul erkannt wird. Die ID 68 muss angezeigt werden, wenn man diesen Befehl eingibt: sudo i2cdetect -y 1
    Wird stattdessen UU angezeigt, ist das entsprechende Kernel-Modul bereits aktiv.
  5. Jetzt müssen wir das Kernel-Modul aktivieren. Hierzu editiert man die Datei /boot/config.txt (z.B. per sudo nano /boot/config.txt). Je nach verwendeten Modul muss man nun folgende Zeile hinzufügen:
    DS1307: dtoverlay=i2c-rtc,ds1307
    PCF8523: dtoverlay=i2c-rtc,pcf8523
    DS3231: dtoverlay=i2c-rtc,ds3231
    Ist das erledigt, wird der Raspberry nochmal neu gestartet.
  6. Nun wiederholen wir Schritt 4. Diesmal muss im Feld 68 der Wert UU angezeigt werden.
  7. Um den Kernel-Treiber richtig zu aktivieren, muss man das Paket fake-hwclock entfernen. Wichtig ist, das vorher der Schritt 6 erfolgreich war! Das Entfernen erfolgt mit diesen beiden Befehlen:
    sudo apt-get -y remove fake-hwclock
    sudo update-rc.d -f fake-hwclock remove
  8. Nun müssen wir noch das Skript, welches die HWClock setzt anpassen. Dies erfolgt mit dem Befehl:
    sudo nano /lib/udev/hwclock-set
    Ziemlich am Anfang der Datei stehen diese 3 Zeilen:
    if [ -e /run/systemd/system ] ; then
    exit 0
    fi
    Diese Zeilen kommentiert man aus, in dem man in jede dieser 3 Zeilen direkt an den Anfang ein # schreibt. Datei dann abspeichern.
  9. Nun lesen wir mal die Zeit aus dem RTC-Modul aus – dies geht mit
    sudo hwclock -D r
  10. Nun prüfen wir, ob Datum und Uhrzeit vom Raspberry richtig gesetzt sind. Hierzu einfach date eintippen.
  11. Passt die Zeit vom Raspberry, können wir die aktuell Raspberry-Zeit zum RTC schreiben mit:
    sudo hwclock -w
    So lange die Batterie im Modul nicht leer wird, wird dieser Befehl auch nicht mehr benötigt.
  12. Mit sudo hwclock -r können wir die Zeit nun aus dem Modul lesen.

So – das wars. Schon wird die Zeit vom Raspberry Pi immer korrekt sein.

 

ownCloud – File is locked – Datei kann nicht gelöscht werden

In einer von mir betreuten ownCloud-Instanz trat der Fehler auf, das einzelne Dateien in der Weboberfläche nicht gelöscht werden konnten. Auf der Oberfläche stand nur die Meldung „Fehler beim löschen der Datei“.

In der owncloud.log stand beim Löschversuch (hier nur ein kurzer Auszug): „method“:“DELETE“,…1003.pdf\“ is locked

Lösung:

Zuerst die ownCloud mit dem Eintrag ‚maintenance‘ => true; in der config/config.php in den Wartungsmodus setzen. Danach geht man z.B. mit phpMyAdmin in die Datenbank und führt diesen SQL-Befehl aus:

DELETE FROM oc_file_locks WHERE 1

Danach stellt man den Eintrag ‚maintenance‘ in der config.php wieder auf false und schon sollte alles wieder gehen. Wenn der Fehler nur einmalig oder sporadisch auftritt, ist hiermit alles erledigt. Sollte das ganze häufiger der Fall sein, ist Ursachenforschung empfehlenswert.

Als etwas unsaubere, aber nachhaltige Lösung könnte man in der config/config.php auch diesen Eintrag setzen:

‚filelocking.enabled‘ => false,

Damit wäre das FileLocking generell deaktiviert.