Archive

Articles taggués ‘linux’

Édition de tag RFID MIFARE sous Linux avec le lecteur ACR122

25/02/2019 Aucun commentaire

Ayant récemment acquis un lecteur NFC ACR122, je m'attendais à trouver un logiciel me permettant de l'exploiter simplement sous Linux Mint.

Étonnamment, je n'en ai pas trouvé, et l'emploi du lecteur pour programmer des tags Mifare s'est avéré moins intuitif que je ne l'espérait.

Après quelques heures de galère, voilà un résumé de la procédure :

Installation

Installer libnfc et ses outils :

$ apt install libnfc-bin

Modifier le fichier /etc/modbprobe.d/blacklist-libnfc.conf pour inclure le driver pn533_usb. En effet, celui ci (ainsi que les autres déja inclus dans ce fichier ) interfèrent avec le bon fonctionnement du pilote utilisé par libnfc :

$ echo "blacklist pn533_usb" >> /etc/modprobe.d/blacklist-libnfc.conf

Redémarrer la machine ( cette fois ci le bon pilote sera chargé ).

Lister les tags visibles

Lister les tags visible s'effectue avec la commande nfc-list :

A vide (sans tag sur le lecteur )


$ nfc-list
nfc-list uses libnfc 1.7.1
NFC device: ACS / ACR122U PICC Interface opene

Avec un tag Mifare sur le lecteur ( UID = A4 0B 44 76 )

$ nfc-list 
nfc-list uses libnfc 1.7.1
NFC device: ACS / ACR122U PICC Interface opened
1 ISO14443A passive target(s) found:
ISO/IEC 14443A (106 kbps) target:
ATQA (SENS_RES): 00 04
UID (NFCID1): a4 0b 44 76
SAK (SEL_RES): 08

L'option -v permet d'en savoir plus sur le tag détecté ( ici un tag différent de celui lu précédemment ) :

$ nfc-list -v
nfc-list uses libnfc 1.7.1
NFC device: ACS / ACR122U PICC Interface opened
1 ISO14443A passive target(s) found:
ISO/IEC 14443A (106 kbps) target:
    ATQA (SENS_RES): 00  04  
* UID size: single
* bit frame anticollision supported
       UID (NFCID1): ec  11  9c  1e  
      SAK (SEL_RES): 08  
* Not compliant with ISO/IEC 14443-4
* Not compliant with ISO/IEC 18092

Fingerprinting based on MIFARE type Identification Procedure:
* MIFARE Classic 1K
* MIFARE Plus (4 Byte UID or 4 Byte RID) 2K, Security level 1
* SmartMX with MIFARE 1K emulation
Other possible matches based on ATQA & SAK values:

0 Felica (212 kbps) passive target(s) found.

0 Felica (424 kbps) passive target(s) found.

0 ISO14443B passive target(s) found.

0 ISO14443B' passive target(s) found.

0 ISO14443B-2 ST SRx passive target(s) found.

0 ISO14443B-2 ASK CTx passive target(s) found.

0 Jewel passive target(s) found.

Lecture / écriture

Les opérations de lecture / écriture sur un tag Mifare Classic s'effectuent avec la commande nfc-mfclassic. Les clés par défaut sont utilisées mais il est possible de spécifier sont propre fichier de clé ( cf man nfc-mfclassic)

Lecture du contenu du tag et enregistrement dans le fichier mifare.mfd

$ nfc-mfclassic r a mifare.mfd
NFC reader: ACS / ACR122U PICC Interface opened
Found MIFARE Classic card:
ISO/IEC 14443A (106 kbps) target:
ATQA (SENS_RES): 00 04
UID (NFCID1): a4 0b 44 76
SAK (SEL_RES): 08
Guessing size: seems to be a 1024-byte card
Reading out 64 blocks |……………………………………………………….|
Done, 64 of 64 blocks read.
Writing data to file: mifare.mfd …Done.

Ecriture du tag depuis le fichier mifare.mfd

$ nfc-mfclassic w a mifare.mfd
NFC reader: ACS / ACR122U PICC Interface opened
Found MIFARE Classic card:
ISO/IEC 14443A (106 kbps) target:
ATQA (SENS_RES): 00 04
UID (NFCID1): a4 0b 44 76
SAK (SEL_RES): 08
Guessing size: seems to be a 1024-byte card
Writing 64 blocks |………………………………………………………|
Done, 63 of 64 blocks written.

Edition du contenu

Pour l'édition, l'emploi d'un editeur hexadécimal est nécessaire. Je recommande bless. Pour faciliter la lecture du contenu, je préconise d'ajuster la taille de la fenêtre pour afficher 16 octets sur chaque ligne, ainsi chaque ligne contient 1 bloc du tag :


En rouge le bloc 0 contient l'UID de la carte

En jaune le bloc 4 contient les données que j'y ai écrit

Le premier bloc de chaque secteur contient les permissions d'accès. Par défaut l'accès en lecture / écriture est possible avec les clés d'origines. Le bloc 0 est en lecture seule. Attention de ne pas modifier la longueur du fichier ( utiliser le mode remplacement plutôt que le mode insertion avec la touche "insert" du clavier )

Les 16 caractères d'un bloc me suffisant pour mon application, et n'ayant pas de problématique de sécurité, cet article touche à ça fin. Peut être le compléterais-je plus tard si je venais à devoir stocker des données sur plusieurs blocs, ou à mettre en place différentes clés pour l'accès aux données. Ce second cas est cependant improbable, étant donné que les carte Mifare sont gravement défaillante d'un point de vue sécurité (cf les nombreux article sur le web concernant la récupération des clés, ainsi que la possibilité d'obtenir des cartes dont le bloc 0 est accessible en écriture )

Categories: Linux Tags: , , ,

Raspberry Pi : Du son en réseau avec Jack

22/10/2018 Aucun commentaire

Il y a déjà 5 mois, j’expérimentais la transmission de son en réseau avec PulseAudio.

Bien que concluant, le système péchait par sa latence (certes faible, mais toujours perceptible), et son manque de stabilité.

Je me suis depuis penché sur Jack. Il s'agit d'un serveur son pour Linux, axé productivité musicale.

Il est possible de le configurer pour transmettre du son sur le réseau, mais le manque de documentation rend la tâche ardue.

J'ai pu obtenir un système assez stable après de nombreux essais, permettant d'utiliser un Raspberry Pi comme sortie son distante, avec une latence quasiment imperceptible.

Le projet repose sur l'utilisation de NetJack2, la 2ème révision du protocol réseau de Jack, ainsi que l'utilisation de Jack_Autoconnect, et a pour objectif de rendre le fonctionnement aussi fiable que possible.

J'ai rendu l'ensemble disponible sur GitLab : https://gitlab.com/Pilatomic/networkedjack

Le résultat est très satisfaisant, mis a part un unique problème restant : le client ne doit pas être stoppé pendant que le serveur est en fonctionnement, sous peine de devoir redémarrer le serveur. Il est sans doute possible de le régler avec un petit script bash, qui ping continuellement le client, et arrête le serveur lorsque le client n'est pas joignable, mais cette situation n'étant pas pénalisante dans mon cas, je ne me suis pas penché sur le sujet.

L'ensemble est suffisamment fiable, je l'utilise pour de la transmission de son en temps réel en entreprise

Categories: Linux, Raspberry Pi Tags: , , ,

Un minitel comme terminal linux USB. Partie 3 : Et avec systemd ?

06/11/2016 9 commentaires

Il y a 2 ans déjà, je publiais 2 articles décrivant comme réutiliser un Minitel comme terminal linux USB :

Cependant, si le premier article est toujours aussi pertinent, avec la migration des distributions Linux vers systemd, le nouveau gestionnaire de démarrage, le second article ne permet plus de configurer les Linux moderne pour utiliser le Minitel comme terminal.

raspi-config Minitel

l'outil de configuration raspi-config sur Minitel

Cet article vise donc à décrire la procédure nécessaire pour réaliser cette opération avec systemd sur Raspberry Pi sous la distribution Raspbian, mais cette procédure devrait s'appliquer, éventuellement avec des modifications mineures, à tout autre matériel exécutant une distribution Linux dotée de systemd.

Lire la suite...

MacPro 2006 : Installer Linux sans DVD ni carte graphique EFI

29/05/2016 Aucun commentaire

Après avoir remis en service le MacPro en remplaçant les ventilateurs avant et la carte graphique, il est temps de le doter d'un OS digne de ce nom,  un linux (Mint).

Le MacPro est désormais habité par un pingouin

Le MacPro est désormais habité par un pingouin

Cependant, le hardware peu commun de la machine pose quelques problèmes : seul l'EFI est capable de booter sur USB ( et les distributions Linux récentes nécessitent toute plus d'espace que ce qu'un CD peut offrir), mais il ne s'agit que d'un EFI 32 bits, alors que l'UEFI présent sur les PC ( et géré par la plupart des live Linux ) est en 64bits. De plus, démarrer avec l'EFI avec une carte graphique non supportée par Apple impose de ne pas avoir de vidéo avant le chargement du gestionnaire de bureau.

La solution la plus simple est de graver une distribution sur un DVD. En Effet, après 1min de tentative de boot en EFI, un bios à l'ancienne prend la main et tente à son tour de booter, sur les seuls médias qui lui sont accessibles ( disques sur et médias optiques ).

Cependant, si comme moi vous n'avez pas de DVD sous la main, il est possible d'utiliser un CD d'amorçage. Celui-ci, une fois chargé par le BIOS, va permette de lancer un linux situé sur une clé USB.

Lire la suite...

Categories: Linux Tags: , , , ,

Un minitel comme terminal linux USB. Partie 2 : Software Raspberry Pi

11/10/2013 48 commentaires

Cet article décrit la mise en place du software permettant l'utilisation d'un minitel comme terminal sur un Raspberry Pi, avec l'interface USB décrite dans l'article précédent Un minitel comme terminal linux USB. Partie 1 : Hardware.

exemple

Un minitel servant de terminal pour mon Raspberry Pi

Je considère ici que votre Raspbian est installé et fonctionnel sur votre Raspberry. Dès lors, il y a 2 méthodes possibles, menant quasiment au même résultat : un terminal fonctionnel tout à fait exploitable.

EDIT : Bien que les informations contenues dans cet article soient toujours justes, la partie concernant la configuration de getty au démarrage dans le fichier inittab n'est plus d'actualité depuis la migration des principales distributions Linux vers le gestionnaire de démarrage systemd. Pour plus d'informations sur la configuration de systemd, c'est ici.

Lire la suite...

Un minitel comme terminal linux USB. Partie 1 : Hardware

25/09/2013 126 commentaires

Le réseau Minitel étant maintenant hors service depuis plus d'un an, on voit apparaître de nombreux Minitels dans les vides-greniers. Devenus totalement inutiles pour le commun des mortels, certains Minitels possèdent cependant la capacité à être connecté à des périphériques, via une liaison série, permettant notamment d'imprimer les pages minitel affichées, mais également d'utiliser le minitel comme le terminal d'un ordinateur fonctionnant sous UNIX. Si la fabrication d'une telle interface est décrite maintes fois sur le web, il est toujours question d'utiliser le port COM de l'ordinateur. Celui-ci devenant de plus en plus rare, cet article détaille la fabrication d'une interface analogue, mais employant une connectique USB, plus adaptée aux ordinateurs actuels.

Illustration Minitel

Un minitel affichant le logo Aperture Science en ASCII art, transmis par un ordinateur.

Lire la suite...