- Détails
Je me suis toujours demandé comment est conçu Karotz du point de vue de son architecture matérielle et logicielle.
Il s'agit d'un objet connecté assez vintage mais pour l'époque était-ce à la pointe de la technologie ?
Karotz a été lancé en 2011 par Mindscape/Violet, à une époque où l'Internet des Objets n'en était qu'à ses débuts.
Voici une première analyse du système réalisée avec de simples commandes Linux via telnet.
Note : cette exploration est basée sur le firmware communautaire OpenKarotz, enrichi par le service FreeRabbits. La structure de base (cramfs en lecture seule pour /, yaffs en lecture/écriture pour /usr) correspond au design original de Violet/Mindscape, mais le contenu de /usr a été peut-être été considérablement enrichi par la communauté.
Processeur et architecture
Le Karotz embarque un processeur ARM920T, une puce conçue par ARM dans les années 2000. C'est une architecture ARMv4T.
Le T indique le support du jeu d'instructions Thumb pour optimiser la taille du code.
cat /proc/cpuinfo
Processor : ARM920T rev 0 (v4l)
BogoMIPS : 201.93
Features : swp half
CPU implementer : 0x41
CPU architecture: 4T
CPU variant : 0x1
CPU part : 0x920
CPU revision : 0
Hardware : RABBITV3 BY PRAGMATEC
Revision : 0000
Serial : 0000000000000000
Ce processeur est certes modeste par rapport aux standards actuels mais était tout à fait adapté aux besoins d'un appareil connecté de l'époque : lecture audio, connexion réseau, contrôle des périphériques (LED, moteurs des oreilles, webcam, ...).
Mémoire
Karotz dispose de 60 Mo de RAM :
cat /proc/meminfo
free
MemTotal : 60168 kB
MemFree : 3964 kB (variable selon l'utilisation)
Buffers : 1836 kB
Cached : 39132 kB
Pas de swap configuré. Le système doit donc gérer sa mémoire. En pratique, environ 45 Mo sont réellement disponibles pour les applications après le cache système.
Le système d'exploitation : Linux Pragmatec
Karotz tourne sous Linux 2.6.28, compilé par Pragmatec (la société derrière le hardware) le 31 mai 2011 :
Linux karotz 2.6.28-pragmatec -g53e06b1-dirty #1 Tue May 31 17:50:18 CEST 2011
gcc version 4.3.5 (Buildroot 2010.11)
Le système a été construit avec Buildroot 2010.11, un outil permettant de créer des distributions Linux embarquées sur mesure.
Organisation du stockage
Le système de fichiers est particulièrement intéressant :
| Partition | Type | Taille | Mode | Usage |
| / (rootfs) | cramfs | 7.7 Mo | Lecture seule | Système de base |
| /usr | yaffs | 234 Mo | Lecture/écriture | Applications, données |
| /var | ramfs | - | Volatile | Fichiers temporaires |
| /dev/shm | tmpfs | 29 Mo | Volatile | Mémoire partagée |
Ce qui est intéressant de noter : La racine est en lecture seule (cramfs compressé), tandis que /usr est modifiable et dispose de 149 Mo libres pour d'éventuelles expérimentations.
C'est également dans cette partition /usr que sont stockés les fichiers utilisateur : MP3, applications OpenKarotz, etc. Avec 149 Mo libres, il y a de la marge pour personnaliser son lapin !
La libc : uClibc
Contrairement aux distributions Linux classiques qui utilisent la glibc, le Karotz utilise uClibc 0.9.31, une bibliothèque C légère optimisée pour les systèmes embarqués.
Cette particularité est importante car elle impacte la compatibilité des binaires : impossible d'utiliser des programmes compilés pour glibc.
Nous verrons dans un prochain article que cette particularité complique l'ajout de nouvelles fonctionnalités, nécessitant de cross-compiler les logiciels spécifiquement pour cette libc.
Comparaison avec Raspberry Pi 5 (2023)
Juste pour le fun, une petite comparaison avec Raspberry Pi 5 de 2023 :
| Karotz (2011) | Raspberry Pi5 (2023) | |
| Processeur | ARM920T (ARMv4T) | Cortex-A76 (ARMv8-A 64-bit) |
| Coeurs | 1 | 4 |
| Fréquence | ~200 MHz | 2.4GHz |
| RAM | 60 Mo | 4 Go ou 8 Go |
| Stockage | 234 Mo Flash | MicroSD (Jusqu'à 2 To) |
| GPU | Aucun | VideoCore VII |
| USB | 1x USB 1.1 | 2X USB 3.0 ou 2X USB 2.0 |
| Réseau | WiFi | Wifi 6 + Gigabits Ethernet |
Le Raspberry Pi 5 est environ 12x plus rapide en fréquence, avec 4 cœurs au lieu d'un, et 130x plus de RAM.
Autant dire que le Karotz fait un peu figure d'antiquité ! Et pourtant, il fait toujours le job pour lequel il a été conçu. 🐰
Alors, pour conclure : Un Karotz ou un Raspberry Pi ?
La comparaison peut sembler absurde tant les specs sont différentes. Mais pourquoi pas.
Le Karotz, c'est :
- Un objet fini, prêt à l'emploi, avec son design unique
- Des oreilles motorisées, un LED belly, une webcam, un haut-parleur
- Un compagnon de bureau qui a du caractère et un certain charme 🐰
Le Raspberry Pi, c'est :
- Une carte nue à mettre dans un boîtier
- Un projet à construire soi-même
- Une puissance brute pour faire... ce que vous voulez
Comparer les deux, c'est comme comparer une Mini Austin et une BMW série 3. L'une a du charme et une âme, l'autre a la puissance. Et parfois, on préfère rouler en mini ! 🚗
- Détails
Introduction
Quand j'ai voulu ressusciter mon Karotz, j'ai d'abord suivi les tutoriels existants : OpenKarotz, FreeRabbits OS...
Et j'ai galéré. Beaucoup. Entre les erreurs d'installation, les vérifications de version qui bloquaient tout et les dépendances à des services externes, j'ai fini par me poser une question simple : et si je reprenais les choses en main ?
C'est ainsi que sont nés miniil Karotz OS et miniil's OpenKarotz.
Les problèmes rencontrés
Une installation capricieuse
Les solutions existantes vérifiaient la version de l'OS déjà installé. Si la version correspondait, pas de réinstallation. En théorie, c'est logique. En pratique, quand quelque chose plantait en cours de route, impossible de repartir proprement. L'installation se bloquait, le lapin restait dans un état instable ou sans connexion WiFi.
J'ai perdu des heures à chercher des contournements avant de me dire : pourquoi ne pas simplement tout réinstaller à chaque fois ? Une installation complète, propre, sans condition.
Des dépendances externes
FreeRabbits OS propose des fonctionnalités intéressantes comme le TimeButton. Mais celles-ci, comme je l'ai évoqué dans un article précédent peuvent poser certains problèmes de sécurité. Ayant un peu discuté avec le créateur de FreeRabbits, ils sont bien conscients qu'ils pourraient envoyer n'importe quelle commande sur votre lapin avec ce service TimeButton mais ils n'ont en aucun cas l'intention de nuire. Leurs services sont basés sur la confiance.
Leur travail a permis à beaucoup de Karotz de revivre et de continuer à vivre, le mien y compris car je me suis basée sur leur travail.
Sachez donc que FreeRabbits propose énormément de services grâce à TimeButton et certains sont même très intéressants. Si vous voulez disposer de ces services, il faut utiliser FreeRabbits et TimeButton.
Une interface limitée
OpenKarotz offrait une interface web fonctionnelle mais il manquait des choses essentielles pour vraiment maîtriser son lapin : pas d'éditeur de crontab intégré, pas de gestion simple des web radios, pas de possibilité de donner un nom à mon lapin.
Ma solution : reprendre le contrôle
miniil Karotz OS
J'ai créé ma propre version d'installation du firmware basée sur les travaux de la communauté, avec une philosophie simple :
- Installation complète à chaque fois : On repart de zéro, pas de vérification de version qui bloque
- Fiabilité : Les erreurs d'installation sont vérifiées et inscrites dans un fichier de log
- Personnalisation : une petite touche personnelle comme le message d'accueil en telnet (MOTD)
miniil's OpenKarotz
Pour l'interface web, j'ai déjà ajouté les fonctionnalités qui me manquaient :
- Éditeur de crontab : programmer des actions directement depuis l'interface
- Gestion des web radios : ajouter, modifier, supprimer ses radios facilement
- Le taichi d'oreilles : Ca ne sert à rien mais c'est mignon
- La possibilité d'utiliser un serveur tts personnel : Nous en reparlerons
Plus qu'un projet technique : un apprentissage
Ce projet n'était pas seulement une question de faire fonctionner un lapin. C'était l'occasion de plonger dans :
- Le fonctionnement d'un système Linux embarqué
- Les scripts bash et leur enchaînement au démarrage
- La compréhension du firmware (cramfs, yaffs, NAND flash)
- La création d'interfaces web pour systèmes contraints
Chaque problème rencontré était une opportunité d'apprendre.
Pour la communauté
Je partage cette documentation pour que d'autres n'aient pas à galérer comme moi. Si vous avez un Karotz qui dort dans un placard, j'espère que ces ressources vous aideront à lui redonner vie.
Et surtout, que vous puissiez le faire de manière autonome, sans dépendre de services qui pourraient disparaître demain.
Conclusion
miniil Karotz OS et miniil's OpenKarotz sont nés de la frustration, de la curiosité et de l'envie de partager. Ce n'est pas parfait, mais c'est fonctionnel, documenté (en partie pour l'instant) et surtout : indépendant.
Si vous voulez tenter d'installer cet OS et OpenKarotz, suivez le guide. Si vous rencontrez des problèmes avec l'installation, n'hésitez pas à me contacter ou à laisser un commentaire sous cet article.
Votre lapin mérite de vivre longtemps. 🐰
- Détails
Votre Karotz ne répond plus? Vous souhaitez repartir sur une base stable? Ce petit guide vous accompagne dans la réinstallation complète du système de votre lapin connecté.
Je vous explique comment installer miniil Karotz OS, un firmware légèrement modifié basé sur les travaux de la communauté, accompagné de miniil's OpenKarotz pour contrôler votre lapin via une interface web retravaillée avec quelques fonctionnalités supplémentaires.
Prérequis
Il vous faut :
- Un lapin karotz fonctionnel (qui s'allume évidemment)
- Une clef USB
- Un ordinateur pour préparer la clef USB
- Un réseau WiFi en WPA/WPA2 (Attention il faut au moins WPA)
- Le SSID et le mot de passe de votre WiFi
- Une adresse IP disponible sur votre réseau local
Première étape : Préparer la clef USB
Suivez ces étapes pour préparer la clef USB :
- Téléchargez le fichier archive usbkey.zip ICI
Vous devrez certainement confirmer l'enregistrement du fichier. - Formatez la clef USB au format FAT32
- Décompressez le fichier archive quelque part sur votre ordinateur
- Dans les fichiers obtenus, éditez le fichier waitfornetwork.sh pour indiquer la configuration de votre réseau, remplacez :
- IP : L'adresse IP dédiée à votre lapin (cette adresse IP devra être libre sur votre réseau)
- DNS : Vous pouvez laisser 8.8.8.8 c'est le DNS de Google
- GW : L'adresse IP de votre routeur
- NM : Le masque de sous réseau c'est en général 255.255.255.0
- SSID : Le nom de votre réseau WiFi (WPA/WPA2)
- PWD : Le mot de passe de votre réseau WiFi
- Sauvegarder le fichier
- Copiez/Collez tous les fichiers et répertoires sur votre clef USB : 10 fichiers et 1 répertoire qui contient les fichiers son
- Ejecter la clef USB (pour la retirer proprement de votre ordinateur)
Votre clef USB est prête à être utilisée.
Deuxième étape : Lancer l'installation
Vérifiez d'abord que votre lapin Karotz est bien éteint et qu'il est branché sur une prise de courant stable.
Insérez la clef USB dans le port USB à l'arrière de votre lapin Karotz.
Démarrez votre lapin.
L'installation commence. Vous entendrez plusieurs messages qui vous permettront de suivre l'installation.
A titre d'information, les étapes de l'installation sont les suivantes :
- Copie des fichiers de son dans le répertoire
/tmpdu lapin (ce sont les fichiers de message pour suivre l'installation) - Copie des outils nécessaires (notamment madplay qui permet de jouer les fichiers son)
- Création d'un fichier vide sur la clef usb pour vérifier que celle-ci est bien accessible en écriture (l'accès en écriture est indispensable pour pouvoir écrire les informations de l'installation dans le fichier de logs
setuplog.txt - Installation du firmware (c'est l'étape la plus longue et la plus cruciale, il ne faut surtout pas éteindre votre lapin au risque de le rendre totalement inutilisable. Mais rassurez-vous, j'ai réalisé cette étape de nombreuses fois sur plusieurs Karotz et ils sont tous indemnes)
- Installation du fichier pour votre réseau et modification des droits de celui-ci. Le fichier
waitfornetwork.shest copié dans le répertoire/usr/scriptsde votre lapin - Copie des fichiers d'installation pour miniil's OpenKarotz. Il s'agit du fichier archive
installpage.zipqui sera d'abord copiée dans le répertoire/tmpdu lapin et extrait dans le répertoire/usr/www - Annonce de la fin de l'installation : Eteindre votre lapin, retirer la clef USB, redémarrer votre lapin.
Vous pouvez vérifier que l'installation s'est bien déroulée en ouvrant le fichier setuplog.txt sur la clef USB. Si une erreur est survenue pendant l'installation c'est également dans ce fichier que celle-ci sera écrite.
Si vous voulez visionner la séquence d'installation, rendez-vous sur mon espace Youtube ICI.
Troisième étape : Installation de miniil's OpenKarotz
Lorsque votre lapin Karotz est redémarré, il doit d'abord se connecter à votre réseau WiFi pour pouvoir poursuivre.
Si tous les paramètres indiqués dans le fichier waitfornetwork.sh à l'étape précédente sont corrects, il devrait se connecter sans problème.
La LED clignote d'abord en bleu pendant la connexion. Ensuite elle clignotera en vert si le lapin est connecté. Un son est également joué.
Vous pouvez voir la séquence de démarrage et de connexion sur mon espace Youtube ICI.
S'il ne se connecte pas :
- Vérifiez les paramètres indiqués (Attention : Le SSID et PWD sont sensible à la casse)
- Vérifiez l'adresse IP choisie. Celle-ci ne doit pas être utilisée par un autre appareil sur votre réseau.
- Vérifiez que votre WiFi est bien en WPA minimum.
Si tout est OK, vous pouvez accéder à l'interface web d'installation de miniil's OpenKarotz via votre navigateur en indiquant l'adresse IP choisie pour votre lapin. Par exemple : 192.168.0.252.
Une première page vous est présentée, cliquez sur le bouton.

La deuxième page vous informe sur l'installation, cliquez sur le bouton pour installer miniil's OpenKarotz et suivez la progression.

Si tout se passe bien vous en êtes informé. Cliquez sur le bouton et rafraîchissez la page de votre navigateur (F5).

Vous pourrez ensuite choisir entre l'interface WEB ou l'interface Mobile.

Voici l'interface WEB de miniil's OpenKarotz :

REM : L'interface Mobile n'a pas encore été revue.
Je vous présenterai cette interface plus en détail dans un prochain article.
- Détails
Comme je l'ai expliqué dans mon article précédent, j'ai pu ressusciter mon Karotz grâce à Freerabbits.nl et OpenKarotz. Sans les scripts créés par des passionnés, ce petit lapin connecté serait resté sur mon étagère en guise de déco. FreeFabbits et OpenKarotz m'ont permis de le ramener à la vie et d'explorer une partie de ses capacités.
Mais, au fil de mon exploration, je me suis quand même posé la question : "Qu'en est-il de la sécurité par rapport aux fonctionnalités proposées par FreeRabbits ?"

Lire la suite : Free Rabbits OS : Entre gratitude et vigilance
- Détails
Depuis pas mal de temps, je m'intéresse aux divers objets connectés et à la domotique. Je suis loin d'avoir une maison entièrement équipée en domotique mais j'ai plusieurs objets connectés avec lesquels je peux interragir via une installation de Home Assistant, un système domotique open source.
J'ai installé pas mal d'objets connectés : des capteurs, un thermostat, des prises, etc... Et puis j'ai repensé à mon petit lapin Karotz endormi depuis pas mal d'années sur une étagère dans mon bureau. Mon idée est de faire revivre mon lapin, de l'intégrer à mon installation Home Assistant pour pouvoir interragir avec lui.
Je pense que mon lapin sera capable de faire plein de choses comme des annonces vocales, jouer de la musique, faire bouger ses oreilles à certaines conditions.
Ce ne fut pas facile mais mon lapin est maintenant connecté à mon réseau wifi et dispose de l'interface Open Karotz.
En suivant les étapes recommandées sur le site Open Karotz, je ne suis malheureusement pas arrivée à tout faire fonctionner. Il y avait plusieurs erreurs déclenchées dans les scripts et finalement l'installation échouait à chaque fois.
Pour y arriver j'ai d'abord dû passer par l'installation de Free Rabbits qui permet par la suite d'installer Open Karotz.
Il s'uffit donc de suivre les instructions données par Free Rabbits et une fois terminées se rendre sur l'adresse web local du lapin http://[ip locale]/install pour pouvoir lancer l'installation de Open Karotz.
Une fois Open Karotz installé, on peut accéder à son interface web via l'adresse IP locale.

L'interface Web Open Karotz propose diverses fonctionnalités pour contrôler le lapin en appelant ses différentes api.
On peut par exemple :
- Faire bouger les oreilles en appelant l'api ears
- Faire parler son lapin avec l'api tts
- Prendre une photo avec la caméra du lapin avec l'api take_snapshot
Tout ceci semble bien fonctionner jusqu'à maintenant.
Mais en tant qu'informaticienne, j'aimerais comprendre tout ce que Free Rabbitz et Open Karotz m'apportent techniquement, explorer les possibilités de développement pour ajouter mes propres fonctionnalités, et mieux saisir l'architecture globale de mon petit lapin en vie.
