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 ! 🚗
