2023-08-21T08:49:07.9040114Z ##[group]Run bundle exec htmlproofer _site --disable-external --check-html --allow_hash_href 2023-08-21T08:49:07.9040743Z bundle exec htmlproofer _site --disable-external --check-html --allow_hash_href 2023-08-21T08:49:07.9101559Z shell: /usr/bin/bash -e {0} 2023-08-21T08:49:07.9101854Z env: 2023-08-21T08:49:07.9102328Z GITHUB_PAGES: true 2023-08-21T08:49:07.9102578Z ##[endgroup] 2023-08-21T08:49:08.4580803Z Running ["ScriptCheck", "LinkCheck", "ImageCheck", "HtmlCheck"] on ["_site"] on *.html... 2023-08-21T08:49:08.4581976Z 2023-08-21T08:49:08.4583973Z 2023-08-21T08:49:09.9097168Z - _site/posts/driver-nokia5010lcd-part1/index.html 2023-08-21T08:49:09.9097843Z Ran on 68 files! 2023-08-21T08:49:09.9099079Z * 1:10592: ERROR: End tag 'h4' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:09.9203800Z Driver Linux pour Nokia 5110 LCD (PARTIE 1) | Linux Monkey Blog
Home Driver Linux pour Nokia 5110 LCD (PARTIE 1)
Post
Cancel

Driver Linux pour Nokia 5110 LCD (PARTIE 1)

Précédent , j’avais parlé d’un projet de drivers Linux, on y ait arrivé !
Le premier driver est donc pour l’afficheur LCD du Nokia 5010, vous connaissez tous le Nokia 3310 ! le 5110 est son grand père.

Le matériel

5110 Nokia LCD module Module LCD Nokia 5110

Quelques spécifications :

  • Technologie  : LCD monochrome
  • Résolution  : 84x48 pixels
  • Taille  : 43,6 mm x 43,1mm
  • Bus  : Interface Série
  • Contrôleur : PCD8544
  • Alimentation  : 2.7V-3.3V

Cet écran est très utilisé par les bidouilleurs, notamment avec des microcontrôleurs : ATMEL, PIC, STM32 … il présente la particularité d’être munie d’un contrôleur PCD8544 qui contrôle les opérations d’affichage. Voici sa datasheet, elle nous sera très utile .

Mon LCD 5110 est un clone chinois, je ne sais pas si toutes les caractéristiques correspondent à cette datasheet.

La cible est un Raspberry PI 4, le driver sera cross-compilé sur une architecture ARM 64-bit.

Raspberry Pi 4 Raspberry Pi 4 Model B

J’ai décidé de compiler tout le driver pour OpenWrt. Au début je voulais le faire pour Automotive Grade Linux car je suis très intéressé par l’embarqué automobile, mais l’OS est difficile à compiler, il y a beaucoup de dépendances et je ne connais pas Yocto ce qui n’arrange rien. Ceci dit, je reviendrais sur AGL après.
Compiler openwrt pour Raspberry Pi 4

Openwrt est simple car il est construit avec buildroot, c’est un Linux qu’on trouve beaucoup sur des routeurs donc assez léger. En plus la version du Kernel est récente.

Cablage

Cablage sur RPi4 Cablage sur RPi4


pins

C’est important de comprendre les pins car c’est avec ça qu’on va écrire le device tree

  • reset : Reset le module quand 0v est envoyé (active low)
  • CE : Pin de selection en cas ou plusieurs slaves sont branchés au SPI (active low)
  • DC : Les informations envoyées sont soit des données (D/high) soit des suites controle (C/low)
  • DIN : MOSI
  • CLK : Une horloge pour le SPI
  • VCC : Alimentation 2.7v à 3.3 v
  • BL : Backlight
  • GND : Gound

C’est tout pour aujourd’hui, on commence à développer dans la seconde partie.

This post is licensed under CC BY 4.0 by the author.

Fuites mémoire, les dangers des tableaux en C

Script shell vicieux

2023-08-21T08:49:09.9249245Z 2023-08-21T08:49:09.9253580Z ^ (line 1) 2023-08-21T08:49:09.9258399Z - _site/posts/driver-nokia5110lcd-part2/index.html 2023-08-21T08:49:09.9259037Z * 119:180: ERROR: End tag 'h4' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:09.9265569Z

Explication du makefile

Normalement pour compiler un module, une simple ligne de code obj-m := module.o suffit, le responsable kbuild system fera le reste.

Ce makefile est lu en deux fois:

Quand le makefile est invoqué par une ligne de commande: cela signifie que la variable KERNELRELEASE est pas définit, dans ce cas kbuild system va se charger de trouver le Kernel source tree.

Quand c’est invoqué par Kbuild system: Si le kernel pour lequel on compile n’est pas celui de la machine actuelle (eg. notre cas de cross compilation) alors il faut définir ou se trouve le Kernel source tree, une fois trouvé, le makefile appelle la target default et sa commande va compiler nos modules à partir des fichier objets spécifiés dans obj-m, c’est la seconde lecture (invocation par ligne de commande).
Dans cette ligne, on change de directory pour aller dans le source tree du kernel pointé avec -C la où se trouvele top-level makefile du kernel. La seconde M=PWD fait déplacer ce top-level makefile sur le dossier courant ou sont nos source pour enfin compiler les fichiers objets specifiés par obj-m et générer des fichiers .ko

Voici un code qui apelle le Makefile avec les bons paramétres de cross-compilation:

1
2023-08-21T08:49:09.9270161Z                                                                                                                                                                                    ^ (line 119)
2023-08-21T08:49:09.9270801Z   *  133:1063: ERROR: End tag 'h5' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div.
2023-08-21T08:49:09.9283790Z 


Pour plus d’informations voir le chapitre II de Linux Device Drivers 3rd edition.
Pour le makefile, un excellent Tuto de développez.com

J’envois le module par ssh sur mon RaspberryPi et je charge le module et HOP!! la cross-compialtion a fonctionné. Loadable Kernel Module dmesg

Pour décharger le module, il faut compiler OpenWRT avec l’option module unload.

Les choses sérieuses commencent ici, il faut discuter d’une chose, le type de notre driver.

Type du driver

On peut faire le driver de plusieurs façons, on peut le faire comme un driver de type char driver, c’est a dire que notre driver aura une interface de type char dans sysFs, on interagit avec le driver via un nœud dans /dev et on va initialiser et enregistrer notre LCD grâce à des fonctions init() et exit() au chargement du module. Le driver dans ce cas va utiliser directement les GPIO pour envoyer les donnés au LCD, c’est pas intéressant.

Une autre façon serait d’utiliser le Bus SPI et donc l’API SPI du kernel. On va toujours interagir avec le LCD via /dev mais sans utiliser les fonctions de l’interface char (file_operations).

En faisant des recherches sur le type d’API, helpers qu’il faut utiliser, je suis tombé sur une API très intéressants: Direct Randering Manager .
J’ai trouvé ces helpers DRM car j’ai consulté le driver d’un autre écran LCD TFT que j’ai dans mon stock.

Par contre, j’en ai trouvé deux types, les helpers DRM et les tiny-drm. Les tiny-drm se veulent plus faciles.
Perdu , j’ai donc envoyé un message à un des mainteneurs du kernel Andy Shevchenko, il m’a répondu et a transféré mon message pour le mainteneur de la partie DRM du kernel.

Voici sa réponse très intéressante.

DRM vs Tiny-drm DRM vs Tiny-drm

Donc décidé, je vais utiliser les helpers DRM.

D’ailleurs c’est ce qu’on va faire !

Device Tree

Un device tree est un arbre de structures de données avec des nœuds décrivants le composant matériel. Selon ePAPR (power.org)

Le device tree compilé porte une extension .dtb device tree blob Le fichier avant compilation est un .dts device tree source.

pour le compiler on utilise le compilateur dtc :

1
2023-08-21T08:49:09.9292159Z                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^ (line 133)
2023-08-21T08:49:09.9293275Z   *  133:3389: ERROR: End tag 'h5' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div.
2023-08-21T08:49:09.9305107Z 


Pour plus d’informations voir le chapitre II de Linux Device Drivers 3rd edition.
Pour le makefile, un excellent Tuto de développez.com

J’envois le module par ssh sur mon RaspberryPi et je charge le module et HOP!! la cross-compialtion a fonctionné. Loadable Kernel Module dmesg

Pour décharger le module, il faut compiler OpenWRT avec l’option module unload.

Les choses sérieuses commencent ici, il faut discuter d’une chose, le type de notre driver.

Type du driver

On peut faire le driver de plusieurs façons, on peut le faire comme un driver de type char driver, c’est a dire que notre driver aura une interface de type char dans sysFs, on interagit avec le driver via un nœud dans /dev et on va initialiser et enregistrer notre LCD grâce à des fonctions init() et exit() au chargement du module. Le driver dans ce cas va utiliser directement les GPIO pour envoyer les donnés au LCD, c’est pas intéressant.

Une autre façon serait d’utiliser le Bus SPI et donc l’API SPI du kernel. On va toujours interagir avec le LCD via /dev mais sans utiliser les fonctions de l’interface char (file_operations).

En faisant des recherches sur le type d’API, helpers qu’il faut utiliser, je suis tombé sur une API très intéressants: Direct Randering Manager .
J’ai trouvé ces helpers DRM car j’ai consulté le driver d’un autre écran LCD TFT que j’ai dans mon stock.

Par contre, j’en ai trouvé deux types, les helpers DRM et les tiny-drm. Les tiny-drm se veulent plus faciles.
Perdu , j’ai donc envoyé un message à un des mainteneurs du kernel Andy Shevchenko, il m’a répondu et a transféré mon message pour le mainteneur de la partie DRM du kernel.

Voici sa réponse très intéressante.

DRM vs Tiny-drm DRM vs Tiny-drm

Donc décidé, je vais utiliser les helpers DRM.

D’ailleurs c’est ce qu’on va faire !

Device Tree

Un device tree est un arbre de structures de données avec des nœuds décrivants le composant matériel. Selon ePAPR (power.org)

Le device tree compilé porte une extension .dtb device tree blob Le fichier avant compilation est un .dts device tree source.

pour le compiler on utilise le compilateur dtc :

1
2023-08-21T08:49:09.9314922Z                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^ (line 133)
2023-08-21T08:49:09.9316982Z   *  217:3021: ERROR: End tag 'h3' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div.
2023-08-21T08:49:09.9357923Z 

Propriétés

compatible <manifacture, modele> : avec cette propriété , l’OS va décider quel driver va se lier à ce composant.

Reg : Cette propriété dépend du type de bus sur lequel on est raccordé, elle est composé comme suite <adresse , length>, cela veut dire que la zone réservée pour le node lcd commence à partir de adresse et sa taille est length. Chaque adressse est une liste de un ou plusieurs cellules (cells).
La taille aussi peut etre une liste de cellules de 32 bits.

Puisque les adresses sont de variables de taille length , dans le node parent on va specifier:
#address-cells : nombre de cellules 32 bits necessaires pour former l’adresse de reg
#size-cells : nombre de cellules 32 bits necessaires pour former la taille de reg

il y a deux façons d’ajouter la section dans le DT, soit en cherchant le .dts de la carte cité précédemment, soit en décompilant le dtb, je préfère cette dernière car on a plus d’informations sur la taille des zones mémoires et leurs offsets .

Le contrôleur de gpio est spécifié avec 2 cellules #gpio-cells donc pour spécifier les gpio, on besoin d’un phandle sur le contrôleur de gpio, du numéro de la ligne gpio (celle 1) et d’un flag active low/high (cell 2).
Il faut regarder le dts décompilé pour voir comment est définit le contrôleur gpio.

Data/Control gpio : comme dit dans la partie 1 est une entrée pour choisir le type de donnée selon ce qu’on lui envoi :

Le controleur gpio déclare des pins soit en mode GPIO soit en mode ALT, ce qui veut dire alternate function, cela veut dire qu’elle sont utilisé dans un autre mode que le gpio simple exemple : chip-select du SPI, Clock pour i2c,PWM …etc chaque pin peut avoir plusieurs alternate functions

Pour choisir tel ou tel fonction, il faut changer les 3 bits du registre AF .

En résumé:

J’ai choisis dans le device tree un GPIO pour le backlight, un GPIO de RESET et un autre de controle. les autres je fais apelle à eux depuis le driver.

Fonction de probe ()

Fonction de probe()

La fonction de probe est appelée au démarrage du kernel, ou quand on plug le device (dans le cas d’un device déconnectable). On dit qu’elle est appelée à chaque fois que device est vu (À compléter plus tard ).

Son rôle en gros est de détecter le device (dans notre cas le LCD).
Cette fonction fait l’initialisation du device, l’initialisation du hardware, enregistrer le framework kernel nécessaire ..etc

Greg-Kroah Hartman disait “les drivers sont simples à écrire, ce qui est difficle est de comprendre le materiel”

Alors !! C’est simple, le chantier est difficle, je dois convetir un driver deja existant qui est un Driver frambuffer en driver DRM. yen a plusieurs mais j’ai choisis détudier le fb_hx8357d.c et son equivalent DRM hx8357d.c

Linux, Drivers
This post is licensed under CC BY 4.0 by the author.
Recent Update
Contents

K&R Quelques Notes

FAQ langage C

2023-08-21T08:49:09.9386255Z ^ (line 217) 2023-08-21T08:49:09.9387945Z * 77:153: ERROR: End tag 'h3' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:09.9394945Z

Modules Kernel

Il y a quelques différences entre la programmation au niveau Kernel et en niveau User Space. Un module ou un driver suit les conventions de codage au niveau Kernel.

Le module définit deux fonctions : hello_init() invoquée au chargement et hello_exit() invoquée au déchargement du module. Ces fonctions servent à enregistrer le driver au Kernel pour de futurs appelles . La fonction exit() doit défaire tout ce que la fonction init() a fait, par exemple désallouer de la mémoire.

module_init() et module exit() utilisent des macros pour indiquer le rôle de chacune des fonctions “hello” cités précédemment. MODULE_LICENCE pour la licence, sans elle le Kernel va crier et Richard STALLMAN aussi d’ailleur.

printk() se comporte comme printf() de la GNU C library. le Kernel tourne de lui même et ne nécessite pas des librairies C.
Un programme peut appeler une fonction qu’il n’a pas définit, la phase de linkage résout ça en utilisant des librairies C, un module par contre n’est linké qu’au Kernel, donc les seuls fonctions qu’il peut appeler sont celles exportés par ce dérnier. Exemple: printk est définit au Kernel et exporté aux modules.
KERNEL_ALERT définit la priorité du message (info, alterte , erreur ,debug..etc).

Le Makefile de compilation:

1
2023-08-21T08:49:09.9399960Z                                                                                                                                                         ^ (line 77)
2023-08-21T08:49:09.9400460Z - _site/posts/historique-personnel/index.html
2023-08-21T08:49:09.9401077Z   *  1:11996: ERROR: End tag 'h2' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div.
2023-08-21T08:49:09.9470319Z  Historique personnel | Linux Monkey Blog  
Home Historique personnel
Post
Cancel

Historique personnel

Présentation

Je m’appelle Larbi, je suis ingénieur Linux embarqué débutant dans le domaine. Je vis dans le Val-d’Oise en île de France depuis un peu plus de 4 mois. J’ai fait mes études à l’université Grenoble Alpes où j’ai préparé un master professionnel en systèmes embarqués.

Découverte de l’informatique

Quand j’avais environs 7 ans - début des années 2000 - j’ai reçu une console de jeux très SPÉCIALE, un clone de la Nintendo Famicom que je présente dans cet article. C’était mon premier ordinateur (oui un ordinateur). Pour les retrogamers d’entre vous, j’ai joué à des jeux comme : Double Dragon, Contra, Ninja Gaiden, Lupin Sansei et j’en passe. Ma passion du retrogaming vient de la.

Cette console, comme dit dans l’article possède une interface très interactive et munie d’un Basic. J’y ai déjà mis les mains mais malheureusement, je ne savais pas ce que c’était.

Peu de temps après, j’ai acquis un ordinateur Pentium 4 sous Windows 98. Je passais mon temps sur Encarta et Encarta junior et j’ai découvert la 3D dans les jeux. J’ai joué à deux types de jeux, ceux du PC natifs et ceux de la PS1 grâce à un émulateur Bleem!
bleem Bleem

De nature extrêmement curieuse, je passais mon temps à bidouiller sur mon Pc. Je suis passé sous Windows XP, fait un peu de modding en augmentant la RAM, un lecteur DVD, une souris laser…
Quand j’ai eu le Bac, j’ai directement choisi de faire un tronc commun math-informatique pour ensuite m’orienter vers des études d’électronique.

Pour quoi des études d’électronique ?

J’ai choisi l’électronique car j’aime le hardware, j’adore interagir avec les registres, les mémoires avec du code. Je suis très intéressé par le développement bas niveau : drivers, bootloader, baremetal, etc. Durant mes etudes, j’ai travaillé à mis-temps dans une boite de maintenance informatique. J’ai appris beaucoup de choses sur la maintenance.

Linux, open source & free software

J’ai découvert Linux quand j’étais au lycée, ma première distribution était Ubuntu 11. Je ne faisais rien de spéciale avec appart utiliser quelques commandes et faire des calculs basiques en Python. J’ai abandonné Windows directement.
À l’université, j’ai découvert la philosophie de l’open source et du free software et c’est naturellement dans le domaine du Linux que j’ai décidé d’évoluer.

Mes passions

J’ai deux grandes passions:

1. l’informatique et la retro-informatique

Je fais les puces souvent et j’ai quelques ordinateurs rares. Je suis un retrogamer, je trouve un grand intérêt à jouer à d’anciens jeux, cela donne une idée de comment les développeurs pensaient à cette époque et surtout je suis fasciné par leur talent de développeur : A COMPREHENSIVE SUPER MARIO BROS DISASSEMBLY.

2. L’automobile

J’adore le Japon et la culture japonaise, notamment une discipline sportive que j’aborderai sûrement : le drift.

Drift Drift

J’aime les voitures japonaises, surtout celles d’entre 1980 et 2000 qui sont championnes de cette discipline : S13, Sil80, AE86 etc.

Je m’intéresse à électronique embarquée automobile, j’ai eu quelques valises de diagnostique : Delphi DS150, Renault Clip. J’ai fait une formation d’un mois sur ça.

Dans ce blog, je vais essayer d’étudier et de mettre mes notes sur Automotive Grade Linux, c’est quelque chose que j’ai dans le viseur depuis longtemps.

This post is licensed under CC BY 4.0 by the author.

-

Mes références Linux embarqué

2023-08-21T08:49:09.9525614Z ^ (line 1) 2023-08-21T08:49:09.9530838Z * 1:12548: ERROR: End tag 'h2' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:09.9600694Z Historique personnel | Linux Monkey Blog
Home Historique personnel
Post
Cancel

Historique personnel

Présentation

Je m’appelle Larbi, je suis ingénieur Linux embarqué débutant dans le domaine. Je vis dans le Val-d’Oise en île de France depuis un peu plus de 4 mois. J’ai fait mes études à l’université Grenoble Alpes où j’ai préparé un master professionnel en systèmes embarqués.

Découverte de l’informatique

Quand j’avais environs 7 ans - début des années 2000 - j’ai reçu une console de jeux très SPÉCIALE, un clone de la Nintendo Famicom que je présente dans cet article. C’était mon premier ordinateur (oui un ordinateur). Pour les retrogamers d’entre vous, j’ai joué à des jeux comme : Double Dragon, Contra, Ninja Gaiden, Lupin Sansei et j’en passe. Ma passion du retrogaming vient de la.

Cette console, comme dit dans l’article possède une interface très interactive et munie d’un Basic. J’y ai déjà mis les mains mais malheureusement, je ne savais pas ce que c’était.

Peu de temps après, j’ai acquis un ordinateur Pentium 4 sous Windows 98. Je passais mon temps sur Encarta et Encarta junior et j’ai découvert la 3D dans les jeux. J’ai joué à deux types de jeux, ceux du PC natifs et ceux de la PS1 grâce à un émulateur Bleem!
bleem Bleem

De nature extrêmement curieuse, je passais mon temps à bidouiller sur mon Pc. Je suis passé sous Windows XP, fait un peu de modding en augmentant la RAM, un lecteur DVD, une souris laser…
Quand j’ai eu le Bac, j’ai directement choisi de faire un tronc commun math-informatique pour ensuite m’orienter vers des études d’électronique.

Pour quoi des études d’électronique ?

J’ai choisi l’électronique car j’aime le hardware, j’adore interagir avec les registres, les mémoires avec du code. Je suis très intéressé par le développement bas niveau : drivers, bootloader, baremetal, etc. Durant mes etudes, j’ai travaillé à mis-temps dans une boite de maintenance informatique. J’ai appris beaucoup de choses sur la maintenance.

Linux, open source & free software

J’ai découvert Linux quand j’étais au lycée, ma première distribution était Ubuntu 11. Je ne faisais rien de spéciale avec appart utiliser quelques commandes et faire des calculs basiques en Python. J’ai abandonné Windows directement.
À l’université, j’ai découvert la philosophie de l’open source et du free software et c’est naturellement dans le domaine du Linux que j’ai décidé d’évoluer.

Mes passions

J’ai deux grandes passions:

1. l’informatique et la retro-informatique

Je fais les puces souvent et j’ai quelques ordinateurs rares. Je suis un retrogamer, je trouve un grand intérêt à jouer à d’anciens jeux, cela donne une idée de comment les développeurs pensaient à cette époque et surtout je suis fasciné par leur talent de développeur : A COMPREHENSIVE SUPER MARIO BROS DISASSEMBLY.

2. L’automobile

J’adore le Japon et la culture japonaise, notamment une discipline sportive que j’aborderai sûrement : le drift.

Drift Drift

J’aime les voitures japonaises, surtout celles d’entre 1980 et 2000 qui sont championnes de cette discipline : S13, Sil80, AE86 etc.

Je m’intéresse à électronique embarquée automobile, j’ai eu quelques valises de diagnostique : Delphi DS150, Renault Clip. J’ai fait une formation d’un mois sur ça.

Dans ce blog, je vais essayer d’étudier et de mettre mes notes sur Automotive Grade Linux, c’est quelque chose que j’ai dans le viseur depuis longtemps.

This post is licensed under CC BY 4.0 by the author.

-

Mes références Linux embarqué

2023-08-21T08:49:09.9651594Z ^ (line 1) 2023-08-21T08:49:09.9656803Z * 1:12786: ERROR: End tag 'h5' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:09.9725402Z Historique personnel | Linux Monkey Blog
Home Historique personnel
Post
Cancel

Historique personnel

Présentation

Je m’appelle Larbi, je suis ingénieur Linux embarqué débutant dans le domaine. Je vis dans le Val-d’Oise en île de France depuis un peu plus de 4 mois. J’ai fait mes études à l’université Grenoble Alpes où j’ai préparé un master professionnel en systèmes embarqués.

Découverte de l’informatique

Quand j’avais environs 7 ans - début des années 2000 - j’ai reçu une console de jeux très SPÉCIALE, un clone de la Nintendo Famicom que je présente dans cet article. C’était mon premier ordinateur (oui un ordinateur). Pour les retrogamers d’entre vous, j’ai joué à des jeux comme : Double Dragon, Contra, Ninja Gaiden, Lupin Sansei et j’en passe. Ma passion du retrogaming vient de la.

Cette console, comme dit dans l’article possède une interface très interactive et munie d’un Basic. J’y ai déjà mis les mains mais malheureusement, je ne savais pas ce que c’était.

Peu de temps après, j’ai acquis un ordinateur Pentium 4 sous Windows 98. Je passais mon temps sur Encarta et Encarta junior et j’ai découvert la 3D dans les jeux. J’ai joué à deux types de jeux, ceux du PC natifs et ceux de la PS1 grâce à un émulateur Bleem!
bleem Bleem

De nature extrêmement curieuse, je passais mon temps à bidouiller sur mon Pc. Je suis passé sous Windows XP, fait un peu de modding en augmentant la RAM, un lecteur DVD, une souris laser…
Quand j’ai eu le Bac, j’ai directement choisi de faire un tronc commun math-informatique pour ensuite m’orienter vers des études d’électronique.

Pour quoi des études d’électronique ?

J’ai choisi l’électronique car j’aime le hardware, j’adore interagir avec les registres, les mémoires avec du code. Je suis très intéressé par le développement bas niveau : drivers, bootloader, baremetal, etc. Durant mes etudes, j’ai travaillé à mis-temps dans une boite de maintenance informatique. J’ai appris beaucoup de choses sur la maintenance.

Linux, open source & free software

J’ai découvert Linux quand j’étais au lycée, ma première distribution était Ubuntu 11. Je ne faisais rien de spéciale avec appart utiliser quelques commandes et faire des calculs basiques en Python. J’ai abandonné Windows directement.
À l’université, j’ai découvert la philosophie de l’open source et du free software et c’est naturellement dans le domaine du Linux que j’ai décidé d’évoluer.

Mes passions

J’ai deux grandes passions:

1. l’informatique et la retro-informatique

Je fais les puces souvent et j’ai quelques ordinateurs rares. Je suis un retrogamer, je trouve un grand intérêt à jouer à d’anciens jeux, cela donne une idée de comment les développeurs pensaient à cette époque et surtout je suis fasciné par leur talent de développeur : A COMPREHENSIVE SUPER MARIO BROS DISASSEMBLY.

2. L’automobile

J’adore le Japon et la culture japonaise, notamment une discipline sportive que j’aborderai sûrement : le drift.

Drift Drift

J’aime les voitures japonaises, surtout celles d’entre 1980 et 2000 qui sont championnes de cette discipline : S13, Sil80, AE86 etc.

Je m’intéresse à électronique embarquée automobile, j’ai eu quelques valises de diagnostique : Delphi DS150, Renault Clip. J’ai fait une formation d’un mois sur ça.

Dans ce blog, je vais essayer d’étudier et de mettre mes notes sur Automotive Grade Linux, c’est quelque chose que j’ai dans le viseur depuis longtemps.

This post is licensed under CC BY 4.0 by the author.

-

Mes références Linux embarqué

2023-08-21T08:49:09.9776124Z ^ (line 1) 2023-08-21T08:49:09.9781510Z * 1:13323: ERROR: End tag 'h5' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:09.9850053Z Historique personnel | Linux Monkey Blog
Home Historique personnel
Post
Cancel

Historique personnel

Présentation

Je m’appelle Larbi, je suis ingénieur Linux embarqué débutant dans le domaine. Je vis dans le Val-d’Oise en île de France depuis un peu plus de 4 mois. J’ai fait mes études à l’université Grenoble Alpes où j’ai préparé un master professionnel en systèmes embarqués.

Découverte de l’informatique

Quand j’avais environs 7 ans - début des années 2000 - j’ai reçu une console de jeux très SPÉCIALE, un clone de la Nintendo Famicom que je présente dans cet article. C’était mon premier ordinateur (oui un ordinateur). Pour les retrogamers d’entre vous, j’ai joué à des jeux comme : Double Dragon, Contra, Ninja Gaiden, Lupin Sansei et j’en passe. Ma passion du retrogaming vient de la.

Cette console, comme dit dans l’article possède une interface très interactive et munie d’un Basic. J’y ai déjà mis les mains mais malheureusement, je ne savais pas ce que c’était.

Peu de temps après, j’ai acquis un ordinateur Pentium 4 sous Windows 98. Je passais mon temps sur Encarta et Encarta junior et j’ai découvert la 3D dans les jeux. J’ai joué à deux types de jeux, ceux du PC natifs et ceux de la PS1 grâce à un émulateur Bleem!
bleem Bleem

De nature extrêmement curieuse, je passais mon temps à bidouiller sur mon Pc. Je suis passé sous Windows XP, fait un peu de modding en augmentant la RAM, un lecteur DVD, une souris laser…
Quand j’ai eu le Bac, j’ai directement choisi de faire un tronc commun math-informatique pour ensuite m’orienter vers des études d’électronique.

Pour quoi des études d’électronique ?

J’ai choisi l’électronique car j’aime le hardware, j’adore interagir avec les registres, les mémoires avec du code. Je suis très intéressé par le développement bas niveau : drivers, bootloader, baremetal, etc. Durant mes etudes, j’ai travaillé à mis-temps dans une boite de maintenance informatique. J’ai appris beaucoup de choses sur la maintenance.

Linux, open source & free software

J’ai découvert Linux quand j’étais au lycée, ma première distribution était Ubuntu 11. Je ne faisais rien de spéciale avec appart utiliser quelques commandes et faire des calculs basiques en Python. J’ai abandonné Windows directement.
À l’université, j’ai découvert la philosophie de l’open source et du free software et c’est naturellement dans le domaine du Linux que j’ai décidé d’évoluer.

Mes passions

J’ai deux grandes passions:

1. l’informatique et la retro-informatique

Je fais les puces souvent et j’ai quelques ordinateurs rares. Je suis un retrogamer, je trouve un grand intérêt à jouer à d’anciens jeux, cela donne une idée de comment les développeurs pensaient à cette époque et surtout je suis fasciné par leur talent de développeur : A COMPREHENSIVE SUPER MARIO BROS DISASSEMBLY.

2. L’automobile

J’adore le Japon et la culture japonaise, notamment une discipline sportive que j’aborderai sûrement : le drift.

Drift Drift

J’aime les voitures japonaises, surtout celles d’entre 1980 et 2000 qui sont championnes de cette discipline : S13, Sil80, AE86 etc.

Je m’intéresse à électronique embarquée automobile, j’ai eu quelques valises de diagnostique : Delphi DS150, Renault Clip. J’ai fait une formation d’un mois sur ça.

Dans ce blog, je vais essayer d’étudier et de mettre mes notes sur Automotive Grade Linux, c’est quelque chose que j’ai dans le viseur depuis longtemps.

This post is licensed under CC BY 4.0 by the author.

-

Mes références Linux embarqué

2023-08-21T08:49:09.9901254Z ^ (line 1) 2023-08-21T08:49:09.9906770Z * 1:9252: ERROR: End tag 'h2' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:09.9975943Z Historique personnel | Linux Monkey Blog
Home Historique personnel
Post
Cancel

Historique personnel

Présentation

Je m’appelle Larbi, je suis ingénieur Linux embarqué débutant dans le domaine. Je vis dans le Val-d’Oise en île de France depuis un peu plus de 4 mois. J’ai fait mes études à l’université Grenoble Alpes où j’ai préparé un master professionnel en systèmes embarqués.

Découverte de l’informatique

Quand j’avais environs 7 ans - début des années 2000 - j’ai reçu une console de jeux très SPÉCIALE, un clone de la Nintendo Famicom que je présente dans cet article. C’était mon premier ordinateur (oui un ordinateur). Pour les retrogamers d’entre vous, j’ai joué à des jeux comme : Double Dragon, Contra, Ninja Gaiden, Lupin Sansei et j’en passe. Ma passion du retrogaming vient de la.

Cette console, comme dit dans l’article possède une interface très interactive et munie d’un Basic. J’y ai déjà mis les mains mais malheureusement, je ne savais pas ce que c’était.

Peu de temps après, j’ai acquis un ordinateur Pentium 4 sous Windows 98. Je passais mon temps sur Encarta et Encarta junior et j’ai découvert la 3D dans les jeux. J’ai joué à deux types de jeux, ceux du PC natifs et ceux de la PS1 grâce à un émulateur Bleem!
bleem Bleem

De nature extrêmement curieuse, je passais mon temps à bidouiller sur mon Pc. Je suis passé sous Windows XP, fait un peu de modding en augmentant la RAM, un lecteur DVD, une souris laser…
Quand j’ai eu le Bac, j’ai directement choisi de faire un tronc commun math-informatique pour ensuite m’orienter vers des études d’électronique.

Pour quoi des études d’électronique ?

J’ai choisi l’électronique car j’aime le hardware, j’adore interagir avec les registres, les mémoires avec du code. Je suis très intéressé par le développement bas niveau : drivers, bootloader, baremetal, etc. Durant mes etudes, j’ai travaillé à mis-temps dans une boite de maintenance informatique. J’ai appris beaucoup de choses sur la maintenance.

Linux, open source & free software

J’ai découvert Linux quand j’étais au lycée, ma première distribution était Ubuntu 11. Je ne faisais rien de spéciale avec appart utiliser quelques commandes et faire des calculs basiques en Python. J’ai abandonné Windows directement.
À l’université, j’ai découvert la philosophie de l’open source et du free software et c’est naturellement dans le domaine du Linux que j’ai décidé d’évoluer.

Mes passions

J’ai deux grandes passions:

1. l’informatique et la retro-informatique

Je fais les puces souvent et j’ai quelques ordinateurs rares. Je suis un retrogamer, je trouve un grand intérêt à jouer à d’anciens jeux, cela donne une idée de comment les développeurs pensaient à cette époque et surtout je suis fasciné par leur talent de développeur : A COMPREHENSIVE SUPER MARIO BROS DISASSEMBLY.

2. L’automobile

J’adore le Japon et la culture japonaise, notamment une discipline sportive que j’aborderai sûrement : le drift.

Drift Drift

J’aime les voitures japonaises, surtout celles d’entre 1980 et 2000 qui sont championnes de cette discipline : S13, Sil80, AE86 etc.

Je m’intéresse à électronique embarquée automobile, j’ai eu quelques valises de diagnostique : Delphi DS150, Renault Clip. J’ai fait une formation d’un mois sur ça.

Dans ce blog, je vais essayer d’étudier et de mettre mes notes sur Automotive Grade Linux, c’est quelque chose que j’ai dans le viseur depuis longtemps.

This post is licensed under CC BY 4.0 by the author.

-

Mes références Linux embarqué

2023-08-21T08:49:10.0025575Z ^ (line 1) 2023-08-21T08:49:10.0029564Z * 1:9718: ERROR: End tag 'h2' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:10.0098970Z Historique personnel | Linux Monkey Blog
Home Historique personnel
Post
Cancel

Historique personnel

Présentation

Je m’appelle Larbi, je suis ingénieur Linux embarqué débutant dans le domaine. Je vis dans le Val-d’Oise en île de France depuis un peu plus de 4 mois. J’ai fait mes études à l’université Grenoble Alpes où j’ai préparé un master professionnel en systèmes embarqués.

Découverte de l’informatique

Quand j’avais environs 7 ans - début des années 2000 - j’ai reçu une console de jeux très SPÉCIALE, un clone de la Nintendo Famicom que je présente dans cet article. C’était mon premier ordinateur (oui un ordinateur). Pour les retrogamers d’entre vous, j’ai joué à des jeux comme : Double Dragon, Contra, Ninja Gaiden, Lupin Sansei et j’en passe. Ma passion du retrogaming vient de la.

Cette console, comme dit dans l’article possède une interface très interactive et munie d’un Basic. J’y ai déjà mis les mains mais malheureusement, je ne savais pas ce que c’était.

Peu de temps après, j’ai acquis un ordinateur Pentium 4 sous Windows 98. Je passais mon temps sur Encarta et Encarta junior et j’ai découvert la 3D dans les jeux. J’ai joué à deux types de jeux, ceux du PC natifs et ceux de la PS1 grâce à un émulateur Bleem!
bleem Bleem

De nature extrêmement curieuse, je passais mon temps à bidouiller sur mon Pc. Je suis passé sous Windows XP, fait un peu de modding en augmentant la RAM, un lecteur DVD, une souris laser…
Quand j’ai eu le Bac, j’ai directement choisi de faire un tronc commun math-informatique pour ensuite m’orienter vers des études d’électronique.

Pour quoi des études d’électronique ?

J’ai choisi l’électronique car j’aime le hardware, j’adore interagir avec les registres, les mémoires avec du code. Je suis très intéressé par le développement bas niveau : drivers, bootloader, baremetal, etc. Durant mes etudes, j’ai travaillé à mis-temps dans une boite de maintenance informatique. J’ai appris beaucoup de choses sur la maintenance.

Linux, open source & free software

J’ai découvert Linux quand j’étais au lycée, ma première distribution était Ubuntu 11. Je ne faisais rien de spéciale avec appart utiliser quelques commandes et faire des calculs basiques en Python. J’ai abandonné Windows directement.
À l’université, j’ai découvert la philosophie de l’open source et du free software et c’est naturellement dans le domaine du Linux que j’ai décidé d’évoluer.

Mes passions

J’ai deux grandes passions:

1. l’informatique et la retro-informatique

Je fais les puces souvent et j’ai quelques ordinateurs rares. Je suis un retrogamer, je trouve un grand intérêt à jouer à d’anciens jeux, cela donne une idée de comment les développeurs pensaient à cette époque et surtout je suis fasciné par leur talent de développeur : A COMPREHENSIVE SUPER MARIO BROS DISASSEMBLY.

2. L’automobile

J’adore le Japon et la culture japonaise, notamment une discipline sportive que j’aborderai sûrement : le drift.

Drift Drift

J’aime les voitures japonaises, surtout celles d’entre 1980 et 2000 qui sont championnes de cette discipline : S13, Sil80, AE86 etc.

Je m’intéresse à électronique embarquée automobile, j’ai eu quelques valises de diagnostique : Delphi DS150, Renault Clip. J’ai fait une formation d’un mois sur ça.

Dans ce blog, je vais essayer d’étudier et de mettre mes notes sur Automotive Grade Linux, c’est quelque chose que j’ai dans le viseur depuis longtemps.

This post is licensed under CC BY 4.0 by the author.

-

Mes références Linux embarqué

2023-08-21T08:49:10.0148685Z ^ (line 1) 2023-08-21T08:49:10.0152790Z - _site/posts/leapster-explorer-flash/index.html 2023-08-21T08:49:10.0153432Z * 1:12351: ERROR: End tag 'h2' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:10.0219287Z Hack de console VTech | Linux Monkey Blog
Home Hack de console VTech
Post
Cancel

Hack de console VTech

Je suis tombé sur un site qui parlait de consoles de jeux pour enfant de 3-11 ans : les consoles VTech.
VTech est une entreprise chinoise , un des leaders mondiaux dans la fabrication de jeux et jouets éducatifs électroniques.

j’en ai acheté une pour en faire quelque chose
VTech Leapster explorer Leapster explorer

La leapster explorer est basée sur un soc pollux. Les Soc pollux sont équipés de coeur ARM9 32 bits fonctionnant à 533 MHz.
Pour plus de détailles, veuillez consulter ce site: https://elinux.org/Pollux

La Leapster Expolorer fonctionne sous linux, et le but de cette manip et d’installer un firemware dédié à l’émulation : reatroleap

retroleap est un firemware de remplacement pour ce genre de console, il intègre notamment RetroArch pour l’émulation, un rootfs basé sur buildroot..etc.
RetroArch est un emulateur multiplateforme intégrant plusieurs emulateurs qu’on appelle core, il dispose d’une interface en ligne de commande CLI, une GUI et plusieurs outils de configurations.

RetroArch RetroArch

Voici le repo git de retroleap : retroleap
Il suffit de suivre les instructions et c’est tout, c’est simple non ? bah non 😑.
Pour une raison ou une autre, la console est détécté par le kernel, on le voit avec lsub et dmesg, mais refuse de monter un node dans /dev, un des scripte python qui fait apelle à ce node renvoit ` Device not found` et donc l’accès à la console est impossible.

En cherchant sur internet j’ai rien trouvé, donc on passe au plan B.

Plan B, se connecter à la console en UART.

La console n’est pas vraiment prévue pour ça, mais en faisant quelque soudures, on peut accéder à la console en série.
Cela se fait via le port de lecture des cartouches, en effet il y a des sorties Rx et Tx pour le protocole UART.

port cartouche: source elinux.org port cartouche: soure elinux.org

Les sorties qu’on voit sur port cartouche sont des sorties UART TTL, pour les rendre utilisables sur le PC on doit utiliser un convertisseur USB ->UART.

This post is licensed under CC BY 4.0 by the author.

Erreur de déploiment du site avec Github Actions

Liens intéressants

2023-08-21T08:49:10.0267874Z ^ (line 1) 2023-08-21T08:49:10.0272780Z - _site/posts/mes-livres-linux/index.html 2023-08-21T08:49:10.0273407Z * 1:10120: ERROR: End tag 'h3' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:10.0341957Z Mes références Linux embarqué | Linux Monkey Blog
Home Mes références Linux embarqué
Post
Cancel

Mes références Linux embarqué

Voici quelques livres que je possède. Certains sont des achats ciblés, d’autres qu’on ma donné ou acheté aux puces. La majorité de ces livres sont disponibles en version Pdf gratuite. Moi je préfére les versions papier.

À tout seigneur, tout honneur

Le langage C Norme ANSI 2e édition

Le langage c The C Programming languagei K&R

J’ai acheté ce livre 5 Euros sur le bon coin. Pas la peine de parler de lui, les auteurs en disent long.
Le langage C est la porte d’entrée pour être un développeur Kernel et ce livre est un modèle de documentation technique.
"You can learn the C language without getting Kernighan and Ritchie, but that's doing it the hard way. You're also working too hard if you make it the only book on C that you buy."
Jerry Pournelle
La seule remarque à faire c'est que c'est en francais, parfois la traductions n'est pas précise. J’ai commencé à corriger les exercices du livre, le repo est sur mon Github.

Linux Device Drivers 3rd Édition

Linux Device Drivers Linux Device Drivers

La bible du développeur de drivers Linux. C’est l’équivalent en terme de drivers du livre de K&R sur le C. On doit lire aucun livre sur les drivers avant celui ci. L’avantage de ce livre est qu’il contient des chapitres qu’on peut lire séparément sans forcement passer sur les autres. Je l’ai utilisé durant mon stage pour développer des drivers.

Mastering Embedded Linux Programming Seconde Edition

Mastering Ebmedded Linux programming Mastering Embedded linux Programming

C’est un excellent livre très accessible car il part du début. De la Toolchain au Bootloader puis au Kernel. Il parle des systèmes de fichiers, des mémoires, de temps réel, etc. Ce livre englobe presque toutes les couches d’un Linux embarqué. Il surfe parfois sur les sujets mais c’est assez pour comprendre et pas assez pour se perdre.

Je me suis servi aussi de ce livre durant mon stage, plus précisément dans la partie UBI pour les mémoires MTD.

Building Embedded LINUX SYSTEMS

Building Ebmedded Linux Systems Building Embedded LINUX SYSTEMS

Un livre de Karim YAGHMOUR, je l’ai acheté récemment et j’ai tout juste commencé à le lire. Ce qui ma intéressé, c’est le fait qu’il utilise parmi ses targets une console Sega Dreamcast pour compiler un Linux dessus.
Comment dire !… C’est un livre qui se concentre sur les concepts et les explications plutôt que le code. Selon moi, l’auteur voulait mettre en valeur la compréhension des mécanismes.

This post is licensed under CC BY 4.0 by the author.

Historique personnel

Projet de Drivers Linux

2023-08-21T08:49:10.0391399Z ^ (line 1) 2023-08-21T08:49:10.0395718Z * 1:11248: ERROR: End tag 'h3' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:10.0464233Z Mes références Linux embarqué | Linux Monkey Blog
Home Mes références Linux embarqué
Post
Cancel

Mes références Linux embarqué

Voici quelques livres que je possède. Certains sont des achats ciblés, d’autres qu’on ma donné ou acheté aux puces. La majorité de ces livres sont disponibles en version Pdf gratuite. Moi je préfére les versions papier.

À tout seigneur, tout honneur

Le langage C Norme ANSI 2e édition

Le langage c The C Programming languagei K&R

J’ai acheté ce livre 5 Euros sur le bon coin. Pas la peine de parler de lui, les auteurs en disent long.
Le langage C est la porte d’entrée pour être un développeur Kernel et ce livre est un modèle de documentation technique.
"You can learn the C language without getting Kernighan and Ritchie, but that's doing it the hard way. You're also working too hard if you make it the only book on C that you buy."
Jerry Pournelle
La seule remarque à faire c'est que c'est en francais, parfois la traductions n'est pas précise. J’ai commencé à corriger les exercices du livre, le repo est sur mon Github.

Linux Device Drivers 3rd Édition

Linux Device Drivers Linux Device Drivers

La bible du développeur de drivers Linux. C’est l’équivalent en terme de drivers du livre de K&R sur le C. On doit lire aucun livre sur les drivers avant celui ci. L’avantage de ce livre est qu’il contient des chapitres qu’on peut lire séparément sans forcement passer sur les autres. Je l’ai utilisé durant mon stage pour développer des drivers.

Mastering Embedded Linux Programming Seconde Edition

Mastering Ebmedded Linux programming Mastering Embedded linux Programming

C’est un excellent livre très accessible car il part du début. De la Toolchain au Bootloader puis au Kernel. Il parle des systèmes de fichiers, des mémoires, de temps réel, etc. Ce livre englobe presque toutes les couches d’un Linux embarqué. Il surfe parfois sur les sujets mais c’est assez pour comprendre et pas assez pour se perdre.

Je me suis servi aussi de ce livre durant mon stage, plus précisément dans la partie UBI pour les mémoires MTD.

Building Embedded LINUX SYSTEMS

Building Ebmedded Linux Systems Building Embedded LINUX SYSTEMS

Un livre de Karim YAGHMOUR, je l’ai acheté récemment et j’ai tout juste commencé à le lire. Ce qui ma intéressé, c’est le fait qu’il utilise parmi ses targets une console Sega Dreamcast pour compiler un Linux dessus.
Comment dire !… C’est un livre qui se concentre sur les concepts et les explications plutôt que le code. Selon moi, l’auteur voulait mettre en valeur la compréhension des mécanismes.

This post is licensed under CC BY 4.0 by the author.

Historique personnel

Projet de Drivers Linux

2023-08-21T08:49:10.0514010Z ^ (line 1) 2023-08-21T08:49:10.0518718Z * 1:12160: ERROR: End tag 'h3' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:10.0587205Z Mes références Linux embarqué | Linux Monkey Blog
Home Mes références Linux embarqué
Post
Cancel

Mes références Linux embarqué

Voici quelques livres que je possède. Certains sont des achats ciblés, d’autres qu’on ma donné ou acheté aux puces. La majorité de ces livres sont disponibles en version Pdf gratuite. Moi je préfére les versions papier.

À tout seigneur, tout honneur

Le langage C Norme ANSI 2e édition

Le langage c The C Programming languagei K&R

J’ai acheté ce livre 5 Euros sur le bon coin. Pas la peine de parler de lui, les auteurs en disent long.
Le langage C est la porte d’entrée pour être un développeur Kernel et ce livre est un modèle de documentation technique.
"You can learn the C language without getting Kernighan and Ritchie, but that's doing it the hard way. You're also working too hard if you make it the only book on C that you buy."
Jerry Pournelle
La seule remarque à faire c'est que c'est en francais, parfois la traductions n'est pas précise. J’ai commencé à corriger les exercices du livre, le repo est sur mon Github.

Linux Device Drivers 3rd Édition

Linux Device Drivers Linux Device Drivers

La bible du développeur de drivers Linux. C’est l’équivalent en terme de drivers du livre de K&R sur le C. On doit lire aucun livre sur les drivers avant celui ci. L’avantage de ce livre est qu’il contient des chapitres qu’on peut lire séparément sans forcement passer sur les autres. Je l’ai utilisé durant mon stage pour développer des drivers.

Mastering Embedded Linux Programming Seconde Edition

Mastering Ebmedded Linux programming Mastering Embedded linux Programming

C’est un excellent livre très accessible car il part du début. De la Toolchain au Bootloader puis au Kernel. Il parle des systèmes de fichiers, des mémoires, de temps réel, etc. Ce livre englobe presque toutes les couches d’un Linux embarqué. Il surfe parfois sur les sujets mais c’est assez pour comprendre et pas assez pour se perdre.

Je me suis servi aussi de ce livre durant mon stage, plus précisément dans la partie UBI pour les mémoires MTD.

Building Embedded LINUX SYSTEMS

Building Ebmedded Linux Systems Building Embedded LINUX SYSTEMS

Un livre de Karim YAGHMOUR, je l’ai acheté récemment et j’ai tout juste commencé à le lire. Ce qui ma intéressé, c’est le fait qu’il utilise parmi ses targets une console Sega Dreamcast pour compiler un Linux dessus.
Comment dire !… C’est un livre qui se concentre sur les concepts et les explications plutôt que le code. Selon moi, l’auteur voulait mettre en valeur la compréhension des mécanismes.

This post is licensed under CC BY 4.0 by the author.

Historique personnel

Projet de Drivers Linux

2023-08-21T08:49:10.0637364Z ^ (line 1) 2023-08-21T08:49:10.0642500Z * 1:13128: ERROR: End tag 'h3' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:10.0710791Z Mes références Linux embarqué | Linux Monkey Blog
Home Mes références Linux embarqué
Post
Cancel

Mes références Linux embarqué

Voici quelques livres que je possède. Certains sont des achats ciblés, d’autres qu’on ma donné ou acheté aux puces. La majorité de ces livres sont disponibles en version Pdf gratuite. Moi je préfére les versions papier.

À tout seigneur, tout honneur

Le langage C Norme ANSI 2e édition

Le langage c The C Programming languagei K&R

J’ai acheté ce livre 5 Euros sur le bon coin. Pas la peine de parler de lui, les auteurs en disent long.
Le langage C est la porte d’entrée pour être un développeur Kernel et ce livre est un modèle de documentation technique.
"You can learn the C language without getting Kernighan and Ritchie, but that's doing it the hard way. You're also working too hard if you make it the only book on C that you buy."
Jerry Pournelle
La seule remarque à faire c'est que c'est en francais, parfois la traductions n'est pas précise. J’ai commencé à corriger les exercices du livre, le repo est sur mon Github.

Linux Device Drivers 3rd Édition

Linux Device Drivers Linux Device Drivers

La bible du développeur de drivers Linux. C’est l’équivalent en terme de drivers du livre de K&R sur le C. On doit lire aucun livre sur les drivers avant celui ci. L’avantage de ce livre est qu’il contient des chapitres qu’on peut lire séparément sans forcement passer sur les autres. Je l’ai utilisé durant mon stage pour développer des drivers.

Mastering Embedded Linux Programming Seconde Edition

Mastering Ebmedded Linux programming Mastering Embedded linux Programming

C’est un excellent livre très accessible car il part du début. De la Toolchain au Bootloader puis au Kernel. Il parle des systèmes de fichiers, des mémoires, de temps réel, etc. Ce livre englobe presque toutes les couches d’un Linux embarqué. Il surfe parfois sur les sujets mais c’est assez pour comprendre et pas assez pour se perdre.

Je me suis servi aussi de ce livre durant mon stage, plus précisément dans la partie UBI pour les mémoires MTD.

Building Embedded LINUX SYSTEMS

Building Ebmedded Linux Systems Building Embedded LINUX SYSTEMS

Un livre de Karim YAGHMOUR, je l’ai acheté récemment et j’ai tout juste commencé à le lire. Ce qui ma intéressé, c’est le fait qu’il utilise parmi ses targets une console Sega Dreamcast pour compiler un Linux dessus.
Comment dire !… C’est un livre qui se concentre sur les concepts et les explications plutôt que le code. Selon moi, l’auteur voulait mettre en valeur la compréhension des mécanismes.

This post is licensed under CC BY 4.0 by the author.

Historique personnel

Projet de Drivers Linux

2023-08-21T08:49:10.0761312Z ^ (line 1) 2023-08-21T08:49:10.0766564Z - _site/posts/mon-premier-pc/index.html 2023-08-21T08:49:10.0767182Z * 1:12615: ERROR: End tag 'h4' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:10.0833720Z Mon premier ordinateur | Linux Monkey Blog
Home Mon premier ordinateur
Post
Cancel

Mon premier ordinateur

J’ai reçu quand j’étais petit une console de ce genre.

Nintendo Famiclone Mon premier ordinateur 8 bits

C’est un clone de la Nintendo Famicom comme il y en a des centaines.

Durant la fin des années 80 et début des année 90, la Nintendo NES (Famicom au Japon) avait atteint son apogée, elle est devenue en 1990 la console la plus populaire de l’histoire du jeux vidéos. Ce succès avait induit l’émergence de fausses NES portant plus tard le nom de Nintendo Famiclone.

C’est généralement dans les pays où la NES n’a pas été déployée que ces clones sont commercialisés et/ou fabriqués, comme l’ex URSS, Le Moyen-Orient, l’Amérique du Sud où les clones de NES avaient la même popularité que la console originale au Japon ou en Europe.

Les clones les plus populaires sont fabriqués par Micro Genuis, une société taïwanaise. Un des plus célèbres de ces clones est le Dendy de Steepler Ltd fabriqué en Chine et à Taïwane en 1992. Déployé essentiellement en Russie ! le Dendy se décline sous différentes versions et styles, parfois on trouvait des Dendy sous forme SEGA Mega Drive.

Nintendo Famiclone Clone NES Dendy sous forme de Mega Drive

Il y a dans la majorité du temps une compatibilité entre les jeux licenciés Nintendo et ces clones, ce qui fait d’eux des consoles versatiles car dépourvues de zonage. Ils peuvent faire fonctionner des jeux hackés, fait-maison, sans licence Nintendo et des cartes all in one comme la célébre 9999 Games to 1.

Nintendo Famiclone Cartouche d’un Famiclone 99999…etc in 1

Durant le Krash du jeux vidéo en 1983, les consoles de jeux se vendaient beaucoup moins, le public préférait se tourner vers des ordinateurs familiaux comme le Commodore 64, le TRS80, le Sinclair Zx80/spectrum et j’en passe. C’est dans ce contexte que Nintendo avait ajouté des accessoires à sa console : Un enregistreur de cassettes, des joysticks, des manettes et enfin un clavier avec une cartouche de Basic (Fammily Basic), un langage de programmation très en vogue à l’époque des ordinateurs 8 bits.

C’est ainsi que des clones de NES sont apparues sous forme de claviers intégrants une interface graphique interactive, différents logiciels d’éducation (mathématique, musique, dessin, etc) et bien sûr le G-Basic. Beaucoup de développeurs ont écrit leurs premières lignes de code sur ces clones, c’était mon cas mais je ne savais pas ce que j’écrivais : je ne savais pas ce que c’était à vrais dire !

Interface Graphique Interface Graphique d’un Famiclone Educationnal Computer

Spécification technique

Le processeur principale de la Famicom est un Ricoh 20A3 8 bits basé sur le noyau d’un MOS 6502 cadencé à 1,789 772 5  (NTSC) ou 1,773 447  (PAL). C’est un processeur compatible 6527P qui a servit pour le Dendy.
La plupart des famiclone récents sont basés sur un NES-on-a-chip ASIC ou Nintendo On a chip (NOAC). Des constructeurs de clones ont ajoutés des système de rétrocompatibilité qui permettent aux développeurs de rajouter des équipements pour un meilleur rendu graphique et sonore, e.g. un processeur plus performant comme le 65C816 de la Super NES qui est une version amélioré du 65C02.

Voilà une brève histoire de ces Famiclone, je leurs doit beaucoup personnelement. Si vous en croisez un notamment sous forme de clavier , n’hésitez pas à me contacter !

à la prochaine.

This post is licensed under CC BY 4.0 by the author.

Projet de Drivers Linux

Fuites mémoire, les dangers des tableaux en C

2023-08-21T08:49:10.0882515Z ^ (line 1) 2023-08-21T08:49:10.0887624Z - _site/posts/script-shell-vicieux/index.html 2023-08-21T08:49:10.0888253Z * 31:597: ERROR: End tag 'h4' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div. 2023-08-21T08:49:10.0894516Z

Comme vous le voyez c’est assez simple, j’ai une liste d’adresses IP que je parcoure dans une boucle for. Dans la boucle for, je fais un snmpget avec l’OID du daemon qui spécifie si dernier est activé ou désactivé, à fin, j’extraie la dernière ligne qui contient le retour de snmpgetet je fais des conditions.

Commades utilisées

Mais alors ou est le soucis ?

Le soucis est que ce programme rentre dans la condition if [...] que dans la dernière itération de la boucle ! c’est à dire ip=59
La cause de ça est que snmpget pollue les sortie stderr avec des messages et provoque ça, en redirigeant la sortie stderr vers stdout ou vers un fichier, ça résout le soucis.

1
2023-08-21T08:49:10.0898822Z                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^ (line 31)
2023-08-21T08:49:10.0899454Z - _site/posts/wireshark-monitor-wifi/index.html
2023-08-21T08:49:10.0900076Z   *  29:497: ERROR: End tag 'h4' isn't allowed here. Currently open tags: html, body, div, div, div, div, div, div.
2023-08-21T08:49:10.0933929Z 

J’ai une interface type managed, veut dire mode STA(client)

La création d’une autre interface wifi type moniteur doit être supporté par le driver Certains drivers ne supportent pas deux ifaces fonctionnant en tandem.

Petit coup d’oeil sur wireshark

Les beacons sont envoyés par les AP chaque 102ms , ils contiennent des informations sur la BSS.
Un AP envoi un beacon contenant des informations sur lui notamment son BSSID. Les services qu’il peut fournir, etc.
Il y a 3 types de trames dans 802.11 :

Un client pour découvrir des AP envoi des probe requests(management frames) ces derniers peuvent être ciblés vers des AP ou broadcasté. L’AP qui les a reçu répond par des probe respons.

Pour voir ces beacons, il faut faire un peux de filtrage, voici les filtres qu’il faut appliquer selons la trame qu’il faut mettre en évidence (0x type sybstype)
https://www.wifi-professionals.com/2019/03/wireshark-display-filters
version pdf

Pour voir les trammes de management, il faut appliquer ce filtre wlan.fc.type == 0

Management frames Management frames

On voit ma box qui broadcast son SSID. Mon téléphone qui envoie et reçoit des trames d’authentification puis envoi des Association Request et reçoit Association Respons de ma box.

Réseaux
This post is licensed under CC BY 4.0 by the author.
Recent Update

Script shell vicieux

Cheatsheet bash

2023-08-21T08:49:10.0956376Z ^ (line 29) 2023-08-21T08:49:10.0956802Z 2023-08-21T08:49:10.0957017Z HTML-Proofer found 20 failures! 2023-08-21T08:49:10.0957218Z 2023-08-21T08:49:10.0962465Z ##[error]Process completed with exit code 1.