Schlagwort: Linux

Raspi macht Sachen

Heu­te früh um 4:30 Uhr klin­gel­te wie üblich der Wecker der Gat­tin, und wie unüb­lich ging ihre Nacht­tisch­lam­pe nicht an.
Komisch.
Zabb­bix hat kei­ne Daten zu die­sem Zeit­punkt, eigent­lich die gan­ze Nacht nicht. Jeden­falls fast kei­ne Daten, ein paar sind doch da und zei­gen einen Load von maxi­mal 74 gegen 23 Uhr:
Der Fern­se­her war heu­te früh ein­ge­schal­tet, was nur pas­siert, wenn ent­we­der jemand ver­ges­sen hat ihn aus­zu­schal­ten, oder, viel wahr­schein­li­cher in die­sem Fal­le, Kodi ihn ein­ge­schal­tet hat.
Paßt aber schein­bar nicht:

pi@raspberrypi:~ $ systemctl status kodi
● kodi.service - Kodi Media Center
   Loaded: loaded (/etc/systemd/system/kodi.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2019-02-16 18:55:35 CET; 2 weeks 3 days ago
 Main PID: 26354 (kodi)
   CGroup: /system.slice/kodi.service
           ├─26354 /bin/sh /usr/bin/kodi
           └─26390 /usr/lib/arm-linux-gnueabihf/kodi/kodi-rbpi_v7 --lircdev /var/run/lirc/lircd

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
pi@raspberrypi:~ $

(mehr …)

0

ZFS-on-Linux scheint gesichert zu sein

Hei­se schreibt:

ZOL kann die neu­en Funk­tio­nen daher nicht nut­zen, weil es einer Lizenz unter­liegt, die gemein­hin als in inkom­pa­ti­bel zur vom Linux-Ker­nel ver­wen­de­ten GPL gilt. Die ZOL-Ent­wick­ler haben das Pro­blem in ihrem Haupt­ent­wick­lungs­zweig mitt­ler­wei­le umschifft. Laut den Ent­wick­lern steigt die CPU-Last dadurch ein wenig; sie erwar­ten aber kei­nen son­der­li­chen Ein­fluss auf die Geschwin­dig­keit, solan­ge die CPU nicht beson­ders schwach ist oder bereits am Anschlag läuft.

Natür­lich wäre es schö­ner gewe­sen, Ora­cle hät­te ZFS unter GPL gestellt. So bleibt ein fader Bei­geschmack — aber wenns funk­tio­niert, ist es gut™. Etwa so:

rainer@big:~$ zpool list
NAME    SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
zroot  1.12T   962G   182G         -    80%    84%  1.77x  ONLINE  -
rainer@big:~$
0

Time machine: Backup device repariert

Time machi­ne, so kom­for­ta­bel es auch ist, hat seit Ewig­kei­ten oder schon immer einen üblen Bug: Nach end­li­cher Zeit (bei mir: ca. 3 Mona­te) ist es der Mei­nung, daß das Back­up neu erstellt wer­den müs­se. Das bedeu­tet natür­lich, daß man alle alten Back­ups weg­wer­fen soll — äußerst frus­trie­rend. Irgend­wann fand ich mal eine Anlei­tung, wie man das umge­hen kann. Hat bis­lang immer gut funk­tio­niert
Vor ein paar Tagen nun war es wie­der soweit — und die Anlei­tung funk­tio­nier­te erst­mal nicht. Der Schritt fsck_hfs -drfy -c 750M /dev/diskxs2 ging zwar schnell (12 Minu­ten), war aber auch nach mehr­ma­li­gem Auf­ruf nicht erfolg­reich.
Also habe ich noch­mal von vor­ne gestar­tet (Retry, Reboot, Reinstall) mit chflags -R nouchg /Volumes/{name of your network share}/{name of}.sparsebundle — und war­ten, war­ten, war­ten. Es gibt kei­ner­lei Fort­schritts­an­zei­ge, nur tcp­dump bestä­tig­te, daß da eine Men­ge Daten übers Netz wan­dern.
Aber heu­te früh war er fer­tig:

1979 Minu­ten, das sind 33 Stun­den!
Aber egal, es back­upt wie­der, und die alten Back­ups sind auch noch da 🙂

0

bzip2 vs. lbzip2

Letz­te­res ist die mul­ti­thre­aded Vari­an­te von ers­te­rem. Ich kann­te lbzip2 bis vor einer Stun­de gar nicht.
Ich packe 10 Giga­byte Zufall auf einer 12-Core-Maschi­ne:

rainer@big:~$ dd if=/dev/urandom of=10G bs=1000M count=10 iflag=fullblock
10+0 records in
10+0 records out
10485760000 bytes (10 GB, 9.8 GiB) copied, 236.169 s, 44.4 MB/s
rainer@big:~$ time bzip2 -9 -k 10G

real 39m50.132s
user 39m4.859s
sys 0m28.117s
rainer@big:~$ time lbzip2 -9 -f 10G

real 11m5.742s
user 25m29.338s
sys 0m18.990s
rainer@big:~$

40 Minu­ten gegen 11 Minu­ten, das ist zwar schnell, aber doch nicht so schnell, wie ich nai­ver­wei­se erwar­tet hat­te.

0

Ingenieure, IT

Hier im Haus haben wir eine ziem­lich gute (ziem­lich ist unter­trie­ben) Lüf­tungs­an­la­ge eines deut­schen(?) Her­stel­lers — die­se.
Nun kann man heut­zu­ta­ge kaum noch Anla­gen ver­kau­fen, die nicht in irgend­ei­ner Wei­se über Com­pu­ter und/oder Apps bedient wer­den kön­ne, so auch unse­re Anla­ge.
Jeden­falls irgend­wie:

WLAN TCP / IP via Rou­ter ja
Anschluss Mod­bus / IP via Rou­ter ja

Das

via Rou­ter ja

ist natür­lich falsch: Das Gerät hat einen Ether­net-Anschluß, ist ein DCHP-Cli­ent (nix IPv6) und spricht dort nicht etwa HTTP, son­dern Mod­Bus. Die Anla­ge muß also nur ans LAN mit einem DHCP-Ser­ver (es läßt sich kei­ne fixe Adres­se ver­ge­ben) kom­men. Daß man im Tech­nik­raum Ether­net zu lie­gen hat, ist eher unwahr­schein­lich, aber für WLAN hat es aus wel­chen Grün­den auch immer nicht gereicht (nein, man kann es auch nicht nach­rüs­ten).

Hat man dann doch die Anla­ge ans Netz bekom­men, kann man sie mit einer App (Andro­id oder IOS) steu­ern, also jeden­falls wenn die App die Anla­ge fin­det, was immer­hin oft der Fall ist. nmap -sT -p502 fin­det die Anla­ge immer.

Aber man kann sie auch viel detail­lier­ter kon­fi­gu­rie­ren — dafür hat die Anla­ge einen USB-Anschluß. Mini-USB-B. Schon das ist gaga. Um das machen zu kön­nen, gibt es ein Pro­gramm namens iFlow, nur hipp mit dem i. Aller­dings nur für Win­dows. Es braucht .NET 3.5, das ist von anno dazu­mal. Es braucht genau die­se Ver­si­on, neue­re gehen nicht.
Ich habe kein Win­dows, in einer VM auf Linux wird die Anla­ge nicht gefun­den (ich wer­de wei­terfri­ckeln, viel­leicht doch irgend­wann?)
Wür­de ich eine Ver­bin­dung bekom­men, hät­te ich 3 Accounts:

  • User (ohne Paß­wort)
  • Instal­la­teur (mit Paß­wort)
  • Admin (mit ande­rem Paß­wort)

Die Paß­wör­ter sind hart codiert und ste­hen im Inter­net. Das GUI ähnelt der SPS-Steue­rung eines Atom­kraft­wer­kes (jeden­falls stel­le ich mir eine sol­che so vor)

Ehr­lich: So schafft sich Deutsch­land ab.

2+

Apache unter CentOS 7 starten

Wenn der Apa­che nicht mit sys­temc­tl gestar­tet wer­den kann und sys­temd die­sen Feh­ler lie­fert:

 httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: failed (Result: signal) since Fri 2018-10-12 18:55:13 CEST; 3min 0s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 3398 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
  Process: 3411 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=killed, signal=KILL)
 Main PID: 3411 (code=killed, signal=KILL)

Oct 12 18:52:13 www.example.com systemd[1]: Starting The Apache HTTP Server...
Oct 12 18:53:43 www.example.com systemd[1]: httpd.service start operation timed out. Terminating.
Oct 12 18:55:13 www.example.com systemd[1]: httpd.service stop-final-sigterm timed out. Killing.
Oct 12 18:55:13 www.example.com systemd[1]: httpd.service: main process exited, code=killed, status=9/KIL
Oct 12 18:55:13 www.example.com systemd[1]: Failed to start The Apache HTTP Server.
Oct 12 18:55:13 www.example.com systemd[1]: Unit httpd.service entered failed state.
Oct 12 18:55:13 www.example.com systemd[1]: httpd.service failed.

dann fehlt wahr­schein­lich das ent­spre­chen­de Modul:

Load­Mo­du­le systemd_module modules/mod_systemd.so

War­um man auch immer… Bei sys­temd wun­der ick mir über janüscht mehr.

0

Jetzt wächst zusammen, was nicht zusammen gehört

Wir haben unser Haus mit ein paar Tråd­fri-Lam­pen ver­se­hen. Das ist nett. Die wer­den von Fern­be­die­nun­gen bzw. Bewe­gungs­mel­dern gesteu­ert. Es gibt auch eine App, so daß man sie von den Smart­pho­nes aus, ja sogar von den Smart­wat­ches aus steu­ern kann.
Das ist nett, und eine Steue­rung vom Brow­ser aus wäre noch net­ter.
Also habe ich mir auf dem Raspber­ry mal Home Assi­stant instal­liert.
Gleich beim ers­ten Hoch­fah­ren fand er mei­ne Lam­pen und die Sono­se, damit hat­te ich gar nicht gerech­net.
Ich kann nun Lam­pen und Sono­se vom Brow­ser aus steu­ern, ja, schon nicht schlecht.
Aber kann ich auch auto­ma­ti­sie­ren? Also sagen: Wenn die­se Bedin­gung ein­trifft, dann tue jenes?
Ja, geht:

automation:
  - alias: Licht an, Musi aus
    trigger:
      platform: state
      entity_id: light.deckenlampe_arbeitszimmer
      to: 'on'
    action:
      service: media_player.media_stop
      entity_id: media_player.arbeitszimmer
  - alias: Licht aus, Musi an
    trigger:
      platform: state
      entity_id: light.deckenlampe_arbeitszimmer
      to: 'off'
    action:
      service: media_player.media_play
      entity_id: media_player.arbeitszimmer

Das macht: Wenn die Decken­lam­pe im Arbeits­zim­mer ange­schal­tet wird, dann mache bit­te den Sonos im Arbeits­zim­mer aus (und umge­kehrt)
Das ist natür­lich kom­plett sinn­frei, zeigt aber die Mög­lich­kei­ten. Als Trig­ger könn­ten auch Uhr­zei­ten die­nen zum Bei­spiel, Wet­ter­da­ten, alles mög­li­che.

Das könn­te der Beginn einer wun­der­ba­ren Freund­schaft wer­den 😉

0