Linux (fr)

  • Les sources de données système sous Linux avec NSS (Laboratoire Linux SUPINFO)

    Les sources de données système sous Linux avec NSS

     

    Note: ce document est le premier d'un cycle de trois articles sur l'authentification sur les systèmes Linux. Les suivants se trouvant ici et .

    On utilise souvent la commande cat /etc/passwd pour connaitre la liste des utilisateurs d'un système Linux. Bien que le résultat renvoyé soit correct dans la grande majorité des cas, ce n'est pas la méthode que l'on devrait utiliser. En effet l'affichage du fichier /etc/passwd renvoie la liste des utilisateurs locaux uniquement. Mais si le système est relié à un serveur LDAP, les utilisateurs de ce serveur n’apparaîtront pas, bien qu'il soit possible de se connecter avec sur la machine.

     

    Name Service Switch

    La bonne méthode pour afficher la liste des utilisateurs est l'utilisation de la commande getent suivie du paramètre passwd. Celle-ci va interroger les différentes sources d'utilisateurs définies pour le système. Ces sources sont gérées par le mécanisme NSS (pour « Name Service Switch »). Et NSS ne s'occupe pas seulement des sources d'utilisateurs, mais aussi de leurs mots de passe, des groupes d'utilisateurs, des noms d'hôtes, des protocoles et services connus du système, etc.

    Cependant, bien que NSS permette de choisir les sources de données depuis lesquelles le système ira chercher les informations dont il a besoin, ce n'est pas lui qui défini les connexions vers ces sources de données.

    Voici la liste des bases de données (présentes habituellement sous la forme de fichiers plats) que l'on a l'habitude d'interroger en général et que NSS est capable de gérer :

    Bases de données Description Fichier correspondant
    aliases Alias des adresses e-mail /etc/aliases
    ethers Numéros Ethernet /etc/ethers
    group Groupes d'utilisateurs pour l'accès aux fichiers /etc/group
    hosts Correspondances entre les noms d'hôtes et les adresses IP /etc/hosts
    netgroup Groupes d'utilisateurs pour l'accès aux ressources réseau /etc/netgroup
    networks Noms et masques de réseau /etc/networks
    passwd Utilisateurs système /etc/passwd
    publickey Clés publiques utilisées par NFS et NIS+ /etc/publickey
    rpc Correspondances entre les noms et les numéros de RPC connus /etc/rpc
    services Correspondances entres les numéros de ports et les services réseau connus /etc/services
    shadow Mots de passes chiffrés des utilisateurs /etc/shadow

     

    Ces bases de données ne sont pas utilisées sur tous les systèmes, comme par exemple les aliases plutôt réservés aux serveurs mail, mais on retrouve les bases standard comme passwd, shadow ou group.

    Pour chacune de ces bases de données on va pouvoir demander à NSS d'interroger les fichiers plats locaux listés ci-dessus ainsi que diverses sources externes. Par exemple pour les noms d'hôtes, on va pouvoir configurer NSS pour interroger le fichier /etc/hosts puis les serveurs DNS.

     

    Le fichier nsswitch.conf

    La configuration de l'ordre d'interrogation des sources se fait très simplement à l'aide du fichier /etc/nsswitch.conf. Voici un fichier d'exemple issue d'un système Ubuntu :

    passwd:		compat 
    group:		compat 
    shadow:		compat 
    
    hosts:		files mdns4_minimal [NOTFOUND=return] dns mdns4 
    networks:	files 
    
    protocols:	db files 
    services: 	db files 
    ethers:		db files 
    rpc:		db files 
    
    netgroup:	nis
    

    Sur chaque ligne de celui-ci, est décrit une base de données et les sources depuis lesquelles on va chercher ces données. Chaque ligne aura donc cette forme :

    base_de_données:	source1 [STATUT=action] source2 source3

    NSS ira interroger chaque source une par une dans l'ordre dans lesquelles elles sont inscrites. Chaque interrogation d'une source renverra un statut parmi ceux listés ci-dessous et sera suivie par l'action par défaut :

    Statut Description Action par défaut
    success Succès de la récupération de la donnée recherchée. return
    notfound Accès au service de donnée réussi mais donnée non trouvée. continue
    unavail Le service est indisponible de manière permanente. Cela peut indiquer que le fichier nécessaire n'est pas lisible, ou, pour les services réseau, que le serveur n'est pas disponible ou n'accepte pas les requêtes. continue
    tryagain Le service est temporairement indisponible. Cela signifie qu'un fichier est verrouillé, et qu'un serveur ne peut pas actuellement accepter davantage de connexions. continue

     

    Il est possible de demander à arrêter ou continuer le processus entre deux sources suivant ce statut grâce à une mention du type [STATUT=action]. Cela permet d'exécuter l'action de son choix et non celle par défaut.

    L'action peut être l'une des deux suivantes :

    • return : s'arrêter ici et renvoyer les résultats trouvés
    • continue : interroger le service suivant

     

    Les sources de données disponibles

    Pour obtenir les données recherchées, on peut interroger différents services locaux ou distant comme par exemple les fichiers plats, un annuaire LDAP, une base de données SQL, etc. Par défaut les services disponibles sont files, db, nis et nisplus ainsi que compat pour les bases passwd, group et shadow. De plus, la base données hosts dispose de la source dns qui n'est utilisable que sur elle.

    Mais pour se connecter à des services plus évolués il faut disposer des bons modules. Ceux-ci se trouvent le plus souvent dans le répertoire /lib et ont un nom de la forme libnss_XXX.so.Y. Avec XXX pour le nom du service et Y le numéro de version de la glibc dans laquelle il s'intègre. Ces modules sont en grande partie installables depuis le gestionnaire de paquet de votre distribution.

    Et en voici une liste des plus courants :

    Nom du module Description
    files Utiliser les fichiers plats du système local.
    compat Similaire à files mais permet en plus d'utiliser un annuaire NIS inclus directement dans les fichiers passwd, groups et shadow et non dans le fichier nsswitch.conf. Pour plus d'informations, voir le lien correspondant à la fin de cet article.
    db Utiliser les fichiers au format Berkeley Database File.
    nis Connexion à un annuaire NIS (ancêtre de LDAP).
    nisplus Connexion à un annuaire NIS+ (version plus sécurisée de NIS).
    dns Connexion aux DNS. Utilisable seulement pour la base de données hosts.
    mdns Résolution en Multicast-DNS. Utilisable seulement pour la base de données hosts.
    ldap Connexion à un serveur LDAP
    winbind Connexion à un serveur Samba (ou Active Directory).
    cache Utilisation des fichiers de cache des noms de domaines de nscd (Name Service Cache Daemon).
    extrausers Utilisation des fichiers passwd, group et shadow situés dans le dossier /var/lib/extrausers. Ce dossier permet d'accueillir les fichiers précédemment cités venant d'autres systèmes sans copier leur contenu dans les fichiers locaux situés dans /etc.
    sshsock2 Connexion à un autre système via un socket ssh afin d'utiliser les utilisateurs de celui-ci. Valable seulement pour les bases de données passwd et group.
    lwres Lire le cache fournit par lwres (lightweight resolver). Utilisable seulement pour la base de donnnées hosts.
    mysql-bg Utilisation d'une base de données MySQL.
    pgsql2 Interrogation d'une base de données PostgreSQL.
    sss Interrogation d'un démon SSSd.

     

    La commande getent

    La commande getent citée au début de cet article permet quand à elle d'effectuer une requête pour une base de données sur les services inclus dans NSS.

    La commande est de la forme suivante :

    getent base_de_données [clé]

    La base_de_données est un nom parmi ceux listés dans le premier tableau de cet article. La clé n'est, elle, pas obligatoire. Si elle est présente, la commande n'affichera que la ligne concernant le nom recherché. Au contraire, si elle est absente, getent listera tous les éléments lorsque la base permet l'énumération.

    Par exemple, un annuaire LDAP permet l'énumération, et s'il est utilisé pour l'authentification sur votre système, vous pourrez lister tous les utilisateurs disponibles. À l'inverse, les services DNS ne permettent pas l'énumération (il est impossible de lister tous les noms de domaines existants) et vous serez obligés de fournir une clé (ici un nom de domaine) pour avoir son adresse IP correspondante.

     

    Conclusion

    On l'a vu au travers de cette article, NSS est un mécanisme qui nous permet de choisir les sources de données nécessaires au système. Il permet d'utiliser les fichiers locaux ou de déléguer la gestion de ces données à des services externes. Il est donc nécessaire lors de l'intégration d'une machine à un système centralisé.

     

    Ressources supplémentaires

     

  • The MagPi n°7 et 8 distribués gratuitement sur les campus de Caen, Grenoble, Lyon, Troyes et Mâcon ! (Laboratoire Linux SUPINFO)

    En ce début d'année 2014, certain ont pu découvrir que le Père Noel était passé à SUPINFO, principalement à l'attention des laboratoires Linux, Robotique et SL3 mais aussi et surtout à tous les étudiants curieux d'électronique.

    The MagPi est un magazine communautaire anglophone qui a été traduit et édité sous licence Creative Commons BY-NC-SA, permettant ainsi à SUPINFO de l'imprimer et de le diffuser à titre gratuit, en sa qualité d'association loi 1901.

    Les magazines profitent de la même qualité d'impression que le Supinfo Inside, les étudiants des campus sélectionnés découvriront ainsi en version papier comment faire de la rétroingénierie classique, asservir une carte Arduino avec une carte Raspberry Pi (ainsi que les avantages que cela procure), de quoi stimuler leur imagination sur des projets robotiques ou domotiques. La sélection s'est basée sur la réalisation de projets publiés sur les sites des labos. Les magazines restent disponibles en PDF sur le site du MagPi.

    image

    Sophie, notre assistante de direction à Caen, semblait intriguée par le magazine !

    image

  • Choix ou obligation : quelle licence pour publier un projet ? (Laboratoire Linux SUPINFO)

    Selon la loi en vigueur en France, tout ce que vous créez vous attribue un droit moral perpétuel inaliénable et imprescriptible. Les droits d'utilisation, de modification ou de partage sont accordés indépendamment.

    Toute publication sans mention particulière relève ainsi uniquement du droit d'auteur (« Tous droits réservés »). Si vous pensiez permettre à d'autres étudiants de découvrir vos travaux (sources, tutos) et de pouvoir s'en servir simplement en les publiant, vous les exposez à des risques légaux en cas de réutilisation de leur part (lucrative ou non) sans votre consentement explicite.

    Car il faut également savoir que toute publication sur un élément de l'infrastructure mise en place par SUPINFO réserve à l'établissement les droits d'exploitation les plus étendus sur vos travaux (rubrique Propriété intellectuelle / droit d'auteur).

    En revanche, rien n'est prévu à destination des étudiants. Si vous souhaitez permettre la réutilisation de vos publications vous devez donc choisir une licence permissive et l'appliquer correctement.

    Vous pouvez visiter le comparatif mis en place par GitHub sur http://choosealicense.com/

  • Sortie de Firefox 4 (Linux Certif)

    Après une longue et pénible période de développement, Mozilla sort aujourd'hui son nouveau bébé: Firefox 4.

    Cette version de Firefox a été pénible à réaliser dû à la pression constante de la concurrence et aux changement soutenus de HTML 5.

    Pour les utilisateurs, Mozilla ne met en avant les performances accrues avec cette version. Les utilisateurs de Windows en particulier peuvent profiter d'améliorations significatives de la vitesse de rendu.

    Pour les développeurs Web, ce Firefox 4 est une bonne nouvelle avec de nombreuses API HTML 5 mises à jour ou tout simplement ajoutés.

  • Zet Uw Volgende Sigaret Into Your Last Met Deze Stoppen Met Roken Tips (Laboratoire Linux SUPINFO)

    e liquid ingredients. Als je een roker bent , is de kans groot dat u wilt stoppen en gewoon niet weten hoe dit te doen . Wees niet ontmoedigd , omdat de informatie en technieken die in dit artikel zijn bedoeld om mensen zoals jij te helpen . Gebruik de tips in dit artikel om u te helpen langs de weg om een ​​niet-roker

    does e liquid get you highOm uw kansen op succesvol stoppen met roken te stimuleren , denken zetten op papier alle potentiële voordelen en gevolgen van stoppen . Aanbrengen van de kwestie schriftelijk zal u helpen om het beter te kunnen zien . Dit kan u helpen gemotiveerd te blijven , en kunnen stoppen gemakkelijker te maken .

    Als u rookt als een manier om stress te beheersen , wil je andere stress saneringstechnieken klaar hebben wanneer je besluit om te stoppen . Blijf uit situaties die je kan stress voor de eerste paar weken nadat je hebt gestopt . U kunt ook uw stress te beheren door middel van yoga , meditatie of door het krijgen van een massage .

    Vergeet niet dat uw houding is alles. Wanneer u begint te voelen beneden , moet je proberen om jezelf er trots op dat je stoppen te maken. Roken is slecht voor je en elke keer dat je de drang om te roken te veroveren , moet je trots voelt als u het nemen van belangrijke stappen in de richting van een gezonder je .

    Maak een studie van wat triggers uw roken en zoek manieren om je triggers te vermijden. Bijvoorbeeld zaken als roken tijdens het rijden of het lezen , zodat je niet automatisch denken over je rookgedrag te veranderen . Je nodig hebt om een afleiding te vinden, om na te denken over iets anders.

  • Migrer Windows 10 d'un disque BIOS/MBR, vers un SSD en mode UEFI/GPT avec des logiciels libres (Journaux LinuxFR)

    Sommaire

    Introduction

    Ce tutoriel vous guide pas à pas pour migrer votre installation de
    Windows qui est actuellement sur un disque dur de votre PC vers un
    nouveau disque, en l'occurrence un SSD. A vrai dire, vous pouvez aussi
    bien migrer vers un autre HDD.

    La spécificité de ce tutoriel est qu'elle utilise les outils fournis par
    Microsoft avec Windows ainsi que des logiciels libres (Clonezilla
    principalement, mais si quelque chose devait mal tourner vous pouvez avoir
    besoin d'utiliser fdisk, gdisk ou testdisk pour ne citer qu'eux). Quand
    j'ai voulu faire cette migration je n'ai pas trouvé de tutoriel
    expliquant de bout en bout comment faire cette migration juste avec les
    outils de Microsoft et des logiciels libres.

    Typiquement, vous pouvez avoir envie/besoin de faire cela car vous avez
    acheté un nouveau disque pour remplacer l'ancien (par exemple car
    l'ancien montre des signes de faiblesse, ou vous voulez améliorer la
    réactivité de votre système).

    En plus de la migration du système d'exploitation, ce tutoriel vous
    explique comment passer d'un démarrage en mode BIOS/MBR à un démarrage
    en mode UEFI/GPT.

    Succinctement la démarche est la suivante, d'abord installer le nouveau
    disque dans le PC, et initialiser la table de partition selon les normes
    Microsoft. Puis cloner/dupliquer la partition contenant le système
    d'exploitation à l'aide de Clonezilla. Ensuite et avant de redémarrer
    dans le clone de Windows sur le SSD, faire quelques modifications dans
    le registre pour que la lettre de lecteur C: pointe vers la bonne
    partition et éventuellement modifier le mode SATA en AHCI si vous le
    modifiez aussi dans le UEFI/BIOS. Après cela, on va préparer la
    partition système EFI/ESP pour que le PC puisse démarrer dessus et qu'il
    démarre sur le Windows du SSD. Finalement, une fois dans le Windows du
    SSD, on va réactiver l'"environnement de récupération de Windows".

    Mise en garde : Faites une sauvegarde de vos données avant toute
    opération. Personne n'est à l'abri d'une mauvaise manipulation ou d'une
    erreur.

    Prérequis

    Compétences

    Niveau de difficulté : Difficile.

    Vous devez être à l'aise au niveau de l'utilisation de la ligne de
    commande dans Windows, mais aussi assez à l'aise pour gérer les
    partitions de votre disque. Savoir modifier le paramétrage de votre
    Firmware UEFI/BIOS et aussi nécessaire. Ce tutoriel guide pas à pas pour
    la majorité des opérations. Certaines n'ont pas été détaillées par souci
    de simplicité et d'efficacité.

    Matériel

    Le PC où vous voulez installer le SSD. Il faut qu'il soit en état de
    marche. De plus il doit avoir un firmware UEFI. S'il n'a que un BIOS
    standard, sans UEFI, ce tutoriel n'est pas adapté.

    Clé(s) USB ou plusieurs CD/DVD sur lequel vous aurez mis
    Clonezilla, System rescue
    CD
    et un environnement de démarrage
    Windows PE, ou Windows RE, ou le DVD/Disque d'installation de Windows.

    Le disque SSD (testé avec Samsung SSD 860 EVO 250GB). Il doit avoir une
    taille suffisante pour contenir votre partition de Windows. Dans tous
    les cas, la taille de la partition qui contiendra Windows sur le SSD
    doit être au moins égale à la taille de la partition Windows du HDD que
    vous voulez cloner. Au besoin, pour remplir ce critère, réduisez la
    taille de votre partition Windows avec le gestionnaire de disque de
    Windows par exemple (ou un autre outil de gestion de partition, comme
    gparted, sur le System Rescue CD). Cherchez sur internet si vous ne
    savez pas comment faire.

    Logiciel

    Windows 10 installé (en version 64 bits) (testé avec Win10 v1709)

    Windows 10 PE ou support d'installation de Windows 10 (clé USB ou DVD) -
    En Version 64 bits (testé avec un support d'installation de Win10 v1804)

    System rescue CD (version 5.2.2 par
    exemple)

    Clonezilla installé sur une clé ou un CD.
    Bien vérifier avant que votre système arrive à démarrer dessus. (Testé
    avec Clonezilla 2.5.5-38)

    Nomenclature

    SSD : désigne le nouveau SSD

    HDD : désigne votre disque actuel, sur lequel est installé Windows

    WinPE : un environnement de démarrage Windows PE, ou Windows RE, ou le
    DVD/Disque d'installation de Windows. Il doit être sur un support
    amovible (USB, CD ou DVD)

    S: La lettre de lecteur affectée à la partition Système EFI qui sera sur
    le nouveau SSD (parfois appelée ESP, EFI_System_Partition ou encore
    SYSTEM, ou EFI)

    N: Le clone de Windows, sur le SSD

    O: Le Windows cloné, sur le HDD

    C: La partition dans laquelle est installée Windows, lorsqu'on est dans
    Windows (que ce soit le windows cloné, ou le clone)

    Les commandes doivent être lancées en tant qu'administrateur.

    Procédure de base

    • Fixer et brancher le SSD dans l’ordinateur

    • Désactiver Windows FastStart (cf votre moteur de recherche préféré)

    • Initialiser et partitionner le disque à l'aide de Windows

      • Démarrer sur le Windows installé ou WinPE
      • Pour initialiser le disque, d'abord créer une table de partition, puis partitionner le disque. Pour ce faire :
        • Suivre les instructions de partitionnement UEFI/GPT selon Microsoft. Ci-dessous mon exemple, mais peut-être avez-vous besoin d'une partition "recovery" aussi, ou votre configuration nécessite quelques aménagements. Dans ce cas, voir les instructions de Microsoft et adapter pour vos besoins.
        • Par exemple: une partition EFI de 260Mo, une partition Microsoft Reserved (MSR) de 16Mo, une partition pour Windows (taille au moins égale à la taille de la partition de Windows à cloner). Pour informations, dans diskpart, les tailles que vous donnez en MB/Mo sont en réalité des MiB/Mio (220 = 10242 octets).
          • Ouvrir une invite de commande en mode administrateur et lancer diskpart . Et une fois dans diskpart :
            • list disk pour lister les disques et connaître le n° du SSD.
            • select disk # avec le numéro du SSD à la place de #
            • clean Supprime le contenu du disque / l'initialise
            • convert gpt Définit que le disque aura une table de partition GPT
            • create partition efi size=260 Crée une partition EFI de 260MiB
            • format quick fs=fat32 label="System" Formater la partition EFI au format FAT32
            • assign letter="S" Lui donner la lettre S
            • create partition msr size=16 Créer une partition Microsoft Reserved de 16MiB
            • create partition primary Créer la partition pour Windows (l'équivalent du C: )
            • format quick fs=ntfs label="Windows" Formater la partition pour Windows au format NTFS
            • assign letter="N" Lui donner la lettre N
            • list volume Liste les volumes. Permet de voir la table de partition.
            • exit Quitte diskpart
    • Cloner le Windows installé sur le HDD. Ceci sera fait à l'aide de
      Clonezilla

      • Redémarrer dans Clonezilla
      • Une fois dans clonezilla, et si vous êtes confortable avec les lignes de commande Linux, éventuellement supprimer de la partition Windows du HDD les fichiers pagefile.sys , hyberfil.sys (désactiver windows faststart avant), swapfile.sys .
      • Cloner la partition Windows du HDD vers le SSD (de préférence, partition de même taille, et de toutes façons, la partition de destination doit être plus grande que la source. Si ce n'est pas le cas, réduisez d'abord la taille de votre partition Windows depuis Windows). Dans clonezilla, utiliser le mode Partition vers Partition, et en mode Export. Utiliser les options -e1 auto (automatically adjust file system geometry for a ntfs boot partition if exists) -e2 (sfdisk uses CHS of hard drive from EDD (for non grub loader) -r (resize filesystem to fit partition size of target) -m (do NOT clone boot loader) -v (verbose)
      • Optionnellement cacher la partition contenant le windows source de la table de partition du disque source (si vous ne savez pas à quoi ça sert, passez votre chemin). Pour cela modifier le type de partition de la partition NTFS de windows (en principe, NTFS a un id de « 7 ». On peut utiliser id 17 pour la partition cachée : 17 correspond à « IFS Hidden »). Utiliser cfdisk ou fdisk pour faire ce changement (ce sont des programmes linux).
    • Dans le Firmware UEFI (ou BIOS-UEFI), on peut en profiter pour passer
      du mode SATA "IDE" vers "AHCI". Windows n'aime pas ce changement et
      il faut donc faire une opération dans le registre qui est
      détaillée ci-dessous. Tant que vous ne le faites pas, vous aurez un
      écran de plantage bleu de windows au démarrage (BSOD).

    • Si vous voulez être sûr de ne pas faire de bêtise dans le Windows que
      vous venez de cloner, je vous conseille d'éteindre l’ordinateur & de
      débrancher l’ancien disque. Ainsi vous ne risquez pas de modifier le
      mauvais fichier de registre (en l'occurrence celui de votre Windows
      sur le HDD)

    • Effectuer quelques opérations sur le Windows de destination (celui
      sur le SSD) avant qu'on ne démarre dessus. En particulier corriger le
      registre pour affecter la lettre de lecteur C: à la bonne partition,
      et si le paramétrage du Firmware UEFI (BIOS-UEFI) a été modifié pour
      passer de SATA Mode PCI vers AHCI, on va aussi faire ce changement
      pour que ca fonctionne.

      • Redémarrer dans WinPE (en Mode UEFI, pas MBR !)
        • Tout d'abord déterminer la lettre de lecteur affectée au clone de Windows, celui qui est sur le SSD. Ou, s'il n'y a pas de lettre affectée, lui en donner une, par exemple N: (lettre utilisée dans les exemples qui suivent)
          • Pour cela, lancer dans diskpart
            • list volume
              Ce qui retourne la liste des volumes avec la lettre de lecteur qui a été affectée à chacun.
          • Si aucune lettre de lecteur n'est affectée, il faut alors lui en affecter une. Pour cela, lancer dans diskpart
            • select volume # (avec # étant le numéro du volume qui contient le nouveau windows)
            • assign letter=N
              S'il n'est pas possible d'utiliser select volume alors faire comme ceci
            • list disk
            • select disk # (# étant le numéro affecté au SSD)
            • list partition
            • select partition # (# étant le numéro affecté à la partition de Windows sur le SSD, probablement 3)
            • assign letter=N
        • Faire un CHKDSK /F sur la lettre du nouveau Win
        • Pour que la partition C: utilisée par Windows soit celle du SSD et pas celle de l’ancien disque, modifier une clé de registre du nouveau Windows :
          • Lancer REGEDIT et dans le registre HKEY_LOCAL_MACHINE monter la ruche N:\Windows\System32\Config\SYSTEM . Lui donner le nom "NewWin" On s’intéresse à HKEY_LOCAL_MACHINE\NewWin\MountedDevices . Ce sont là les valeurs qui sont dans le registre " HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices " lorsqu'on est dans l'installation de Windows.
            • Dans HKEY_LOCAL_MACHINE\NewWin\MountedDevices modifier la lettre de lecteur C: en renommant \DosDevices\C: par \DosDevices\O: (car la valeur fait référence à la partition de l'ancien Windows sur le HDD et on ne veut pas, en démarrant, utiliser cette partition mais celle de son clone qui est sur le SSD). Ainsi, lorsqu'on démarrera dans le nouveau Windows, la partition contenant le Windows sur le HDD aura la lettre O:, et la partition contenant le Windows sur le SSD aura la lettre C:
            • Créer une nouvelle valeur binaire nommée \DosDevices\C: et lui donner comme contenu celui de \DosDevices\N: qui est renseignée dans le registre WinPE, c'est-à-dire là HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices ( C: étant la lettre qu'utilisait le Windows du HDD comme partition où il y a le dossier \Windows )
            • ATTENTION: Bien vérifier que la copie a fonctionné et qu'il y a les bonnes valeurs, car dans mes essais, j'ai du m'y reprendre à 2 fois car le 1er "coller" ne collait pas ce que je voulais.
            • En principe c'est tout. Mais d'après certaines sources, il y aurait une clé \\?\Volume{GUID} ayant le même contenu que le \DosDevices\O: qu’on vient de modifier. Chez moi ce n'était pas le cas. Si vous avez une telle valeur, alors il faut lui donner le contenu de \DosDevices\N: depuis le registre WinPE
        • Si en même temps que la migration on veut aussi passer du mode SATA IDE vers AHCI alors il faut encore faire ceci. Cela a été repris du site tomshardware.co.uk
          • Toujours dans REGEDIT avec la ruche montée en HKEY_LOCAL_MACHINE\NewWin
          • Aller à HKEY_LOCAL_MACHINE\NewWin\ControlSet000\Services\storahci\StartOverride
          • Changer la valeur DWORD de 3 à 0.
          • Au redémarrage, si ça n'a pas été fait, changer la paramétrage du contrôleur SATA de IDE à AHCI. Au redémarrage, Windows devrait directement démarrer correctement et sans plantage (BSOD).
        • Rendre le disque bootable en installant les outils EFI de microsoft et configurant le Magasin BCD (BCD Store)
          • D'abord assigner une lettre de lecteur à la partition ESP
            • MOUNTVOL S: /S
              Si ca n'a pas fonctionné, faire comme ceci dans diskpart
            • list disk
            • select disk # (# est le numero du SSD retourné par list disk)
            • list partition
            • select partition # (# est probablement 1)
            • assign letter=S
          • Puis lancer bcdboot N:\windows /l fr-fr /s S: /f UEFI
            • N:\Windows est le répertoire contenant le clone de Windows sur le SSD)
            • S: = partition EFI
    • Redémarrer, et avant le lancement de Windows vérifier votre UEFI
      (ou BIOS-UEFI). Il faut qu'il soit configuré pour démarrer par défaut
      en mode UEFI et pas en mode BIOS. Penser aussi à corriger le
      paramétrage SATA si cela a été modifié dans le registre de Windows.

      Le paramétrage du démarrage avec
      bcdboot N:\windows /l fr-fr /s S: /f UEFI a normalement créé le
      magasin BCD, mis tous les fichiers EFI sur la partition SYSTEME (ESP,
      partiton EFI, la 1ère du SSD) et dit au firmware UEFI qu'il doit
      automatiquement démarrer avec le gestionnaire de démarrage
      (boot manager) de Windows.

    • Une fois qu’on a réussi à démarrer dans la copie de Windows

      • Réactiver le "FastBoot"
      • Réactiver l'environnement de récupération de Windows en lançant, depuis une ligne de commande avec les droits administrateur, la commande reagentc.exe /enable . Vérifier avec reagentc.exe /info . Et s'il y a une erreur essayer avec reagentc.exe /enable /setreimage /path C:\Recovery\WindowsREC:\Recovery\WindowsRE est le dossier où se trouve le fichier Winre.wim
      • Vérifier que tout est en ordre. Eventuellement donner un nouveau nom à votre partition C: (pour la différencier de celle sur le HDD) en lançant: LABEL [drive:][label]
      • Redémarrer encore une fois en laissant le processus de démarrage se faire tout seul pour vérifier que tout est ok.
    • Réinsérer l'ancien disque dur.

    • Normalement, il devrait être possible de redémarrer dans l'ancien
      Windows, du moment que vous savez comment booter en MBR, et sous
      réserve de ne pas avoir modifié le mode SATA dans le UEFI/BIOS. SI
      c'est le cas, vous pouvez envisager de modifier le registre du
      Windows du HDD, ou de modifier le paramétrage du UEFI/BIOS.

      Si vous avez aussi Linux d'installé sur le HDD, il devrait toujours
      être possible de le démarrer en mode BIOS

    • On peut diminuer/augmenter la taille de la partition C: du SSD (Pour
      un SSD TLC ou VNAND, on peut par exemple laisser de l’espace libre à
      la fin ~10 % de la capacité du disque d'après le logiciel Samsung
      Magician, pour un SSD 860 EVO)

    • En principe, puisqu’on boot en EFI on peut enlever sur le clone
      Windows sur le SSD les fichiers \bootmgr et \Boot\BCD puisque ce
      sont ceux qui étaient utilisés pour un boot en mode BIOS/MBR et que
      désormais on est en EFI. Vous pouvez d'abord les renommer et vérifier
      que ca ne change rien au prochain boot, plutôt que de les supprimer
      tout de suite.

    Quelques pistes si ça ne fonctionne pas…

    • Faire un chkdsk sur la nouvelle partition
    • Recréer le bootsector du NTFS avec testdisk (dispo sur System Rescue CD, mais peut être aussi dans Clonezilla ? Je n'ai pas vérifié)
    • Vérifier le BCD:
    • Vérifier que la partition EFI est bien initialisée (présence des fichiers \EFI , \EFI\Boot\ , \EFI\Microsoft\ …) Si ce n'est pas le cas, il y a eu un problème avec bcdboot N:\windows /l fr-fr /s S: /f UEFI
    • Vérifier le boot manager du bios (démarrage en UEFI ou MBR ? Gestionnaire de démarrage par défaut ? Présence du gestionnaire de démarrage de Windows ?)
    • A priori, pas utile : Commandes à lancer dans WinPE
      • Pour recréer le boot sector de la partition systeme (EFI): bootrec /fixboot
      • Pour chercher les OS sur le disque et les mettre dans le bootloader bootrec /scanos
    • Quelques commandes de bcdedit pour modiser la valeur de certains éléments du magasin BCD. Inutile car le BCD Store qui est utilisé lorsqu'on démarre en mode EFI n'est pas le même que celui utilisé dans un démarrage en mode MBR. Donc, pas besoin de chercher à modifier le BCD. Je garde pour info : les lettres sont celles telles que définies dans le système où on est (WinPE par ex). Doc BCDEDIT
      • bcdedit /set {bootmgr} device \Device\HarddiskVolume1
      • bcdedit /set {default} device \Device\HarddiskVolume3
      • bcdedit /set {default} osdevice \Device\HarddiskVolume3
      • Ou à la place de \Device\HarddiskVolume1 mettre les lettres de lecteur :
      • bcdedit /set {bootmgr} device partition=S:
      • bcdedit /set {default} device partition=C:
      • bcdedit /set {default} osdevice partition=C:

    Documentation, pour aller plus loin…

    A propos du EFI/UEFI:

    A propos de l'entrée MountedDevices du registre:
    http://diddy.boot-land.net/firadisk/files/mounteddevices.htm

    Si on veut y accéder, par défaut les fichiers du BCD sont cachés. Pour
    les rendre visibles:

    • attrib bcd -s -h -r
    • mv bcd bcd.bak
    • bootrec /rebuildbcd

    Documentation bcdedit:

    MBR Partition ID

    A propos des disk ID (=Disk signatures):

    Si besoin de supprimer du registre les entrées de disques qui ne sont
    pas connectés ou sans lettre assignée lancer: mountvol /R. Ce
    programme permet aussi de lister les lettres de volumes avec leur GUID
    (GUID pour ce système uniquement, il n’est pas stocké dans la partition,
    ni ailleurs sur le disque, il est assigné par windows pour un couple
    (signature de disque/partition offset) dans une instance de windows
    alors que dans une autre instance de windows la même partition sur le
    même disque aura ce GUID différent)

    Changer le label du volume: commande LABEL [drive:][label]

    Historique de révisions

    • Vous trouverez la dernière version de ce tutoriel sur ma page perso
      de tutoriels informatique
      .
      Vous y trouverez aussi la version HTML, PDF et TXT.

    • 2018-06-17 : Ajout d'une note indiquant que ce tutoriel utilise des
      logiciels libres

    • 2018-06-11 : Correction de la forme et de fautes d'orthographe

    • 2018-05-28

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Retour sur la licence de NumWorks (Journaux LinuxFR)

    À la suite du journal précédent, je me demandais, quelle était la protection effective de la licence CC-BY-NC-SA. J'aimerais bien que l'on ne reprenne pas la guerre libre pas libre de l'autre dépêche, j'ai plutôt envie de voir ce qu'ils apportent, plutôt que de réfléchir à ce dont ils nous privent.

    Pour rappel, la licence CC-BY-NC-SA permet de :

    • Partager — copier, distribuer et communiquer le matériel par tous moyens et sous tous formats
    • Adapter — remixer, transformer et créer à partir du matériel

    L'Offrant ne peut retirer les autorisations concédées par la licence tant que vous appliquez les termes de cette licence.

    Attribution — Vous devez créditer l'Œuvre, intégrer un lien vers la licence et indiquer si des modifications ont été effectuées à l'Oeuvre. Vous devez indiquer ces informations par tous les moyens raisonnables, sans toutefois suggérer que l'Offrant vous soutient ou soutient la façon dont vous avez utilisé son Oeuvre.

    Pas d’Utilisation Commerciale — Vous n'êtes pas autorisé à faire un usage commercial de cette Oeuvre, tout ou partie du matériel la composant.

    Partage dans les Mêmes Conditions — Dans le cas où vous effectuez un remix, que vous transformez, ou créez à partir du matériel composant l'Oeuvre originale, vous devez diffuser l'Oeuvre modifiée dans les même conditions, c'est à dire avec la même licence avec laquelle l'Oeuvre originale a été diffusée.

    Pas de restrictions complémentaires — Vous n'êtes pas autorisé à appliquer des conditions légales ou des mesures techniques qui restreindraient légalement autrui à utiliser l'Oeuvre dans les conditions décrites par la licence.

    Les sources de ce système d'exploitation seront toujours disponibles, si l'entreprise décide de changer de licence, elle ne pourra pas revenir sur ce qui existe déjà.

    Cela fait donc a minima un excellent objet d'étude d'une solution employant beaucoup de logiciels libres dans sa construction.

    Leur parti pris est très intéressant. Ils ont décidé de na pas utiliser d'OS mais de directement coder sur le Cortex-M4, cela permet à leur système de tenir sur 256kB de ram.

    Ils ont du recréer tout un environnement, j'imagine que l'investissement en terme de R&D est très important.

    Je pense que c'est cet aspect qui rend l'OpenSource (ou libre) difficile. En effet, admettons qu'ils aient mis leur OS et toute la couche applicative en GPL, ils auraient très facilement pu avoir une boite qui récupère tout le code sans apporter aucune amélioration mais en profitant des faibles prélèvements sociaux d'autres pays (Chine par exemple), pour vendre moins cher. De plus il aurait aussi été possible qu'une entreprise ayant plus de capital fasse baisser les coûts par un effet d'échelle, et reprenne le développement en tant qu'acteur majeur. Cela aurait été super pour la diffusion du produit mais aurait mis un coup d'arrêt à leur entreprise.

    Le problème est que l'ingénierie logicielle a certes un coût mais les investissements sont majoritairement du salaire alors que le développement d'un matériel entraîne des investissements en prototypes et une industrialisation sur une chaîne de production, qui peut rendre la libre utilisation, des développements précédemment fait, périlleux pour l'entreprise.

    Donc oui, à titre personnel, je me questionne sur le fait qu'il existe systématiquement un modèle économique viable libre associable à n'importe quel projet. N'ayant pas la réponse, je serais ravi que l'on m'éclaire sur ce sujet qui dépasse vraiment mon niveau de compétence.

    Maintenant, cela montre qu'il est possible d'utiliser des briques libres pour faire une calculatrice, c'est vraiment intéressant.

    Quelqu'un a-t-il une idée sur la différence de consommation entre une carte cortex-M4 et une carte raspberry pi zeros ?

    Si je trouve leur idée intéressante, je trouve que d'avoir un terminal mobile basé sur une distribution linux minimale avec un environnement de type SageMath avec une version des notebooks Jupyter adaptés aux petits écrans pourrait vraiment être cool ! Quand on voit à quel point des outils tels que JupyterLab permettent de rendre l'accès à des environnements python avec toutes les libs installées, utiliser une raspbian minimale avec un une appli Qt pour le web et un serveur jupyter, permettrait de faire vraiment pas mal de choses ! Sachant qu'en plus Jupyter peut faire plein d'autres choses telles que du SageMath, Octave, maxima, Julia, …

    Le problème serait alors l'autonomie … mais bon avec l'arrivée en 2019 de l'advanced color paper display, on pourrait bien avoir accès à une technologie permettant de faire des petits écrans couleurs qui ne consomment pas du tout. Un trois couleurs serait déjà faisable par exemple.

    Donc je trouve que leur idée est vraiment top, mais personnellement je préférerais pouvoir conserver mon environnement Linux même sur une calculette. Bon, en même temps, je ne pense vraiment pas être la cible … Cependant je trouve l'analyse d'Aurélien Pierre assez intéressante. Il serait juste sympa d'avoir tout l'environnement dans une machine qui ressemblerait à une TI92 ou une voyage 200, même si ce format n'est plus vraiment d'usage … Avoir un clavier Alpha-numérique physique est tout de même un gros plus. Sachant qu'une calculatrice moderne de chez TI avec des capacités CAS coûte encore 130€, il reste de quoi s'amuser avec les raspberry pi et consort …

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Agenda du Libre pour la semaine 26 de l'année 2018 (Dépêches LinuxFR)

    Calendrier web, regroupant des événements liés au Libre (logiciel, salon, atelier, install party, conférence), annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces 30 événements (1 en Belgique, 29 en France, 0 au Luxembourg, 0 au Québec 0 en Suisse et 0 en Tunisie) est en seconde partie de dépêche.

    Sommaire

    [FR Nantes] Cycle café vie privée Protection de son trafic sur Internet (VPN) - Le lundi 25 juin 2018 de 18h00 à 21h00.

    Protection de son trafic sur Internet

    Pourquoi et comment chiffrer son trafic sur Internet avec un VPN (réseau privé virtuel) ?
    Présentation du fonctionnement d’un VPN, de son intérêt et de sa mise en place.

    Au bar associatif La Dérive https://lajavadesbonsenfantsblog.wordpress.com/

    [FR Grenoble] Contribuer à BANO, la base d’adresse nationale d’OSM - Le lundi 25 juin 2018 de 18h30 à 20h30.

    Le collectif OpenStreetMap Grenoble vous invite à son prochain atelier OSM, La Base Adresses Nationale Ouverte (BANO) est une initiative d’OpenStreetMap France.

    Elle a pour objet la constitution d’une base la plus complète possible de points d’adresse à l’échelle de la France.

    L’objectif est de proposer une couverture d’adresses la plus étendue possible et la plus homogène possible.

    Cela doit permettre de réaliser sur le plus largement possible des opérations de géocodage (Quelle position correspond à cette adresse) et de géocodage inversé (Quelle adresse correspond à cette position).

    Lors de ce mapathon, le collectif OpenStreetMap Grenoble vous propose d’apprendre à contribuer à la BANO.  

    À partir de 18h30 à La Coop-Infolab. 31 rue Gustave Eiffel – 38 000 Grenoble

    BANO ou BAN

    La BAN (Base Adresse Nationale) est la base de référence nationale issue d’une convention signée entre l’IGN, le Groupe La Poste, l’État et OpenStreetMap France.

    BANO est un projet initié par OpenStreetMap France début 2014 et n’a pas encore intégré de données issues de la BAN (chantier en cours). Le contenu de la BAN est plus complet (plus de 20 millions d’adresses) que BANO (15. 5M d’adresses), mais n’intègre(ra) pas de contributions faites sur OpenStreetMap et encore très peu de données opendata diffusées par certaines collectivités.

    C’est quoi OSM

    OpenStreetMap (OSM) est un projet international fondé en 2004 dans le but de créer une carte libre du monde.

    Nous collectons des données dans le monde entier sur les routes, voies ferrées, les rivières, les forêts, les bâtiments et bien plus encore

    Les données cartographiques collectées sont ré-utilisables sous licence libre ODbL (depuis le 12 septembre 2012). Pour plus d’information inscrivez-vous à la liste locale OSM de Grenoble

    [FR Gaillac] Atelier informatique libre - Le lundi 25 juin 2018 de 19h30 à 23h00.

    Un atelier d’informatique libre voit le jour au sein du chinabulle, pour créer un espace temps d’échange autour des solutions informatiques libres.

    [FR Marseille] PGDay France - Le mardi 26 juin 2018 de 08h30 à 17h30.

    Le PGDay France est un moment de rencontres et de conférences pour la communauté francophone de PostgreSQL.

    Les conférences s’adressent à tous les utilisateurs du logiciel étudiants, administrateurs systèmes, DBA, développeurs, chefs de Projets, décideurs.

    [FR Aiglun] Après-midi « Open data » et « Cartopartie » - Fête de l'été - Le mardi 26 juin 2018 de 15h00 à 19h00.

    Démarche participative et collaborative, il s’agit notamment de permettre aux associations, producteurs locaux, habitants et usagers de cartographier les services / activités qui constituent la richesse de notre territoire sur un outil libre (Openstreetmap).

    Les données publiques communales mises en ligne et la création d’un agenda partagé (à destination des associations) seront également valorisées.

    Les organisateurs du marché d’Aiglun proposeront de nombreuses animations à travers la fête l’été. Venez nombreux

    Tout l’après-midi marché bio et des producteurs locaux, animation musicale, balades avec les ânes, jeux, atelier de cartographie libre

    À 15 h, 16 h et 17 h visite du champ de lavande rendez-vous sur la place du marché

    À partir de 17 h dégustations des produits du marché préparés par le restaurant Le Pressoir Gourmand et grillades d’agneau

    À 18 h apéritif local offert par la mairie d’Aiglun, débat sur la cartographie et les données ouvertes

    [FR Quetigny] Découvrir, tester, installer Linux et d’autres logiciels libres - Le mardi 26 juin 2018 de 20h30 à 23h30.

    COAGUL est une association d’utilisateurs de logiciels libres et de GNU Linux en particulier.

    Nous utilisons toutes sortes de distributions GNU / Linux (Ubuntu, CentOs, Fedora, Debian, Arch…) et toutes sortes de logiciels pourvu qu’ils soient libres (VLC, LibreOffice, Firefox, Thunderbird, GPG, Tor, OpenNebula, LXC, Apache…).

    Nous partageons volontiers nos connaissances des logiciels libres et l’entraide est de mise dans nos réunions.

    Les permanences servent à se rencontrer et à partager nos expériences et notre savoir sur le logiciel libre.

    Vous souhaitez nous rencontrer nous vous accueillerons à notre permanence.

    On adore les gâteaux et les chocolats, vous pouvez donc en apporter-)

    [FR Le Mans] Permanence du mercredi après-midi - Le mercredi 27 juin 2018 de 12h00 à 17h00.

    Assistance technique et démonstration concernant les logiciels libres.

    [FR Rennes] Sécuriser son infrastructure - Le mercredi 27 juin 2018 de 18h30 à 21h00.

    La sécurité informatique ne repose pas que sur la qualité du code et le chiffrement (même s’ils sont essentiels), c’est aussi une question d’architecture.

    Vous (re)découvrirez quelques principes de sécurisation des infrastructures informatiques tels que la séparation des flux, la redondance et d’autres éléments pouvant améliorer la protection et la disponibilité des services.

    La conférence sera présentée par
      Thomas MICHEL
      Esprit Libre
      esprit-libre-conseil.com (link is external)

    mercredi 27 juin - 18h30

    FrenchTech Rennes - Saint-Malo
    2 rue de la Mabilais
    Rennes

    >>> S’inscrire

    [FR Montpellier] Rencontres des Groupes OpenStreetMap OSM - Le mercredi 27 juin 2018 de 19h00 à 22h00.

    Ces rencontres mensuelles se veulent être des instants conviviaux pour faire un compte-rendu des activités du mois précédent, mais aussi pour présenter les opérations et rendez-vous à venir que proposent les groupes HérOSM et le Collectif des Garrigues. Naturellement, elles sont également ouvertes à tout public.

    Si vous avez des propositions n’hésitez pas à compléter la page dédiée.

    Proposition de programme

    • En première partie de soirée, une initiation pour les débutants est prévue
    • Possibilité d’initiation à la contribution pour les débutants qui le désire
    • Préparation du dossier pour le budget de l’Opération Libre
    • Préparation de l’Opération Libre à Jacou
    • Travail sur les voies manquantes sur (enjeu évident de géocodage d’adresses, comme celles fournies par SIRENE ou FANTOIR par exemple
    • Petit topo sur la saisie des noms de rues à partir des données cadastre/fantoir par département
    • Propositions au sujet du calcul d’itinéraire multimodal (auto, vélo, piéton) dans les futures discussions

      • La pratique des cartoparties
      • Faut-il prioriser la cartographie de certains endroits (gares et arrêts de tram, par exemple) ?
    • Contributions libres

    Déroulement de la rencontre

    Nous vous présenterons les projets en cours, nous vous vous proposerons de contribuer, faire de la production de données, puis nous passerons à un instant convivial sur la terrasse.
    Comme d’habitude, chacun amène ce qu’il veut à manger et à boire pour un repas partagé.
    N’oubliez pas vos ordinateurs portables pour la séance de saisie

    Le dernier mercredi de chaque mois
    Mercredi 27 septembre 2017 de 19h00 à 22h00
    Mercredi 25 octobre 2017 de 19h00 à 22h00
    Mercredi 29 novembre 2017 de 19h00 à 22h00
    Mercredi 20 décembre 2017 de 19h00 à 22h00
    Mercredi 24 janvier 2018 de 19h00 à 22h00
    Mercredi 28 février 2018 de 19h00 à 22h00
    Mercredi 28 mars 2018 de 19h00 à 22h00
    Mercredi 25 avril 2018 de 19h00 à 22h00
    Mercredi 30 mai 2018 de 19h00 à 22h00
    Mercredi 27 juin 2018 de 19h00 à 22h00

    Mercredi 27 septembre 2017 de 19h00 à 22h00
    Le Faubourg - 15, rue du Faubourg de Nîmes, 34 000 Montpellier

    Tramway lignes 1, 2 et 4 arrêt Corum
    GPS Latitude 43.614186 | Longitude 3.881404
    Carte OpenStreetMap

    Le dernier mercredi de chaque mois.

    [FR Toulouse] Rencontres Tetalab - Le mercredi 27 juin 2018 de 20h30 à 23h30.

    Rencontre hebdomadaire des hackers et artistes libristes Toulousains.

    Ouvert au public tous les mercredi soir.

    Venez nombreux.

    [FR Choisy-le-Roi] Pas Sage en Seine - Du jeudi 28 juin 2018 à 10h00 au dimanche 1 juillet 2018 à 20h00.

    Le festival auto-organisé par vous et l’équipe de Pas Sage En Seine se tiendra du 28 juin au 1er juillet 2017 à Choisy-le-Roi dans et aux abords de la Médiathèque Louis Aragon.

    Nous vous invitons à participer à PSES2018 et venir participer à ses ateliers et conférences bien sûr, mais aussi installations, discussions et autres formes d’interventions.

    Des thèmes sont proposés, pas imposés, pour laisser place à la manifestation d’idées originales.

    Le Festival sera un moment convivial et festif pour décrire nos modes d’organisation, nos outils, nos perspectives, évoquer les usages d’autodéfense numériques faces aux perpétuelles manipulations sécuritaires.

    Le vendredi sera une journée spéciale consacrée au RGPD, et le samedi soir (lors de la micro-nocturne jusqu’à 21h30) vous pourrez assister à un concert de chiptune réalisé par le collectif Chip Bangers.

    L’Hacktiviste naît de cette prise de conscience intégrale. Il ouvre, détourne, invente tous les possibles, ou presque… Être et faire politiquement ensemble sera notre prochaine étape

    Le trajet depuis le centre de Paris prend une petite vingtaine de minutes uniquement (Gare du RER C Choisy-le-Roi).

    [FR Rennes] Conseil d’administration de Gulliver - Le jeudi 28 juin 2018 de 12h00 à 14h00.

    Gulliver tiendra son conseil d’administration à la Maison de la Consommation et de l’Environnement (MCE) le jeudi 28 juin 2018 à partir de 12 h. L’ordre du jour est donné dans le lien ci-dessous.

    Ce conseil d’administration est ouvert à tous. Toute personne, membre ou non membre de Gulliver, peut y assister (sauf CA exceptionnel signalé à l’avance), voir comment fonctionne notre association et y donner son avis.

    La MCE est située 42 bd Magenta à Rennes (plan d’accès). La salle réservée est celle de l’accueil.

    [FR Martigues] Permanence du jeudi de l'ULLM - Le jeudi 28 juin 2018 de 16h30 à 18h30.

    Comment utiliser et les Logiciels Libres.

    avec l’association des Utilisateurs de Logiciels Libres du Pays de Martégal (ULLM).

    28 2018 de 16h30 à 18h30 à la (quai des Anglais).

    Entrée Libre. Tout public.

    [FR Challans] Permanence Linux - Le jeudi 28 juin 2018 de 18h00 à 20h00.

    Chaque dernier jeudi du mois, Linux Challans vous donne rendez-vous à l’Albanera Café, 17 rue du Général Leclerc 85 300 Challans.

    Nous vous proposons lors de ces rendez-vous mensuels d’échanger autour du Libre, des conseils ou une assistance technique.

    Vous pouvez venir pour vous faire aider, ou aider, à installer et paramétrer une distribution GNU/Linux de votre choix ou des logiciels libres sur votre ordinateur.

    Recommandations

    • Sauvegardez vos données avant de venir.
    • Libérez de la place sur le disque dur (20 Go minimum) et défragmentez Windows si vous voulez le conserver.
    • Nous prévenir de votre passage via la messagerie.

    Vous pouvez aussi venir pour une première prise d’informations et de contacts.

    Nous vous attendons toujours plus nombreux

    [FR Bordeaux] Jeudi Giroll - Le jeudi 28 juin 2018 de 18h30 à 20h30.

    Les membres du collectif Giroll, GIROnde Logiciels Libres, se retrouvent une fois par semaine, pour partager leurs  savoir-faire et expériences autour des logiciels libres.

    Le collectif réalise aussi une webradio mensuelle, tous les second mardis du mois, à retrouver en direct sur le site de Giroll.

     Ses rencontres sont ouvertes à tous.

    [FR Peymeinade] Install-Party GNU/Linux - Le jeudi 28 juin 2018 de 19h00 à 21h00.

    Désormais tous les 4ᵉˢ mercredi du mois, Clic Ordi et Linux Azur vous proposent une install-party ouverte à tous et gratuite.

    • Découvrez un monde rempli de Papillons, licornes, mais surtout de manchots
    • Plus besoin de se soucier des virus et autres logiciels malveillants.
    • Le support de Windows Vista s’arrête dans un an, et les principaux logiciels ont déjà arrêté leurs mise à jour, réagissez
    • Ramenez vos ordinateurs obsolètes et donnez leur une seconde vie.

    Nous aimerions développer autour de Handy-Linux (et de sa future mouture avec Debian-Facile) afin de répondre à des besoins simples pour des personnes difficiles à former et pouvant se retrouver en fracture numérique).

    Nous sommes ouverts à tout, y compris à la bidouille sur l’atelier avec le fer à souder.

    Organisé conjointement par http://clic-ordi.com/fr et https://www.linux-azur.org

    [FR Vesseaux] Projection-débat du film « Nothing to hide » - Le jeudi 28 juin 2018 de 19h00 à 22h00.

    Ouverture des portes à 19h pour partager un moment de convivialité, discuter des choses et d’autres comme les logiciels libres, les données personnelles, la vie privée

    Il y a une buvette sur place, et vous pouvez également apporter un plat à partager ou biscuits apéro

    La projection du film documentaire Nothing to Hide aura lieu à 20h30, et sera suivie d’un débat pour répondre à vos questions

    « Dire que votre droit à la vie privée importe peu, car vous n’avez rien à cacher revient à dire que votre liberté d’expression importe peu, car vous n’avez rien à dire. Car même si vous n’utilisez pas vos droits aujourd’hui, d’autres en ont besoin. Cela revient à dire les autres ne m’intéressent pas », Edward Snowden

    Ce documentaire aborde le thème de la vie privée et des données personnelles.

    L’entrée est à prix libre (adhésion à l’association Vesseaux-Mère).

    [FR Paris] Soirée de Contribution au Libre - Le jeudi 28 juin 2018 de 19h30 à 22h30.

    Parinux propose aux utilisateurs de logiciels libres de se réunir régulièrement afin de contribuer à des projets libres. En effet, un logiciel libre est souvent porté par une communauté de bénévoles et dépend d’eux pour que le logiciel évolue.

    Nous nous réunissons donc tous les dans un environnement propice au travail (pas de facebook, pas de télé, pas de jeux vidéos, pas de zombies).

    Vous aurez très probablement besoin d’un ordinateur portable, mais électricité et réseau fournis.

    En cas de difficulté, vous pouvez joindre un des responsables de la soirée, Emmanuel Seyman (emmanuel (at) seyman.fr), Paul Marques Mota mota (at) parinux.org, ou Magali Garnero (Bookynette) tresorier (at) parinux.org.

    Pour obtenir le code d’entrée de la porte cochère, envoyez un mail au responsable.

    On peut amener de quoi se restaurer (Franprix, 8 rue du Chemin Vert, ferme à 22h)

    Regazouillez sur Twitter - Wiki des soirées

    Programme non exhaustif

    • Fedora (sa traduction)
    • Parinux, ses bugs et son infrastructure
    • April, … y a toujours quelque chose à faire
    • Open Food Facts/ Open Beauty Facts, sa base de données, ses contributeurs, sa roadmap
    • Schema racktables, son code
    • Agenda du Libre, mise à jour et amélioration du code
    • Ubuntu-Fr, son orga, ses événements
    • En vente libre, maintenance et commandes
    • Open street map, une fois par mois
    • Linux-Fr sait faire
    • en vente libre

    tout nouveau projet est le bienvenu.

    [FR Montpellier] Atelier du Libre Ubuntu et Logiciels Libres - Le vendredi 29 juin 2018 de 18h00 à 23h00.

    L’équipe de Montpel’libre vous propose une permanence Logiciels Libres, discussions libres et accompagnements techniques aux systèmes d’exploitation libres, pour vous aider à vous familiariser avec votre système GNU/Linux au quotidien.

    Le contenu de l’atelier s’adapte aux problèmes des personnes présentes et permet ainsi l’acquisition de nouvelles compétences au rythme de chacun.

    Vous pourrez y aborder plusieurs thèmes

    • Discussions conviviales entre utilisateurs autour de Linux en général
    • Préinscription aux prochains Cafés Numériques et Install-Party
    • Premières explorations du système
    • Installations et configurations complémentaires
    • Mise à jour et installation de nouveaux logiciels
    • Prise en main, découverte et approfondissement du système

    Les Ateliers du Libre ont lieu à la Mpt Melina Mercouri de Montpellier, tous les derniers vendredis de chaque mois de 18h00 à 20h00, sauf période de vacances.

    Entrée libre et gratuite sur inscription. Une simple adhésion à l’association est possible et auprès de la Mpt.

    Cet événement est proposé par le partenariat qui lie la Mpt Melina Mercouri de Montpellier et Montpel’libre.

    Toute une équipe de passionnés, vous propose l’animation de l’Atelier du Libre par les membres de Montpel’libre. Permanence Logiciels Libres, discussions libres et accompagnements des utilisateurs aux systèmes exploitation libres, Linux, sur le cyberespace de consultations libres.

    En fin de soirée, l’atelier fera progressivement place à un instant très convivial, les RDVL sont des rendez-vous mensuels de discussions sur le thème des logiciels libres, des arts libres, de l’open source et plus généralement de la culture du libre et du numérique.

    Cette soirée, très conviviale, se passe autour d’un repas partagé, chacun porte un plat, entrée, spécialité, dessert, boisson… Ordinateurs et réseaux disponibles.

    Notre équipe vous attend pour répondre à vos questions et satisfaire votre curiosité.

    Maison pour tous Mélina Mercouri 842, rue de la vieille poste, 34 000 Montpellier

    Bus ligne 9, La Ronde arrêt Pinville
    GPS Latitude 43.61354 Longitude 3.908768
    Carte OpenStreetMap

    Rendez-vous mensuel, tous les derniers vendredis, salle jamais le dimanche

    [FR Paris] Apéro April - Le vendredi 29 juin 2018 de 19h00 à 22h00.

    Un apéro April consiste à se réunir physiquement afin de se rencontrer, de faire plus ample connaissance, d’échanger, de partager un verre et manger mais aussi de discuter sur le logiciel libre, les libertés informatiques, fondamentales, l’actualité et les actions de l’April…

    Un apéro April est ouvert à toute personne qui souhaite venir, membre de l’April ou pas.

    N’hésitez pas à venir nous rencontrer.

    Où et quand cela se passe-t-il

    L’apéro parisien aura lieu vendredi 29 juin 2018 à partir de 19h00 dans les locaux de l’April.

    L’adresse
    April, 44/46 rue de l’Ouest, bâtiment 8, 75 014 Paris (entrée possible par la place de la Catalogne, à gauche de la Biocoop, au niveau des Autolib).
    Métros Gaîté, Pernety, Montparnasse. Sonner à « April » sur l’interphone.
    Le téléphone du local 01 78 76 92 80.

    L’Apéro a lieu à Paris notamment parce que le local s’y trouve ainsi que les permanents et de nombreux actifs. Pour les apéros dans les autres villes voir sur le pad plus bas.

    En ouverture de l’apéro nous ferons un court point sur les dossiers/actions en cours.

    Le glou et le miam

    Vous pouvez apporter de quoi boire et manger afin de reprendre des forces régulièrement. Nous prévoirons bien sûr un minimum vital.

    Vous pouvez vous inscrire sur le pad.

    [FR Dijon] Atelier de création numérique et électronique - Le vendredi 29 juin 2018 de 20h30 à 23h59.

    Le fablab et hackerspace l’abscisse vous propose comme tous les vendredis soir un atelier de création numérique et électronique.

    L’atelier est équipé de différents outils perceuse, CNC, Arduino, Raspberry Pi, ordinateurs, oscilloscope, multimètre.

    Une ressourcerie est à disposition, vous y trouverez des composants électroniques et des pièces détachées à prix libre.

    Vous pouvez venir découvrir l’atelier et les usagers du fablab à partir de 20h30.

    Vous pouvez aussi venir pour participer aux travaux numériques en cours, partager vos connaissances et vos savoir-faire.

    Tous nos travaux sont libres et documentés sous licence libre.

    [FR Saint-Jean-de-Védas] Repair Café - Le samedi 30 juin 2018 de 09h00 à 13h00.

    Nous vous proposons ce rendez-vous, où, bricoleurs, acteurs, bénévoles, associations, vous attendent pour vous aider à donner une deuxième vie à vos objets.

    Réparer ensemble, c’est l’idée des Repair Cafés dont l’entrée est ouverte à tous. Outils et matériel sont disponibles à l’endroit où est organisé le Repair Café, pour faire toutes les réparations possibles et imaginables. Vêtements, meubles, appareils électriques, bicyclettes, vaisselle, objets utiles, jouets, et autres. D’autre part sont présents dans le Repair Café des experts bénévoles, qui ont une connaissance et une compétence de la réparation dans toutes sortes de domaines.

    On y apporte des objets en mauvais état qu’on a chez soi. Et on se met à l’ouvrage avec les gens du métier. Il y a toujours quelque chose à apprendre au Repair Café. Ceux qui n’ont rien à réparer prennent un café ou un thé, ou aident à réparer un objet appartenant à un autre. On peut aussi toujours y trouver des idées à la table de lecture qui propose des ouvrages sur la réparation et le bricolage.

    Repair Café est un atelier consacré à la réparation d’objets et organisé à un niveau local, entre des personnes qui habitent ou fréquentent un même endroit, par exemple un quartier ou un village. Ces personnes se rencontrent périodiquement en un lieu déterminé, dans un café, une salle des fêtes ou un local associatif où des outils sont mis à leur disposition et où ils peuvent réparer un objet qu’ils ont apporté, aidés par des volontaires.

    Les objectifs de cette démarche alternative sont divers

    • réduire les déchets
    • préserver l’art de réparer des objets
    • renforcer la cohésion sociale entre les habitants des environs

    Seront présents

    • Autour.com : On se rend des services entre voisins, on partage des infos, on prête, on loue, on donne…
    • L’Accorderie : Est un système d’échange de services entre habitants d’un même quartier ou d’une même ville.
    • La Gerbe : Contribuer à la formation de citoyens éveillés, engagés et solidaires en offrant aux enfants et aux jeunes un espace privilégié d’expression et d’épanouissement Crèche, Centre de loisirs, Scoutisme, Ateliers, chacun peut y trouver un cadre pour son développement grâce au travail d’une équipe de professionnels et de bénévoles.
    • Les Compagnons Bâtisseurs : Prévoient d’amener des outils
    • Les Petits Débrouillards : est un réseau national de culture scientifique et technique, ils viendront avec pleins de conseils et une imprimante 3D.
    • Le Faubourg : Hébergera le Repear Café.
    • Montpel’libre : Sera là avec des pièces informatiques, pour essayer de reconditionner des ordinateurs, dépanner ceux qui ne fonctionnent plus, expliquer comment ça marche, faire comprendre le choix judicieux du logiciel libre, contourner l’obsolescence programmée grâce à GNU/Linux, comment réparer et entretenir son matériel soi-même, nous porterons un jerry.
    • TechLabLR : Accompagne les projets à composantes technologiques afin de les amener au pré-prototype, puis les guider vers les structures d’accompagnements.
    • Violons Dingues : Passionnés de la vie, des autres, de la culture, de l’art, du sport, de la mécanique, de la moto, de la photo, de la musique, des animaux, des insectes, des plantes, de l’environnement, enfin de tout ce qui circule (au propre comme au figuré) sur notre planète.
    • Zéro Waste Montpellier : La démarche « Zéro Waste » est une démarche positive pour aller vers une société zéro déchet et zéro gaspillage.

    • Maison des Associations, 18 bis rue Fon de l’Hospital, Saint-Jean-de-Védas, Occitanie, France

    • Adresse web http://montpel-libre.fr

    • Tags
      montpel-libre, repair-cafe, atelier

    [FR Casseneuil] Install Partie GNU/Linux - Le samedi 30 juin 2018 de 10h00 à 17h00.

    Le Samedi 30 Juin les bénévoles d’aGeNUx sont invités dans les locaux d’Avec 2L pour une Install-party.

    Venez découvrir et partager le monde du logiciel libre en toute sérénité.

    Animation Libre et non payante.

    Auberge Espagnole le midi.

    Avec 2L se situe derrière la poste de Casseneuil

    [FR Wintzenheim] Réunion du Club Linux - Le samedi 30 juin 2018 de 13h00 à 19h00.

    Comme tous les 3 samedis, le Club Linux de la MJC du Cheval Blanc se réunit et accueille toutes les personnes qui souhaitent découvrir ou approfondir Linux et les Logiciels Libres. Aucune compétence n’est demandée.  

    Pendant ces rencontres, informelles,

    • nous accueillons celles et ceux qui cherchent une réponse ou souhaitent découvrir Linux et les Logiciels Libres,
    • nous installons Linux sur des ordinateurs, la plupart des fois en « dual boot »(*), ce qui permet de conserver l’ancien système (par exemple Windows) et d’utiliser quand même, en choisissant au démarrage,
    • nous partageons nos recherches et nos découvertes, les nouveautés.

    Le Club Linux est également impliqué dans une démarche de libération des GAFAM (Google Apple Facebook Amazon Microsoft) et de promotion de solutions libres comme, entre autres, Wikipedia, Openstreetmap, les Framatrucs (*), les Chatons (*) et beaucoup d’autres.

    (*) : mais on vous expliquera

    [FR Villefranche-sur-Saône] Repaircafé - Le samedi 30 juin 2018 de 13h30 à 17h30.

    Dernier Repaircafé caladois mensuel de la saison avant les vacances.

    Avec la participation habituelle de la CAGULL.

    [FR Marseille] Install Party GNU/Linux - Le samedi 30 juin 2018 de 14h00 à 19h00.

    L’association (CercLL d’Entraide et Réseau Coopératif autour des Logiciels Libres) vous invite à une install party GNU/Linux, le, dans la salle du Foyer du Peuple 50 rue Brandis 13 005 Marseille.

    Vous avez envie de découvrir un système d’exploitation libre, simple d’utilisation, stable, rapide et sécurisé. Une nouvelle façon d’utiliser votre ordinateur.

    Vous vous sentez une affection naissante pour le Gnou et le, les mascottes de

    Au programme

    DÉCOUVERTE de l’univers des logiciels libres.

    INSTALLATION d’un environnement GNU/ Linux, ainsi que le meilleur des logiciels libres.

    Venez avec votre ordinateur, nous installerons ensemble une distribution avec un ensemble de et pour une utilisation quotidienne.

    Ouvert à tous – accessible aux débutant-e-s

    Une participation de 2 euros est demandée.

    L’adhésion à l’association est de 20 euros annuelle.(L’adhésion n’est pas obligatoire).

    Plan d’accés

    [BE Liège] Linux Install Party - Le samedi 30 juin 2018 de 14h00 à 18h00.

    Une Linux Install Party a lieu tous les derniers samedis du mois de septembre à juin, dans les locaux du Cyber Seniors Énéo de Grivegnée, où je suis animateur.

    L’accès et la participation à l’Install Party est ouvert à tous et est gratuit.

    Vous venez avec votre ordinateur et on y installe le Linux que vous désirez.

    Les installations commencent à 14h et finissent à 18h.
    Prévoyez de venir avant 17h, parfois ça peut durer longtemps.

    [FR Ivry sur Seine] Cours de l’Ecole du Logiciel Libre - Le samedi 30 juin 2018 de 14h30 à 18h30.

    Présentation de l’E2L

    Quel est le rôle de l’école du logiciel libre

    Tout d’abord, ce n’est pas une école comme les autres. Elle n’a pas d’établissement fixe, pas de cours de récréation, pas de carte d’étudiant, ni de diplôme de fin d’année.

    Comme toutes les écoles, son rôle est d’apprendre à ses élèves les logiciels libres, c’est-à-dire

    • comment en trouver de bons parmi les nombreux sites qui en proposent,
    • comment en prendre possession en fonction des licences,
    • comment les installer en fonction de ses besoins,
    • comment les tester et les utiliser,
    • comment en comprendre le fonctionnement pour ensuite les modifier,
    • comment écrire ses propres logiciels libres.

    En fait, l’école du logiciel libre est une université populaire, comme celles qui ont vu le jour en France à partir du 19ᵉ siècle, et dont le but est de transmettre des connaissances théoriques ou pratiques à tous ceux qui le souhaitent. Et pour atteindre ce but, sa forme juridique est de type " association à but non lucratif ".

    Comment fonctionne l’école

    Cette école étant une association, elle possède, comme toutes les autres, un bureau, élu chaque année en assemblée générale, pour l’administrer. Mais elle a aussi des responsables pédagogiques dont le rôle est essentiel, car ce sont eux qui établissent les programmes des cours en fonction des souhaits des adhérents, valident les candidatures des enseignants et affectent les sessions.

    Les membres du bureau et les responsables pédagogiques forment « l’encadrement de l’école ». Tous les membres « encadrants » doivent être membres de l’association.

    Les locaux où se déroulent les cours seront ceux que l’on veut bien nous prêter une salle des fêtes, un théâtre, une salle de réunion publique, un amphi dans une école publique, ou autre.

    Les thèmes des cours sont définis par les adhérents en fonction de leurs envies, de leurs besoins. Les cours sont ensuite décidés par les responsables pédagogiques de l’école en fonction des enseignants disponibles.

    Afin de permettre au plus grand nombre de participer et d’assister aux cours, les sessions se tiennent essentiellement le samedi. Une première de 9h à 12h30, et une autre de 14h à 17h30.

    Programme détaillé sur le site http://e2li.org

    [FR Courbevoie] Assemblée Générale annuelle de l'association StarinuX - Le samedi 30 juin 2018 de 14h30 à 17h00.

    L'association GULL StarinuX vous invite à  son

    ASSEMBLÉE GÉNÉRALE annuelle

    le samedi 30 juin 2018 à 14h30,

    48 rue de Colombes 92 400 Courbevoie

    (SNCF Gare de Courbevoie,  Saint Lazare <=> La Défense).

    Seuls les adhérent(e)s peuvent voter, mais les discussions restent ouvertes à tous les présents.

    Un déjeuner facultatif aura lieu à 12h30.

    Au plaisir de nous rencontrer à l’AG 2018

    Le Bureau de StarinuX

    [FR Poucharramet] Festival AgitaTerre - Le dimanche 1 juillet 2018 de 09h30 à 23h00.

    L’association 3PA Formation vous invite à la cinquième édition du Festival AgitaTerre Nous vous donnons rendez-vous le dimanche 1er juillet au coeur du village de Poucharramet (31), entre la place des Marronniers et La Maison de la Terre

    Venez découvrir des alternatives durables, locales et citoyennes qui font vivre notre territoire. Cette année, le festival investit le thème des Communs venez en apprendre plus

    Un événement gratuit et tout public

    9h30-18h

    Marché de producteurs et artisans-créateurs locaux
    Forum associatif & Village des Communs

    Conférences
    Expositions « C’est quoi les Communs »
    Ateliers tous publics

    Expositions d’artistes sculpteurs sur bois
    Mur d’expression libre
    Vannerie géante collective

    Concerts
    Spectacles et animations

    Buvette & Restauration
    Espace enfants

    20h30 Grand concert en plein air avec notre partenaire La Maison de la Terre

    Programmation et exposants sur www.agitaterre.fr

    Infos agitaterre@3paformation.fr // 3PA 05.61.08.11.30

    Parking sur place
    Adapté aux personnes à mobilité réduite

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Projet de tableau numérique interactif à base de Wiimote (Laboratoire Linux SUPINFO)

    Note: Cet article est le compte-rendu d'un projet personnel visant à créer un tableau numérique interactif avec une Wiimote comme composant principal. Vous pouvez télécharger le code source du logiciel ici (celui-ci se présente sous la forme d'un projet pour l'IDE Code-Blocks).

     

    1. L'idée du projet

    L'idée de ce projet m'est venue au cours d'une session sur le web. Je suis tombé sur un site qui vantait les mérites de ce qu'il appelait le TNWii ; c'est à dire un tableau numérique interactif basé sur les capacités des Wiimotes de la console de Nintendo.
    Le concept à été imaginé par Johnny Chung Lee, un chercheur sur les interactions homme-machine employé chez Microsoft. Il a pensé à réutiliser les caractéristiques de la manette de la console Wii et de la détourner afin d'en trouver d'autres utilisations.
    L'intérêt de cette manette est son capteur infrarouge. Il suffit de lui montrer une ou plusieurs source de lumière infrarouge et d'avoir le logiciel adéquat afin d'obtenir un outil de suivi de points basique. De plus, la Wiimote n'est pas filaire et utilise le protocole Bluetooth, ce qui permet donc de la relier facilement à un ordinateur.
    Johnny Chung Lee a abouti, entre autres choses, à la création d'un tableau numérique interactif. Son idée ayant fait des émules, différents logiciels ont été créés pour améliorer la chose, chacun fournissant plus ou moins de fonctions.
    Mais ces programmes sont en grande majorité écrits pour Windows, et n'ayant personnellement pas réussi à faire fonctionner les rares conçu pour les systèmes Linux, ainsi qu'étant curieux de connaître le fonctionnement d'un programme agissant avec un matériel de ce type, je me mis en tête de coder un logiciel basique pour Linux permettant de faire fonctionner la manette dans le cadre d'un tableau numérique.
    Bien qu'ayant un but fonctionnel, ce projet était principalement voué à m'apprendre des techniques avancées de programmation ainsi que le fonctionnement de petits matériels électronique.

     

    2. Description générale du tableau interactif et recherches préliminaires

    Le tableau interactif est constitué de quatre composants :

    • un projecteur qui affiche l'image de l'ordinateur contre un mur, un écran ou tout autre surface lisse.
    • un stylet infrarouge qui permet d'émettre un point de lumière sur la surface projetée afin d'indiquer un clic de souris.
    • une Wiimote qui récupère la position du point dans l'espace via sa caméra frontale et la transmet à l'ordinateur.
    • et enfin un ordinateur équipé d'un module Bluetooth (intégré ou sur un dongle USB) qui, grâce à un logiciel dédié, traite le signal reçu et effectue un clic de souris à l'emplacement du point infrarouge.

    Ceci donne donc juste la possibilité de faire un « clic gauche » de souris, mais certains logiciel plus évolués permettent d'effectuer des « clics droit » ainsi que d'autres actions.
    Possédant déjà une Wiimote ainsi qu'un ordinateur équipé d'une puce Bluetooth, il me restait donc à concevoir un stylet infrarouge ainsi qu'un programme dialoguant avec la Wiimote.

    Après quelques recherches plus poussées, je pus établir un plan des notions à assimiler et à mettre en pratique pour le développement du logiciel.
    La première chose à choisir était le langage de programmation à utiliser. J'avais tout d'abord opté pour le Python, dont l'interpréteur est très répandu sur les systèmes Linux et dont je possédait déjà des connaissances. Malheureusement, et bien que la bibliothèque de modules de Python soit très fournie, les rares modules conçus pour le support de Bluetooth sont trop anciens et obsolètes. Je me suis donc rabattu vers un autre langage de plus bas niveau : le C.
    Une interface graphique étant prévue pour mon logiciel, je choisis la bibliothèque graphique GTK+ car je l'avais déjà utilisé en Python.
    Ensuite il me fallait pouvoir communiquer avec la Wiimote. Or n'ayant aucune connaissance du protocole Bluetooth, j'allais devoir apprendre son fonctionnement.
    Une fois ceci fait, je devrai faire de même pour connaître la marche interne de la Wiimote ainsi que les commandes à lui envoyer pour lui faire effectuer les actions voulues.
    Il me resterai ensuite la création de l'algorithme de traitement des coordonnées des points infrarouges sur l'image projetée et leur interprétation pour les placer sur l'image réelle de l'écran d'ordinateur.
    Enfin, le tableau blanc interactif n'étant pas constitué de la seule Wiimote et d'un programme, il me fallait une source de lumière infrarouge qu'elle puisse capter. Cette source infrarouge serait incarnée ici sous la forme d'un stylet à construire moi-même.

    La liste des choses à faire ainsi que le choix des technologies faits j'allais pouvoir débuter la conception de mon TNWii.

     

    3. Construction de l'interface et prise en main du protocole Bluetooth

    J'ai donc commencé par faire un schéma afin de bien savoir visualiser ce qu'il y avait à construire au niveau de l'interface.

    Schéma d'interface du logiciel de tableau numérique à base de Wiimote.

    Cette interface est simple mais suffit à obtenir quelque chose de fonctionnel.

    La concrétisation de ce schéma ne m'a pas posé de vrai problème. Une fois que l'on a saisi le fonctionnement de la bibliothèque GTK+ la construction d'une interface n'est pas très compliquée.
    Voici par exemple ce que cela donne sur mon ordinateur :

    Interface du logiciel

    Là où les choses sont devenues plus difficiles, c'est lorsque j'ai dû utiliser le protocole Bluetooth. Celui-ci utilise les mêmes concepts de sockets que la programmation réseau classique, mais n'ayant pas non plus eu l'occasion de pratiquer cette dernière, j'ai dû tout apprendre de zéro. Cela m'a permis entre autre d'acquérir les notions de sockets, threads, mutex et endianess spécifiques à la programmation réseau.
    Mais au départ, j'ai quand même eu des problèmes pour trouver des ressources sur l'utilisation de la bibliothèque Bluez permettant l'accès à la pile Bluetooth sous Linux. Que ce soit en Français ou en Anglais, il y a très peu de documentation sur le sujet. C'est pourquoi, lorsque j'ai pu en trouver une de très bonne qualité, j'en ai effectué une traduction vers le Français car elle pourrait être très utile à tout développeur voulant utiliser le Bluetooth sous Linux.
    Ce document détaille l'utilisation des protocoles RFCOMM et L2CAP (équivalents de TCP et UDP) et donne des exemples d'implémentation. La version originale est disponible ici et ma traduction ici.

     

    4. Fonctionnement de la Wiimote

     

    4.1 Établissement de la connexion Bluetooth

    Le deuxième gros morceau de nouveauté à été la Wiimote. Connaître son fonctionnement n'est pas inné. Heureusement des hackers (au sens premier du terme, à savoir "bidouilleurs") ont effectué un gros travail de rétro-ingénierie, ce qui à aboutit à une documentation détaillant l'utilisation de chaque fonctionnalité pour les programmeurs et qui sera ma principale source de savoir.
    Je vais expliquer ici son fonctionnement en Français, car c'est l'un des buts de ce projet. Attention cependant, beaucoup de notions propres à Bluetooth sont utilisées donc il vaut mieux être à l'aise avec ce dernier.
    Pour établir la connexion avec la manette on utilise donc le protocole Bluetooth, mais il n'est pas nécessaire (bien que ce soit possible) d'effectuer un « pairing » avec celle-ci. Il suffit juste de la placer en mode découverte en appuyant sur le bouton « sync » (situé dans le compartiment des piles). Il est aussi possible, pour les Wiimote de première génération, d'appuyer sur les boutons 1 et 2 en même temps pour lancer le mode découverte.
    Le "nom convivial" (traduction de "friendly name") envoyé alors est RVL-CNT-01 pour les Wiimotes de première génération et RVL-CNT-01-TR pour celles de seconde génération.
    Une fois la découverte activée, deux PSM du protocole L2CAP sont prévus pour communiquer. Le PSM 0x11 est utilisé pour le flux de contrôle et le 0x13 pour le flux de données, bien que dans la réalité le 0x11 soit quasiment inutilisé.

    Note: Pour rappel, le protocole L2CAP est en quelque sorte un équivalent de UDP en Bluetooth et les PSM (pour « Protocoles Services Multiplexers ») sont les noms des ports de ce protocole. Ces numéros de PSM étant donnés en hexadécimal, nous avons ici donc en réalité les ports 17 et 19.

    Il suffit donc pour établir une connexion avec la manette, de la détecter, de récupérer son adresse MAC et d'y connecter un socket avec comme contexte d'adressage les informations données ci-dessus.

     

    4.2 Schéma général des communications

    Ensuite nous pouvons réellement dialoguer avec la Wiimote. Cela se fait par l'envoi de ce que l'on appel des rapports. Les rapports sont des messages constitués d'une suite d'octets dont la valeur est écrite en hexadécimal et qui suivent un format précis.
    Chaque type de rapport ne peut être envoyé que dans un sens. Un rapport entrant se fait dans le sens périphérique -> hôte et sera préfixé d'un octet contenant 0xa1 , alors qu'un rapport sortant se fait dans le sens hôte -> périphérique et débutera lui par un octet contenant 0xa2.

    Voici la liste des types de rapports disponibles pour communiquer avec la Wiimote :

    Sens ID Taille Fonction
    Sortant 0x10 1 Inconnue
    Sortant 0x11 1 Allumage des LEDs
    Sortant 0x12 2 Choix du mode de rapport pour les données envoyées par la Wiimote
    Sortant 0x13 1 Allumage de la caméra infrarouge (1ère partie)
    Sortant 0x14 1 Allumage du haut-parleur
    Sortant 0x15 1 Requête de demande de status
    Sortant 0x16 21 Écriture dans une mémoire ou un registre
    Sortant 0x17 6 Lecture d'une mémoire ou d'un registre
    Sortant 0x18 21 Envoie de données au haut-parleur
    Sortant 0x19 1 Passer le haut-parleur en muet
    Sortant 0xa 1 Allumage de la caméra infrarouge (2ème partie)
    Entrant 0x20 6 Informations de statut de la Wiimote
    Entrant 0x21 21 Données renvoyées lors de la lecture des mémoires et registre
    Entrant 0x22 4 Acquittement d'un rapport sortant (résultat du traitement du rapport ou code erreur)
    Entrant 0x30-0x3f 2-21 Données renvoyées par la Wiimote après le choix du mode de rapport de données.

    Les rapports envoyés ou reçus auront donc la forme suivante :

    Note: Dans la suite, pour les exemples de rapport comme celui ci-dessous, je n'inscrirai pas les 0x au début de chaque octet (bien qu'ils soient en notation héxadécimale) afin de rendre le contenu plus lisible.

    a1 30 00 00

    Ce rapport sera par exemple un rapport entrant (0xa1) contenant des données reçues de la Wiimote (0x30) et dont les deux derniers octets sont les données en question.

    Pour rappel, mon but est de localiser les points infrarouges vus par la Wiimote en récupérant leur coordonnées. Pour obtenir ces coordonnées il lui faut faire nous envoyer un rapport de données (les types 0x30 à 0x3f). Mais il existe plusieurs modes de rapports de données, chacun permettant de récupérer un contenu différent. Il faut donc sélectionner le mode de rapport que l'on veut obtenir. Cela se fait par l'envoi d'un rapport de type 0x12 dédié spécialement à ce choix.
    Le type de rapport 0x12 se présente ainsi :

    a2 12 TT MM

    Nous avons donc un premier octet pour le sens du rapport, un second pour le type, puis deux octets de contenu.
    Le premier octet de contenu, ici nommé TT, permet en activant son bit 2 (c'est à dire en mettant sa valeur à 0x04) de spécifier à la Wiimote que l'on veut qu'elle envoie des rapports de données en continu même si les valeurs sont restées inchangées. S'il est laissé à 0x00, ces rapports ne seront envoyés qu'à chaque changement de valeur.
    Le second, nommé MM, permet de choisir le mode de rapport proprement dit.
    Voici les différents modes disponibles :

    ID Contenu
    0x30
    a1 30 BB BB
    Ce mode retourne 2 octets ( BB ) contenants les valeurs des boutons appuyés de la Wiimote
    0x31
    a1 31 BB BB AA AA AA
    Ce mode retourne :
    • 2 octets ( BB ) contenants les valeurs des boutons appuyés
    • 3 octets ( AA ) contenants les données de l'accéléromètre
    0x32
    a1 32 BB BB EE EE EE EE EE EE EE EE
    Ce mode retourne :
    • 2 octets ( BB ) contenants les valeurs des boutons appuyés
    • 8 octets ( EE ) contenants les valeurs d'un périphérique d'extension que l'on peut brancher à la manette
    0x33
    a1 33 BB BB AA AA AA II II II II II II II II II II II II
    Ce mode retourne :
    • 2 octets ( BB ) contenants les valeurs des boutons appuyés
    • 3 octets ( AA ) contenants les données de l'accéléromètre
    • 12 octets ( II ) contenants les coordonnées des points détectés par la caméra infrarouge
    0x34
    a1 34 BB BB EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE
    Ce mode retourne :
    • 2 octets ( BB ) contenants les valeurs des boutons appuyés
    • 19 octets ( EE ) contenants les valeurs d'un périphérique d'extension que l'on peut brancher à la manette
    0x35
    a1 35 BB BB AA AA AA EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE
    Ce mode retourne :
    • 2 octets ( BB ) contenants les valeurs des boutons appuyés
    • 3 octets ( AA ) contenants les données de l'accéléromètre
    • 16 octets ( EE ) contenants les valeurs d'un périphérique d'extension que l'on peut brancher à la manette
    0x36
    a1 36 BB BB II II II II II II II II II II EE EE EE EE EE EE EE EE EE
    Ce mode retourne :
    • 2 octets ( BB ) contenants les valeurs des boutons appuyés
    • 10 octets ( II ) contenants les coordonnées des points détectés par la caméra infrarouge
    • 9 octets ( EE ) contenants les valeurs d'un périphérique d'extension que l'on peut brancher à la manette
    0x37
    a1 37 BB BB AA AA AA II II II II II II II II II II EE EE EE EE EE EE
    Ce mode retourne :
    • 2 octets ( BB ) contenants les valeurs des boutons appuyés
    • 3 octets ( AA ) contenants les données de l'accéléromètre
    • 10 octets ( II ) contenants les coordonnées des points détectés par la caméra infrarouge
    • 6 octets ( EE ) contenants les valeurs d'un périphérique d'extension que l'on peut brancher à la manette
    0x3d
    a1 3d EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE
    Ce mode retourne :
    • 21 octets ( EE ) contenants les valeurs d'un périphérique d'extension que l'on peut brancher à la manette
    0x3e-f
    a1 3e BB BB AA II II II II II II II II II II II II II II II II II II
    a1 3f BB BB AA II II II II II II II II II II II II II II II II II II
    Les rapports 0x3e et 0x3f sont, lorsqu'ils sont choisit, envoyés alternativement par la manette et retournent :
    • 2 octets ( BB ) à chaque rapport contenants les valeurs des boutons appuyés
    • 2 octets ( AA ) sur deux rapports (donc à ré-assembler) contenants les données de l'accéléromètre
    • 36 octets ( II ) sur deux rapport (donc à ré-assembler) contenants les coordonnées des points détectés par la caméra infrarouge

    Note: Dans la suite, je ne détaillerai que les types de rapport dont je me suis servi. C'est à dire majoritairement ceux en lien avec la caméra infrarouge de la manette.

    Suivant les différents modes, on peut constater que le nombre d'octets renvoyés pour les données infrarouge varie. Pour savoir quelle en est la raison, il faut se pencher sur le format de ces données renvoyées.

    4.3 Allumage et configuration de la caméra infrarouge

    La caméra de la Wiimote a une résolution native de 128x96, qui est ensuite augmenté 8 fois par un processeur interne faisant une analyse sous-pixel, et qui permet d'atteindre une résolution de 1024x768. La manette est capable de renvoyer au total les coordonnées de 4 points infrarouges.

    L'allumage et l'initialisation de la caméra se fait par l'envoi d'une suite de commande précise :

    1. Il faut en premier lieu l'activer en lui envoyant un rapport 0x13 dont le bit 2 de l'octet de charge utile sera à 1. Cette octet de charge utile aura donc la valeur finale de 0x04. :
      a2 13 04
    2. Puis faire de même en lui envoyant un rapport 0x1a dont le bit 2 de l'octet de charge utile sera lui aussi à 1. Cette octet de charge utile aura donc la valeur finale de 0x04. :
      a2 1a 04
    3. La troisième action consiste à écrire 0x08 dans le registre 0xb00030.
      Les registres sont des zones mémoire et écrire dedans se fait par l'envoi d'un rapport 0x16 formaté comme ceci :
      a2 16 MM FF FF FF SS DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD

      Avec :
      • MM pour sélectionner le type de mémoire sur laquelle on veut écrire. On peut le placer à 0x04 pour sélectionner les registres (zones de mémoire vive) ou le laisser à 0x00 pour utiliser la EEPROM (mémoire morte). Il faut bien faire attention à ne pas réécrire la EEPROM et bien placer cet octet à 0x04
      • FF les octets pour choisir le registre sur lequel écrire.
      • SS pour déclarer la quantité de données à écrire (en octets).
      • DD les données à écrire. Si les données ne prennent pas toute la place disponible (ce qui est notre cas), il suffit de remplir les octets restants avec la valeur hexadécimale ff.
      En remplaçant avec nos informations, nous obtenons le paquet ci-dessous :
      a2 16 04 b0 00 30 01 08 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    4. En quatre, il nous faut choisir la sensibilité de la caméra. Cela se fait en écrivant deux blocs de 9 et 2 octets respectivement dans les registres 0xb00000 et 0xb0001a.
      Voici un tableau des différentes valeurs (retrouvées par rétro-ingénierie) pour les deux blocs de sensibilités :
      Bloc 1 Bloc 2 Notes
      00 00 00 00 00 00 90 00 C0 40 00  
      00 00 00 00 00 00 FF 00 0C 00 00 Sensibilité maximale
      00 00 00 00 00 00 90 00 41 40 00 Haute sensibilité
      02 00 00 71 01 00 64 00 fe fd 05 Wii niveau 1
      02 00 00 71 01 00 96 00 b4 b3 04 Wii niveau 2
      02 00 00 71 01 00 aa 00 64 63 03 Wii niveau 3
      02 00 00 71 01 00 c8 00 36 35 03 Wii niveau 4
      07 00 00 71 01 00 72 00 204 1f 03 Wii niveau 5
      C'est le dernier octet du bloc 1 qui détermine l'intensité de la sensibilité, et plus sa valeur est grande, moins la sensibilité est élevée. Il est recommandé de placer la sensibilité aussi haut que possible, en évitant la pollution lumineuse autre que le stylet, pour pouvoir bénéficier au maximum de l'analyse sous-pixel du processeur de la Wiimote. Plus la sensibilité est réduite, plus la résolution sous-pixel l'est aussi, et plus on se rapproche de la résolution native de la caméra (128x96).
      Nous envoyons donc les deux rapports afin d'écrire dans les registres la sensibilité choisie :
      // Rapport d'écriture du bloc 1
      a2 16 04 b0 00 00 09 00 00 00 00 00 00 ff 00 0c ff ff ff ff ff ff ff
      // Rapport d'écriture du bloc 2
      a2 16 04 b0 00 00 02 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    5. La cinquième étape consiste au choix du mode d'envois des données par la Wiimote. Il existe trois modes différents renvoyant chacun des données de tailles différentes. Ces tailles correspondants à celles des différents modes de rapports de données vus plus haut. Il faudra donc choisir le mode de rapport de la Wiimote suivant le mode de données choisit pour la caméra.
      Mais ce qu'il faut savoir tout d'abord, c'est la façon dont la manette gère les points qu'elle voit. Elle dispose de quatre slots et lorsqu'elle reconnaît un point lumineux, elle l'associe aux premier slot disponible. C'est à dire que si un objet sort de son champs de vision puis revient, il retrouvera le numéro de slot qu'il avait auparavant.
      Ci-dessous un petit tableau des modes disponibles :
      Mode
      Numéro du mode
      Basique
      1
      Étendu
      3
      Complet
      5
      Et voici un descriptif de chaque mode :
      • En mode basique, la caméra retourne 10 octets de données correspondants aux coordonnées X et Y de chaque point. Chaque coordonnées est codée sur 10 bits et s'étend de 0 à 1023 pour les X et de 0 à 767 pour les Y. Les données retournées sont divisées en deux paquets de 5 octets contenants chacun les coordonnées de 2 points.
        Voici un schéma pour comprendre comment sont répartis les bits de chaque point :
         
        Bit
        Octet
        7
        6
        5
        4
        3
        2
        1
        0
        0
        X1
        1
        Y1
        2
        Y1
        X1
        Y2
        X2
        3
        X2
        4
        Y2
      • Le mode étendu est quasiment similaire au mode basique, à part le fait qu'une information en plus est embarquée pour chaque point, à savoir sa taille. Cette taille est une valeur estimé et va de 0 à 15. L'ajout de cette valeur fait que chaque point est codé sur 3 octets entiers. Il faut donc au total 12 octets pour transporter les valeurs des 4 points.
        Ci-dessous un tableau détaillant la façon dont sont organisés les bits de chaque points :
         
        Bit
        Octet
        7
        6
        5
        4
        3
        2
        1
        0
        0
        X1
        1
        Y1
        2
        Y1
        X1
        S
      • Enfin, en mode complet, chaque point est codé sur 9 octets. Les trois premiers octets contiennent les même informations que le mode étendu, auquel on ajoute les coordonnées de la surface englobant chaque point ainsi qu'une valeur de l'intensité perçue du point. Il faut donc un total de 36 octets pour transporter toutes ces informations, ce que seul permettent les rapports 0x3e et 0x3f combinés.
        Voici le schéma correspondant à la façon dont sont organisés les bits de chaque point dans ce mode :
         
        Bit
        Octet
        7
        6
        5
        4
        3
        2
        1
        0
        0
        X1
        1
        Y1
        2
        Y1
        X1
        Y2
        X2
        3
        0
        X min
        4
        0
        Y min
        5
        0
        X max
        6
        0
        Y max
        7
        0
        8
        Intensité
    6. Enfin, pour valider tous nos choix, il faut répéter l'étape numéro 3 en envoyant la valeur 0x08 au registre 0xb0003.

    Une fois cette série d'étapes effectuée, la Wiimote devrait commencer à renvoyer les octets selon le mode de rapport de données et le mode de la caméra infrarouge que l'on a choisi.

     

    4.4 Extraction des coordonnées des points reçues

    Il ne suffit pas de faire une conversion des octets reçus au format hexadécimal vers la notation décimale pour obtenir les coordonnées des points.
    Comme on l'a vu dans les tableaux précédents, les coordonnées X et Y sont chaque fois codées sur 10 bits répartis sur 2 octets. Il faut donc convertir les valeurs hexadécimales au format binaire, isoler les bits intéressants, les associer avec leurs correspondants et reconvertir le tout en décimal.
    Ça c'est pour la description rapide, je vais détailler ci-dessous la démarche complète.

    Note: Je ne traiterai ici que de la conversion d'un seul point, vu que c'est ce que j'aurai concrètement dans le cadre de mon tableau numérique. Mais de toute façon, une fois que l'on a compris la procédure avec un point, le faire pour quatre n'est pas plus compliqué.

    Tout d'abord, il faut savoir que j'ai choisi le mode basique comme organisation des coordonnées renvoyées par la caméra infrarouge car je n'ai seulement besoin que de ces coordonnées sans informations supplémentaires. Ce mode de caméra renvoyant 10 octets, je n'ai le choix comme type de rapport de donnée qu'entre les rapports 0x36 et 0x37. J'ai personnellement opté pour le type 0x36.
    Pour rappel, les rapports que je vais recevoir de la Wiimote auront la forme suivante :

    a1 36 BB BB II II II II II II II II II II EE EE EE EE EE EE EE EE EE

    Donc, si on les numérote à partir de 0, les octets correspondants aux données infrarouges vont du numéro 4 au numéro 13. Dans ces 10 octets, les 5 premiers contiennent les coordonnées des 2 premiers points et les 5 suivants ceux des 2 derniers points. N'ayant qu'un point à convertir nous allons nous concentrer sur les données des 5 premiers octets.
    Imaginons que ceux-ci aient les valeurs suivantes :

    57 A4 30 00 00

    D'après le tableau de description du mode basique, nous pouvons savoir que :

    • le premier octet (0x57) contient les 8 bits de poids faible de la coordonnée X du premier point
    • le deuxième octet (0xA4) contient les 8 bits de poids faible de la coordonnée X du premier point
    • le troisième octet (0x30) contient les 2 bits de poids fort des coordonnées X et Y du premier et second points.

    Les autres octets contenant seulement les coordonnées du point 2, qui sont vides et ne nous intéressent pas, nous les laissons de côté.
    Nous allons maintenant convertir en binaire les valeurs de ces trois octets :

    Numéro de l'octet
    Valeur Hexadécimale
    Valeur binaire
    0
    0x57
    01010111
    1
    A4
    10100100
    2
    30
    00110000

    Grâce à ces valeurs binaire on peut recomposer les coordonnées complètes de 10 bits. Pour mieux les discerner, je les ait placées dans le tableau présentant l'organisation des bits du mode basique :

     
    Bit
    Octet
    7
    6
    5
    4
    3
    2
    1
    0
    0
    0
    1
    0
    1
    0
    1
    1
    1
    1
    1
    0
    1
    0
    0
    1
    0
    0
    2
    0
    0
    1
    1
    0
    0
    0
    0
    3
    0
    0
    0
    0
    0
    0
    0
    0
    4
    0
    0
    0
    0
    0
    0
    0
    0

    Sont coloriés en orange les bits de la coordonnée X et en bleu les bits de la coordonnée Y.
    Et maintenant en réorganisant les bits et en faisant la conversion en décimal, on obtient les coordonnées compréhensibles :

    Coordonnée
    Réorganisation en binaire
    Valeur convertie en décimal
    X
    1101010111
    855
    Y
    0010100100
    164

    La conversion est finie. Dans mon programme j'ai implémenté cette même démarche afin d'effectuer la conversion des coordonnées.

     

    5. Conversion des points vus par la Wiimote en points à inscrire sur l'écran

    Les coordonnées des points vus par la Wiimotes ne sont pas applicables directement pour l'affichage à l'écran. Ceci pour deux raisons :

    1. La caméra de la manette n'a pas forcément la même définition que l'écran sur lequel on va afficher.
    2. Les coordonnées récupérées sont définies dans le repère formé par la résolution de la caméra de la Wiimote et non par rapport à l'image projetée de l'écran qui nous intéresse.

    Pour ces deux raisons, il faut donc effectuer une conversion. Ce qui nous fait rentrer dans le domaine de la vision par ordinateur.

    Pour expliciter un peu mieux la chose rien ne vaut un schéma :

    Schéma montrant la différence de coordonnées d'un point entre ce que voit la Wiimote et sa position réelle sur la zone affichée.

    Sur ce schéma, est délimité en bleu la zone visible par la Wiimote. Celle-ci est rectangle et mesure 1024x768 pixel.
    Ensuite en vert, est symbolisé le périmètre de l'écran projeté et vu par la manette. Il n'est pas forcément aligné avec le cadre de la Wiimote suivant comment cette dernière est placée. Il n'est pas forcément rectangle pour les mêmes raisons.
    Enfin en rouge, le point infrarouge émit par le stylet.

    Il nous faut donc déduire, à partir des coordonnées du point [x, y] vues par la Wiimote, les coordonnées du point [x', y'] par rapport à l'écran projeté.
    Pour cela, il faut calculer la transformation entre les dimensions réelles de l'écran projeté (par exemple 1440x900) et celles vues par la Wiimote. Cela se fait par la résolution d'un système d'équations exprimé sous forme d'une matrice tel que décrit dans ce document.
    Des applications dans différents langages de ce document théorique sont disponibles sur cette page du forum developpez.net.
    La première application de l'utilisateur pseudocode en Java décrit la transformation inverse de celle que je doit mettre en œuvre. La seconde en C, de l'utilisateur luxigo donne la transformation dans les deux sens, mais est incomplète. Il a donc fallut que j'écrive à partir de ces exemples, la suite de calcul nécessaire à mes besoins.

    Malheureusement, n'ayant pas parfaitement compris l'algorithme en question, je me suis contenté de l'appliquer dans mon logiciel et je me garderai d'en fournir ici une explication potentiellement erronée. Je laisse cependant libre consultation de mon code si quelqu'un à besoin d'effectuer la même opération que moi à l'avenir.

     

    6. Déplacement du curseur aux coordonnées calculées

    Bien qu'amené à changer dans un futur plus ou moins proche avec l'arrivée de Wayland, les systèmes Linux utilisent actuellement le serveur d'affichage X.org. Afin de déplacer le curseur sur l'écran et de simuler des clics de souris, je me suis servis de la Xlib qui permet d'interagir avec ce serveur d'affichage.
    On peut trouver sur le Web des exemples de codes permettant de bouger le curseur assez facilement, mais pour effectuer des clics de souris cela devient très compliqué. Une façon plus méconnue d'effectuer cette action est d'utiliser une extension de la Xlib nommée XTest. Bien qu'étant une extension, elle est intégrée sur la grande majorité des distributions Linux.
    Grâce à celle-ci, les actions voulus peuvent être faites en appelant une simple fonction.
    Voici un exemple rapide :

    #include &ltX11/extensions/XTest.h&gt
    int X = 192;
    int Y = 42;
    // Création de la connexion au serveur X
    Display *d = XOpenDisplay(NULL);
    // Déplacement du curseur de la souris aux coordonnées X, Y
    XTestFakeMotionEvent(d, -1, X, Y, CurrentTime);
    // Clic de souris (bouton 1)
    XTestFakeButtonEvent(d, 1, True, CurrentTime);
    // Déclic de souris (bouton 1)
    XTestFakeButtonEvent(d, 1, False, CurrentTime);
    // Application des actions
    XSync(d, 0);

    De plus amples explications avec des liens vers d'autres exemples sont accessibles dans la bibliographie à la fin de ce document.

     

    7. Le stylet infrarouge

    Le stylet infrarouge est la seule partie matérielle de ce tableau numérique interactif à construire soit même.
    Le schéma électronique de ce stylet est des plus simple vu qu'il n'est constitué que d'une LED infrarouge, d'un interrupteur bouton-poussoir et d'une pile :

    Schéma électronique d'un stylet infra-rouge

    Seul le choix de la LED est déterminant pour le stylet. Pour ce composant, deux paramètres rentrent en compte :

    • Pour que la tâche de lumière qu'elle projette soit la plus resserrée possible, il faut choisir la LED avec un angle de demi-intensité (noté φ) le plus petit possible. Idéalement il faut qu'il soit au moins inférieur à 30°.
    • L'autre paramètre important est la longueur d'onde de la lumière émise par la LED. Il est préférable qu'elle soit comprise entre 800 et 1000nm.

    Cette LED n'étant pas un laser, il faudra tout de même la maintenir très près du support lors de l'utilisation du stylet pour que la Wiimote puisse voir la tâche de lumière qu'elle émet.

    Enfin, voici un exemple de mon stylet :

    Photo de mon stylet infrarouge

    On y retrouve tous les composant cités précédemment. En dehors du fil que je n'ai pas pu faire loger à l'intérieur, ce stylet est maniable et tiens bien en main.

     

    8. Informations sur le tableau numérique à base de Wiimote

    Voici quelques informations à savoir lorsque l'on veut mettre en place ce type de tableau interactif.
    Premièrement il possède des avantages, mais aussi des inconvénients.
    Avantages :

    • Il est très économique. En dehors du projecteur, il faut compter le prix de la Wiimote (une quarantaine d'euros), ceux des composants du stylet (j'en ai personnellement eu pour 1,75€ pour le bouton-poussoir et la LED infrarouge) et celui de l'adaptateur Bluetooth s'il n'est pas intégré à l'ordinateur que l'on souhaiter utiliser. Ceci est au final largement moins qu'un tableau interactif disponible sur le marché.
    • Installable rapidement

    Inconvénients :

    • Il faut éviter les sources infrarouges parasite. Le soleil par exemple en émet, et s'il est trop puissant, il vient diminuer le contraste entre le fond et le point infrarouge du stylet.
    • Il faut toujours veiller à ne pas se situer entre le point infrarouge et la Wiimote, ce qui oblige à tendre le bras.

    Une fois ces caractéristiques prises en compte, il y a quelques autres choses à savoir pour exploiter au mieux ce tableau interactif. Tout d'abord les angles de vision de la Wiimote sont de 33 degrés horizontalement et 23 degrés verticalement. Il faudra donc veiller à placer la manette à la bonne distance pour qu'elle puisse voir tout l'écran projeté. Pour rappel, il faudra aussi veiller à ne pas se placer entre la manette et l'écran.

     

    9. Résultat final

    Au final, j'ai réussi à concevoir le programme auquel je pensais pour qu'il soit fonctionnel. Le développement de ce logiciel m'aura permis d'apprendre de multiples notions avancées en C (sockets, endianess, threads, mutex, utilisations de bibliothèques diverses, etc). J'ai commenté le plus possible le code afin qu'une autre personne intéressée puisse le comprendre.

    De plus, j'encourage d'autres étudiants à implémenter le concept de tableau numérique pour l'utiliser en classe.

     


     

    Bibliographie

    Concept général :

    Documentations sur la programmation C nécessaires au développement du logiciels :

  • La sortie de KDE 4.3 est proche (Linux Certif)

    La troisième release candidate de KDE 4.3 vient de sortir.

    KDE 4.3 amènera moins de fonctionnalités de les deux précédente version de KDE car les développeurs se sont concentré à améliorer encore les performance et la stabilité.

    Les responsables de l'assurance qualité de KDE viennent de décider de realiser une version release candidate supplémentaire afin de tester convenablement quelques changement récent.

    La sortie de KDE 4.3 est donc retardée de une semaine, si tout ce passe bien elle arrivera donc le 4 aout.

  • Mise à jour des pages de manuel de Fedora (Linux Certif)

    Je suis motivé en ce moment :)

    Une fois de plus, j'ai mis à jour les pages de manuel, cette fois à partir des pages de la distribution Fedora.

    Depuis peu, mon ordinateur fonctionne grâce à Arch Linux, ce qui a posé pas mal de problème pour l'importation des pages. J'ai vérifié les pages manuellement et tout semble correct mais il est impossible d'être sûr lorsqu'on manipule autant de pages. N'hésitez pas à écrire si vous trouvez des problèmes.

    C'est 18545 pages de plus qui ont été ajouté au site (toutes langues confondues). Au total, le site héberge désormais plus de 200 000 pages! :)

    Il semble que Fedora ai réalisé un important effort de documentation. Beaucoup de nouvelle pages et de nouvelles traductions ont été introduite.

  • De la différence entre PAM et NSS (Laboratoire Linux SUPINFO)

    De la différence entre PAM et NSS

     

    Note: ce document est le dernier d'un cycle de trois articles sur l'authentification sur les systèmes Linux. Les premier se trouvant ici et le deuxième .

    Lorsque l'on aborde l'authentification sous Linux, on est vite confronté aux deux mécanismes que sont PAM et NSS. Et à ce moment là une question peut venir à l'esprit : Quelle est la différence entre PAM et NSS qui permette de choisir l'une ou l'autre de ces solutions ?
    C'est donc à cette question que je vais essayer de répondre ici.

     

    Il est vrai qu'au premier abord ces mécanismes semblent faire la même chose, à savoir pouvoir s'authentifier sur un système Linux en utilisant différents services (fichiers plats locaux, serveur LDAP, serveur Active Directory, etc).

    Mais en regardant de plus près, on peut s'apercevoir qu'ils n'ont qu'une petite partie commune.
    En effet, il suffit simplement de s'intéresser à leurs noms pour comprendre leur fonction réelle.
    Pour PAM, Pluggable Authentification Modules, on se rend bien compte que son rôle est l'authentification des utilisateurs. Par contre, pour NSS, Name Service Switch, c'est une autre histoire. NSS est, comme son nom l'indique, une série d'interrupteurs pour choisir les services de données du système. Ces données peuvent être les utilisateurs, et dans ce cas là cela peut rentrer en compte pour l'authentification, mais ils peuvent être aussi beaucoup d'autres choses comme des noms de domaines, des listes d'alias d'adresses email, des correspondances entres des numéros de port et des services, etc. Le rôle de NSS est en fait de gérer les sources qui alimenteront la liste de ces types de données.

    Afin de mieux comprendre à quel moment PAM et NSS peuvent se chevaucher, il suffit de s'intéresser à l'évolution de l'authentification sur les systèmes Linux.

    À l'origine, les applications authentifiaient l'utilisateur en faisant appel aux bibliothèques du système. Ces dernières allaient alors regarder dans les fichiers /etc/passwd et /etc/shadow afin de vérifier l'existence de l'utilisateur et la conformité du mot de passe entré.
    On peut schématiser ce processus ainsi :

    Schéma du processus d'authentification basique sous Linux

    Ensuite, avec l'arrivée de NSS, on a pu élargir le nombre de sources pour les données du système. Concrètement, au lieu d'aller chercher les données seulement dans les fichiers plats, les bibliothèques système ont pu utiliser d'autres sources comme un serveur LDAP, une base de données SQL, un serveur Active Directory, etc. Mais ce sont toujours ces bibliothèques qui gardent le rôle d'authentifier l'utilisateur et donc cette authentification se fait sur le système local.
    Cela a au final changé notre précédent schéma ainsi :

    Schéma du processus d'authentification sous Linux avec NSS

    Enfin, lorsque les distributions Linux ont implémenté PAM, l'authentification n'a plus forcément été faite par les bibliothèques du système. C'est PAM qui à ce moment là choisit comment se fait l'authentification, suivant les modules qui sont activés. Si le module est pam_unix.so, l'authentification sera toujours gérée par les bibliothèques système en fonction des données fournies par NSS. Au contraire, si le module est pam_ldap.so ou pam_krb5.so, l'authentification se fera via un serveur LDAP ou Kerberos. C'est à dire que dans ce dernier cas, c'est au serveur externe que sera déléguée la vérification du jeton (ou mot de passe) et non plus sur le système local.
    En reprenant notre schéma, on arrive à ce résultat :

    Schéma du processus d'authentification sous Linux avec PAM et NSS

    On se rend maintenant compte pourquoi on peut avoir l'impression que PAM et NSS se chevauchent dans leur rôle.

    Les principales différences que l'on peut noter entre ces deux mécanismes sont donc les suivantes :

    • Avec NSS l'authentification est gérée par le système local, alors qu'avec PAM elle est délégué à un serveur externe (lorsque le module choisit n'est pas pam_unix.so). L'avantage qui en découle pour PAM est que le mécanisme d'authentification sera le même sur toutes les machines du réseau.
      Au contraire, cela pouvait poser problème avec NSS car chaque machine vérifiait le mot de passe suivant son propre mécanisme. En effet, si les machines d'un parc utilisent NSS et qu'une de celles-ci créé un utilisateur avec un mot de passe chiffré en MD5 qui est ensuite stocké dans un serveur LDAP, l'utilisateur ne pourra pas se connecter sur un machine chiffrant ses mots de passe en SHA-2 car la vérification sera fausse.
    • PAM est réellement dédié à l'authentification contrairement à NSS qui lui gère les sources qui alimenteront une liste de données. PAM permet donc d'effectuer diverses actions en plus de la simple vérification du jeton. Il peut par exemple limiter l'accès de l'utilisateur à certains horaires ou certains moyens (console, interface graphique) ou empêcher l'authentification après un certain nombre d'échecs.
      C'est aussi parce qu'il est dédié à l'authentification que PAM peut authentifier un utilisateur via Kerberos contrairement à NSS. En effet Kerberos utilise des jetons, ce qui ne sert à rien à NSS pour alimenter les listes de données qu'il a à gérer.

    Pour conclure, le choix entre PAM et NSS est une question qui a déjà été évoquée sur le Web, mais sans obtenir de réponse précise et développée. J'espère donc avoir pu éclairer les utilisateurs qui se retrouvent un jour confrontés au système d'authentification de Linux.

     

    Ressource supplémentaire :

     

  • La gestion de l'authentification sous Linux avec PAM (Laboratoire Linux SUPINFO)

    La gestion de l'authentification sous Linux avec PAM

     

    Note: ce document est le second d'un cycle de trois articles sur l'authentification sur les systèmes Linux. Le premier se trouvant ici et le troisième .

    Il est possible de personnaliser finement tous les aspects de l'authentification des utilisateurs Linux et ce pour chaque application du système.

     

    Linux-PAM

    En effet, il a été choisi de centraliser le mécanisme d'authentification système sous Linux pour plusieurs raisons :

    • afin d'éviter de réimplémenter les mêmes schémas d'authentification dans tous les logiciels.
    • ne pas avoir à recompiler toutes les applications lors du changement des méthodes d'authentification.
    • permettre à l'administrateur de choisir quel mécanisme d'authentification chaque application utilise.

    Ces raisons ont conduit à la naissance de Linux-PAM (pour Pluggable Authentication Modules, soit en français Modules d'Authentification Enfichables).

    Avant PAM, pour pouvoir authentifier un utilisateur, une application faisait appel aux bibliothèques du système (via getpwnam() par exemple) qui la plupart du temps (à moins que NSS ne lui dise d'utiliser une autre source ailleurs) regardaient dans les fichiers /etc/passwd et /etc/shadow pour vérifier l'existence de l'utilisateur et la validité de son mot de passe. Cette technique fonctionnait mais n'était pas très souple pour les raisons évoquées précédemment.

    Dorénavant, une application compatible PAM délègue cette tâche à Linux-PAM (via un appel à la PAM-API), et celui-ci, suivant les directives inscrites dans ses fichiers de configuration, autorise ou non l'authentification.

    Mais PAM ne s'occupe pas seulement de la vérification du mot de passe. Il offre un total de six primitives d'authentification grâce à des modules fournissant certaines fonctions. Ces primitives sont regroupés dans les quatre catégories que voici :

    account
    • Gère la disponibilité du compte. Cette disponibilité regroupe l'accès au serveur sur lequel est stocké le compte, mais aussi si l'utilisateur est autorisé à utiliser ce compte à ce moment donné et par ce moyen. Par exemple on pourra spécifier qu'il n'est autorisé à se connecter qu'entre 8h30 et 17h00 et seulement en console.
    auth
    • Premièrement, c'est dans cette catégorie que l'on vérifie le moyen d'authentification (le mot de passe, le jeton, etc).
    • Ensuite c'est ici que l'on affecte les credentials de l'utilisateur, c'est à dire ses privilèges et les groupes auxquels il appartient.
    password
    • Les modules classés dans cette catégorie permettent simplement de mettre à jour le jeton d'authentification de l'utilisateur. Cela peut être parce que ce jeton à expiré, ou, si c'est un mot de passe, parce que l'utilisateur veut le modifier.
    session
    • Mise en place de la session
    • Fermeture de la session
    Pour ces deux aspects, cela prend en compte l'écriture dans les journaux système, l'affichage d'un message personnalisé, l'assignation des variables d'environnement, ou bien encore le montage/démontage de certains lecteurs.

     

    Les fichiers de configuration

    La configuration de PAM peut se faire de deux façon différentes. Soit dans un fichier unique nommé /etc/pam.conf ou soit dans une série de fichiers situés dans le répertoire /etc/pam.d. À noter que la présence de ce répertoire fait que PAM ignorera le fichier pam.conf.
    La façon la plus claire de faire et aussi la plus répandue est l'utilisation du dossier pam.d et c'est cette méthode que je vais détailler ici.

    Chaque fichier du répertoire pam.d gère la configuration du service homonyme. Par exemple le fichier /etc/pam.d/sudo configure l'authentification faite par l'intermédiaire de l'outil sudo.
    Il y a cependant une exception à cela. Le fichier /etc/pam.d/other contient la configuration pour les services n'ayant pas leur propre fichier.

    Ensuite, ces fichiers sont tous organisés suivant le même schéma. Ils sont composés d'une suite d'instructions qui constituent ce que l'on nomme une pile. Chaque instruction est inscrite sur une ligne et chaque ligne est organisée comme ci-dessous :

    catégorie contrôle chemin-du-module arguments-du-module

    Ces lignes sont donc empilées les unes au-dessus des autres pour combiner les actions des modules qui les composes. On pourra par exemple avoir une ligne ayant un module d'authentification vers un serveur LDAP, suivi d'une autre avec un module d'authentification vers un serveur Kerberos pour enchaîner ces deux méthodes.

    Dans l'instruction d'exemple ci-dessus, la catégorie est choisie parmi celles décrites dans la section précédente (account, auth, password ou session).

    Le contrôle est le comportement que la PAM-API doit adopter lorsque le module échoue à sa tâche. Il peut soit prendre la forme d'un simple mot clé, ou soit une forme plus compliquée composée d'une suite de valeur=action entourées de crochets.

    Voici les valeurs que peut prendre ce contrôle lorsque c'est un simple mot clé :

    required Si un module required échoue, un statut d'erreur sera retourné par la PAM-API, mais seulement après avoir exécuté les autres instructions du fichier ayant la même catégorie.
    requisite Comme pour required un statut d'erreur est retourné si un module requisite échoue, mais cependant la main est directement redonné à l'application appelante sans exécuter les modules suivants de la pile. Le statut d'erreur retourné est celui du premier module required ou requisite à échouer.
    sufficient Si aucun module précédent n'a échoué et l'exécution de ce module est un succès, les autres instructions de la pile ne sont pas exécutés et la main est redonnée à l'application en lui signalant la validation de l'authentification.
    Si le module échoue, son statut de retour est ignoré et le reste des instructions de la pile est exécuté.
    optionnal Le succès ou l'échec d'un tel module n'est important que s'il est le seul module de la pile de cette catégorie, sinon son statut de retour est ignoré.

     

    Quant à la syntaxe complexe du contrôle, elle a la forme suivante :

    [valeur1=action1 valeur2=action2 ...]

    valeurN correspond au code de retour de la fonction invoquée dans le module. Ce code de retour dépend des modules et est l'un des suivants (pour connaître ceux que peut renvoyer un module, se reporter à la page de manuel de celui-ci) :

    success Succès de l'établissement de la session.
    open_err Le module ne peut pas être ouvert (par exemple il peut ne pas être trouvé).
    symbol_err Un objet nécessaire au module (par exemple un fichier) est introuvable.
    service_err Une erreur interne au module est survenue.
    system_err Une erreur système est survenue (par exemple si l'appel à la PAM-API n'est pas formaté correctement).
    buf_err Une erreur mémoire est survenue.
    perm_denied Une permission d'accès à été refusée à l'utilisateur.
    auth_err L'authentification à échouée. Cette erreur arrive généralement car le jeton (ou mot de passe) est invalide.
    cred_insufficient Pour une raison quelconque l'application n'a pas les privilèges nécessaires pour authentifier l'utilisateur.
    authinfo_unavail Les informations d'authentification sont inaccessibles. Par exemple si ces informations sont sur un serveur LDAP et qu'il y a une coupure réseau, ce statut sera retourné.
    user_unknown L'utilisateur est inconnu.
    maxtries Le nombre maximal d'essais pour l'authentification à été atteint.
    new_authtok_reqd Le compte utilisateur est valide mais le jeton à expiré. L'action généralement faite par l'application suite à ce statut est de demander à l'utilisateur de changer son jeton.
    acct_expired Le compte utilisateur à expiré.
    session_err L'établissement de la session à échouée.
    cred_unavail Impossible de retrouver les credentials de l'utilisateur.
    Les « credentials » sont tout ce qui identifie de manière unique l'utilisateur, comme par exemple son numéro identifiant, les groupes auquel il appartient, etc.
    cred_expired Les credentials de l'utilisateur ont expirés.
    cred_err Impossible d'assigner ses credentials à l'utilisateur.
    no_module_data Des données spécifiques au module n'ont pas été trouvées.
    conv_err Erreur de conversation.
    authtok_err Le module n'a pas été capable d'obtenir un nouveau jeton d'authentification (par exemple lors du changement de celui-ci).
    authtok_recover_err Le module n'a pas été capable de retrouver l'ancien jeton.
    authtok_lock_busy Le module n'a pas été capable de changer le jeton d'authentification car celui-ci était verrouillé.
    authtok_disable_aging Le vieillissement du jeton (en vue de son expiration) à été désactivé.
    try_again Les tests préalables au changement du jeton d'authentification ont échoués, réessayer plus tard. Ces tests peuvent être par exemple le bon accès au serveur Kerberos si le jeton est un ticket Kerberos.
    ignore Ignorer le résultat de ce module. Il ne participera donc pas au code de retour de la pile de modules.
    abort Erreur critique, sortie du module immédiate.
    authtok_expired Le jeton d'authentification a expiré.
    module_unknown Le module est inconnu.
    bad_item L'application a essayée de définir ou d'accéder à un objet non disponible (un fichier par exemple).
    conv_again  
    incomplete  
    default Toute valeur précédemment listée non mentionnée explicitement.

     

    Quant à actionN il peut prendre une des formes suivantes :

    ignore Lorsqu'utilisé sur une pile de modules (donc que ce n'est pas le seul module de cette catégorie), le statut de retour de ce module ne participera pas au choix du code de retour envoyé à l'application.
    bad Cette action indique que le code de retour doit être considéré comme indicatif si le module échoue. Si ce module est le premier de la liste à échouer, sa valeur sera utilisée comme valeur de retour après l'exécution des autres instructions.
    die Équivalent à bad avec comme effet de quitter immédiatement la pile de modules (sans exécuter les modules suivants) et redonner la main à l'application.
    ok Cette action dit à PAM que le statut de retour de ce module doit contribuer directement au code de retour global renvoyé par la PAM-API après avoir lu la pile de modules. Autrement dit, si le statut renvoyé initialement devait être PAM_SUCCESS, le statut de retour du module remplacera cette valeur. À noter tout de même, si l'état initial de la pile était un code d'échec, cette valeur ne serait pas remplacée.
    done Équivalent à ok avec comme effet de quitter immédiatement la pile de modules (sans exécuter les modules suivants) et redonner la main à l'application.
    N (un entier non signé) Équivalent à ok avec comme effet de sauter les N modules suivants de la pile. Un N égal à 0 n'est pas permis (et serait égal à ok).
    reset Efface le statut de retour de la pile de modules et recommence avec le prochain module.

     

    En sachant cela, les quatre mots clés de la forme simple (required, requisite, sufficient et optionnal) peuvent se représenter de la façon suivante avec la syntaxe complexe :

    • required : [success=ok new_authtok_reqd=ok ignore=ignore default=bad]
    • requisite : [success=ok new_authtok_reqd=ok ignore=ignore default=die]
    • sufficient : [success=done new_authtok_reqd=done default=ignore]
    • optionnal : [success=ok new_authtok_reqd=ok default=ignore]

    L'élément suivant des instructions est le chemin-du-module qui peut être soit le chemin complet vers le module, ou soit le chemin relatif depuis le dossier par défaut des modules (cela peut être par exemple /lib/security, /lib64/security, /lib/x86_64-linux-gnu/security/, etc).

    Enfin, on termine les instructions par les argument-du-module. Pour les connaître, il faut consulter la page de manuel du module en question. Les arguments étant séparés par des espaces, afin de pouvoir placer un espace dans un argument, il faut entourer celui-ci de crochets.

     

    Les modules

    Les modules sont au cœur du système PAM. C'est grâce à eux que l'on peut définir le schéma d'authentification. Ils s'occupent chacun de la gestion d'un mécanisme d'authentification spécifique.
    Voici une liste des modules les plus communs :

    Nom Catégories compatibles Description courte
    pam_access.so Toutes Détermine l'endroit depuis lequel l'utilisateur à le droit de se connecter (en local, depuis telle adresse IP, etc...)
    pam_debug.so Toutes Aide à débugger le comportement de PAM en renvoyant le code de retour demandé par l'utilisateur.
    pam_deny.so Toutes Refuser l'accès de l'utilisateur. On invoque généralement ce module après avoir essayé les autres méthodes d'authentification.
    pam_echo.so Toutes Retourne un message texte personnalisé.
    pam_env.so Auth
    Session
    Permet de définir les variables et de supprimer les variables d'environnement de la session utilisateur.
    pam_exec.so Toutes Exécute une commande personnalisée.
    pam_faildelay.so Auth Change le délais d'attente avant de considérer l'authentification comme un échec pour une application.
    pam_filter.so Toutes Peut se placer pour filtrer les entrées/sorties entre l'utilisateur et l'application. Il peut par exemple forcer les minuscules surt tout ce que l'utilisateur écrira une fois loggé. Ne fonctionne cependant que pour les tty et les applications basées sur stdin/stdout.
    pam_ftp.so Auth Permet de se connecter à un serveur FTP.
    pam_getenv.so   Récupère les variables d'environnement depuis le fichier /etc/environment.
    pam_group.so Auth Assigne à l'utilisateur les groupes auquel il appartient.
    pam_issue.so Auth Affiche le contenu d'un fichier issue (par défaut /etc/issue) avant le prompt de l'utilisateur.
    pam_krb5.so Toutes Permet l'authentification via un serveur Kerberos.
    pam_lastlog.so Session Affiche une ligne d'information sur la dernière connexion de l'utilisateur.
    pam_ldapd.so Toutes Permet l'authentification via un serveur LDAP.
    pam_limits.so Session Permet de limiter l'usage des ressources système à l'utilisateur (charge CPU, nombre maximal de processus, etc).
    pam_listfile.so Toutes Accepte ou refuse l'authentification des utilisateurs en fonction du contenu d'un fichier.
    pam_localuser.so Toutes N'accepte que les utilisateurs listés dans le fichier /etc/passwd.
    pam_loginuid Session Applique l'UID de l'utilisateur au processus demandant l'authentification.
    pam_mail.so Auth
    Session
    Affiche un message si l'utilisateur a de nouveaux emails.
    pam_mkhomedir.so Session Créé le répertoire de l'utilisateur ci celui-ci n'existe pas.
    pam_motd.so Session Affiche le message du jour (par défaut le contenu du fichier /etc/motd).
    pam_mount.so Auth
    Session
    Donne la possibilité de monter un disque local ou distant à l'ouverture de la session utilisateur.
    pam_mysql.so ? Permet l'authentification via un serveur MySQL.
    pam_namespace.so Session Créé un espace de nommage pour la sessions (voir plus de détails dans la page de manuel du module).
    pam_nologin.so Account
    Auth
    Empêche les utilisateurs non-root de se connecter.
    pam_permit.so Toutes Module qui autorise tout le temps l'accès. À utiliser avec précaution pour des raisons de sécurité.
    pam_pwhistory.so Password Retient les anciens mots de passe des utilisateurs pour forcer à en avoir un différent lors du renouvellement de celui-ci.
    pam_rhosts.so Auth Permet l'authentification des utilisateurs sur la machine locale par SSH.
    pam_rootkok.so Auth Authentifie l'utilisateur sans avoir besoin de rentrer un mot de passe, du moment que son UID est 0 (l'UID de l'utilisateur Root).
    pam_securetty.so Auth Restreint la connexion de Root aux tty (terminaux) listés dans /etc/securetty.
    pam_selinux.so Session Met en place le contexte de sécurité pour la session qui s'ouvre.
    pam_sepermit.so Account
    Auth
    L'authentification est permise seulement si l'utilisateur possède une entrée dans fichier /etc/security/sepermit.conf.
    pam_shells.so Account
    Auth
    Autorise l'authentification seulement depuis les shells listés dans /etc/shells.
    pam_succeed_if.so Toutes Valide l'authentification suivant des tests faits sur les caractéristiques de l'utilisateur (nom, UID, GID, shell, home, etc).
    pam_tally2.so Account
    Auth
    Maintient un compteur du nombre d'essais d'authentifications. Ce compteur est réinitialisé lorsque l'authentification réussie. Utile pour bloquer un compte après un certain nombre de tentatives ratées.
    pam_time.so Account Permet de restreindre l'accès de l'utilisateur suivant l'heure de la journée, le jour de la semaine, le service sur lequel il se connecte et le terminal depuis lequel il se connecte.
    pam_timestamp.so Auth
    Session
    Permet de valider automatiquement l'authentification sans demander de mot de passe si la dernière authentification réussie est inférieur à une certaine date.
    pam_tty_audit.so Session Permet d'activer l'enregistrement de ce que l'utilisateur écrira dans un tty.
    pam_umask.so Session Définie l'umask sur la création des fichiers pour la session qui s'ouvre.
    pam_unix.so Toutes Authentification via les mécanismes standard, c'est à dire en faisant appel aux bibliothèques du système (ces dernières regardant par défaut dans les fichier /etc/passwd et /etc/shadow).
    pam_userdb Account
    Auth
    Authentification via une base de données Berkeley DB.
    pam_warn.so Toutes Module qui inscrit dans les logs l'authentification de l'utilisateur.
    pam_wheel.so Account
    Auth
    Autorise l'accès seulement aux utilisateurs du groupe wheel (ou du groupe au GID 0 si le groupe wheel n'existe pas).
    pam_winbind.so Toutes Permet l'authentification via un serveur Active Directory.
    pam_xauth.so Session Permet de conserver les clés xauth (cookies du serveur X) lors du changement de session.

     

    Il existe bien d'autres modules qui permettent d'utiliser tout types de serveurs pour l'authentification ou d'autres types de jetons (comme par exemple des cartes magnétiques). Mais vu qu'ils sont utilisés plus rarement, je vous laisse les découvrir par vous même.

     

    Conclusion

    PAM est un mécanisme très puissant pour la gestion de l'authentification sous Linux. Bien qu'assez complexe sur certains aspects, il permet à l'administrateur d'avoir un total contrôle de l'accès au système par les utilisateurs. C'est aussi un point clé lorsque l'on veut centraliser l'authentification des machines d'un réseau.

     

    Ressources supplémentaires

     

  • Les bons outils GNU/Linux pour travailler à SUPINFO (Laboratoire Linux SUPINFO)

    Les bons outils GNU/Linux pour travailler à SUPINFO

     

    Tu es étudiant à SUPINFO, tu aimes ton système GNU/Linux et tu voudrais travailler dessus le plus souvent possible ? Alors voici une sélection d'outils qui vont essayer de te rendre la vie plus simple pour effectuer les différents travaux à rendre durant ta scolarité, tout en restant sur ton système préféré.
    Ce billet s'adresse principalement aux nouveaux venus, mais j'espère qu'il fera connaître quelques outils à certains utilisateurs plus avancés des systèmes Linux.

    Je passerai dans cet article sur le choix de votre outils de traitement de texte préféré que vous soyez adepte du cliquodrome, en utilisant par exemple LibreOffice, ou plutôt barbus préférant se concentrer sur le contenu et laissant l’esthétique au choix d'un algorithme comme avec LaTeX.

     

    1. Un bon virtualiseur

    À SUPINFO un grand nombre de matières nécessitent l'utilisation d'un logiciel de virtualisation. Les machines virtuelles ainsi fournies sont conçus pour être utilisées avec un logiciel de l'éditeur VMware (VMware Player, WMware Workstation, etc...). Mais bien que ces logiciels tournent sous Linux, on peut toujours rechercher une solution plus libre. C'est le cas de VirtualBox. Ce logiciel prend en charge les disques virtuels au format VMDK (format VMware) et il suffit souvent de juste changer quelques options dans les paramètres de la machine virtuelle pour que celle-ci fonctionne sur VirtualBox.

    VirtualBox offre ainsi quelques avantages comme par exemple l'intégration native (sans avoir besoins d'installer les additions client) de la souris sur les systèmes invités Linux (le curseur de la souris ne reste pas « bloqué » à l'intérieur de la VM).

    Durant ma scolarité à SUPINFO, j'ai personnellement toujours réussi à utiliser les machines virtuelles des cours avec VirtualBox.

    Le seul gros problème que j'ai eu à été lors de l'utilisation de gros logiciels pour Windows Server (en l'occurence Exchange et Sharepoint). Une fois ces logiciels installés, les VMs sont devenues inutilisables tellement chaque action demandait énormément de temps pour s'effectuer. Cela se passait donc avec un système invité Windows sur un système hôte Linux. La solution de contournement que j'ai trouvé, à été de retourner temporairement sur mon système natif Windows. Et en utilisant la même version de VirtualBox, les machines sont devenues très fluides à utiliser.

    Mais à part ça j'ai toujours pu me débrouiller avec ce magnifique logiciel.

     

    2. Faire de bonnes captures d'écran

    Dans les TP SUPINFO il est souvent demandé de répondre aux questions en justifiant les procédures mises en œuvres par des captures d'écran. Ces TP étant d'une durée limitée, il est inutile de perdre du temps dans la prise de ces captures. Un bon outils dédié à cette tâche vous sera donc indispensable.

    Sur les plate-formes GNU/Linux, l'utilitaire le plus réputé pour effectuer des captures d'écran est Shutter, disponible sous licence GPLv3 sur son site officiel ou dans le gestionnaire de paquets de votre distribution préférée.

    Grâce à lui vous pourrez capturer soit un bureau entier (pratique si vous avez plusieurs bureaux virtuels et que vous ne voulez pas en changer pour prendre votre capture d'écran), une fenêtre seule, un élément d'une fenêtre (très utile par exemple pour capturer uniquement la zone de votre machine virtuelle et non la fenêtre entière de votre virtualiseur), ou encore une section de l'écran que vous aurez choisi, un menu, une infobulle et même une page web en installant le paquet gnome-web-photo (ce qui pourra vous être utile lors d'un projet de développement web).

    Vous pourrez lancer la capture depuis la fenêtre du logiciel mais aussi depuis l'icône présente dans la zone de notification de votre gestionnaire de bureau.

    Mais ce n'est pas tout, car vous aurez peut-être besoin d'expliciter la signification d'une portion de la capture en l'encadrant ou en y ajoutant une annotation. Et autant éviter d'ouvrir un autre programme dans ce but. Shutter vous permet d'ajouter ces annotations, ainsi que diverses formes et icônes sur votre capture.

    Shutter est donc un logiciel très complet qui vous fera gagner un temps très précieux lors des évaluations.

     

    3. Dessinez de jolis diagrammes

    Dans les projets de groupes ainsi que dans certains TP il est nécessaire de faire un ou plusieurs diagrammes pour expliquer l'architecture d'un programme ou d'un parc informatique.
    Il n'y a malheureusement pas encore d'outil ultime sous GNU/Linux et qui soit aussi avancé qu'un Visio mais on peut trouver quelques alternatives :

    Le premier d'entre eux est Dia, logiciel assez vieux et dont le développement est arrêté. Il aurait pu être bien mais maintenant ses capacités sont loin des standards actuels. Je tenais quand même à le mentionner car il était bon en son temps.

    Ensuite, si vous utilisez LibreOffice, vous pourrez profiter de son module Draw qui permet de faire des schémas et dispose d'une bibliothèque de formes assez importante. Avec lui vous pourrez obtenir des diagrammes assez évolués, mais on reste quand même derrière le concurrent de la suite office de Microsoft.

    Enfin dernier logiciel, plus récent, et selon moi le plus abouti : Pencil.
    Outre les formes basiques et les objets de diagramme habituels, Pencil fournit des éléments pour construire des schémas d'interfaces graphiques pour systèmes de bureau (Windows, Linux) ou portables (Android, iOS). Ces dernières fonctions le rendent très utile pour créer des ébauches d'interface avant de se lancer dans le développement.
    Pencil utilise l'environnement d'exécution XULrunner comme Firefox, ce qui lui permet d'être disponible en tant qu'application stand-alone ou en addon de Firefox.
    Il lui reste tout de même deux petit points noir. Les releases de ce logiciels sont assez éloignées dans le temps, ce qui donne l'impression que le projet n'avance pas vite, et deuxièmement, il reste quelques bugs par-ci par-là.
    Mais malgré cela, Pencil est un très bon logiciel de création de schémas.

     

    4. Autres outils intéressants

    Il n'y a pas que les « gros » logiciels dans la vie. De petits utilitaires en ligne de commande peuvent aussi rendre de grand services.

    Celui auquel je pense en particulier est ipcalc. Lors des cours de réseau (Cisco), ou si dans un TP vous devez mettre en place un nouveau réseau de toute pièce, il faudra obligatoirement passer par l'étape de calcul des plages d'adresses IP, des masques de sous-réseau, etc...
    On peut bien sûr le faire à la main, mais en entreprise on préfère toujours la solution la plus rapide.
    Ainsi, en lui fournissant en paramètre, l'adresse réseau et le masque que vous aurez choisi, ipcalc vous calculera automatiquement le nombre d'adresses dont vous disposerez par plage, les adresses de début et de fin à attribuer au postes ainsi que l'adresse de broadcast.
    Ipcalc ne prenant en compte qu'IPv4, si vous avez besoin d'adresses en version 6, tournez vous vers son cousin sipcalc.

    Dans une autre catégorie, vous pourrez utiliser le programme watch qui lancera la même commande en boucle à intervalle défini et vous permettra de visualiser un quelconque changement. C'est utile par exemple si vous faites des tests de connexion à un serveur que vous installez ou configurez et ainsi vous rendre compte à quel moment il est en bonne marche sans avoir à relancer la commande manuellement.

     

    Conclusion

    Le système Linux, dispose ainsi d'un grand nombre d'utilitaires pouvant vous faciliter la vie. Testez ceux qui vous plaisent et exploitez votre système à son maximum !

  • Mise à jour des pages de manuel pour MeeGo 1.1 (Linux Certif)

    Suite à la mise à jour pour Ubuntu, j'ai découvert un bug dans l'algorithme qui crée les liens entre les pages de manuel.

    Je viens de corriger ça et j'en ai profité pour importer de nouvelles pages de manuel.

    Cette fois, les pages viennent de la distribution MeeGo. La version 1.1 de Meego vient de sortir, c'est donc cette version qui a été importé.

    Assez peu de nouvelles pages ont été importé. Parmi celles-ci, quelques pages inédite de quelques nouveaux outils:

    • bugle
    • gldb-gui
    • Chrome (navigateur par défaut de MeeGo pour Netbook, curieusement cette page de manuel est absente des autres distributions)
    • yumdb
    • etc
  • France Culture: que reste-t-il du logiciel libre ? (Journaux LinuxFR)

    Bon jour Nal !

    L'émission Du grain à moudre d'hier, sur France Culture, posait cette question: « Que reste-t-il du logiciel libre ». Des représentants de Framasoft et de Microsoft tentaient de répondre à la question. On peut écouter l'émission en podcast.

    J'écoutais vaguement en faisant la cuisine… J'en ai néanmoins déduit une conclusion:

    • Le modèle économique du logiciel libre, qui consiste à vendre un service plutôt que le logiciel l'a emporté. C'est du moins le modèle économique que le représentant de Microsoft considère dorénavant le plus viable.
    • Le logiciel libre, entendu comme 4 libertés, prospère dans les piles logicielles éloignées de l'utilisateur final, mais peine à s'imposer dans les logiciels plus proches de l'utilisateur final.
    • L'éthique que certains (dont moi) associent au logiciel libre, de maîtrise de son outil de travail ou de ses données perd du terrain. Non seulement parce que le modèle du service (dans les nuages) s'est imposé, mais aussi parce que d'une manière générale, plus l'on s'approche de l'utilisateur final, moins on trouve de logiciel libre.

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Rejoindre le labo, entrer en contact avec la communauté (Laboratoire Linux SUPINFO)

    Si vous êtes à Caen, Clermont Ferrand, Lyon, Paris ou Rennes, il existe déjà des étudiants qui travaillent en local que vous devriez contacter (cf. le guide des labo de l'an dernier pour retrouver les contacts). Vous devriez aller vous inscrire sur le site de votre campus que vous retrouverez dans cette liste.

    Si vous êtes le premier étudiant de ce labo sur votre campus, vous pouvez créer un compte ici même. Si de nombreux étudiants se joignent à vous, il vous sera possible de demander l'ouverture d'un site dédié.

    Pour communiquer, nous vous recommandons de rejoindre le réseau de messagerie instantannée décentralisé XMPP, qui repose sur une liste d'amis permanente. Le salon de discussion du labo est : labo-linux@conference.labo-linux.org

    Si vous n'avez pas de compte, vous avez la possibilité d'en créer un sur http://xmpp.labo-linux.org Ce client Web offre une interface Responsive pour téléphones ainsi qu'un réseau social. Il existe des clients lourds tels que Gajim, Pidgin ou Adium.

     

    image

  • Mise à jour des pages de manuel pour Ubuntu 10.10 (Linux Certif)

    J'ai récemment reçu un email sympa sur la fonctionnalité "Pages de manuel" du site. Suite à cela et à la récente mise à jour 10.10 de Ubuntu, j'ai décidé de prendre le temps nécessaire pour importer les nouvelles pages de manuel.

    Les pages de manuel n'avaient pas été mises à jour depuis environ un an. À ma grande surprise, énormément de nouvelle page ont été introduite. Quelques exemples de nouvelles pages:

    Au total, ce n'est pas moins de 37325 pages qui ont été importé (toute langues confondues et y compris les mises à jour de pages existante). J'espère que ça aidera quelqu'uns d'entre vous :)

  • Algo de compression JPEG waifu2x (Journaux LinuxFR)

    Salut les moules qui font du graphisme ou qui aiment les Anime.

    Je suis tombé sur une info qui je l'espère pourra intéresser certains (d'où ce journal, parce que perso, je m'en bat le coquillart).

    Disclaimer: Je ne m'y connais pas du tout dans le domaine. Mon coquillart non plus.

    Il s'agit d'un algo pour compresser en JPEG, qui serait apparemment spécifiquement pensé pour mieux gérer les images issues du monde de l'Anime.

    Ci-dessous l'exemple donné sur le github du monsieur qui est a l'origine de l'algo et de son implémentation qui est en Lua sous licence MIT et propose de la ligne de commande ainsi qu'une interface Web mais a la mauvaise idée de dépendre spécifiquement d'un GPU Nvidia.

    L'algo utilise des réseaux de neurones à convolution. Il y a donc une phase "d'apprentissage" pots-installation (qui nécessite des nombreux exemples de qualitai)!

    Une interface web de démonstration est également disponible ici.

    2D character picture (HatsuneMiku) is licensed under CC BY-NC by piapro [piapro](http://piapro.net/en_for_creators.html)

    https://github.com/nagadomi/waifu2x
    http://waifu2x.udp.jp/

    Lire les commentaires

  • Le WeTab maintenant à partir de 254€ (Linux Certif)

     Le WeTab, la tablette Linux basée sur Meego, est maintenant vendu à 253,99€ pour la version Wifi, et 333€ pour la version 3G.

    Pour rappel, le Wetab est une tablette sortie l'année passée et se voulait complètement à contre courant des autres tablettes.

    Quelques caractéristiques:

    • Linux complet avec X11 et gestionnaire de packet (plutôt qu'un Linux édulcoré pour téléphone)
    • MeeGo (plutôt que Android)
    • Processeur Intel Atom (plutôt que ARM)
    • Plutôt ouvert et avec une communautée
    Les raisons de la baisse de prix sont inconnues. Personellement, j'épère qu'un nouveau modèle va arriver. La possibilité que le projet est abandonné n'est pas a exclure.
  • LinuxFr.org : seconde quinzaine de mai 2018 (Journaux LinuxFR)

    Nonante-septième épisode dans la communication entre les différents intervenants autour du site LinuxFr.org : l’idée est tenir tout le monde au courant de ce qui est fait par les rédacteurs, les admins, les modérateurs, les codeurs, les membres de l’association, etc.

    L’actu résumée ([*] signifie une modification du sujet du courriel) :

    Avertissement

    Ceci est un second message pour prévenir certains de nos visiteurs qui nous transmettent inutilement des infos sensibles via leur lecteur de flux RSS/Atom, infos qui se retrouvent stockées dans nos logs web.

    Format par défaut d'un log du serveur web Nginx (source) :

    log_format combined '$remote_addr - $remote_user [$time_local] '
                        '"$request" $status $body_bytes_sent '
                        '"$http_referer" "$http_user_agent"';
    

    Certains utilisateurs nous transmettent leur nom d'utilisateur distant (pas forcément gênant, mais inutile).

    Par contre, certains nous transmettent leur nom d'utilisateur ET leur mot de passe. On a ainsi leur nom d'utilisateur dans le champ remote_user mais aussi leur nom d'utilisateur et leur mot de passe en clair dans le champ http_referer, sous la forme http://login:pass@linuxfr.org/journaux.atom ou https://login:pass@linuxfr.org/news.atom. Cela concerne 6 utilisateurs différents (tous utilisateurs de FreshRSS), dont 1 a été identifié et contacté en privé. Pour les cinq autres, à savoir Jeoffrey, jm, lionel, SVNET et titoko, je vous suggère d'arrêter de nous envoyer votre mot de passe, puis de changer de mot de passe étant donné qu'il a fuité, et aussi d'utiliser préférentiellement la version HTTPS du flux souhaité. N'hésitez pas à me contacter en privé si vous avez des questions (oumph CHEZ linuxfr.org).

    La version FreshRSS 1.11.0 du 2018-06-03 corrige ce problème Strip HTTP credentials from HTTP Referer in SimplePie #1891.

    Statistiques

    Du 16 au 31 mai 2018

    • 1371 commentaires publiés (dont 11 masqués depuis) ;
    • 344 tags posés ;
    • 99 comptes ouverts (dont 9 fermés depuis) ;
    • 33 entrées de forums publiées (dont 1 masquée depuis) ;
    • 32 liens publiés (dont 1 masqué depuis) ;
    • 26 dépêches publiées ;
    • 30 journaux publiés (dont 1 masqué depuis) ;
    • 3 entrées nouvelles, 1 corrigée dans le système de suivi ;
    • 0 sondage publié ;
    • 2 pages wiki publiées (dont 1 masquée depuis).

    Listes de diffusion (hors pourriel)

    Liste webmaster@ - [restreint]

    • R.A.S.

    Liste linuxfr-membres@ — [restreint]

    • R.A.S.

    Liste meta@ - [restreint]

    • R.A.S.

    Liste moderateurs@ - [restreint]

    • [Modérateurs] Dépêche Refaire linuxfr
    • [Modérateurs] contenu problématique
    • [Modérateurs] nfsw
    • [Modérateurs] URL d'une dépêche

    Liste prizes@ - [restreint]

    • R.A.S.

    Liste redacteurs@ - [public]

    • R.A.S.

    Liste team@ - [restreint]

    • [team linuxfr] Optimize MySQL
    • [team linuxfr] Login/mot de passe envoyé en clair dans une URL HTTP sur LinuxFr.org
    • [team linuxfr] Login/mot de passe envoyé en clair dans une URL HTTP sur LinuxFr.org
    • [team linuxfr] Login/mot de passe envoyé en clair dans une URL HTTP sur LinuxFr.org
    • [team linuxfr] Test passage en Jessie
    • [team linuxfr] Joker.com: Your domains are about to expire (expiration report)

    Liste webmaster@ — [restreint]

    • R.A.S.

    Canal IRC adminsys (résumé)

    • mises à jour de sécurité
    • le support sécurité normal pour Debian GNU/Linux 8 Jessie s'arrête au 17 juin
    • expiration du certificat au 3 juin et discussion sur le renouvellement
    • deux conteneurs mis à jour en Jessie, en attendant le passage en Stretch
    • le conteneur de développement redirige tout le trafic en HTTPS désormais
    • une boucle de courriels entre un système de ticket et notre gestionnaire de liste de diffusion
    • travaux en cours pour nettoyer le dépôt git d'administration système (avec des fichiers générés par l'outil d'automatisation Ansible notamment)

    Tribune de rédaction (résumé)

    • Migration de GIMP vers GitLab ajoutée dans la dépêche sur la 2.10.2
    • Demande de retours sur la dépêche GrafX2 par le développeur principal
    • Une correction post-publication

    Tribune de modération (résumé)

    • du spam (dont un robot réutilisant des extraits de phrases)
    • modération d'une image déplacée
    • expiration de notre certificat X509 Gandi Wildcard au 3 juin
    • évocation du renouvellement du CNNum (on aurait pu mentionner les entrées au comité de prospective de la CNIL)
    • migration de deux conteneurs en Debian Jessie

    Commits/pushs de code https://github.com/linuxfrorg/

    • Merge pull request #222 from fredplante/master
    • Fix typo
    • (svgtex) fixes duplicate xlink attribute on svg result
    • (epub) Use https for LinuxFr.org URLs

    Divers

    • Geek Faëries du 1 au 3 juin : conférence « LinuxFr.org, 20 ans que ça geeke » et table ronde « Ces plates‐formes du Libre qui soutiennent les communautés » avec l'Agenda du Libre et En Vente Libre. Plein de mercis à Bookynette pour le Village du libre, à l'équipe organisatrice des GF, et à Marco et Marius pour l'hébergement.
    • Proposition de conférence soumise + table ronde + demande de stand pour les RMLL 2018 Strasbourg

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Tutoriel : Comment utiliser la forge GitLab du labo pour gérer un projet ? (Laboratoire Linux SUPINFO)

    Initialiser un nouveau projet :

    1. Créer un compte sur la forge : http://code.labo-linux.org/users/sign_up
    2. Se connecter : http://code.labo-linux.org/users/sign_in
    3. Ajouter votre clé SSH : http://code.labo-linux.org/profile/keys
    4. Créer un nouveau projet : http://code.labo-linux.org/projects/new
    5. Suivre les instructions de lignes de commande GIT à exécuter pour initialiser le dépôt

    Le dossier ainsi créé va suivre les modification de tous vos fichiers. Vous devez maintenant apprendre à utiliser GIT en suivant dans l'ordre cette série de tutoriels : https://www.atlassian.com/fr/git/tutorial

    Si la ligne de commande vous rebute, il y a un client multiplateforme extrèmement complet : http://www.syntevo.com/smartgit/download (veillez à prendre la licence complète gratuite à usage non commercial).

    Pour que le versionnage soit utile, il faut Commit/Push à chaque fois que quelque chose est complété (comme un bug, une fonctionnalité, etc). Cela évite d'avoir des régressions et de pouvoir faire machine arrière le cas échéant.


    Découper son projet en toutes petites étapes :

    Cela permet d'y voir plus clair et de savoir par où commencer. Vous augmenterez votre motivation en évitant la paralysie de la feuille blanche.

    1. Se rendre sur l'interface Issues de votre projet (les liens sont à adapter) : http://code.labo-linux.org/root/demo/issues
    2. Cliquer sur New issue
    3. Décrire une tâche de l'ordre de « faire un hello world avec le framework X », « gérer le login/logout », « envoyer un email sur telle action », « créer une page de statistiques » ...
    4. Optionnellement, vous pouvez rattacher ces issues à des milestones (c'est un jalon, une version)


    Autres fonctionnalités utiles :

    1. Dans les champs texte, GitLab gère des symbols actifs comme le "@" (vous suggèrera les pseudos des membres) et le "#" (vous suggèrera vos issues).
    2. Préciser le numéro d'une issue dans un message de commit créé un référencement du commit dans l'issue. Exemple : le message de commit "Hello World #1" fera apparaitre un nouveau commentaire "mentionned in commit xxxxxx" dans l'issue n°1.
    3. Vous pouvez fermer automatiquement des issues dans vos messages de commit ! À découvrir en lisant ceci : https://about.gitlab.com/2013/09/22/gitlab-community-edition-6-dot-1-released/


    Git est un outil extrèmement puissant que vous découvrirez au fur et à mesure de vos besoins. Travailler en équipe requiers une réelle organisation en dehors de l'outil : répartition de tâches, tests préalables avant toute mise en commun pour limiter l'instabilité du logiciel, découpage en jalons, etc.

    Vous trouverez des réflexions sur les « workflows » (manière de s'organiser) sur cette page : https://www.atlassian.com/fr/git/workflows


    Gestion de projet plus globale

    La gestion d'issues proposée par GitLab ne peut pas se soustraire à une gestion d'équipe plus globale. Les Méthodes Agiles que vous découvrirez pendant votre cursus proposent de grands concepts qui évitent à de votre groupe de s'enrayer :

    1. Une réunion de départ qui dégage les jalons du projet, c'est à dire un premier découpage de ses grandes étapes qui n'entre pas dans le détail mais permet de fixer des échelles de temps
    2. Une revue hebdomadaire obligatoire, qui permet de définir à l'avance un objectif court terme pour l'équipe
    3. Un point journalier rapide, même s'il ne s'est rien passé, où chaque membre de l'équipe doit avouer ses difficultés et exprimer ce qui a été fait. Cela permet d'identifier au plus tôt qui a besoin d'aide.
    4. Une revue de projet (et une seule) toutes les deux semaines / un mois pour statuer sur l'avancée du jalon en cours ainsi que sur la prévision du prochain.

    Cette structuration de l'équipe par des cérémonies ponctuelles dans le temps neutralise l'effet « sous-marin » et permet à chaque membre de l'équipe de savoir où se situent les autres.

    L'objectif n°1 de ces méthodes est de faire passer le client et la qualité du logiciel avant toute chose. En itérant régulièrement, votre travail évoluera sur des bases saines car validerez au fur et à mesure qu'il correspond toujours aux attentes du client. La gestion des bugs devient ainsi prioritaire sur les fonctionnalités, si cela est pertinent. Ce fonctionnement est en totale opposition aux cahiers des charges dont le but est de figer un processus jusqu'à son aboutissement.

    Les Méthodes Agiles sont un genre de framework qui délimite bien d'autres routines d'équipe qui ne sont pas toujours adaptées à la situation : à vous de prendre ce qui vous plait ! C'est l'essence même de ces méthodes.

  • Compilation de VSCode sous Centos 6 (Journaux LinuxFR)

    Il y a quelques mois, le camarade freem< nous avait fait part de ses déception concernant VSCode parce qu'il ne trouvait pas matière à troller de manière satisfaisante.

    J'ai voulu me faire mon propre avis et l'essayer par moi même. Malheureusement, ma machine pro est une Centos 6 et la libc disponible beaucoup trop vielle. Impossible de l'essayer et donc de partager avec vous mes impressions pertinentes et de kalitay :(. Quelques moules m'ont gentiment expliqué que je n'avais qu'à me sortir les doigts du fondement et le compiler moi même, que si je voulais vraiment, je pouvais.

    Plusieurs mois plus tard, j'ai enfin trouvé le temps et la motivation d'essayer. Et à ma grande surprise, ce fut plutôt facile.

    # Installation d'une version décente de GCC, python et git depuis les dépots 
    # Softawre Collections
    sudo yum install centos-release-scl
    sudo yum install devtoolset-7 python27 rh-git29
    
    # Installation de NodeJS et Yarn
    curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
    curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
    sudo yum install nodejs yarm
    
    # Activation de l'environnement de compilation
    scl enable python27 devtoolset-7 rh-git29 bash
    
    # Récupération des sources de VSCode
    git clone https://github.com/Microsoft/vscode.git
    cd vscode
    
    # Augmentation de la limite du nombre de fichiers ouverts à 166384
    # (il peut être nécessaire de modifier /etc/security/limits.conf pour atteindre
    # cette valeur)
    ulimit -n 166384
    
    # Récupération des dépendances
    # (On défini la variable CXX parce que sinon un des makefile utilise 
    # /usr/bin/g++ qui ne supporte pas C++11 )
    CXX=$(which g++) yarn
    
    # Construction du paquet
    yarn run gulp vscode-linux-x64-min
    
    # "Instalation"
    mv ../VSCode-linux-x64 ~/opt/vscode

    Et voilà ! À moi les joies des d'un éditeur moderne !

    $ ~/opt/vscode/bin/code-oss
    /home/killruana/opt/vscode/bin/../code-oss: error while loading shared libraries: libgtk-3.so.0: cannot open shared object file: No such file or directory

    Lourd est le parpaing de la réalité sur la tartelette aux fraises de nos illusions. :'(

    Rendez-vous dans quelques mois pour la suite de mes aventures avec vscode.

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Sortie de Sailfish OS 2.2.0 (Journaux LinuxFR)

    Bien que n'étant pas propriétaire d'un téléphone fonctionnant avec Sailfish OS, je regarde régulièrement les avancées de ce système alternatif à Android et iOS.

    Bonne nouvelle, j'ai découvert ce matin qu'une mise a jour a été publiée le 7 juin : la version 2.2.0

    Celle-ci supporte (enfin) la version double SIM du Sony Xperia X (F5122) en plus la version simple SIM (F5121) qui était un prérequis pour moi pour ne pas avoir deux téléphones dans la poche. Le communiqué met en avant d'autres fonctions qui sont maintenant apportées comme le déverrouillage par empreinte, un meilleur autofocus de l'appareil photo et une refonte de l'application de galerie.

    La note de publication détaille davantage les nouveautés et les anomalies identifiées, avec toujours quelques difficultés sur des équipements Bluetooth.

    Est-ce que des lecteurs ont un téléphone qui fonctionne avec Sailfish pour obtenir leur avis et retour d'expérience ? J'utilise le téléphone de façon très basique (téléphone, mail, internet et GPS) pour le travail et un usage perso. Le partage de connexion internet avec le PC est néanmoins indispensable ! Éventuellement quelques mini jeux pour passer le temps mais c'est assez exceptionnel.

    Merci

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Votre police préférée (Journaux LinuxFR)

    Tout d'abord, non, ce journal ne traite pas des forces de l'ordre, il parle de police d'écriture. Un journal abordant les sujets connexes au maintient de l'ordre comme la maréchaussé est dans les tuyaux n'ayez crainte.

    Les polices d'écriture (la manière de dessiner les caractères de notre alphabet latin) se séparent en trois groupes : Le sérif, le sans sérif et le monospace (aussi appelé monochasse par les allergiques à la langue de Shakespeare). Le monospace pouvant être tantôt avec, tantôt sans sérif…

    Des foultitudes de polices existent pour chacune de ces catégories. Citons les plus connues : Arial, Time New Roman, Helvetica, DejaVu, Liberation ou encore Nimbus.

    Les polices « sans sérif » (sans empattement) ont ma préférence pour la lecture de texte sur un écran d'ordinateur. Dans une émulation de terminal je ne peux envisager autre chose que du « monospace » (chaque caractère occupe exactement la même largeur), sans sérif bien entendu… Pourtant tous les livres que je lis utilisent une police « sérif » et je m'en accommode.

    Vous pourrez trouver un énorme choix de polices, certaines étant libres d'autres non, sur le site http://www.dafont.com/ (vous l'avez sûrement deviné, « police » se dit "font" en anglais) qui semble être le site de référence dans ce domaine.

    Certaines polices ont une destiné remarquable, par exemple « Comic Sans MS » était une police créée par Microsoft (Vincent Connare pour être précis), à la base à destination des œuvres pour enfants. Pourtant je vois autour de moi de nombreuses personnes (qui ne sont objectivement plus des enfants) la choisir comme police par défaut pour écrire et lire leur mail. Moi je la trouve horrible et elle me fusille les yeux. Mais des personnes m'ont avoué qu'après en avoir testé plusieurs c'était la « plus jolie », la « plus agréable ».

    La police « Impact » (créée en 1965) est aussi devenue incontournable pour des textes courts, tels ceux que l'on rencontre sur les mèmes.

    Et vous, quelle est votre police préférée ? Celle que vous utilisez à l'écran ou pour vos publications destinées à un autre support.

    Pour ma part je trouve que Consolas est assez réussie comme police à chasse fixe pour un terminal. Arial ou Helvetica me conviennent pour afficher du texte sur mon écran. Je continue de me poser cette question : « Pourquoi tous les livres, les journaux que je lis, utilisent une police avec empattement alors que sans c'est beaucoup joli ? »

    Lire les commentaires

  • Support à long terme de Debian: une opportunité à ne pas manquer (Dépêches LinuxFR)

    Nous le savons tous, la période de maintenance de chaque version stable de Debian (environ 3 ans ¹) est insuffisante pour répondre aux attentes de nombreuses entreprises qui se tournent alors vers Ubuntu LTS ou RedHat. Pour répondre à la demande d'un support étendu un groupe de travail « Debian LTS » a été mis en place avec deux objectifs principaux:

    1. mettre en place l'infrastructure nécessaire
    2. convaincre les entreprises de mutualiser leurs ressources pour assurer le travail nécessaire

    Le premier objectif est atteint puisqu'un dépôt « squeeze-lts » est désormais prêt à l'emploi. Il s'agit maintenant d'atteindre le second en convainquant le maximum d'entreprises soit d'apporter des moyens humains soit de participer financièrement.

    Si l'on réussit à fédérer suffisamment d'entreprises autour de ce projet ² (et nous savons tous que nombreuses sont celles qui utilisent Debian sur leurs serveurs), alors le support à long terme deviendra la norme, et Debian 7 puis Debian 8 en bénéficieront à leur tour.

    C'est pourquoi je vous invite à récupérer le formulaire de soutien et à présenter le projet à votre encadrement pour voir sous quelles modalités votre entreprise pourrait participer et ainsi rejoindre le rang des entreprises contributrices à Debian LTS. Merci!

    ¹ En fait chaque version de Debian est maintenue jusqu'à la sortie de la version suivante + 1 an. Comme les versions sortent environ tous les deux ans, cela donne trois ans de support sécurité en règle générale. C'est insuffisant, avec un support sécurité de 5 ans, il serait possible de garder 5 ans la version N et de passer directement à la version N+2:

    5 ans de support en image

    ² D'après mes premières statistiques, une cinquantaine d'entreprises pourrait suffire. Mais nous pouvons aller bien au delà et ainsi réduire le coût par entreprise, ou alors utiliser les moyens supplémentaires pour être plus pro-actif en terme de sécurité et/ou investir dans l'infrastructure pour optimiser le travail de l'équipe sécurité.

    Lire les commentaires

  • Commercialisation de la base de données des cartes grises (Journaux LinuxFR)

    Je suis tombé sur cet article : L’Etat vend vos données personnelles de carte grise !.

    Je me suis posé plusieurs questions:

    • Le mode d'opposition à la commercialisation des données personnelles est l'opt-out alors que les règlements européens et français ont jusqu'à présent toujours promu l'opt-in. Pourquoi l'état ne s'impose-t-il pas la règle appliquée aux sociétés privées ?

    • J'ai la possibilité de ne pas fournir de données personnelles à des services privés (Facebook, Google,...). Ce n'est pas le cas pour les services publics (ne pas immatriculer sa voiture est un délit). L'état a-t-il pour fonction de fournir à des sociétés privées des informations personnelles qu'elles ne peuvent pas se procurer directement ?

    • Quel est l'intérêt réel pour l'état ?
      Le prix unitaire prévu est de 0,087€ soit 2,7 M€ pour les 31 millions de voitures en circulation. Les bénéfices attendus sont donc ridicules au regard du budget de l'état.

    • Que faire concrètement ?
      En tant que propriétaire d'une voiture, que dois-je faire pour m'opposer à la commercialisation de mes données personnelles ?
      L'article cité ci-dessus indique : «on connait mal­heu­reu­se­ment la pro­pen­sion des pré­fec­tures à ne pas répondre aux cour­riers envoyés en lettre simple. Dès lors, si un recom­mandé s’impose, l’exigence légale de gra­tuité (la loi de 1978 parle bien d’une oppo­si­tion « sans frais ») sera-t-elle respectée ?»

    Qu'en pensez-vous ?

  • Un fstab bien configuré pour un ordinateur « de bureau » (Journaux LinuxFR)

    Sommaire

    Bonjour journal de Linuxfr,

    Ça fait quelque temps que je te lis mais c'est la première fois que je t'écris.
    Je suis un auto-didacte avec Linux depuis quelques années mais pas un expert, aussi sois indulgent avec mon niveau technique, modeste.

    Pour un premier journal, je voudrais me pencher sur le fichier fstab (et ce qui en est lié : partitionnement, systèmes de fichier, etc). Ce fichier joue sur le disque dur qui est l'élément le plus lent de l'ordinateur, alors une configuration expliquée et rationnelle pourrait apporter, ne serait-ce qu'un peu, plus de performance et de sécurité à cet organe électronique (et une meilleure compréhension du système pour moi).

    D'abord je vais lister les trucs et astuces utiles que j'ai glané sur le Web, après je te posterai mon fichier fstab et quelques détails sur ma configuration matérielle pour que tu puisses m'aider, si tu le veux, à affiner le paramétrage de ce fichier.

    Les trucs utiles

    Aligner les partitions sur des cylindres du disque dur

    C'est une astuce, dont j'ai perdu la source, mais qui améliore(rait) un peu les performance du disque dur. Je partitionne mon disque dur en utilisant GParted (car il peut créer une partition en les alignant sur un cylindre a contrario de la plupart des installateurs de nos distributions) sur un système Live avant l'installation (où je n'ai qu'à réutiliser les partitions pré-découpées).

    Créer des partitions distinctes

    Pour des raisons de sécurité et de sûreté des données, il est préférable de créer des partitions pour /boot, /var, /tmp et /home (voire /opt pour ceux qui compilent des trucs pour leur système) distinctes de la partition racine /.

    Utiliser un système de fichier optimisé pour les différents usages

    Le système de fichier a une incidence sur les performances du disque dur.
    J'ai trouvé que ReiserFS est préférable pour la partition /var (très performant pour l'écriture des petits fichiers).
    XFS est préférable pour la partition /home, mais on est loin des avantages qu'offre ext4, donc ce dernier resterait préférable.
    Tmpfs est une bonne option pour les dossiers temporaires (/tmp, /var/tmp).

    Y'a-t-il d'autres systèmes de fichier à conseiller pour un usage précis dans le cadre de mon usage ?

    L'option "noatime"

    Cette option désactive la mise à jour des dates d'accès et de modification de tous les fichiers sur la partition concernée par l'option. C'est une option utile pour un serveur mais pas pour nos ordinateurs « de bureau », donc on peut l'ajouter à toutes les partitions dans le cas présent.

    http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap6sec73.html

    Les options "discard" et "data=ordered" (pour SSD uniquement)

    Ces options nécessitent un formatage de la partition en ext4 mais permettent l'activation de ce qu'on appelle communément le TRIM. Ce qui est nécessaire pour contenir l'usure prématurée du SSD.

    https://wiki.archlinux.org/index.php/Solid_State_Drives#Mount_Flags
    http://www.debian-fr.org/ssd-trim-discard-n-est-pas-pris-en-compte-t37357.html

    Mettre /tmp et /var/tmp en RAM

    Pour ce faire, il faut rajouter les deux dernières lignes de mon fstab ci-après.
    La taille allouée à chaque dossier est modifiable par l'option size=*m.

    Ça a pour avantage :
    1. d'accélérer le système car la RAM étant plus rapide que le disque dur.
    2. de réduire l'usure du disque dur (qui n'est plus sollicité car étant remplacé par la RAM).

    Les options "nosuid", "noexec" et "nodev"

    Ces options permettent une réduction - du moins une limitation - des privilèges avec les options de mount. Je passe sur ce que font ces options, il y a le man pour ça.

    1. Ajouter l'option noexec pour toutes les partitions sur le disque dur sauf la partition racine (/), la partition /var° et la partition /home°°.

    2. Ajouter l'option nodev pour toutes les partitions sauf la partition racine (/) et d'éventuelles partitions chroot.

    3. Ajouter l'option nosuid pour toutes les partitions sauf la partition racine (/).

    Je te confesse n'avoir que recopié les conseils donnés dans la source ci-dessous (page 15)
    http://people.redhat.com/sgrubb/files/hardening-rhel5.pdf

    ° : surtout avec Debian et dérivés, Aptitude en souffrirait beaucoup.
    °° : Car cela empêche l'exécution de tout script dans le dossier de l'utilisateur, je trouve cette option pratique pour les ordinateurs des personnes lambda (feu Mme Michu). Prenons l'exemple de cette personne qui utilise son ordinateur pour consulter des méls et télécharger tout et n'importe quoi comme par exemple clique-ici-pour-savoir-qui-consulte-ton-profil-Facebook.sh … Un petit truc silencieux au but obscur qui s'installe en douce dans un dossier caché, à l'insu de l'utilisateur, sans qu'un bon mot de passe ou un système bien à jour puisse y faire quelque chose.

    Exemple personnel

    Ma configuration

    J'utilise un ordinateur « de bureau » comportant un SSD (de récupération) installé en parallèle d'un disque dur. La faible taille du SSD fait que je ne peux me permettre d'y installer l'intégralité du système. Aussi, ai-je décidé de n'installer que les partitions / et /boot sur ce périphérique, plaçant les autres sur le disque dur. J'ai également séparé la partition /var (qui, comme tu le sais, contient entre autre les journaux d'activité) de la partition racine et l'ai placée sur le disque dur (dans le souci de prévenir toute usure prématurée des cellules mémoire de mon disque électronique par des écritures trop fréquentes).

    Fichier fstab

    UUID=XXX       /               ext4        defaults,noatime,discard,data=ordered                                   1 1
    UUID=XXX       /boot           ext4        defaults,noatime,nosuid,noexec,nodev,discard,data=ordered               1 2
    UUID=XXX       /home           ext4        defaults,noatime,nosuid,noexec,nodev                                    1 2
    UUID=XXX       /var            ReiserFS    defaults,noatime,nosuid,nodev                                           1 2
    UUID=XXX       swap            swap        defaults                                                                0 0
    
    tmpfs          /dev/shm        tmpfs       defaults,noatime,nosuid,noexec,nodev                                    0 0
    tmpfs          /tmp            tmpfs       defaults,noatime,nosuid,noexec,nodev,mode=1777,size=768m                0 0
    tmpfs          /var/tmp        tmpfs       defaults,noatime,nosuid,noexec,nodev,mode=1777,size=256m                0 0
    
    

    Et maintenant ?

    Dis-moi, que penses-tu des informations données ci dessus ? Qu'y a-t-il à corriger ? Que pourrais-je rajouter ?
    À propos de la ligne /dev/shm, est-elle vraiment utile ? Je ne sais quoi en penser.

    Merci de ton aide !

    PS : Je n'ai pas tout compris à cette histoire karma et c'est la première fois que j'écris, j'espère que tu jugeras ce journal avec indulgence.

    Lire les commentaires

  • Le nouveau programme de fidélité de la SNCF : Le programme Voyageur (Journaux LinuxFR)

    Bonjour à tous.

    Vous le savez peut être: depuis le début du mois, l'ensemble des programmes de fidélité de la SNCF ont été remaniés pour faire place à un seul système : le programme Voyageur.

    Plus simple ? Non pas vraiment car sous cette dénomination se cache en fait quatre statuts différents ne donnant pas forcément accès aux mêmes préstations ou avantages.

    Mais prenons les choses depuis le début: Vous voulez participer, c'est simple et gratuit, il suffit de se présenter au guichet, en agence de voyage agréée ou sur le site web, et après confirmation et identification, on vous envoie une carte dite "VOYAGEUR". Les prestations associées : presque aucune à part servir de support aux e-billet. Par contre, elle vous permet d'engranger des points de fidélité.

    Le deuxième seuil est la carte "GRAND VOYAGEUR". La SNCF vous l'envoie à partir de 20 trajets (je pense donc 10 aller-retours), et ceci hors TER, Transilien et iDTGV. Pour garder le statut après un an, il faut avoir payé à la SNCF la somme de 800 euros ou plus (sur un an) et ceci en titres de voyage de plus de 9 euros (unitairement) ou en titres de voyage au tarif forfait (donc 1,5 euros mais avec carte forfait). Grâce à cette carte, en plus du support e-billet, vous avez des guichets dédiés et un ligne telephonique "dédiée" à 0,34 euros/mn (hors surtaxe opérateur).

    Troisième seuil : "GRAND VOYAGEUR PLUS". Vous y accédez à partir de 2500 euros payés à la SNCF en titres de voyage de plus de 9 euros ou de titres de voyage au tarif forfait. Vous ne pourrez garder cette carte au bout d'un an que si vous avez encore dépensé 2500 euros aux mêmes conditions. Niveau prestations, on retrouve là l'équivalent de l'ancienne carte TGV Grand voyageur à savoir l'accès aux salons grand voyageur dans 11 villes de France.
    Pour rappel, l'ancienne carte Grand Voyageur coutait 30 euros, et était valable 3 ans ….

    Finalement, le dernier seuil, vous devenez VIP (non je plaisante) avec la carte "GRAND VOYAGEUR LE CLUB". Pour l'obtenir, vous avez payé au moins 5000 euros à la SNCF sur un an, toujours sur des billets de plus de 9 euros ou au tarif forfait. Et tenez vous bien pour cela, vous avez le droit de prendre le train suivant le votre ou tout autre train partant moins d'une heure après le votre, sans changer de billet. Mais attention, sans garantie de place assise. Et si il y a surcout (par exemple en cas de période de pointe), vous aurez à payer la différence.

    Voila pour les prestations.

    Pour les avantages : au premier niveau après 10 trajets, vous aurez 10% de réduction sur 1 trajet de votre choix (donc 1 aller). Après 20 trajet, 20% de réduction sur 1 trajet de votre choix (toujours 1 aller).

    Pour les niveaux suivants, c'est un peu plus compliqué : chaque achat de billet donne lieu à un crédit de "Points monnaie" dépendant du montant, du type ( pro, loisir, prems ) et de la classe du billet (1ere ou 2nde).
    Vous pouvez alors convertir ces points en billets gratuit, ou d'autre type de cadeaux à choisir dans un catalogue et selon disponibilité.
    Bref, si vous aviez la carte grand voyageur avant, vous connaissez le principe, mais attention, les prix ont changés et le catalogue est plus pauvre …

    Il est clair et net qu'avec ce nouveau système, le client est perdant.
    Je crois que ce qui est le pire pour grand nombre de voyageurs, c'est que sur l'ancien systeme Grand voyageur, l'intérêt principal est l'accès aux salons, et ceci pour 30 euros tous les 3 ans.
    Maintenant, l'accès n'est possible qu'à partir de 20 trajets, soit largement plus que 30 euros, mais effectivement, ce n'est plus une somme à ajouter a celle des billets.

    Bref, merci la SNCF ….

    (Pour information, j'ai le statut Grand Voyageur Le Club. Etant titulaire d'un Forfait SNCF un statut Grand Voyageur Plus me conviendrai puisque mon forfait me permet de bénéficier de l'accès au train suivant (enfin je crois) et même alors, on peut toujours s'arranger avec les contrôleurs…)

    Lire les commentaires

  • Retour d'expérience Brother HL-2037 (Journaux LinuxFR)
    Cher journal,
    me faisant un peu chier en ce retour de vacances, j'ai décidé de te raconter ma vie mes aventures avec cette imprimante en espérant que ça serve à d'autres.

    En ayant assez des imprimantes jet d'encre (coût des cartouches, têtes d'impressions qui se bouchent, encre qui sèche si on ne s'en sert pas assez souvent, etc), je me suis intéressé aux imprimantes laser. Leur coût à la page est très attractif, leur prix a bien baissé et finies les séances de débouchage de têtes avec impression de moult pages de test pour déboucher la merde à prix d'or l'encre. Parmi les modèles d'entrée de gamme je me suis intéressé à la Brother HL-2037, petite laser monochrome qu'on trouve à moins de 70 EUR. On trouve des toners officiels à 35 EUR (1500 pages) et au même prix des compatibles mais 2500 pages. C'est basique (pas de fioritures, d'écran de contrôle, ni de recto verso automatique) mais ça me convient. Elle n'était pas listée sur l'OpenPrinting database mais semblait à vue de nez quasi identique à la 2035 (gris foncé alors que le 2035 est gris clair) elle-même évolution de la 2030, qui elles sont listées. J'ai tenté de l'ajouter après mes différents essais mais l'ajout d'imprimante est "temporairement désactivé" (le temporaire semble l'être depuis plusieurs mois).

    Il existe plusieurs pilotes fonctionnels. Brother fourni des pilotes (propriétaires) sous forme de tarball, rpm et deb. Il y a deux parties : Un pilote lpr binaire et un wrapper cups sous GPL. Ces drivers ne sont disponibles que pour x86 or je suis sous Debian testing en x86_64. Pour x86_64, ils recommandent... de les installer à la porc via un --force-all (!). On va essayer d'éviter. Le pilote contient quelques scripts shells (avec des chemins en dur, mais bon ça peut se corriger), des fichiers binaires qui semblent être les caractéristiques des différentes imprimantes, des librairies et un binaire avec des chemins en dur dans "/usr/Brother". On verra s'il y a moyen de corriger ça en dernier recours.

    Je me suis donc lancé et j'en ai acheté une. Déballage, branchement, et surprise elle semble reconnue d'emblée. Un "lsusb" me trouve bien un périphérique "Brother HL-2030 Series". Bon début. Je tente de l'ajouter via l'interface web de cups. Le pilote proposé est "Brother HL-2060 Foomatic Postscript". Un peu louche vu qu'elle ne supporte normalement pas le Postscript mais juste le PCL. Je tente une page d'essai et c'est le drame : L'imprimante me sort des piles de pages blanches.

    Après recherche sur le web et divers forums, il semble que la 2030 et la 2060 soient très proches. La 2060 est supportée par deux pilotes "Foomatic/hpijs" et "Foomatic/hl1250". Le pilote "hl1250" est apparemment un pilote assez générique qui marche pour un grand nombre d'imprimantes. Je retente d'abord avec le pilote "hpijs". Ca fonctionne même si la qualité est moyenne. Les graphiques et images manquent de précision, les tirages sont trop sombres et les pages débordent : L'impression d'une page m'imprime un minuscule bout de ligne sur une deuxième page. Je tente avec l'autre pilote "hl1250". C'est toujours moyen au niveau précision mais au niveau teinte c'est beaucoup mieux et le format de page (A4) est bon. Comme il y a parmi les drivers disponibles d'autres drivers "HL-2060 Foomatix/xyz" je décide d'en tenter d'autres, sans grand succès. L'un ne fait rien du tout, un autre provoque carrément l'arrêt de l'imprimante.

    Faute de mieux je me résout à tenter le pilote Brother. Je n'avais pas envie de l'installer selon la méthode "recommandée" (aux forceps). J'ai découvert que ce driver avait été empaqueté dans Ubuntu en x86 ET x86_64 (dépot multiverse). Après inspections, ces paquets ne sont pas très propres (il suffit de les rebuilder en tant qu'utilisateur non-root via fakeroot pour voir le nombre d'erreurs) mais bon si ça marche, je pourrais toujours corriger ça après. Premier test pas très concluant : Ca n'imprime rien. Après enquête, le paquet installe les librairies 32bits dans /usr/lib et Debian s'attends à les trouver dans /usr/lib32. En ajoutant des liens symboliques (de /usr/lib vers /usr/lib32) ça fonctionne parfaitement : Image fine, teinte bonne et format de page correct. Dans les dégradés, on voit quand même de légers effets de bandes (le dégradé n'est pas parfaitement progressif) mais bon c'est très mineur et ça semble être courant sur les lasers.

    N'étant pas pleinement satisfait d'avoir à passer par ce blob 32bits, je décide de retenter ma chance avec le driver "hl1250" qui semblait prometteur hormis le manque de précision. Et là je me rends compte de ma connerie : Les drivers libres impriment par défaut en 300 dpi (300, 600 et 1200 dpi sont proposés). Le driver Brother, lui, imprime par défaut en 600 dpi (idem 300, 600, et 1200 possibles). En réglant la résolution par défaut sur 600 dpi, j'obtiens... exactement le même résultat qu'avec le driver Brother. En regardant les résultats côte à côte, impossible de faire la différence.

    Moralité, pas besoin de s'emmerder avec ce gros blob (qui est probablement un portage vite fait du driver Windows puisqu'il semble y avoir des fichiers communs). Le driver libre "Brother HL-2060 Foomatic/hl1250" fonctionne à merveille. Je me demande pourquoi Brother ne recommande pas simplement d'installer le pilote libre. Leur pilote ne semble rien proposer de plus. Mais bon, si ça leur fait plaisir, je m'en fout un peu tout fonctionne très bien sans.