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

Aucun commentaire