20/1/2021

openSUSE Leap en streaming video

Filed under: — cybrarian @ 7:26 pm

Inauguration Day Live
Als je een foutmelding krijgt op sommige websites waar streaming video wordt aangeboden, kan je eens checken of je de nodige extra’s hebt:

https://en.opensuse.org/Additional_package_repositories#Packman

zypper ar -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/' packman

en daarna:

zypper dup --from packman --allow-vendor-change

(hier uitgevoerd op Leap 15.1 en Leap 15.2)

12/1/2021

Programmeerbare led-boom; voorbeeld-led-loopjes

Filed under: — cybrarian @ 10:29 pm

Zie vorig artikel Nano-programmeerbare kerstboom

Als de hardware geïnstalleerd is, kan je spelen met de broncode in de Arduino IDE, gemakkelijkst is om te beginnen van een voorbeeldprogramma waar een element in zit dat je wil verkennen.

Behalve voor het beschreven bord-met-leds geldt veel van de software voor heel wat reeksen van led’s, met als ledstrip-lengte een aan te passen getal (bv #define LEDCOUNT 12)
Om het effect van de drie kleuren te verstaan: zoek op internet naar de afbeelding van een “color wheel for light”.

Om vat te krijgen op de juiste led, maken we eerst een programma dat de leds afloopt in volgorde van de nummering van het bord (begint bij nul).

We laten de rode led op de Nano mee- (of eerder tegen-) knipperen als controle.

Inhoud:

  • Eén led loopt rond tussen donkere leds
  • Eén led loopt rond in een gekleurde kerstboom
  • Een ribbe van de kerstboom heeft verschillende kleuren, draait weg naar de spits toe.
  • Bauw zwaailicht

Gemeenschappelijk is altijd het invoegen van de Adafruit NeoPixel bibliotheek:
(nota: de < en > tekens hebben een spatie gekregen die er uit moet)

#include < Adafruit_NeoPixel.h >
#define PIN 9
#define LEDCOUNT 12

En bijna altijd heb je een index of teller nodig:
int i=0;
… (* soms komt hier dan bv een array met led-volgnummers of andere definities)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LEDCOUNT, PIN, NEO_RGB); // + NEO_KHZ800);

En dan een algemene setup code die de leds initialiseert:
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
strip.begin();
strip.show(); // Initialize alle pixels 'off'

en daarna komt de oneindige programmalus “loop”:

void loop() {
// allerlei code, met een if of select voorwaarde of een andere herhaling
// dikwijls voorzien van een rustpauze van een aantal milliseconden:
delay(1000);
}

Eén led loopt rond tussen donkere leds

De rode led op het Nano bord pinkt om de programmaloop aan te tonen (mag er dus uit)

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // led op Nano aan
  delay(250);                       // even houden
  digitalWrite(LED_BUILTIN, LOW);    // led op Nano uit
  delay(250);                       // even wachten voor
  // boom
// led i kleursterktes (rood, groen, blauw)
  strip.setPixelColor(i, 10, 10, 200);
  strip.show();
  delay(1000);
  strip.setPixelColor(i, 0, 0, 0);     // led i terug uit
  i++;                        // volgend led tot laatste..
  if(i > LEDCOUNT) {
    i=0;                        // terug naar eerste
  }
}

Conclusie: led 0 staat onderaan op de boom, op de ribbe diagonaal aan de overkant van de aan-uit schakelaar (voor de batterij), waar eigenlijk C/5 het dichstbij staat.

A	B	C	D
			
2	8	3	9
1	7	4	10
0	6	5	11

Eén led loopt rond in een gekleurde kerstboom
Richting: van 0 naar 11.

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // bord led knippert tegen; aan
  delay(250);                       // houden..
  digitalWrite(LED_BUILTIN, LOW);    // uit
  delay(250);    // pauze alvorens led i te wijzigen;
  strip.setPixelColor(i, 10, 10, 200);    // led nummer i blauw
  strip.show();
  delay(1000); geniet
  strip.fill(strip.Color(0, 32, 0), 0, 12); // Kerstboom terug groen
  strip.show();
  delay(500);                       // even houden zo
  i++;  // schuif door naar nummer volgende led tot laatste
  if(i > LEDCOUNT) {
    i=0; // dan terug naar eerste
  }

Rond de boom …

Met het volgen van de leds zoals ze intern genummerd zijn, worden de ribben van de boom-piramide gevolgd, van onder naar boven en over de top terug naar onder (zie boven).

Maar wij willen ze zo laten lopen:

A	B	C	D
			
8	9	10	11
4	5	6	7
0	1	2	3

We laten niet de led-nummer optellen, maar wel de index in een rij van led-nummers.

0	6	5	11	1	7	4	10	2	8	3	9

In de definities boven de setup moeten de volgorde van het aanspreken van de pixels vooraf vastgelegd worden om gemakkelijk te kunnen rondlopen:

 int ledPins[] = {
    0, 6, 5, 11, 1, 7, 4, 10, 2, 8, 3, 9
  };

Pinkende ribben, rond-uitloop naar top

  void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // bord led knippert tegen; aan
  delay(250);                       // houden..
  digitalWrite(LED_BUILTIN, LOW);    // uit
  delay(250);    // pauze alvorens boom te wijzigen;
  strip.setPixelColor(ledPins[i], 200, 200, 0);    // pixel i aan, geel
  strip.setPixelColor(ledPins[i+4], 40, 40, 255);    // pixel op volgende laag boven blauw
  strip.setPixelColor(ledPins[i+8], 150, 20, 20);    // pixel op daaropvolgende laag rood
  strip.show(); // pixelnummers boven LEDCOUNT geen probleem, worden onzichtbaar
  delay(1000); pauze voor kleur terug uit; m.a.w. boom volledig kleuren;
  strip.fill(strip.Color(2, 50, 2), 0, 12); // Kerstboomgroen, bv 2, 50, 2 of 0, 32, 0
  strip.show();
  delay(100);                       // wachtebeke
  i++; // opschuiven tot laatste led, 
  if(i >= LEDCOUNT) {
    i=0; //  dan opnieuw
  }
}

Blauw zwaailicht

 digitalWrite(LED_BUILTIN, HIGH);   // led op bord aan (voltage hoog)
  delay(30);                       // wacht even
  digitalWrite(LED_BUILTIN, LOW);    // led op bord uit (voltage laag)
  delay(30);                       // wacht even


speel met deze delays (en die op het einde) voor de snelheid van het ronddraaien…

 strip.fill(strip.Color(4, 4, 25), 0, 12); // zwak blauw licht tussendoor
  strip.show();
  strip.setPixelColor(ledPins[i], 2, 2, 255);    // turn pixel on, ? color
  strip.setPixelColor(ledPins[i+4], 2, 2, 254);    // turn pixel on, ? color
  strip.setPixelColor(ledPins[i+8], 2, 2, 253);    // turn pixel on, ? color
  strip.show();
  delay(70);                       // wait for ..

De +4 en +8 zorgen ervoor dat de boven elkaar liggende leds samen gebruikt worden.
De waarden voor de kleuren zijn een tikje anders gezet, waardoor je boven/onder kan herkennen

  i++;
  if(i >= LEDCOUNT-8) {
    i=0;
  }


Dit laatste stuk zorgt ervoor dat het licht, eens helemaal rond, terug bij de eerste ribbe begint. Voor een politie-zwaailicht effect kan je de delay tijden korter zetten.

Veel plezier…

9/1/2021

Nano-programmeerbare kerstboom

Filed under: — cybrarian @ 12:35 am

Het ontbrekende handboek
(mijn doel is er een universeel monitoring apparaat van te maken: geluidsniveau, temperatuur, netwerkaktiviteit, …)
Een weinig gedocumenteerd object (Arexx creatie) en verkocht in verschillende vormen/versies op ondermeer Duitse webwinkels als Reichelt en Conrad (Als “MakerFactory”);

Voordeel: Je kan kiezen om hem:

  • gewoon aan te steken en alles blauw-blauw te laten (Dat is de teststoestand bij opstarten: alle leds blauw, beetje koud hard blauw licht maar leuk in industrieële omgeving en de leds geven veel licht (dat belooft voor de battrij..).
  • te voorzien van een micro:bit. De micro-bit kan je dan weer voorzien van een programma dat je afhaalt, en waarmee je de kleurtjes van de kerstboom laat varieren, rondlopen, verkleuren enz. Een micro:bit van de eerste versie volstaat. Je kan dan ook de rest van de micro:bit aansturen in je programma, voor het deel van de leds van de kerstboom moet je de Neopixel bibliotheek aanroepen voor een ledstrip van 12 leds RGB. Je kan bv tegelijk de temperatuur weergeven op de leds van de micro-bit, scrollend, en de lichtjes van de boom laten verlopen van kleur tegen een zelfgekozen tempo.
  • te voorzien van een bijgeleverde “arduino-compatibele” nano die je in een voet kan steken die je op de printplaat moet solderen. Op het ene van de twee papiertjes die mee in de doos zitten, staat dat je de batterijhouder moet verwijderen (hoe?) en dan de ic voet op het bord solderen, en de batterijhouder vastsolderen. Daarna “programmeren als WS-2812” is het enige wat de erg summiere handleiding op het tweede bladje er verder over zegt.

Er wordt in alle talen verwezen naar “lesboeken en werkbladen met oefeningen en voorbeelden”, maar wel zonder te zeggen hoe of waar; ik heb ze online niet gevonden.

Micro:bit
De micro:bit is het gemakkelijkst te gebruiken, je moet hem maar in de speciale sleuf steken, en hij is onmiddellijk bruikbaar.

* Zelf bijeen puzzelen

BBC Micro:bit
WS-2812

Online bronnen:
* Een zip-bestand met een aantal “programma’s” om te downloaden:
software-2195092-makerfactory-mf-6585276-christmas-tree-mobile-kerstboom.zip

Uitgepakt geeft dat:

└── Software
    ├── Arduino
    │   ├── VU_meter
    │   │   └── VU_meter.ino
    │   └── Zwaailamp
    │       └── Zwaailamp.ino
    └── Microbit
        ├── analog_read_led.hex
        ├── analog_read_led_log.py
        ├── analog_read_led.py
        ├── led_and_button_test_2boards.hex
        ├── led_and_button_test_2boards.py
        ├── led_and_button_test.hex
        ├── ledtest.hex
        └── README.txt

5 directories, 10 files

Namen als “VU-meter”? “Zwaailamp”? Ik had eerder iets ivm kerstboom verwacht, maar ja…
* Aankoppelen
Sluit de micro:bit aan met de USB kabel aan de computer. Het ziet eruit alsof je een usb-drive aansluit, je kan die openen en ziet bestanden staan.
De uitvoerbare programma’s uit de Micro:bit directory van de download kan je naar de usb-Micro:bit kopiëren, je ziet onderaan een gele led flikkeren terwijls ze worden opgepikt door de Micro:bit; als dat stopt verdwijnt het bestand uit die usb-micro:bit map en start het programma met de uitvoering of wacht op bv de druk op een knop.

* Micro:bit programmeren
Bij Microbit zie je bestanden met uitgang
.hex: dat is het uitvoerbare bestand.
.py : dat is de wijzigbare broncode in python
Het is de broncode in python die nadien gecompileer wordt tot het hex bestand, dat kan je lokaal of via een website, waar je als download een .hex krijgt.

Je zou verwachten dat er telkens een broncode bestand is (.py) en daarvan een gecompileerde versie (.hex).
Helaas:

analog_read_led.py
analog_read_led.hex

analog_read_led_log.py
led_and_button_test_2boards.py
led_and_button_test_2boards.hex

led_and_button_test.hex
ledtest.hex

Gelukkig is er het README.txt bestand om alles te verduidelijken:

analog_read_led.hex VU meter
led_and_button_test.hex Looplicht. Met indrukken knop veranderd smiley op display microbit en worden leds rood ipv blauw.
led_and_button_test_2boards.hex Zelfde, echter nu met 16 LEDS (tweede board aangekoppeld via J2)

Euh??

Uitproberen van de .hex (en bekijken van .py indien beschikbaar);
* analog_read:
– Er brandt: 1 kant 3 blauwe leds; overkant bovenste blauwe led; andere kant onderste led groen: knippert onregelmatig (analoog? Maar op basis van wat? Random? Pin0? Ik krijg geen verandering in het patrook van knipperen.
– In de code valt me op dat er gewerkt wordt met pixelcount van 8, terwijl we er twaalf hebben.

* led_and_button_test.hex:
– op de micro:bit staat een sip kijkende smiley “:(” en er branden 3 blauwe leds op 1 ribbe, en 1 blauwe led op de tegenoverliggende. Er loopt 1 led rond op 8 leds die niet branden. Als je op de Micro:bit knop A indrukt, verandert de kleur van de rondlopende led naar rood. Als je loslaat terug naar vorige toestand.
– we hebben hier geen broncode van, maar de beschrijving is wel een beetje te volgen, waarschijnlijk ook een verkeerd aantal leds gedefinieerd voor deze boom.

* ledtest.hex:
– doet alle leds blauw branden, net alsof je de boom zonder micro-bit zou aanzetten.
– geen broncode.

* led_and_button_test_2boards
– Micro:bit geeft sip gezicht; doet verder een enkele blauwe led rondlopen : van beneden naar boven, over de top terug naar beneden. Even pause (ongeveer 4 tellen). Op de andere ribben ook weer van beneden naar boven en over de top naar beneden; dan ineens terug naar uitgangspositie. Als je knop A indrukt op de micro:bit verandert het gezicht naar een smiley en de kleur die rondloopt naar rood, zolang je de knop ingedrukt houdt.
– broncode spreekt van pixelcount 16; dus dat verklaart de 4 tellen waar we niets zien gebeuren?


Arduino Nano:

Om de “arduino” Nano te monteren moet de batterijhouder verwijderd worden en dat ziet er op het eerste zicht gemakkelijk uit, want die is vastgezet met 2 boutjes; losdraaien en klaar? Neen. De batterijhouder zit ook met 2 pinnen vast(gesoldeerd?) op het bord, nl waarmee de stroom doorgegeven wordt. Die moet je dus voorzichtig los solderen, want nadien moet hij er terug aan. Het nano-blaadje uitleg geeft al toe dat de voet voor de nano-processor niet past op het bord van de kerstboom: je moet 1 paar tegenoverliggende voetjes ombuigen. Daarna moet je de voet vastsolderen (volgens de handleiding met de nano erin, is dat wel voorzichtig?), en daarna moet je de nano er uit halen en de batterijhouder terug vastsolderen. Alleen spijtig dat je daar zo goed als niet meer aankan, want de voet zit in de weg nu.

De handleiding zegt: “Als de Arduino Nano op de print gesoldeerd is, kun je de kerstboom niet meer met de Micro:bit gebruiken”, maar de Arduino is niet vastgesoldeerd (past ook niet rechtstreeks), enkel de voet. En daardoor kan je de Nano er wel uithalen; en – vermoed ik- terug gebruiken met de Micro:bit (misschien een overblijfsel van een vorige versie?).

* Arduino software
Installatie (hier op Ubuntu 18.10):
Arduino “IDE” kan je downloaden voor Linux, bv in versie 1.8.13:
https://downloads.arduino.cc/arduino-1.8.13-linux64.tar.xz
Uitpakken, …

~/IOT-SBC/arduino-1.8.13-linux64/arduino-1.8.13$ ls
arduino examples java reference tools-builder
arduino-builder hardware lib revisions.txt uninstall.sh
arduino-linux-setup.sh install.sh libraries tools

en het installatieprogramma draaien:

~/IOT-SBC/arduino-1.8.13-linux64/arduino-1.8.13$ sudo ./install.sh

Adding desktop shortcut, menu item and file associations for Arduino IDE…

Starten met “arduino” (op de commandolijn) of uit het menu of link op de desktop.

* Configuratie
Je moet ervoor zorgen dat je toegang hebt tot de hardware van je computer, meer bepaald de seriële poort. Dat kan bv door je gebruiker aan een bepaalde groep toe te voegen die toegang heeft tot die seriële poorten. Of de luie, verwerpelijke, onveilige manier is de arduino software te starten met root rechten: sudo arduino.
Als het onmiddellijk lukt een een voorbeeldprogramma uit het menu “Files, Examples, Basic, Blink” te laden en dat naar de Nano te sturen (met de upload pijl), de Nano-led flikkert, en er begint een LED te pinken, dan lijkt het ok.
De software is gemaakt voor een heel groot aantal Arduino borden (en compatibelen), die toch allemaal wat onderling verschillen, bv van mogelijkheden, processor, communicatiechips enz.
In de software moet je mogelijk wat instellingen doen om die aan te passen aan het apparaatje dat je zelf hebt. Ik denk niet dat het kwaad kan, en ik heb het in ieder geval gedaan, om te proberen tot je een instelling vindt die werkt.
Voorbeeld:
-Tools, Board: Arduino Nano – je moet niet aangeven dat het geen echte Arduino is..
-Tools, Processor: ATmega 328P (old bootloader) – “old bootloader” maakte bij mij het verschil
-Tools, Port: /dev/TTYusb0 – kan bv op /dev/TTYs0 staan
-Programmer: Arduino as ISP
Zo lukte het doorsturen van het programma en daarna werkte de knipperende led (op de Nano zelf).

Bibliotheekbeheerder
In menu Tools, Library Manager, bij “Adafruit” zoeken naar “NeoPixel” (hier 1.7.0), druk “install”.

Als je een terminal venster openhebt zie je daar:

Installer Thread] Connect to https://downloads.arduino.cc/libraries/github.com/adafruit/Adafruit_NeoPixel-1.7.0.zip, method=GET, request id=AA5FE6A11AC24BAA
2021-01-11T23:32:53.124Z INFO c.a.u.n.HttpConnectionManager:157 [LibraryManager Installer Thread] Request complete URL="https://downloads.arduino.cc/libraries/github.com/adafruit/Adafruit_NeoPixel-1.7.0.zip", method=GET, response code=206, request id=AA5FE6A11AC24BAA, headers={null=[HTTP/1.1 206 Partial Content], Server=[cloudflare], Content-Range=[bytes 0-68907/68908], Last-Modified=[Thu, 05 Nov 2020 20:35:25 GMT], X-Amz-Cf-Id=[B_S_zxqMpHC22E8beW3D2fzEpQ_U0-4tpC7F1ZgKRmxFLMHJiQberQ==], Set-Cookie=[__cfduid=d583a54e468bb8f35f5c2779301d625a91610407973; expires=Wed, 10-Feb-21 23:32:53 GMT; path=/; domain=.arduino.cc; HttpOnly; SameSite=Lax], Content-Length=[68908], Age=[1257687], cf-request-id=[079564a8da0000f951dfb56000000001], Content-Type=[application/zip], X-Cache=[Miss from cloudfront], CF-Ray=[61027087c9b0f951-BRU], X-Amz-Cf-Pop=[BRU50-C1], Connection=[keep-alive], x-amz-version-id=[6Yh0xZLsEcmrSOLunFynfok9_0CfS0_4], Date=[Mon, 11 Jan 2021 23:32:53 GMT], Via=[1.1 99578e20c0b3a3e3de02b1f1fe508f98.cloudfront.net (CloudFront)], x-amz-replication-status=[COMPLETED], CF-Cache-Status=[HIT], Cache-Control=[private], ETag=["4eaaaa04f12af651fe17d3f5c4fafbc6"], Vary=[Accept-Encoding], x-amz-request-id=[081CA622C45AA4DD], x-amz-id-2=[v6sY2mUeZxs4GmWgvhuYtTVHb4ll/YLu7BOz6dbfpYY6Ey8xCYshTYf1TNM6XqbigeTh2Bv+DhQ=], Expect-CT=[max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"]}

Als je daarna terug in menu Tools, Manage Libraries naar deze library gaat, zie je hem staan als “installed”.

Sketch, Include Library, selecteer Adafruit NeoPixel; er wordt bovenaan een lijn ingevoegd met:

 # include < Adafruit_NeoPixel .h  > 

Je hebt de pin nodig waaruit gestuurd wordt:
#define PIN 9

Definieer de strip:
Adafruit_NeoPixel strip = Adafruit_NeoPixel(12, PIN, NEO_RGB);

Daarna in de setup function (initialiseren op af):

strip.begin();
strip.show();

en dan in de programma loop, bv zet pixel nul (eerste in de rij) op rood:

strip.setPixelColor(0, 255, 0, 0); //turn pixel on red green blue
strip.show();

Of voor een hele reeks leds, “fill” met gebruik van de functie “Color” om de kleur te maken:

strip.fill(strip.Color(12, 64, 0), 0, 12);
strip.show();

en dan uploaden …

Als de test werkt kan het echte programmeerwerk beginnen…

Succes!

2/1/2021

mp4 in openSUSE

Filed under: — cybrarian @ 6:32 pm

Na een standaard installatie (van openSUSE 15.1 in dit gevalà spelen geen mp4 bestanden (zoals filmpjes opgenomen met de meeste smartphones).

One click install

Een uitleg staat hier:
https://opensuse-guide.org/codecs.php
(Leap 15.2)
Met een link voor “Install Multimedia codecs”.

An easy way to install a selection of popular multimedia codecs.

Op de knop klikken (in Firefox) geeft een download, die doet Yast starten, en je moet bevestigen voor de installatie.

http://opensuse-guide.org/repo/openSUSE_Leap_15.1/ (libdvdcss repository)
http://packman.inode.at/suse/openSUSE_Leap_15.1/ (Packman Repository)

gaat over:

ffmpeg
gstreamer-plugins-bad
gstreamer-plugins-libav
gstreamer-plugins-ugly
gstreamer-plugins-ugly-orig-addon
lame
libavdevice56
libavdevice58
libdvdcss2
vlc-codecs

Je moet bij een waarschuwing over conflict kiezen voor het 2 keer
omschakelen van leverancier openSUSE naar packman.links2linux.de.
Daarna nog eens 5 keer (ffmpeg, libavfilter, libavdevices, libavcodecs, gstreamer plugins).
Daarna ook nog de afhankelijkheden bevestigen (dependencies) en er wordt een 75 Mb afgehaald…

Ik kreeg in 1 geval helaas een foutmelding op ffmpeg…

Maar mijn doel, het spelen van een .mp4, werkte na installatie.


Andere links: (die ik dus niet gebruikte)

Een link naar de packman repositories voor (open)SUSE:
http://ftp.gwdg.de/pub/linux/misc/packman/suse/

bv voor Leap 15.1:
http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.1/

14/12/2020

Afbeeldingen, foto’s, scans bijeen plakken met Inkscape

Filed under: — cybrarian @ 12:13 pm

Om snel een paar afbeeldingen bijeen te plakken op 1 blad, om dat samen af te drukken, hoef je niet in een pixel-tekenprogramma als Gimp te duiken. Het kan ook met een opmaakprogramma als Inkscape, en waarschijnlijk zelfs efficiënter.

Inkscape is normaal inbegrepen in de softwareverzameling van je Linux distributie, bv in versienummer 0.91, of nieuwer; op de website https://inkscape.org/ is versie 1.0 aangekondigd.

Snel:
– Start Inkscape, menu Bestand, Nieuw (dan krijg je een leeg blad).
– menu Bestand, Documenteigenschappen … : controleer documenteigenschappen, bv A4, en belangrijk, de oriëntatie: Staand/Liggend (Portrait/Landscape).
– menu Bestand, Importeren, kies het bestand, bv een png (schermafbeelding, scan..). Bevestig “importeren”; je plakt een rechthoek met het beeld.
– pas die rechthoek aan; schuif hem op zijn plaats of verklein door bv de hoek naar binnen te trekken.
– voeg op dezelfde manier het volgende beeld toe.
– Bewaar, print, …

Dit is een zeer eenvoudig proces, omdat het programma je toelaat om heel snel te werken als je verder geen ingewikkelde dingen wil doen.
Het is lang geleden dat ik zo’n gemakkelijk progrmma heb leren kennen, maar mijn kort gebruik ging hier enkel over zwart-wit beelden uitgeknipt uit scans, dus geen kleuren gebruikt.

9/12/2020

System program problem detected

Filed under: — cybrarian @ 10:57 am

Problem?
Op een dag krijg ik de geheimzinnige melding: “System program problem detected” op een Ubuntu 18.04 LTS desktop.
Optie:

  • Melden
  • Cancel

De eerste keer werkte ik gewoon voort, ik heb geen problemen ondervonden.
Ik neem me wel voor op te letten of ze terugkomt of gewoon weer wegblijft.
Nadien heb ik eens nauwkeuriger geobserveerd.
(meer…)

3/11/2020

SMS en MMS berichten exporteren uit Sailfish

Filed under: — cybrarian @ 11:50 pm

Op “jolla zendesk” staat een interessant artikel, dat ik zelf nog niet heb toegepast:

Zet toestel in Developer Mode.
Log vanop je Linux pc in op je Sailfish met ssh.

De informatie staat blijkbaar in deze directory:

cd $HOME/.local/share/commhistory

Dan lijkt het of ze iets bij installeren:

devel-su
pkcon refresh
pkcon install sqlite

Dan spreken ze de sqlite databank aan:
sqlite3 commhistory.db
dat geeft een sqlite> commandprompt.

En voeren ze daar de volgende opdrachten uit om .csv uitvoerbestanden te maken:
sqlite> .headers on
sqlite> .mode csv
sqlite> .output SMS.csv
sqlite> select * from events where type = 2;
sqlite> .output MMS.csv
sqlite> select * from events where type = 6;
sqlite> .quit

Om uit root te gaan:
exit

En dan verplaatsen ze de bestanden naar de home directory:

mv *.csv $HOME

Die moet je dan ophalen. Dat kan op dezelfde manier als je foto’s afhaalt; sluit de usb kabel aan en kies MTP verbinding. Ga naar de home directory en kopieer de bestanden naar je pc.

Natuurlijk zit je nu met ruwe data. Die moet je interpreteren of elders importeren, bv LibreOffice. Ook daar heb je nog werk om bv de datum in de gegevens om te zetten in een relevant menselijk leesbaar formaat.

(ik probeer nadien te updaten met mijn eigen ervaring. Ik vraag me ook af of ik niet zou exporteren/importeren in een databank; lijkt me handig om te zoeken of een eigen app te maken in Gambas om de data te lezen…).

Ik moet daar dringend eens verder lezen trouwens; Exporteren van de kalender op dezelfde manier, versleutelen van gebruikersgegevens (nog verschillend van het versleutelen van de SD kaart), ruimte vrijmaken, System Monitor, …

ip vervang ifconfig route arp enz

Filed under: — cybrarian @ 1:54 am

Wie bij netwerkproblemen automatisch ifconfig tikt, of route, moet zich aanpassen, want de aliassen beginnen te verdwijnen (geen backward compatibility meer).

ifconfig?

ip address show

kort:
ip a

route -n ?

ip route show

kort:
ip r

arp?
(address resolution protocol, voor hardware adres)
ip neigh

192.168.1.6 dev eth0 lladdr 00:26:b9:bc:4e:19 STALE
192.168.1.3 dev eth0 FAILED
192.168.1.1 dev eth0 lladdr 68:15:90:10:a3:9d REACHABLE

ip adres instellen

ip addr add <address>/<netmask> dev <interface> 

bv:
ip addr add 10.0.0.1/24 dev eth1

Default Gateway instellen

ip route add default via <gateway> dev <interface>

vb:
ip route add default via 192.168.1.2 dev eth0

Static route
Vroeger ‘route add -net <network>/<netmask> gw <gateway> [dev <interface>]

ip route add <network>/<netmask> via <gateway> dev <interface>

ip route add 172.16.32.0/24 via 192.168.1.1 dev eth0

ps:
netstat -l ?
ss -l
(socket statistics)

Netid  State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port  
....
u_str  LISTEN     0      128    /run/cups/cups.sock 23651     
....

30/10/2020

root wachtwoord vergeten

Filed under: — cybrarian @ 12:28 pm

Root wachtwoord reset
(zie ook -al wat ouder- zonder installatiemedium)
In mijn geval OpenSUSE 15.1:

Start van de installatie-usb-key,

Kies Rescue System, probeer op een login prompt te belanden (misschien kan je nog een toetsenbord kiezen, is nuttig).

Zoek de Linux root partitie.
fdisk -l

Als er maar twee zijn is het niet de swap. Bv het is sda2.

Mount ze zo:

mount /dev/sda2 /mnt

Zorgen dat nodige “device files” bereikbaar zijn (voor het wacthwoordcommando):
mount -o bind /dev /mnt/dev

Om te werken alsof je van in het geïnstalleerde systeem werkt:
chroot /mnt

Nu kan je het commando voor het wachtwoord instellen geven zonder een wachtwoord op te geven:

passwd root

Geef een nieuw wachtwoord in en verlaat de omgeving:

exit

en herstart.

Test het wachtwoord.

Suse: https://www.suse.com/support/kb/doc/?id=000015925
OpenSUSE: SDB:Recover root password

23/10/2020

Baloo eet mijn geheugen op (zoeken)

Filed under: — cybrarian @ 9:05 am

OpenSUSE 42.3 KDE Desktop op laptop

Zelfmoordproces

Na het opstarten wordt de computer stilaan trager. Ik zie op de geheugentool op de desktop dat het geheugen stilaan volloopt. Tot uiteindelijk er iets crasht, waarna de desktop terug vrij is en normaal werkt. Onderaan staat een icoon van een 🙁 gezichtje, met volgende informatie na een klik:

[Baloo File indexing daemon]
Helaas, Baloo File indexing Daemon is onverwacht gesloten.
U kunt helpen om de KDE Software te verbeteren door deze fout te rapporteren.
(Lees meer over foutrapportage.)

Uitvoerbaar programma: baloo_file PID: 4252 Signaal: Segmentation fault(11) Tijd: 23/10/20

In datzelfde foutvenster een tabblad met “informatie voor ontwikkelaar”:
Deze gegenereerde crashinformatie is waarschijnlijk niet bruikbaar.

Application: Baloo File Indexing Daemon (baloo_file), signal: Segmentation fault
Using host libthread_db library “/lib64/libthread_db.so.1”.

De pakketten met debuginformatie voor de volgende toepassing en bibliotheken ontbreken:

/usr/bin/baloo_file
/usr/lib64/libQt5Core.so.5
/usr/lib64/libKF5BalooEngine.so.5

Het bij-installeren kan met de druk op een knop – maar faalt.

Kill Baloo!

Opvallend: bij een bijgemaakte gebruiker treedt dit probleem niet op. Ik heb eerst geprobeerd om wat locaties niet te laten indexeren door Baloo, maar dat heeft voorlopig geen soelaas gebracht.

Als ik na het opstarten kijk welke process id baloo heeft, kan ik hem zelf snel killen, dan vermijd ik de vertraging van mijn desktop. Misschien moet ik de file indexering maar afzetten, of toch nog wat proberen te fine-tunen, er is bv een link naar een netwerk drive, en een nextcloud drive, heeft hij daar problemen mee? vroeger in ieder geval niet, het is me niet duidelijk wanneer het probleem onstaan is…

Systeeminstellingen, Werkruimte, zoeken.
– je kan bepaalde mappen uitsluiten van zoeken.
– je kan het zoeken afzetten.

20/10/2020

mariadb of mysql databank server verbinding over netwerk

Filed under: — cybrarian @ 2:17 pm

Verbinding van buitenaf
Een databank als mysql of mariadb is standaard geïnstalleerd in OpenSUSE 15.1. Meestal met het mysql_secure_installation script, dat er voor zorgt dat de databank in een veilige toestand op de server komt (niet zoals vroeger met alles draaiend, open, zonder root wachtwoord en een bekende voorgedefinieerde gast of test account…). Je kan na de installatie vanop de eigen server (localhost) inloggen. Maar als je nu vanop afstand wil inloggen op mysql of rechtstreeks vanuit programma’s de databank wil aanspreken, moet je een paar aanpassingen doen. Hieronder enkele voor intern gebruik (in een eigen lokaal netwerk), en even situeren:

1. Installatie
2. local user
3. remote use
A. Firewall
B. listen to port
C. remote use
D. SSL tunnel/VPN

1. en 2. zijn gebeurd is het uitgangspunt.

3. remote use
3.A. Firewall
Opensuse YAST: Firewall tool, service “mysql”, in zone “public” (is bv default).

op de commandolijn:
systemctl status firewalld
(om te zien of hij draait)

firewall-cmd --list-all
toont lijst met bv:

..
services: ssh dhcpv6-client mysql
ports:

grep mysql /etc/services

toont op welke poorten de diensten zitten

grep mysql /etc/services
mysql-cluster 1186/tcp # MySQL Cluster Manager [Arjen_Lentz]
mysql-cluster 1186/udp # MySQL Cluster Manager [Arjen_Lentz]
mysql-cm-agent 1862/tcp # MySQL Cluster Manager Agent [Andrew_Morgan]
mysql-cm-agent 1862/udp # MySQL Cluster Manager Agent [Andrew_Morgan]
mysql-im 2273/tcp # MySQL Instance Manager [Petr_Chardin]
mysql-im 2273/udp # MySQL Instance Manager [Petr_Chardin]
mysql 3306/tcp # MySQL [Monty]
mysql 3306/udp # MySQL [Monty]
mysql-proxy 6446/tcp # MySQL Proxy [Kay_Roepke]
mysql-proxy 6446/udp # MySQL Proxy [Kay_Roepke]
mysqlx 33060/tcp # MySQL Database Extended Interface [Oracle_8] [Omer_BarNir]

3.B. listen to port

telnet mysql.servernaam.loc 3306

Trying 192.168.1.205…
telnet: connect to address 192.168.1.205: Connection refused

nc -v mysql.servernaam.loc 3306

nc: connect to mysql.servernaam.loc port 3306 (tcp) failed: Connection refused

Connection refused: waarschijnlijk is poort wel open, maar luistert de dienst niet.

Dat wordt bepaald in /etc/my.cnf
staat standaard uitgecomment:

#port = 3306

en bind-address=127.0.0.1 staat standaard aan; uit-commenten zodat hij die algemene bind netwerk doet.
bind-address=127.0.0.1

3.C. user name, ip
Gebruiker bijmaken voor gebruik vanop afstand. (voor elk ander gebruik dan root-beheer moet je een andere account maken).

CREATE USER ‘my_app_user’@’10.132.51.34’ IDENTIFIED BY ‘some-strong-password’;

In plaats van op 1 bepaald ip addres kan ook een reeks adressen gebruikt worden:
netmask IPV4: ‘my_app_user’@’10.132.51.0/255.255.255.0′
Wildcards:’my_app_user’@’%.example.com’

systemctl status mysql
systemctl restart mysql

6/10/2020

openSUSE Firewall

Filed under: — cybrarian @ 12:38 pm

Via de NetworkManager van een laptop op OpenSUSE 15.x kan je bij de instellingen van het netwerk ook een firewall-instelling kiezen (netwerkicoon, rechtsklik, edit, tabblad General in iceWM.)

De firewall draait blijkt uit:

sudo systemctl status firerwalld

De beschikbare zones kan je als gebruiker aflezen uit
ls /usr/lib/firewalld/zones/

De aktieve:
firewall-cmd --get-active-zones
bv

internal
interfaces:wlan1

De standaardzone kan je opvragen:

sudo grep -i DefaultZone /etc/firewalld/firewalld.conf
bv

DefaultZone=public

enkele voorgedefinieerde zones (de insteling ervoor kan je telkens aflezen uit de gelijknamige bestanden in de directory):

block
dmz
internal
public
home
work
trusted

5/10/2020

batterijtest op laptop: upower

Filed under: — cybrarian @ 10:39 am

gebruik

Op de commandolijn:

upower -i /org/freedesktop/UPower/devices/battery_BAT0

(pad is /usr/bin/upower maar hoeft niet als root)

Installeer

Commando is standaard aanwezig in KDE-desktop laptop installatie; niet bv icewm.

Info en installatie via het softwarebeheer van de Linux distributie:
(bv openSUSE in package group System/Daemons)
– upower
– libupower-glib3
– upower-lang


Power Device Enumeration Framework

UPower is an abstraction for enumerating power devices, listening to device events and querying history and statistics. Any application or service on the system can access the org.freedesktop.UPower service via the system message bus. Some operations (such as suspending the system) are restricted using PolicyKit.

Versie 0.99.11 Grootte 143 KB

Uitvoer
Voorbeeld van reaktie:
(meer…)

2/10/2020

Wachtwoord fout na installatie – toetsenbord fout?

Filed under: — cybrarian @ 10:29 am

Net je Linux systeem geïnstalleerd, en je logt voor de eerste keer in, of de screensaver is gestart na een paar minuten niet aktief zijn op de computer, en daar staat een venster met de vraag om het wachtwoord.

Kijk eerst welk wachtwoord juist gevraagd wordt. Als de computer even ongebruikt was, wordt het wachtwoord gevraagd van de huidige desktop-sessie, dus het wachtwoord van de gebruiker. Misschien vergis je je tussen het root wachtwoord en dat van de gebruiker. OpenSUSE stelt bv wel voor hetzelfde wachtwoord te gebruiken voor root.

Je hebt dat root wachtwoord bij de installatie, net voordien ingegeven, zelfs twee maal want je moet dat altijd nog eens bevestigen. Je weet dus nog heel goed wat het wacthwoord is. En toch krijg je altijd de melding dat het wacthwoord fout is. Wat nu?

1) Zet de weergave van het wachtwoord aan.
Zodat je kan zien welke letters er echt komen – soms ben je je er niet van bewust dat het toetsenbord niet juist staat (numlock, capslock, azerty/qwerty..) In veel van die situaties kan je in plaats van de bolletjes of de sterretjes die bij elke letter getoond worden, ook ergens kiezen om de werkelijke letters zichtbaar te tonen bij ingave van het wacthwoord. Bv door op het icoon van een oogje te klikken (KDE).

2) Probeer je voor te stellen wat er fout kan gegaan zijn bij het aanmaken van het wachtwoord. Probeer dat na te doen om te weten te komen wat toen ingegeven werd.
Bv :
origineel ingegeven: Abcdefg-123456A

als de caps lock aanstaat: aBCDEFG-&É"'(§a

als de caps lock aanstaat en het numerieke klavier gebruikt is: aBCDEFG-123456a

als het toetsenbord in QWERTY stand stond bij ingave: Qbcdefg=123456Q

als het numeriek toetsenborddeel gebruikt werd en niet in numlock stond: Abcdefg-A

Die laatste was de aanleiding om dit te schrijven, want daar denk je misschien niet aan, niet alle (laptop) toetsenborden hebben een lampje voor numlock bv)

Variatie: zijn er letters die op je toetsenbord regelmatig haperen, genoeg om twee keer na elkaar te haperen?

Conclusie: wachtwoord weergeven in tekens bij het maken van het wachtwoord (als dat voorzien is).

Succes…

29/9/2020

Bestandenlijst splitsen in Dolphin: horizontaal, vertikaal

Filed under: — cybrarian @ 10:48 am

Bestandenlijst splitsen: vertikaal
Dolphin is de standaard bestandsbeheerder (file manager) in de huidige KDE op openSUSE. Dolphin kan zijn venster horizontaal splitsen, waarbij je twee locaties naast elkaar kan zien. Maar als je met iets bezig bent en rechts daarnaast twee locaties wil in het oog houden, dan wil je rechts bv een smalle bestandsbeheerder zetten met een vertikaal gesplitst venster: boven en onder.

Een zoekaktie leverde me het voorstel op het toe te voegen aan Dolphin, maar het antwoord van iemand van het team was dat ze het een overbodige “feature” was, en dat het misschien allerlei dingen zou “breken” (iconen moeten aangepast worden enz). Hij zei dat meer geavanceerde gebruikers trouwens dan toch eerder Konqueror gebruiken.

Konqueror in plaats van Dolphin?
Ik heb onmiddellijk konqueror bij-geïnstalleerd. Het is eigenaardig, want konqueror is een combinatie web-browser/file manager/documentviewer, en als ze een vervaning maken, Dolphin, die alleen bestandsbeheerder is, waarom die dan niet echt goed maken in wat hij moet zijn?

Konqueror bestaat nog, is (nu in openSUSE 15.1) 5.0.97, en kan vensters vertikaal splitsen.

18/9/2020

wifi instellingen opensuse IceWM

Filed under: — cybrarian @ 1:59 pm

OpenSUSE 15.1, IceWM desktop, 802.11 Networking Frameworks.

Bij installatie of configuratie moet je soms kiezen tussen infrastructure mode, client mode, master mode, managed mode, ad hoc mode, …

Mode
– client = normale gebruiker van wifi acess point, associeert met een netwerk (via SSID).
– managed = client mode
– master = infrastructure
– infrastructure = (met) centraal access point/router (die staat in infrastructure mode en heeft een “netwerk naam” of SSID en gebruikt een bepaald kanaal). Je kan je laptop laten fungeren als infrastructure mode wireless access point (op Mac “internet sharing”).
– ad hoc = peer to peer, zonder centraal verbindingspunt, bv twee laptops. Beperkt in afstand door de kracht van (beide) netwerkkaarten (bij meer gebruikers kunnen toestellen ook wel netwerk doorgeven, wat dan ook weer vertraagt), en kwaliteit daalt sterk door interferentie bij meer gebruikers.
Op laptops kan je ad hoc kiezen, op android apparaten zelfs niet.

Via Yast, System, Network Settings kan je aan de instellingen:

Global options:
– NetworkManager
– Wicked Service
– Network Services Disabled

IPv6 enabled (of niet)
DHCP Client Options: identifier -, Hostname to Send AUTO
Change Default Route via DHCP aangevinkt

Overview
Hier kan je de netwerkkaart toevoegen (zou er al kunnen/moeten staan), of ze selecteren en “Edit” kiezen om te wijzigen.

Dynamic Address (DHCP) of IP Address invullen, bv 192.168.1.123 (subnetmask /24, Hostname “123”)

Hardware
Device name (bv wlan0), en kernel module (bv bcma).

Klik “Next”.

Wireless Device Settings

Operating mode:
– Ad Hoc
– Managed : meestal dus deze als je niets speciaals wil doen.
– Master

In IceWM heb je in het menu, Desktop Apps, Systeem een een tool “Network Connections”. Dat levert een Mac-stijl leeg venster op waar je met + iets kan toevoegen, en een keuzelijst met netwerken krijgt. Doe bv:

+, Wi-Fi, Create.

Alles staat grijs (je kan dus niets veranderen), misschien omdat je geen root bent? Nee, ook als root blijft alles grijs. Waarom is dit er eigenlijk?

7/9/2020

Databank lettertekenset (Collation)

Filed under: — cybrarian @ 10:59 am

Als ik in een huidige databank (mariadb) kijk met phpMyAdmin, zie ik op het hoogste niveau “databases” de namen van mijn databanken, en daarnaast de colom “Collatie”. Daar staat bij de meeste databanken utf8_general_ci. (zie ook Databank collation) Er is één uitzondering, en dat is de database “mysql” (van het systeem zelf). Die heeft als collation: “utf8mb4_general_ci”. Waarom?

Een artikel uit 2016 hier op Medium.com geeft daar een antwoord op, en als het klopt zou ik ook meestal utf8mb4 moeten gebruiken, en al mijn bestaande databanken moeten omzetten.

MariaDB is afgeleid van MySQL, en daar hebben ze ooit een zuinige vorm van Unicode tekenset gemaakt en die “utf8” genoemd. Helaas bleek die achteraf niet overeen te komen met de uitgewerkte UTF-8 standaard, en MySQL kon zijn eigen versie niet meer aanpassen omdat ze te weinig plaats hadden voorzien in hun opslagruimte daarvoor (3 bytes/letter ipv 4). Hun onvolledige “utf8” veranderen zou bestaande programma’s kunnen doen crashen, en het enige wat hen restte was een andere vorm van utf8 bij te maken: utf8mb4.

Daardoor heb je nu zowel “utf8_general_ci” als “utf8mb4_general_ci” (ook wel “Unicode UCA 4.0.0).
ps: CI staat voor Case Insensitive (niet hoofdlettergevoelig, een zoek op “Abc” levert ook “abc” op).
En ook utf8mb4_bin, utf8mb4_(taalcodes)
ps: bin = wel hoofdlettergevoelig, dus Abc en abc verschillen voor de databank.

bron: https://medium.com/@adamhooper/in-mysql-never-use-utf8-use-utf8mb4-11761243e434

17/7/2020

openSUSE 15.2

Filed under: — cybrarian @ 12:31 pm

Op 24 juni werd het officiële verschijnen van openSUSE 15.2 gevierd (“Celebrate The Upcoming openSUSE Leap Release“).

Afhalen
De ISO kan je downloaden van software.opensuse.org, hij is 4.0 GB groot (itt 3.8 GB voor 15.1).

Haal ook de checksum van dezelfde download pagina af en controleer:
sha256sum -c openSUSE-Leap-15.2-DVD-x86_64.iso.sha256

openSUSE-Leap-15.2-DVD-x86_64.iso: goed

USB-stick om te installeren
https://en.opensuse.org/SDB:Live_USB_stick

Je kan daarvoor de nieuwe desktop tool SUSE Studio Imagewriter gebruiken (sudo zypper install imagewriter, momenteel versie 1.10). Die biedt een venster aan om de iso naartoe te slepen. Als je een USB-stick aansluit, wordt die onmiddellijk weergegeven in de keuzelijst onderaan. Als je de ISO gesleept hebt moet je enkel nog op de “write” knop drukken..

Als de stick niet leeg was krijg je nog de vraag: “This will overwrite the contents of /dev/sdb. Are you sure you want to continue?”.
Daarno moet je het wachtwoord ingeven, en krijg je een venstertje dat zegt “writing”, met percentage klaar en een cancel knop; als het helemaal klaar is gaat het dicht (tot frustratie van sommigen): 12:16 20% .. 12:18 58% .. 12:21 94% .. weg.

Installatie
De installatie zelf verloopt zo:
Boot met USB disk … kies “installeren” van het SUSE scherm.
Een groene balk onderaan geeft weer dat openSUSE Leap 15.2 bezig is..

starting yast …
starting installer …
Initialising Network Configuration
Updating the installer…

Daarna kan je een paar keuzes maken en de installatie starten.

Taal, toetsenbordindeling (test), licentie..
Basiskeuze:
[x] Werkstation met KDE Plasma
[ ] Werkstation met Gnome
[ ] Algemene Desktop
[ ] Server
[ ] Transactionele Server

Dan wordt een harde schijf indeling voorgesteld die er bv zo uitziet:

GPT op /dev/sda aanmaken
Partitie /dev/sda1 (8 Mb) als BIOS boot-partitie aanmaken
Partitie /dev/sda2 (463 GB) voor / met btrfs aanmaken
Partitie /dev/sda3 (2GB) voor swap aanmaken
10 subvolume-akties (zie details)

(Als je encryptie wil moet je naar de Expert partitionering gaan).

De NTP server wordt gesynchroniseerd, en je krijgt een kaart om Regio/Tijdzone te kiezen.
(Als je taal NL gekozen hebt moet je eventueel van Nederland naar België klikken)

Na installatie zal je merken dat de gebruiker bij niet-aktiviteit terug moet aanmelden met zijn wachtwoord. Dat kan je verzetten in de instellingen.

15.2
Deze uitgave gebruikt KDE’s Plasma 5.18 Long-Term-Support versie (meer details, Changelog – Engels).
Nog steeds een donkergroene eenvoudige achtergrond met wat doorkomende technische tekenlijnen rechts.
Het menu kan je met rechtsklik – alternatieven tonen aanpassen, ik kies meestal “Programmastarter”.
Ik ben daar aangenaam verrast dat naast Konsole (of was dat al?) ook Kate een prominente plaats heeft gekregen in de favorieten, met nieuw logo!

9/7/2020

icewm blokkeert openSUSE updates

Filed under: — cybrarian @ 9:14 am

In een reeks openSUSE 15.1 updates (desktop update tool) zit er eentje die niet door gaat, en als foutmelding geeft:

icewm-1.4.2-lp151.8.6.1.x86_64 requeres icewm-theme-branding, but this requirement cannot be provided

De foutmelding treedt niet op bij een “clean install” 15.1, maar wel bij systemen die geupgrade werden uit vorige openSUSE systemen (Leap 42.x).

Via het Yast control center kan je in detail naar de “Online Update” gaan zien, en wordt meer uitleg gegeven: bij de oplossingen wordt aangeboden om
– icewm te de-installeren (“Verwijderen van icewm-1.4.2..x86-64 verwijderen van .. ” enz)
– icewm-config-upstream-1.4.2-lp151.8.3.1.noarch te de-installeren. (“Verwijderen van icewm-…noarch”)
– de patch over te slaan (“niet installeren”)
– de melding te negeren (“..door enige van zijn afhankelijkheden te negeren”)

De eerste optie is nogal drastisch: verwijderen van icewm.
IceWM is een lichtgewicht Windowmanager voor het “X Window System”, en als je die niet gebruikt omdat je bv KDE draait, speelt het niet zo’n rol, en kan je dat doen.

De tweede optie heeft misschien wel zin, want dat bevat:

Configuration files from upstream provider without suse branding

..wat mogelijk in conflict komt met de “branding” die in de update zit…
(ps: in een clean install van openSUSE 15.1 was icewm-config-upstream niet geïnstalleerd, en daarom trad het conflict ook niet op daar)

Dan wordt als automatische verandering aangeboden:
laaste

icewm-theme-branding 1.2.4-lp 151.3.9.1

Bevestigen, de update draait.

(Na uitloggen en terug inloggen weet ook de desktop “software updates notification” dat het ok is).

4/7/2020

OpenSUSE 15.1 installatie met versleutelde gebruikersgegevens (encrypted home directory)

Filed under: — cybrarian @ 3:23 pm

Installeren over bestaande versleutelde
Een installatie van openSUSE 15.1 over een bestaande 42.2 met versleutelde gebruikersmap (home directory) leverde wel een vraag naar het oorspronkelijke wachtwoord op, maar niet een versleutelde home directory na installatie.

Nadien versleutelen?

De home directory nadien versleutelen kan in principe, maar dan moet je op een andere manier werken. Je kan spijtig genoeg niet (meer?) een gebruiker bijmaken en aanvinken om de home directory te versleutelen…

Installatie met versleuteling

Op zoek naar de juiste plek en het juiste moment om de verleuteling te kiezen bij een nieuwe installatie van openSUSE 15.1:
Na System Role (Desktop met KDE) komt “Preparation, Disks” waarin de indeling en het gebruik van de harde schijf wordt bepaald.
Er wordt standaard voorgesteld (in dit geval, een 150 GB disk) onder “Suggested partitions” voor harde schijf sda:
– sda1 : ext4
– sda2 : BtrFS voor /
– sda3 : swap (2 GB)
(ps: Er is geen partitie voorzien voor de /home directory in dit voorstel, die komt ook onder de root- of hoofddirectory)
Hier moet je onderaan kiezen voor “Expert Partitioner”, “Start with Current proposal” om meer uitgebreide mogelijkheden te krijgen vanaf het huidig voorstel.
Je krijgt een tabel met de beschikbare opslagruimte en de voorgestelde partities.
Er is een kolom “F” die betekent dat die partitie geformatteerd gaat worden (hier sda2/BtrFS)
Er is ook een kolom “Enc” die betekent dat de partitie “encrypted” of versleuteld wordt; hier geen enkele in het voorstel.
Je kan dubbelklikken op de sda2 en aanvinken om die te versleutelen (Edit partition /dev/sda2, “Encrypt Device”).
Dan moet je het versleutel-wachtwoord ingeven. Niet vergeten. Echt niet vergeten. En vervelend: je hebt geen controle op wat je inktikt!
Daarna komt in het overzicht “Encrypted: Yes” staan.
Opgelet; sda1 en de swap zijn dus niet versleuteld, swap kan ook sporen van interessante informatie bevatten.
Bij het overzicht, onder “Booting” heb je ook een optie om de bootloader te beschermen met een wachtwoord.

Dubbel wachtwoord:
eigenaardig genoeg moet je twee keer het wachtwoord voor ontsleuteling ingeven na het opstarten…

1e keer onmiddellijk na aanzetten in een zwart scherm met enkel wat intel Matrix Storage Manager ROM informatie:

Welcome to GRUB! Attempting to decrypt master key… Enter passphrase for hd0,msdos2 (9527….):

Waarna het openSUSE startschem met keuze opkomt, .. en een tweede keer in een iets grafischer uitziend scherm vraagt om decryptie van sda2.


Op zoek naar oplossingen

oorspronkelijk niet gelukt..nadien na zowel systeem updates als wat uitproberen lukt het nu wel.

open terminal
Alles uit te voeren als root, dus om niet telkens sudo te moeten tikken…
su root
(vraagt het wachtwoord)

Maak het bestand waar de sleutel in moet komen:
touch /.root.key

Maak alleen leesbaar voor root:
chmod 600 /.root.key

maak de sleutel en zet in het bestand:
dd if=/dev/urandom of=/.root.key bs=1024 count=1
Geeft iets als

1+0 records in
1+0 records out
1024 bytes copied

(— Upd 5/7: controleer met:
# cryptsetup open --verbose --key-file /.root.key --test-passphrase /dev/sda2

Key slot 1 unlocked.
Command successful.

—upd)

Zoek je root partitie:

fdisk -l
Conclusie: sda2 bevat mijn root partitie

Voeg de sleutel toe als manier om de root partitie te ontsleutelen:

cryptsetup luksAddKey /dev/sda2 /.root.key

Enter any existing passphrase: …

Wijzig /etc/crypttab, zoek de lijn die verwijst naar de root partitie door de UUID en voeg de keyfile toe in de derde kolom.
(ik gebruik daarvoor mcedit /etc/crypttab ; mcedit je krijg je bij mc met zypper install mc)
(twee spaties of tab? Of toch gewoon 1 spatie?)

cr_sda1 UUID=... /.root.key

Pas dracut aan om de key file toe te voegen aan initrd:

echo -e 'install_items+=" /.root.key "' | sudo tee --append /etc/dracut.conf.d/99-root-key.conf > /dev/null

(—Upd 05/07: —
bij het uitvoeren van mkinitrd – zie verder – krijg je een foutmelding op het bestand

1. bovenaan bij mkinitrd uitvoer krijg je een foutmelding

/etc/dracut.conf.d/99-root-key.conf: line 1: /.root.key: Permission denied

Je kan dat bestand /etc/dracut.conf.d/99-root-key.conf bekijken. Ik heb de enkele aanhalingstekens bv weggehaald omdat het niet werkte)

2. meer onderaan in de uitvoer een foutmelding dat het niet uitgevoerd is:

dracut-install: ERROR: installing ‘”/.root.key”‘

Daarna haalde ik nog wat spaties weg en zo tot ik geen foutmelding meer kreeg.

—upd)

Om te vermijden dat het overschreven wordt, moet een lijn toegevoegd worden aan /etc/permissions.local:

/boot/ root:root 700

Zoals in het bestand /etc/permissions.local ook vermeld wordt moet je na de wijziging:

chkstat --system --set

De initrd moet terug aangemaakt worden:
(controleer uitvoer, zie ook bovengenoemde fouten)

mkinitrd

Dat zou het moeten zijn … exit

Alles afsluiten en herstarten om te proberen.

(— Upd 5/7: controleer initrd
Vraag inhoud initrd op en kopieer naar een txt bestand:
lsinitrd > /root/lsinitrd.txt
Bekijk het bestand/zoek naar /.root.key bv met de voorvermelde mcedit (F7=zoek):
mcedit /root/lsinitrd.txt
—upd)

Conclusie 06/07: het is me uiteindelijk gelukt, waarbij ik niet weet welk aandeel de systeem updates hebben, en welk aandeel mijn eigen wijzigingen/afwijkingen van het arktikel in de link bovenaan.

Bronnen
o.m.
https://en.opensuse.org/SDB:Encrypted_root_file_system (alg)
https://linux.die.net/man/5/crypttab (crypttab)
https://unix.stackexchange.com/questions/533233/grub2-luks-how-to-avoid-to-type-the-passphrase-twice (over hoe checken)
https://www.reddit.com/r/openSUSE/comments/any9af/i_think_i_add_root_key_to_wrong_partition_when/

——-

PS: Volgende foutmelding duidt waarschijnlijk op het verkeerd ingeven van het wachtwoord.
Let bv op azerty/qwerty, oorspronkelijk wachtwoord waarschijnlijk in keyboard en/us

error: access denied.
error: hd1 cannot get C/H/S values.
error: hd2 cannot get C/H/S values.
error: hd… cannot get C/H/S values.

error: hd15 cannot get C/H/S values.
error: no such cryptodisk found.
error: disk ‘cryptouuid/…’ not found.
error: disk ‘cryptouuid/…’ not found.
Entering rescue mode…
grub rescue >

Powered by WordPress