Jenkins & Confluence : Pour l’instant cela ne fonctionne pas

29 x served & 3 x viewed

Ce qui est dommage c’est que le plugin n’indique pas quel est l’erreur … il y a seulement une exception sur un pointeur NULL. ( https://wiki.jenkins.io/display/JENKINS/Confluence+Publisher+Plugin )

ERROR: Build step failed with exception
java.lang.NullPointerException
       at rocks.inspectit.releaseplugin.releasenotes.ConfluenceReleaseNotesPublisher.perform(ConfluenceReleaseNotesPublisher.java:99)
       at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
       at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:741)
       at hudson.model.Build$BuildExecution.build(Build.java:206)
       at hudson.model.Build$BuildExecution.doRun(Build.java:163)
       at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504)
       at hudson.model.Run.execute(Run.java:1818)
       at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
       at hudson.model.ResourceController.execute(ResourceController.java:97)
       at hudson.model.Executor.run(Executor.java:429)
Build step 'Publish Release Notes on Confluence' marked build as failure

Misère.

Rock64 : Les premiers pas …

133 x served & 21 x viewed

Pour faire suite à mon post : http://www.cyber-neurones.org/2019/03/rock64-2-capteurs-de-debits-deau-debitmetre/ . A noter qu’il faut consommer plus de 0.075 L/s ou 4,5 L/min pour avoir une mesure fiable. Mon but est de mesure un outil qui fait dans les 50 L/min ….

Etapes n°1 : Choisir une version d’OS : http://wiki.pine64.org/index.php/ROCK64_Software_Release

Mon choix : stretch-minimal-rock64-0.7.8-1061-arm64.img.xz

  • Login avec
    • username: rock64
    • password: rock64

Etape n°2 : Décompresser :

unxz stretch-minimal-rock64-0.7.8-1061-arm64.img.xz

du -h stretch-minimal-rock64-0.7.8-1061-arm64.img 
1,8G	stretch-minimal-rock64-0.7.8-1061-arm64.img

Etape n°3 : Mettre sur la SDCard avec ApplePi.

Etape n°4 : Boot et ssh :

Etape n°5 : Mise à jours :

rock64@rock64:~$ sudo apt-get update

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for rock64: 
...

rock64@rock64:~$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be REMOVED:
  linux-rock64-package u-boot-rockchip-rock64
The following NEW packages will be installed:
  board-package-rock64-0.7-30 linux-headers-4.4.132-1075-rockchip-ayufan-ga83beded8524
  linux-image-4.4.132-1075-rockchip-ayufan-ga83beded8524 u-boot-rockchip-rock64-2017.09-rockchip-ayufan-1025-g482cd6ec8b
The following packages will be upgraded:
  apt apt-transport-https apt-utils base-files curl dirmngr firmware-brcm80211 firmware-realtek git git-man gnupg gnupg-agent gpgv
  libapt-inst2.0 libapt-pkg5.0 libc-bin libc-dev-bin libc-l10n libc6 libc6-dev libcurl3 libcurl3-gnutls libgnutls30 libnm0
  libpam-systemd libperl5.24 libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libpython3.5-minimal
  libpython3.5-stdlib libseccomp2 libssl1.0.2 libssl1.1 libsystemd0 libudev1 libxapian30 linux-libc-dev linux-rock64 locales
  multiarch-support network-manager openssh-client openssh-server openssh-sftp-server openssl perl perl-base perl-modules-5.24
  policykit-1 python3.5 python3.5-minimal ssh systemd systemd-sysv tzdata udev wpasupplicant
58 upgraded, 4 newly installed, 2 to remove and 0 not upgraded.
Need to get 76.5 MB of archives.
After this operation, 141 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y

Etape n°6 : Installation pour Python

rock64@rock64:~$ sudo apt-get install python-dev python3-dev
Reading package lists... Done
Building dependency tree       
...
rock64@rock64:~$ sudo apt-get install mercurial
Reading package lists... Done
Building dependency tree       
...

Aie, perl n’est pas contant :

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "fr_FR.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Selecting previously unselected package libjs-excanvas.
(Reading database ... 66469 files and directories currently installed.)
Preparing to unpack .../libjs-excanvas_0.r3-4_all.deb ...
Unpacking libjs-excanvas (0.r3-4) ...
Selecting previously unselected package mercurial-common.
Preparing to unpack .../mercurial-common_4.0-1+deb9u1_all.deb ...
Unpacking mercurial-common (4.0-1+deb9u1) ...
Selecting previously unselected package mercurial.
Preparing to unpack .../mercurial_4.0-1+deb9u1_arm64.deb ...
Unpacking mercurial (4.0-1+deb9u1) ...
Setting up libjs-excanvas (0.r3-4) ...
Setting up mercurial-common (4.0-1+deb9u1) ...
Setting up mercurial (4.0-1+deb9u1) ...
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

Creating config file /etc/mercurial/hgrc.d/hgext.rc with new version

On continue :

rock64@rock64:~$ sudo apt-get install python-pip python3-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  python-pip-whl
Recommended packages:
  python-all-dev python-setuptools python-wheel python3-setuptools python3-wheel
The following NEW packages will be installed:
  python-pip python-pip-whl python3-pip
...

Maintenant la gestion GPIO :

rock64@rock64:~$ pip install R64.GPIO
Collecting R64.GPIO
  Could not find a version that satisfies the requirement R64.GPIO (from versions: )
No matching distribution found for R64.GPIO

Aie …

rock64@rock64:~$ sudo apt-get install git
...
rock64@rock64:~$ git clone https://github.com/Leapo/Rock64-R64.GPIO.git
Cloning into 'Rock64-R64.GPIO'...
remote: Enumerating objects: 254, done.
remote: Total 254 (delta 0), reused 0 (delta 0), pack-reused 254
Receiving objects: 100% (254/254), 79.38 KiB | 0 bytes/s, done.
Resolving deltas: 100% (125/125), done.
...
rock64@rock64:~$ sudo apt-get install python-setuptools           
Reading package lists... Done
Building dependency tree       
Reading state information... Done
...
rock64@rock64:~$ pip install spidev
Collecting spidev
  Downloading https://files.pythonhosted.org/packages/fb/14/4c2e1640f0cb04862c76d9d76ed7c945b0f67876e503ac02f7f675fe86a0/spidev-3.4.tar.gz
Building wheels for collected packages: spidev
  Running setup.py bdist_wheel for spidev ... error
  Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-f9zDi7/spidev/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmp2UN7bFpip-wheel- --python-tag cp27:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help
  
  error: invalid command 'bdist_wheel'
  
  ----------------------------------------
  Failed building wheel for spidev
  Running setup.py clean for spidev
Failed to build spidev
Installing collected packages: spidev
  Running setup.py install for spidev ... done
Successfully installed spidev-3.4
...
rock64@rock64:~$ ln -s Rock64-R64.GPIO/R64/ .
...

Les GPIO que je vais utiliser : n°12 et n°16

La photo :

smacap_Bright

Le premier programme de test en Python :

rock64@rock64:~/Rock64-R64.GPIO$ cat R64-GPIO-test.py 
#!/usr/bin/env python

# Allison Creely, 2018, LGPLv3 License
# Rock 64 GPIO Library for Python

import R64.GPIO as GPIO
from time import sleep

print("Testing R64.GPIO Module...")

# Test Variables
print("")
print("Module Variables:")
print("Name           Value")
print("----           -----")
print("GPIO.ROCK      " + str(GPIO.ROCK))
print("GPIO.BOARD     " + str(GPIO.BOARD))
print("GPIO.BCM       " + str(GPIO.BCM))
print("GPIO.OUT       " + str(GPIO.OUT))
print("GPIO.IN        " + str(GPIO.IN))
print("GPIO.HIGH      " + str(GPIO.HIGH))
print("GPIO.LOW       " + str(GPIO.LOW))
print("GPIO.PUD_UP    " + str(GPIO.PUD_UP))
print("GPIO.PUD_DOWN  " + str(GPIO.PUD_DOWN))
print("GPIO.VERSION   " + str(GPIO.VERSION))
print("GPIO.RPI_INFO  " + str(GPIO.RPI_INFO))
# Set Variables
var_gpio_in = 12
var_gpio_in2 = 16
# GPIO Setup
GPIO.setwarnings(True)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(var_gpio_in, GPIO.IN, pull_up_down=GPIO.PUD_UP)  # Set up GPIO as an input, pullup enabled
GPIO.setup(var_gpio_in2, GPIO.IN, pull_up_down=GPIO.PUD_UP)  # Set up GPIO as an input, pullup enabled
print("Testing GPIO Input:")
# Test Input
var_gpio_state = GPIO.input(var_gpio_in)                    # Return state of GPIO
print("Input State  : " + str(var_gpio_state))              # Print results
sleep(20)
# Test interrupt
print("")
print("Waiting 3 seconds for interrupt...")
var_interrupt = GPIO.wait_for_edge(var_gpio_in, GPIO.FALLING, timeout=3000)
if var_interrupt is None:
    print("Timeout!")
else:
    print("Detected!")
print("Testing GPIO Input:")
# Test Input
var_gpio_state2 = GPIO.input(var_gpio_in2)                    # Return state of GPIO
print("Input State  : " + str(var_gpio_state2))              # Print results
sleep(20)
# Test interrupt
print("")
print("Waiting 3 seconds for interrupt...")
var_interrupt2 = GPIO.wait_for_edge(var_gpio_in2, GPIO.FALLING, timeout=3000)
if var_interrupt2 is None:
    print("Timeout!")
else:
    print("Detected!")
GPIO.cleanup([var_gpio_in, var_gpio_in2])                   # Perform cleanup on specified GPIOs
print("")
print("Test Complete")

résultat :

rock64@rock64:~/Rock64-R64.GPIO$ python R64-GPIO-test.py 
Testing R64.GPIO Module...

Module Variables:
Name           Value
----           -----
GPIO.ROCK      ROCK
GPIO.BOARD     BOARD
GPIO.BCM       BCM
GPIO.OUT       out
GPIO.IN        in
GPIO.HIGH      1
GPIO.LOW       0
GPIO.PUD_UP    0
GPIO.PUD_DOWN  1
GPIO.VERSION   0.6.3
GPIO.RPI_INFO  {'P1_REVISION': 3, 'RAM': '1024M', 'REVISION': 'a22082', 'TYPE': 'Pi 3 Model B', 'PROCESSOR': 'BCM2837', 'MANUFACTURER': 'Embest'}
Error: Unable to export GPIO
Error: Unable to set GPIO direction
Error: Unable to export GPIO
Error: Unable to set GPIO direction
Testing GPIO Input:
You must setup() the GPIO channel (BOARD 12) first
Input State  : None

Waiting 3 seconds for interrupt...
You must setup() the GPIO channel (BOARD 12) as an input first
Timeout!
Testing GPIO Input:
You must setup() the GPIO channel (BOARD 16) first
Input State  : None

Waiting 3 seconds for interrupt...
You must setup() the GPIO channel (BOARD 16) as an input first
Timeout!

Test Complete

Oups il faut le faire en root, et je suis passer à 10 sec. pour l’interruption :

rock64@rock64:~/Rock64-R64.GPIO$ sudo python R64-GPIO-test.py 
Testing R64.GPIO Module...

Module Variables:
Name           Value
----           -----
GPIO.ROCK      ROCK
GPIO.BOARD     BOARD
GPIO.BCM       BCM
GPIO.OUT       out
GPIO.IN        in
GPIO.HIGH      1
GPIO.LOW       0
GPIO.PUD_UP    0
GPIO.PUD_DOWN  1
GPIO.VERSION   0.6.3
GPIO.RPI_INFO  {'P1_REVISION': 3, 'RAM': '1024M', 'REVISION': 'a22082', 'TYPE': 'Pi 3 Model B', 'PROCESSOR': 'BCM2837', 'MANUFACTURER': 'Embest'}
Testing GPIO Input:
Input State  : 0

Waiting 10 seconds for interrupt...
Detected!
Testing GPIO Input:
Input State  : 1

Waiting 10 seconds for interrupt...
Detected!

Test Complete

Donc quand je souffle, je détecte l’interruption.

La première étape est donc faite.

A noter cette documentation : https://github.com/Leapo/Rock64-R64.GPIO/wiki/GPIO-Modes , ils ne sont pas tous fonctionnel :

Et a noter aussi que la fonction suivante n’est pas disponible : Error: GPIO.add_event_detect() Not implemented.

Ce qui complique le programme ….

Rock64 & 2 capteurs de débits d’eau ( Débitmètre )

En passant

240 x served & 16 x viewed

Que faire avec un Rock64 ( 60 Euros env. )  et 2 Capteurs de Débit d’eau Débitmètre acheté sur Amazon ( 2×11 Euros env. ) ? 

Le détail du capteur d’eau : https://www.amazon.fr/dp/B079QYRQT5 :

Caractéristiques:
Condition: 100% tout neuf
Matériel: Cuivre
Couleur: Montré comme image
Type: G1 / 2 \ »(Diamètre extérieur du filetage), DN20mm
Exigence de qualité de l’eau: ≤60 ℃
Débuter la gamme de débit: 1.5L / min
Gamme de débit: 1-30L / min
Pression maximum de l’eau: 1.75MPa
Gamme de tension de travail: DC4.5-18V
Courant max: 10mA
Résistance d’isolement:003e 100MΩ
Résistance électrique: AC500V, 50Hz
Longueur de commutateur de cuivre: Approx. 60mm / 2.4inch
Longueur de fil: Approx. 35cm / 13.8inch
Poids: Approx. 95g

A noter un commentaire :

Après quelques tests sur banc d’essais (capteur alimenté en 24V, mesures avec un fréquencemètre), j’obtiens les valeurs suivantes:
5Hz = 0.016 Litre/seconde
10Hz = 0.024 L/s
20Hz = 0.041 L/s
40Hz = 0.075 L/s
80Hz = 0.148 L/s
100Hz = 0.186 L/s
125Hz = 0.234 L/s
150Hz = 0.283 L/s
175Hz = 0.335 L/s
200Hz = 0.388 L/s
225Hz = 0.442 L/s
Les mesures deviennent assez stables dès 30Hz. En divisant la fréquence par un facteur de 520, on obtient le débit en litre/seconde avec une marge d’erreur assez correcte.

Le Rock64 : https://www.amazon.fr/ameriDroid-0-ROCK64-single-board-computer/dp/B076N3G3WS .

Sur le Rock64, il existe même une librairie en Python pour avoir accès au GPIO : https://github.com/Leapo/Rock64-R64.GPIO . L’OS installé est : https://github.com/ayufan-rock64/linux-build/releases : 0.7.14: gitlab-ci-linux-build-81

A suivre.

Joplin : Très robuste, et avec une API REST ! Mais que demande le peuple ? Plus d’open source

70 x served & 18 x viewed

J’ai voulu tester Joplin https://joplin.cozic.net entièrement, pas seulement la synchronisation de 2 ou 3 fichiers.

J’ai donc fait une base de 2465 notes, et 9787 images :

: "Total folders: 32"
: "Total notes: 2465"
: "Total resources: 9787"

Mon fichier WebDEV :

$ du -sh WebDAV/
2,7G	WebDAV/
$ ls -l WebDAV/*.md | wc -l
-bash: /bin/ls: Argument list too long
       0

Il y a tellement de fichier que la commande « ls » plante 🙂 , en fait il y a 13051 fichiers pour 2,7 Go. Le fichier le plus gros fait 13 Ko.

Pour remplir la base je me suis fait des scripts ( voir mes articles ) :

J’ai aussi fait des scripts afin de faire des tests de l’API REST :

Tous les scripts sont sur mon compte GitHub en licence Open Bar.

Je n’ai pas eu un seul plantage de Joplin sur Mac, Linux ou Android ! Je conseille donc vivement ce logiciel qui est stable et efficace dans la synchronisation.

J’espère que l’application Android va avoir des améliorations afin d’avoir sur chaque ligne : Date utilisateur (et pas date de création) / Titre / Première photo , et pas seulement Titre. Un peu comme la présentation de Diaro ( mais sans le tracking ). Ou dans ce style ( DAYBOOK ) :

Linux systemd : Aucun correctif n’est disponible pour le moment

Lien

48 x served & 7 x viewed

Lire l’article : https://www.developpez.com/actu/240693/Des-vulnerabilites-de-corruption-de-memoire-dans-systemd-affectent-la-plupart-des-distributions-Linux-aucun-correctif-n-est-disponible-pour-le-moment/ .

Quelle alternative à systemd ? upstart ?

Lire aussi l’article : https://linuxfr.org/news/systemd-l-init-martyrise-l-init-bafoue-mais-l-init-libere .