samedi 15 décembre 2018

Découverte du Circuit Background Express

Voici à quoi cela ressemble:

 



Attention, il existe deux versions:

Classic version : Arduino and Code.org
Express version : MakeCode, CircuitPython, Arduino, et Code.org CS Discoveries.

Ici, il s'agit de la version Express.

Le kit de démarrage:

  • 1 circuit playground express
  • 1 cable USB
  • 1 bloc batterie avec trois piles aaa

Parfait pour apprendre à programmer aux enfants:
https://makecode.adafruit.com


https://cdn-learn.adafruit.com/downloads/pdf/make-it-sense.pdf

vendredi 9 novembre 2018

RIKA FIRENET

Module RIKA Firenet

Ce module, vendu assez cher, permet de domotiser la plupart des poêles RIKA. C'est un convertisseur USB / Serial disposant d'une puce WIFI et qui se connecte en https vers un serveur chez Rika.

Vue du circuit imprimé:


Schéma de principe:




Trouver l'IP du Rika Firenet.
Le hostname de la clé: iwm-BE-50-AF
Le mieux est de faire une réservation dans le serveur DHCP.


Les liens disponibles:

http://192.168.1.65/index.html

ST SPWF01S Intelligent WiFi Module

Welcome to the ST SPWF01S intelligent Wi-Fi module.
This page was delivered from the SPWF01S internal HTTP server.
SPWF01S Configuration Settings Page
SPWF01S Status Page
SPWF01S Peers Page
More information about the SPWF01S and other ST products can be found at ST's website: http://www.ST.com/.


http://192.168.1.65/output_demo.html
http://192.168.1.65/input_demo.shtml
http://192.168.1.65/remote.html
http://192.168.1.65/message.shtml
http://192.168.1.65/remote.html
http://192.168.1.65/firstset.html

Flux:

LAN tcp 192.168.1.65:56050 -> 176.34.185.163:443
LAN tcp 192.168.1.65:55509 -> 54.247.85.77:443
LAN tcp 192.168.1.65:64735 -> 46.137.190.145:443

Il s'agit du nom de domaine : rika-fire-stv.herokuapp.com https://www.whatsmydns.net/#A/www.rika-firenet.com

User-Agent: RIKA-Stove
Host: rika-fire-stv.herokuapp.com
POST /api/stove/

Dialogue avec le SPWF01S d’après le firmware:

 AT
 AT+CFUN=1
 AT+S.HTTPGET=www.rika.at,/Verbindungstest.html
 AT+S.TLSCERT2=clean,all
 AT&F
 AT+S.TLSCERT=f_ca,1246
 AT+S.TLSCERT=f_content,0
 AT+S.TLSDOMAIN=f_domain,stv.rika-firenet.com
 AT+S.SCFG=wifi_priv_mode,2
 AT+S.SCFG=wifi_priv_mode,0
 AT+S.SOCKW=00, AT+S.SOCKW=00, AT+S.SCAN
 AT+S.SETTIME=1538352000
 AT+S.SOCKC=00
 AT+S.SOCKON=rika-fire-stv.herokuapp.com,443,s,ind
 AT+S.SOCKQ=00
 AT+S.SOCKR=00, AT+S.SSIDTXT= AT&W
 AT+S.SCFG=wifi_mode,1
 AT+S.SCFG=wifi_wpa_psk_text,


Après plusieurs essais, la solution consisterait à écouter les transactions entre le host (STM32) et le SPWF01S.

Résultat d'un lsusb -v sur le dongle USB Rika:

Bus 001 Device 019: ID 0483:5740 STMicroelectronics Virtual COM Port
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            2 Communications
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0483 STMicroelectronics
  idProduct          0x5740 Virtual COM Port
  bcdDevice            2.00
  iManufacturer           1 STMicroelectronics
  iProduct                2 STM32 Virtual COM Port  
  iSerial                 3 48FBE3485324
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           67
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      2 Abstract (modem)
      bInterfaceProtocol      1 AT-commands (v.25ter)
      iInterface              0 
      CDC Header:
        bcdCDC               1.10
      CDC Call Management:
        bmCapabilities       0x00
        bDataInterface          1
      CDC ACM:
        bmCapabilities       0x02
          line coding and serial state
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval             255
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0001
  Self Powered


Liens:

http://www.emcu.it/WiFi/Presentazioni/WiFiMKT19may2014.pdf
https://www.st.com/content/ccc/resource/sales_and_marketing/presentation/product_presentation/group0/d9/23/1a/c2/0c/55/46/2c/STSW-IDW002%20Wifi%20hands-on%20training/files/stsw-idw002_wifi_training.pdf/jcr:content/translations/en.stsw-idw002_wifi_training.pdf


jeudi 18 octobre 2018

PfSense sur PC Engines APU4B4

Présentation du pc engines apu4B4

https://www.pcengines.ch/apu4b4.htm



Achat sur https://varia-store.com/en/produkt/32328-pc-engines-apu4b4-system-board-4x-lan-4-gb-ram.html

Achat du msata Kingston SSD UV500 msata (SUV500MS/120G) 


Achat du câble série StarTech.com ICUSB232FTN Câble adaptateur DCE USB vers série RS232 DB9 null modem 1 port avec FTDI 



La carte mère:


Le processeur:


GE412TIYJ44JB : AMD G-Series SoC Steppe Eagle GX-412TC, 1.2GHz 4C 6W, No GPU

https://www.amd.com/en/system/files?file=2017-06/g-series-soc-product-brief.pdf


General information
TypeSystem-on-a-Chip
Market segmentEmbedded
Family
AMD G-Series
Model numberGX-412TC
SoC part number
  • GE412TIYJ44JB is an OEM/tray SoC
Frequency1200 MHz
Package769-ball lidless Flip Chip Ball Grid Array
SocketBGA769 (FT3b)
Size0.96" x 0.96" / 2.45cm x 2.45cm
Weight0.1oz / 1.8g
Introduction dateJune 6, 2014
End-of-Life dateLast order date is 4th quarter 2023
Last shipment date is 2nd quarter 2024
Architecture / Microarchitecture
MicroarchitecturePuma
Processor coreCrowned Eagle
Manufacturing process0.028 micron
Data width64 bit
The number of CPU cores4
The number of threads4
Floating Point UnitIntegrated
Level 1 cache size4 x 32 KB instruction caches
4 x 32 KB data caches
Level 2 cache size2 MB 16-way set associative shared cache
Level 3 cache sizeNone
MultiprocessingUniprocessor
Extensions and Technologies
  • MMX instructions
  • Extensions to MMX
  • SSE / Streaming SIMD Extensions
  • SSE2 / Streaming SIMD Extensions 2
  • SSE3 / Streaming SIMD Extensions 3
  • SSSE3 / Supplemental Streaming SIMD Extensions 3
  • SSE4a
  • SSE4 / SSE4.1 + SSE4.2 / Streaming SIMD Extensions 4
  • AES / Advanced Encryption Standard instructions
  • AVX / Advanced Vector Extensions
  • BMI1 / Bit Manipulation instructions 1
  • F16C / 16-bit Floating-Point conversion instructions
  • AMD64 / AMD 64-bit technology
  • AMD-V / AMD Virtualization technology
  • EVP / Enhanced Virus Protection
Integrated peripherals / components
Integrated graphicsNone
Memory controllerThe number of controllers: 1
Memory channels: 1
Supported memory: DDR3-1600
DIMMs per channel: up to 2
ECC supported: Yes
Other peripherals
  • PCI-Express interface
  • Platform Security Processor
  • SATA interface
  • USB interface
  • SD controller
Electrical / Thermal parameters
Minimum/Maximum operating temperature0°C - 90°C
Thermal Design Power6 Watt
Notes on AMD G-Series GX-412TC
  • Embedded microprocessor

Installation:

http://pcengines.ch/howto.htm#OS_installation

https://www.pfsense.org/download/



Message d'erreur lors de l'installation de pfSense sur l'APU4B4 avec mon mSATA et avec le BIOS v4.6.4: CAM status: Command timeout


ahcich0: Timeout on slot 13 port 0
ahcich0: is 00000008 cs 00000000 ss 00000000 rs ffffffff tfd 40 serr 
00000000 cmd 00406d17            mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
(ada0:ahcich0:0:0:0): WRITE_FPDMA_QUEUED. ACB: 61 30 b8 48 dc 40 00 00 00 00 00 00
(ada0:ahcich0:0:0:0): CAM status: Command timeout
(ada0:ahcich0:0:0:0): Retrying command

Résolution du problème:

When main installer menu pops up do the following:
  • for BIOS v4.0.x let it boot automatically
  • for BIOS v4.6.7 or older, interrupt the installer by pressing ESC and type following commands:
    set hint.ahci.0.msi="0"
    boot
Source: https://github.com/pcengines/apu2-documentation/blob/master/docs/pfSense-install-guide.md

lundi 15 octobre 2018

Oracle Database sur Openshift

Ici, nous allons mettre en oeuvre la database Oracle 12.2.0.1 sur Openshift.
Pour les essais, on prendra minishift.
On peut trouver la procédure sur le lien suivant:
https://docs.okd.io/latest/minishift/getting-started/index.html


Augmenter la taille de la base:
En effet, la base de donnée Oracle 12.2.0.1 demande environ 13 Gb pour la construction de l'image.
Dans /etc/docker/editer ou créer le fichier daemon.json :
# cat daemon.json 
{
  "storage-driver": "devicemapper",
  "storage-opts": [
    "dm.basesize=50G"
  ]
}
Redémarrer docker :
# systemctl restart docker

Vérification du Base Device Size par la commande docker info:
# docker info | grep Base
 Base Device Size: 53.69GB

Nous pouvons maintenant nous lancer dans la construction de l'image docker Oracle Database 12.2.0.1.
Cette image va être construite à partir des sources de Oracle:
https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance

Télécharger le zip :
https://github.com/oracle/docker-images
$ mkdir oracle12ee
$ cd oracle12ee
$ wget https://github.com/oracle/docker-images/archive/master.zip
$ unzip master.zip
Il faut aussi le binaire linuxx64__database.zip de Oracle à mettre dans le bon répertoire dockerfiles

Lancer le script:
$ cd $HOME/oracle12e/docker-images-master/OracleDatabase/SingleInstance/dockerfiles
$ ./buildDockerImage.sh 

Usage: buildDockerImage.sh -v [version] [-e | -s | -x] [-i] [-o] [Docker build option]
Builds a Docker Image for Oracle Database.
  
Parameters:
   -v: version to build
       Choose one of: 11.2.0.2  12.1.0.2  12.2.0.1  18.3.0  
   -e: creates image based on 'Enterprise Edition'
   -s: creates image based on 'Standard Edition 2'
   -x: creates image based on 'Express Edition'
   -i: ignores the MD5 checksums
   -o: passes on Docker build option

* select one edition only: -e, -s, or -x

LICENSE UPL 1.0

Copyright (c) 2014-2018 Oracle and/or its affiliates. All rights reserved.
Pour construire l'image d'une base de données Oracle "Enterprise Edition" dans la version 12.2.0.1:
$ sudo ./buildDockerImage.sh -v 12.2.0.1 -e
Sauvegarder l'image
# docker save -o oracle12.2.0.1-ee oracle/database
Restaurer l'image sur votre repository docker local de votre serveur Openshift:
# docker load -i oracle12.2.0.1-ee oracle/database
Maintenant, nous allons pusher l'image vers la registry d'openshift:
Connaitre l'adresse IP de la registry:
$ minishift openshift registry
172.30.1.1:5000
Seter l'environnement:
$ minishift oc-env
export PATH="/home/serge/.minishift/cache/oc/v3.10.0/linux:$PATH"
# Run this command to configure your shell:
# eval $(minishift oc-env)
$ eval $(minishift oc-env)
Se connecter sur minishift:
$ docker login -u `oc whoami` -p `oc whoami --show-token` 172.30.1.1:5000
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /home/f074170/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
Création d'un nouveau projet:
$ oc new-project oracle --display-name=Oracle
Tag de l'image avec le nom de la registry:
$ docker tag oracle/database:12.2.0.1-ee 172.30.1.1:5000/oracle/database
Push vers la registry:
$ docker push 172.30.1.1:5000/oracle/database
Il est possible d'utiliser skopeo pour copier l'image entre registry.

Déployer l'image dans openshift:
$ oc new-app --image-stream=database --name=oracle12ee
Exposer les services:
$ oc expose service oracle12ee
Résoudre les pbs de droits avec minishift:
$ ./minishift addon apply anyuid
-- Applying addon 'anyuid':.
 Add-on 'anyuid' changed the default security context constraints to allow pods to run as any user.
 Per default OpenShift runs containers using an arbitrarily assigned user ID.
 Refer to https://docs.okd.io/latest/architecture/additional_concepts/authorization.html#security-context-constraints and
 https://docs.okd.io/latest/creating_images/guidelines.html#openshift-origin-specific-guidelines for more information.

Résoudre les pbs de droits avec OPENSHIFT:

$ oc create serviceaccount useroot

$ oc adm policy add-scc-to-user anyuid -z useroot

$ oc patch dc/oracle12ee --patch '{"spec":{"template":{"spec":{"serviceAccountName": "useroot"}}}}'
 
 
Liens:
https://blog.dbi-services.com/oracle-database-on-openshift/
https://geraldonit.com/2017/08/21/creating-an-oracle-database-docker-image/
https://medium.com/@adilsonbna/importing-an-external-docker-image-into-red-hat-openshift-repository-c25894cd3199
https://piotrminkowski.wordpress.com/tag/openshift/
https://blog.openshift.com/understanding-service-accounts-sccs/

mardi 27 mars 2018

docker-compose au boot du serveur - Redhat / Centos 7

Plateforme: Redhat 7.4

Dans /etc/systemd/system , créer un fichier de la forme docker-compose-app.service


Prenons l'exemple pour le service traefik.

On crée le fichier docker-compose@traefik.service

Contenu du fichier docker-compose@traefik.service:

[Unit]
Description=%i service with docker compose
Requires=docker.service
After=docker.service

[Service]
Restart=always

WorkingDirectory=/home/docker/%i

# Compose up
ExecStart=/usr/bin/docker-compose up

# Compose down, remove containers and volumes
ExecStop=/usr/bin/docker-compose down -v

[Install]
WantedBy=multi-user.target

Dans mon cas, j'ai crée un dossier pour chaque container, contenant pour chacun un fichier docker-compose.yml

Démarrage au boot du serveur:

systemctl enable docker-compose@traefik

Démarrer le container:

systemctl start docker-compose@traefik




lundi 26 mars 2018

Samba sur Redhat / Centos 7


Ceci est mon pense-bête pour l'installation et la configuration de SAMBA sur Redhat 7.4.
Fonctionne pour partage de fichiers avec Windows10.


Installer le serveur Samba:

# yum install samba
Installer le client, ce qui peut être pratique pour faire des tests:

# yum install samba-client
Création du répertoire de partage:
# mkdir /backup
Adapter les droits du répertoire backup
Pour un accès public:
# chmod -R 777 /backup
Création d'un utilisateur isa sans homedirectory, sans shell et sans password:
# adduser --no-create-home -s /sbin/nologin isa
Création du group smbgrp:
# groupadd smbgrp
Ajout de l'utilisateur isa dans le group smbgrp:
# usermod -a -G smbgrp isa
Vérifier que l'utilisateur isa est bien dans le groupe smbgrp:
# groups isa
isa : isa smbgrp
Créer le mot de passe smb:
# smbpasswd -a isa
Dans le cas de l'activation de selinux, changez le contexte de securité du répertoire de partage
# chcon -Rt samba_share_t /backup
Rendre permanent le contexte
# semanage fcontext -a -t samba_share_t /backup
Pour permettre l'accès windows au home directory, toujours pour le contexte de sécurité:
# setsebool -P samba_enable_home_dirs on
Venons en au fichier smb.conf:
Commencer par un backup du fichier de conf:

# cd /etc/samba/
# cp -p smb.conf smb.conf.orig
Mon fichier de conf:
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]
        workgroup = workgroup
        netbios name = nas1
        bind interfaces only = yes
        interfaces = lo em1 192.168.1.0/24
        hosts allow = 127. 192.168.1.
        security = user
        invalid users = root
        passdb backend = tdbsam
        ntlm auth = yes
        smb encrypt = auto
        smb encrypt = mandatory
        encrypt passwords = yes
        client ntlmv2 auth = Yes
        log level = 3
        protocol = SMB3
        wins support = Yes

[BACKUP]
        comment = backup
        path = /backup
        browsable = yes
        writable = yes
        read only = no
        valid users = @smbgrp
Démarrer les services smb et nmb:
# systemctl start smb.service
# systemctl start nmb.service
Activer les services au boot:
# systemctl enable smb.service
# systemctl enable nmb.service
Ajouter les règles de firewall:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="samba" log prefix="samba" level="info" limit value="1/m" accept'
Recharger les règles du firewall:
# firewall-cmd --reload

Un point important, bien vérifier que la machine Windows se trouve sur le même workgroup.

Ouvrir une commande ms-dos et taper la commande suivante: net config workstation

Vérifier la ligne suivante:
Domaine de station                              WORKGROUP

Voilà, c'est fini et si cela peut servir à d'autres, tant mieux ;)