29/11/2019

Raspberry Pi RTC (Real Time Clock)

Filed under: — cybrarian @ 2:12 pm

(Raspbian)

RTC
Een RTC module zorgt ervoor dat bij uitschakelen de Raspberry Pi zijn klok kan laten verder lopen met een batterij.
Er bestaan verschillende RTC uitbreidingen voor de Raspberry Pi, van goedkope opsteekkaartjes met enkel een batterij en de RTC functie, tot geïntegreerde RTC functies in een groter bord, zoals de Explorer 700 van Joy-IT.

Ik gebruikte bv die laatste, en daarvoor moest I2C aktief gemaakt worden in de instellingen met sudo raspi-config

Ik leerde ergens dat je de RTC kan checken met
sudo i2cdetect -y 1
Dat geeft een soort tabel met kolommen hexadecimalen 0 – f en rijen per 10 van 00 tot 70 met daarin de beschikbare i2C apparaten.
Op 60:8 zie ik daar 68, en dat zou de RTC moeten aangeven.

pi@ras003:~/$ sudo i2cdetect -y 1

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- 76 --                         

De utility hwclock laat je de klok ondervragen als ze herkend wordt.
Bij mij gaf sudo hwclock -r nog een foutmelding:

sudo hwclock -r --debug
hwclock from util-linux 2.29.2
hwclock: cannot open /dev/rtc: Bestand of map bestaat niet
No usable clock interface found.
hwclock: Cannot access the Hardware Clock via any known method.

De kernel kent de module nog niet, voeg toe met:

sudo modprobe rtc-ds1307

sudo bash
root@ras003:/home/pi/Explorer700/ExplorerApp/RTC# echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
root@ras003:/home/pi/Explorer700/ExplorerApp/RTC# exit
exit

Nu terug:
sudo hwclock -r --debug

hwclock from util-linux 2.29.2
Using the /dev interface to the clock.
Assuming hardware clock is kept in UTC time.
Waiting for clock tick…
/dev/rtc does not have interrupt functions. Waiting in loop for time from /dev/rtc to change
…got clock tick
Time read from Hardware Clock: 2015/08/12 20:35:47
Hw clock time : 2015/08/12 20:35:47 = 1439411747 seconds since 1969
Time since last adjustment is 1439411747 seconds
Calculated Hardware Clock drift is 0.000000 seconds
2015-08-12 22:35:46.888095+0200

Goed opgemerkt, ze staat nog altijd fout!

Maar zonder verder iets te doen, een beetje later:

pi@ras003:~$ sudo hwclock -r --debug
hwclock from util-linux 2.29.2
Using the /dev interface to the clock.
Assuming hardware clock is kept in UTC time.
Waiting for clock tick…
/dev/rtc does not have interrupt functions. Waiting in loop for time from /dev/rtc to change
…got clock tick
Time read from Hardware Clock: 2019/11/29 13:27:17
Hw clock time : 2019/11/29 13:27:17 = 1575034037 seconds since 1969
Time since last adjustment is 1575034037 seconds
Calculated Hardware Clock drift is 0.000000 seconds
2019-11-29 14:27:16.072253+0100

Dit ziet er al beter uit …

21/11/2019

Raspberry Pi en Explorer 700

Filed under: — cybrarian @ 11:39 am

Raspberry pi 3B (Raspbian)
Joy-it Explorer 700 (link)

Handleidingen (Engels, Duits) van Explorer: https://www.joy-it.net/de/products/RB-Explorer700

Bibliotheken (software om de mogelijkheden van de Explorer 700 aan te spreken):
Wiring pi
Wiring pi: wiringpi.com/download-and-install
sudo apt-get install wiringpi
sudo apt-get install wiringpi
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd
De statusinformatie wordt gelezen... Klaar
wiringpi is reeds de nieuwste versie (2.46).
0 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.

(of haal de broncode af en compileer)

BCM2835
Deze of andere versie afhalen:
http://www.open.com.au/mikem/bcm2835/bcm2835-1.17.tar.gz, ondertussen:
http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz

gunzip bcm2835-1.60.tar.gz
tar -xvf bcm2835-1.60.tar
cd bcm2835-1.60/
./configure
./configure
sudo make check
sudo make install

Configureren
De nodige kernel drivers moeten geaktiveerd worden bij het starten; die instelling gebeurt door:
sudo raspi-config
Niet bij Advanced options zoals de handleiding zegt, maar bij interfacing options, I2C en SPI selecteren.

Je moet bevestigen en krijgt dan SPI / I2C is enbled.

Op dezelfde manier de Serial port/login uitzetten (gebeurt samen).

Het configuratie-programma verlaten; het zal vragen om nu te herstarten, maar je kan nog eerst de volgende instellingen doen..

Zorgen dat de modules geladen worden in /etc/modules:

i2c-bcm2708
i2c-dev

toevoegen als ze er nog niet staan.

Dan de boot config aanpassen:

sudo nano /boot/config.txt

voeg toe:

Dtoverlay=w1-gpio-pullup

Nu kan je wel herstarten.

Voorbeelden
Bij het bord zijn een aantal voorbeeldprogramma’s voorzien, hier als Explorer700-1.zip
Uitpakken kan in de bestandsbeheerder van Raspberry pi.
2. KEY
De voorbeelden kan je bv uitproberen met python of vanuit de shell.

1.LED
Het eerste is de LED: ga naar de map van de voorbeelden (hier ~/Explorer700/ExplorerExamples)
cd ~/Explorer700/ExplorerExamples/LED/wiringPi
make (of sudo make?)
chmmod +x led
sudo ./led

De LED1 blijft pinken tot je CTRL-C doet.

PWM
Ter vergelijking het python programma dat nog iets meer doet:

cd ./../python/
sudo python pwm.py

De LED1 gaat langzaam aan en uit gloeien tot je ctrl-c doet.

2. KEY
Het voorbeeld KEY toont op de terminal dat je de knop van de mini joystick indrukt.

3. PCF8574
Dit programma reageert op de richtingen van de joystick. Alleen al handig om te weten hoe je de richting van de joystick moet beschouwen. Als je op/neer/links/rechts beweegt aan de joystick gebeuren er telkens 3 dingen:
– beepje
– terminal zegt up down left right
– LED2 gaat aan.

4. BMP280 Meting
Het BMP280 programma geeft telkens (tot je ctrl-c doet) een lijn met bv

Temperature = 30.54 C Pressure = 100.464 kPa

De thermometer is heel gevoelig, als je een kartonnen doosje over de Pi zet zie je onmiddellijk de getallen in honderdsten na de komma stijgen.

De druk heeft 3 cijfers na de komma en die schommelt doorlopend enkele duizendsten, bv 100.627 100.628 100.629 …

Real Time Clock
Voor de real time clock moet een CR1225 batterij aanwezig zijn, en die is niet meegeleverd. Als je ze zelf aangeschaft hebt, en in de batterijhouder hebt gestoken, is het klaar volgens de handleiding. Klopt bij mij niet, de aangegeven datum/tijd is iets van 2015-08-12 22:35:46

Zie installeren van “Raspberry Pi RTC (Real Time Clock)


DS18B20

Met dit programma kan je de temperatuur aflezen van de apart bijgelverde driebenige sensor die je dan eerst wel moet aansluiten natuurlijk.. (geen documentatie bijgeleverd).

IRM
Met deze sensor kan je infrarood signalen lezen van een afstandsbediening.

UART
Met een seriële kabel kan je de Pi verbinden met een computer. Je kan daarlangs dan data sturen.

OLED
Het laatste en spannendste voorbeeld werkte helaas niet: het mini scherm dat op het bordje zit.
Althans de python versie gaf bij alle programa’s de fout:
no module named Image
In de broncode zie je staan:
import Image
Mogelijk is de Image library niet geinstalleerd. (PIP of Pillow?)
Of moet ze anders aangeroepen worden nu, bv
from PIL import Image
(En in dispchar ook from PIL voor ImageDraw en ImageFont)

Gelukkig werkt de BCM versie wel, alleen heeft die een verkeerde naam, niet main maar oled moet je aanroepen na een make en chmod +x oled.
Je krijgt een blauw scherm met icoontjes alsof het een gsm is, met de tijd in het midden inclusief veranderende seconden.
Bij het afbreken van dit programma stopt de tijdsaanduidin op het scherm, maar het scherm blijft wel aan.

20/11/2019

Welke updates zijn uitgevoerd?

Filed under: — cybrarian @ 12:56 pm

OpenSUSE 42.3, 15.0, 15.1… ik wil controleren wat in de laatste updates zat.

Yast, Softwre Management, menu Extras, Show History

of op de commandolijn:

cat /var/log/zypp/history

14/11/2019

Accenten in apache2 php mysql applicatie

Filed under: — cybrarian @ 10:30 am

Een bestaande CMS applicatie maakt gebruik maakt van debian, apache2, php, mysql.
Bij het installeren van een reserve-systeem wordt de é niet juist weergegeven op het scherm.

De letter é wordt weergegeven als � in mijn (Firefox) browser.

Gevolg
Erger nog, als ik een “edit” doe van de gegevens, waarbij de bestaande gegevens in invulvelden worden weergegeven, blijft het veld met de accent-letter leeg, en na bewaar is een lege waarde bewaard. In de database is het veld leeg.

Als ik in de applicatie zelf een é invul, lijkt dat te gaan. Die wordt bewaard zonder foutmelding en weergegeven als é.
Maar! In de database zie ik: é. Speelt op zich geen rol maar wel als de andere é’s er als é inzitten en fout weergegeven blijven worden.

Locale en tekensets
Er zijn nogal wat niveau’s waarop taaleigen instellingen worden gemaakt: van de databank, naar de php/apache-server, tot in de browser die het weergeeft.

Server
root@myserver:~# locale

LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=”en_US.UTF-8″
LC_NUMERIC=”en_US.UTF-8″
LC_TIME=”en_US.UTF-8″
LC_COLLATE=”en_US.UTF-8″
LC_MONETARY=”en_US.UTF-8″
LC_MESSAGES=”en_US.UTF-8″
LC_PAPER=”en_US.UTF-8″
LC_NAME=”en_US.UTF-8″
LC_ADDRESS=”en_US.UTF-8″
LC_TELEPHONE=”en_US.UTF-8″
LC_MEASUREMENT=”en_US.UTF-8″
LC_IDENTIFICATION=”en_US.UTF-8″
LC_ALL=

phpinfo
Een goed hulpmiddel om dat te onderzoeken is phpinfo. Maak op de server een bestand, bv info.php, waarin je phpinfo() aanroept.
Je krijgt een scherm met alle mogelijke informatie over het systeem waarop de CMS draait; server en software versies, instellingen enz.

Apache Environment
HTTP_ACCEPT_LANGUAGE en-US,en;q=0.5
HTTP Headers Information
Accept-Language en-US,en;q=0.5
Core
default_charset iso-8859-1
PHP Variables
_SERVER["HTTP_ACCEPT_LANGUAGE"] en-US,en;q=0.5
mbstring
mbstring.language neutral
mbstring.encoding_translation Off

phpMyAdmin
Met phpMyAdmin kan je kijken hoe de database ingesteld is:
Database Server
Server charset: UTF-8 Unicode (utf8)
General Settings
Server connection collation: utf8mb4_general_ci
Database
Table collation: latin1_swedish_ci

Onzichtbare waarden
Als je in de instellingen (bv php.ini, …) alles exact hetzelfde hebt staan, is dat nog geen garantie voor gelijk gedrag.
De ene versie van php reageert anders dan de andere, zelfs al is het versie-verschil onnoemelijk klein. Zo kan een niet-opgegeven instelling standaard verschillend gedrag opleveren, omdat uitgegegaan wordt van een andere standaard of “default” waarde als er geen instelling gemaakt is.

Als de waarde default_charset niet voorkomt in het initialisatiebestand, geldt standaard…
PHP Version 5.6.0RC3 : iso-8859-1
PHP Version 5.6.40-0+deb8u6 : UTF-8

Dit kan je oplossen door de instelling impliciet op te geven in het php.ini bestand.

default_charset="UTF-8"
of, om op de recente compatibel te zijn met de RC3:
default_charset="iso-8859-1"
daarna:
service apache2 restart

Het resultaat kan je bv zien in bovenvermelde phpinfo()

12/11/2019

Firefox instellingen meenemen

Filed under: — cybrarian @ 3:10 pm

Instellingen
Als je een upgrade doet van een “recent” systeem naar een ander “recent” systeem is het gemakkelijk om je instellingen van Firefox mee te nemen: je kopieert gewoon de (verborgen) directory naar de nieuwe computer/het nieuwe systeem. De verborgen directory staat in een map in de homedirectory van de gebruiker, onder .mozilla/firefox, en heeft een naam met een aantal willekeurige tekens en dan “.default” erin.

Upd 2022-06: Bij een nieuwe installatie is het nog eenvoudiger om gewoon de hele ~/.mozilla/firefox map te kopieren (of zelfs de ~/.mozilla map) naar de nieuwe computer/gebruiker. Ook hier één keer een .lock bestand dat ik niet kon meenemen.

Upd 2022-10: In totaal waren het bij een jarenlang gebruikte computer meer dan 4000 bestanden die gekopieerd werden! Deze keer waren de Firefox versies hetzelfde, maar het OS niet; Firefox 102.3.0esr openSUSE 15.3 naar openSUSE 15.4

Profielmap
Ga naar het menu, Help, Troubleshoot information / Probleemoplossingsinformatie (je ziet about:support staan in de URL).
Hier zie je de locatie van de map met de instellingen bij “Profielmap” of “Profile Directory”.

Je kan de bestanden uit deze directory kopieren naar de op dezelfde manier te vinden map (met een andere naam dus) op de nieuwe Firefox.

Wat komt er mee:
– bookmarks, met icoontjes.
– bewaarde wachtwoorden.
– diverse instellingen.

Je kan ook enkel je bookmarks exporteren, maar dit gaat sneller.
Het gemakkelijkste is de kopie te doen via het netwerk, dmv het gebruik van scp of fish.
In bestandsbeheerder dolphin kan je het venster splitsen met aan één kant Vade oude computer (fish://user@ipadres/home/naam) en aan de andere kant de huidige/nieuwe (Home of home/naam).

Default-extentie (update 10/2021)
Werkte ook nu nog bij overgang van computer “A” naar computer “B”
“A”: OpenSUSE Leap 42.3 / Mozilla Firefox 60.7.2
naar
“B”: OpenSUSE 15.3 / Mozilla Firefox 91.2.0esr (64-bits)

(zie bv firefox --version)

De map bevat heel veel bestanden en subdirectories, maar ik heb ze zonder onderscheid gekopieerd (“overschrijven bij dubbel voorkomen); behalve wat niet gelezen kon worden (iets met “lock”) en times.json (upd: wat de datum/tijd bevat van creatie van dit Firefox profiel; mag dus idd blijven staan).

Voorbeeld (van de map van de oude Firefox)

~/.mozilla/firefox/5afhx14m.default> ls
addons.json             extensions.json         pluginreg.dat
addonStartup.json.lz4   favicons.sqlite         prefs.js
AlternateServices.txt   favicons.sqlite-shm     revocations.txt
blocklist-addons.json   favicons.sqlite-wal     saved-telemetry-pings
blocklist-gfx.json      formhistory.sqlite      search.json.mozlz4
blocklist-plugins.json  gmp                     secmod.db
blocklists              gmp-gmpopenh264         SecurityPreloadState.txt
blocklist.xml           gmp-widevinecdm         sessionCheckpoints.json
bookmarkbackups         handlers.json           sessionstore-backups
browser-extension-data  key3.db                 shield-preference-experiments.json
cert8.db                key4.db                 SiteSecurityServiceState.txt
cert9.db                kinto.sqlite            storage
cert_override.txt       lock                    storage.sqlite
compatibility.ini       logins.json             times.json
containers.json         mimeTypes.rdf           TRRBlacklist.txt
content-prefs.sqlite    minidumps               weave
cookies.sqlite          notificationstore.json  webappsstore.sqlite
cookies.sqlite-shm      permissions.sqlite      webappsstore.sqlite-shm
cookies.sqlite-wal      pkcs11.txt              webappsstore.sqlite-wal
crashes                 places.sqlite           xulstore.json
datareporting           places.sqlite-shm
extensions              places.sqlite-wal

Op de nieuwe computer heeft de map nog een extra extentie na de “default”: xyz123abc987.defaults-abc12
De gewone map .default bestaat ook, maar die is leeg.
Ik heb alles gekopieerd in de map met extentie.

default-release is de normale default, die via het normale publicatie-kanaal afgehaald/geïnstalleerd is. Oudere versies van Firefox gebruikten . default in plaats van . default-release, dus als je die hebt, heb je waarschijnlijk oorspronkelijk een oudere versie geïnstalleerd, van voor versie v67)

Bron
Zie ook Mozilla support
Meer details in dit Mozilla support artikel (EN).
profiles-default-release (EN)

7/11/2019

Nextcloud client synchronisatie probleem

Filed under: — cybrarian @ 10:07 am

Bij het opstarten van de desktop is er soms geen synchronisatie met de Nextcloud server. Dat stel je vast in de Nextcloud mappen door in een tekstbestandje een letter te wijzigen en terug te bewaren: het symbool van te synchroniseren blijft bij het bestand staan, ook na herladen van het Dolphin venster (F5).
De Nextcloud desktop client afsluiten en terug starten helpt niet.
In de client zie je ook geen foutmelding dat de server niet gevonden wordt. evenmin kan je zien waarom hij niet synchroniseert.
Binnen de Nextcloud client de verbinding verbreken en terug maken door af te melden voor Nextcloud en terug aan te melden, helpt ook niet.

OpenSUSE 42.3, KDE
Nextcloud desktop client Versie 2.3.3
Laptop die ook wifi verbindig maakt bv.

Lapmiddel
Ik ontdekte wel een manier om de verbinding juist te krijgen:
– Bij het opstarten het nextcloud wachtwoordvenster (dat soms ergens achter andere vesters -inclusief wallet aanmelding- staat) naar voor brengen, en daar eerst het originele Nextcloud wachtwoord ingeven. Als je daar eerst de wallet invult, is dat blijkbaar te laat voor de Nextcloud client.
– Is dat niet gelukt en is er geen synchronisatie: kde gebruiker uitloggen en terug inloggen. Dit gaat sneller dan helemaal terug opstarten, en triggert de Wallet; dit gaat eigenlijk altijd goed (doordat de computer al opgestart is?)

Instellingen?
Omdat het een timing probleem leek tussen de Nextcloud client en de wallet ging ik op zoek naar de instellingen van Nextcloud, bv om die client iets later aktief te laten worden of zo. Ik kon nergens de beschreven configuratiebestanden van de gebruiker vinden.
Om te testen maakte ik manueel een leeg bestand in de verborgen config directory van de gebruiker:
touch ~/.config/nextcloud.cfg
Het was de bedoeling te experimenteren met parameters, en te kijken of de Nextcloud client bij wijziging in de instellingen van de Desktop client daar gegevens in schrijft.

Maar vanaf dit bestand – leeg weliswaar – bestond, heeft het probleem zich niet meer voorgedaan.
Wel meldt de client vanaf dan dat er een update is met versienummer 2.6.
De OpenSUSE versie zelf heeft geen update gehad, die is einde ondersteuning.

Dit lijkt niet helemaal te kloppen. Bij het laat antwoorden op de Wallet login kom ik terug in een situatie waar mijn nextcloud niet wordt geupdate, en de client de melding geeft dat de server niet gevonden kan worden.

Op de commandolijn de nextcloud client zoeken en gedwongen afsluiten:
ps -AH
killall nextcloud

… en dan terug opstarten vanuit het menu, “Nexcloud Desktop sync client” geeft me onmiddellijk een melding van de update, en ook een hersynchronisatie van de de bestanden.

Fix
De client gedwongen afsluiten kilall nexcloud en terug starten.

Powered by WordPress