Logo carnetderootxzz@carnetderoot.net"La simplification est la sophistication suprême" - Léonard De Vinci
mercredi 21 mars 2018

:: Simple application avec Dancer2 ::

Présentation

Dans cet exemple, on va créer une simple application web avec Dancer2.

Pour le déploiement, on se basera sur starman pour la gestion de l'application avec Nginx en frontal.

Installation de Dancer2

Préparation de l'environnement

Afin de sécuriser l'application, on fait tourner Starman (notre serveur d'application) sous une identité propre que nous appelerons starman. La seule manière d'y accéder sera via l'utilisateur root.

# adduser --gecos "" --disabled-password starman

Brewing Perl

Afin de séparer la distribution Perl installée sur le système (system perl) de celle que l'on souhaite utiliser pour lancer notre application, nous utiliserons PerlBrew, un outil de gestion des versions de Perl.

Pour installer PerlBrew, cf.Gestion des versions de Perl avec Perlbrew

  • Liste des versions Perl disponibles à l'installation :

    # su - starman
    $ perlbrew available
      perl-5.23.3
      perl-5.22.0
      perl-5.20.3
      perl-5.18.4
      perl-5.16.3
      perl-5.14.4
      perl-5.12.5
      perl-5.10.1
      perl-5.8.9
      perl-5.6.2
      perl5.005_04
      perl5.004_05
      perl5.003_07
  • Installation de la dernière version stable (nombre pair) :

    $ perlbrew install perl-5.22.0
  • Vérification de la version installée (deux méthodes) :

    1. Lister les versions installées :

      $ perlbrew list
        perl-5.22.0
    2. Lister les versions disponibles (remarquez le "i" devant la version installée) :

      $ perlbrew available
        perl-5.23.3
      i perl-5.22.0
        perl-5.20.3
        perl-5.18.4
        perl-5.16.3
        perl-5.14.4
        perl-5.12.5
        perl-5.10.1
        perl-5.8.9
        perl-5.6.2
        perl5.005_04
        perl5.004_05
        perl5.003_07

Installation des modules CPAN

Avant tout, on installe un client cpan. Pour cela, on utilise la commande PerlBrew permettant d'installer cpanminus.

$ perlbrew install-cpanm

Puis on installe les modules :

$ cpanm Dancer2 Starman Daemon::Control

Création de l'application

La méthode la plus rapide pour créer son application est d'utiliser la commande dancer2 qui met en place l'arborescence des répertoires et fichiers à partir d'un squelette standard :

$ dancer2 -a Xzz::Blog

Cette commande crée le répertoire Xzz-Blog ainsi qu'un ensemble de sous-répertoires et fichiers.

Notez le double : dans le nom qui demande à dancer2 de créer le module "Blog" dans la sous-arborescence "Xzz", ce qui permet de cloisonner différentes parties de l'application en ajoutant simplement d'autres modules (ex: Xzz::Admin, Xzz::Galerie, etc.)

Pour lancer l'application, exécuter la commande suivante :

$ plackup -R lib bin/app.psgi 
Watching lib bin/lib bin/app.psgi for file updates.
HTTP::Server::PSGI: Accepting connections at http://0:5000/

L'application (vide) est dorénavant disponible à l'adresse http://AdresseServeur:5000. (Ctrl+C pour stopper)

Mise en place du service systemd Starman

Pour lancer automatiquement notre application, on crée le fichier /etc/systemd/system/starman.service avec le contenu ci-dessous :

$ sudo vi /etc/systemd/system/starman.service

[Unit]
Description=Starman
After=syslog.target

[Service]
Type=forking
ExecStart=/home/starman/perl5/perlbrew/perls/perl-5.18.4/bin/starman --listen 127.0.0.1:5001 --env development --daemonize /home/starman/apps/Xzz-Blog/bin/app.psgi
Restart=always

[Install]
WantedBy=multi-user.target

Lancement et activation du service au démarrage :

$ sudo systemctl start starman.service
$ sudo systemctl enable starman.service

Installation et configuration de Nginx

$ sudo aptitude install nginx

--- A SUIVRE ---


dimanche 18 mars 2018

:: Installer Sailfish X sur Sony Xperia X Compact (F5321) ::

Sony Xperia X Compact

Infos générales

  • Modèle F5321
  • Android 7.1.1
  • Numéro de build 34.3.A.0.252

Combinaisons utiles

Flash Volume down
Fastboot Volume up
Recovery mode Volume down + Power key

Introduction

Afin de pouvoir flasher une rom alternative, il est nécessaire de déverrouiller le chargeur d'amorçage du périphérique.

Le processus est supporté par Sony dans le cadre de son programme Open Devices.

Dans le cas où votre téléphone ne serait pas "rootable" ou que vous ayez le moindre doute, les instructions pour vérifier votre modèle se trouvent sur le site Sony Developer World.

Android 7 Nougat

L'installation de Sailfish est supportée sur une image d'Android 6 ou 7, à partir du moment où le numéro de build est supérieur ou égal à 34.3.A.0.228. Par contre, à la date d'écriture de ces lignes, elle n'est pas encore supportée sur Android 8, on va donc mettre à jour le système en dernière version d'Android Nougat 7 disponible.

Mise à jour du système Android existant

Le plus simple est d'utiliser le procédé OTA (On The Air) du système Android fourni par Sony. Attention à ne pas mettre à jour le système en Android 8, restez sur la dernière version 7 disponible en noyau 3.10 (7.1.1).

Important : Vérifier que le numéro de build est au moins égal à 34.3.A.0.228 (dans Settings | About phone | Build number) avant de déverrouiller le chargeur d'amorçage

Déverrouiller le chargeur d'amorçage

Obtenir le code de déverrouillage

Installer les outils Android

Sous Linux, pas besoin de drivers additionnels mais des outils Android contenant la commande fastboot.

Méthode 1 (conseillée) : Télécharger le SDK Android

Télécharger et décompresser le fichier Platform Tools

Méthode 2 (déconseillée, uniquement si méthode 1 ne fonctionne pas) : Installer les paquets fournis par votre distribution

Attention : l'utilitaire fastboot fourni avec votre distribution peut se révéler partiellement ou totalement incompatible

  • Archlinux : pacman -S android-tools Note : fastboot partiellement incompatible, tester la version AUR
  • Debian/Ubuntu/.deb : apt-get install android-tools-fastboot
  • Fedora : yum install android-tools
  • OS X : brew install android-sdk

Déverrouiller le chargeur d'amorçage

Important : Vérifier que le langage du système est bien configuré sur "English" avant de continuer

  1. Eteindre le téléphone
  2. Connecter le téléphone à votre ordinateur avec le câble USB
  3. Démarrer le téléphone en mode fastboot (Volume Up), la led doit s'afficher en bleu et l'écran rester inactif
  4. Ouvrir une ligne de commande et aller dans le sous-répertoire platform-tools du répertoire SDK Android
  5. Vérifier que le périphérique fastboot est bien détecté :

    # fastboot devices
    XXXXXXXXXX  fastboot
  6. Déverrouiller le chargeur d'amorçage :

    # fastboot -i 0x0fce oem unlock 0x<code de déverrouillage>
    ...
    OKAY [  0.678s]
    finished. total time: 0.678s

Flasher AOSP

Si vous avez déjà votre système Android en version 8 ou tournant sur une rom alternative basée sur de l'Android < 6 ou sur un noyau > 3.10, ou tout simplement si vous voulez partir d'un "fresh install", il est nécessaire de reflasher le périphérique.

  1. Préparation des fichers

  2. Flasher le téléphone

    • Eteindre le téléphone
    • Connecter le téléphone à votre ordinateur avec le câble USB
    • Démarrer le téléphone en mode fastboot (Volume Up), la led doit s'afficher en bleu et l'écran rester inactif
    • Ouvrir une ligne de commande en root dans le répertoire et taper les commandes suivantes :

      # ./fastboot -S 256M flash boot boot.img
      # ./fastboot -S 256M flash recovery recovery.img
      # ./fastboot -S 256M flash system system.img
      # ./fastboot -S 256M flash userdata userdata.img
    • Redémarrer le téléphone

      # ./fastboot reboot
  3. Préparer le système à l'installation de Sailfish

    • Langue système : English (UK)
    • Activer le mode développeur
    • Dans les options Développeur, activer le debug USB et la modification du bootloader

Flasher Sailfish X

  1. Préparation des fichiers
  2. Redémarrer le téléphone en mode fastboot (Volume Up)
  3. Ouvrir une ligne de commande en root dans le répertoire et lancer la commande ./flash.sh

    # ./flash.sh 
    Detected Linux
    Searching device to flash..
    Found device with vendor id '0fce': [...] Sony Ericsson Mobile Communications AB Xperia Mini Pro Bootloader
    Fastboot command: fastboot -i 0x0fce 
    Flashing boot partition..
    target reported max download size of 536870912 bytes
    sending 'boot' (10812 KB)...
    [...]
    finished. total time: 0.742s
    target reported max download size of 536870912 bytes
    erasing 'system'...
    [...]
    finished. total time: 63.648s
    target reported max download size of 536870912 bytes
    erasing 'userdata'...
    [...]
    finished. total time: 126.309s
    Flashing oem partition..
    target reported max download size of 536870912 bytes
    sending 'oem' (221669 KB)...
    [...]
    finished. total time: 15.600s
    
    
    Flashing completed.
  4. Redémarrer le téléphone et configurer votre Sailfish :-)

Configurer Sailfish

Activer le mode Développeur et la connexion distante

  • Aller dans Réglages > Outils de développeur
  • Activer le Mode Développeur et la Connexion Distante
  • Définir un mot de passe et noter l'adresse ip
  • Se connecter en ssh à partir d'un ordinateur distant avec l'utilisateur 'nemo' et le mot de passe défini précédemment

Installation des mce-tools

$ devel-su    ---> Entrer le mot de passe défini précédemment
# pkcon refresh
# pkcon install mce-tools
# exit

Pour la suite, se référer à un précédent article : Nokia MCE Tools sur Sailfish OS

Installation d'Alien Davlik

Si vous avez les rpms :

# pkcon install-local aliendalvik.armv7hl.rpm apkd-android-settings.jolla.armv7hl.rpm

Références