DoudouLinux dev's blog

To content | To menu | To search

Friday 25 November 2011

Automatic login now available

The default behavior of DoudouLinux is to show the menu of activities (see below) after the system has started and as soon as any activity is leaved. This is good for small children because the activities menu offers activities in the increasing order of difficulties, from top to bottom. However, for older children, the first activities are or will quickly become of poor interest. This is why the list of activities shown – but not their order – can be changed with the activities menu editor .

Activities menu (small)

However the oldest children may still have no interest at all in seeing a menu of activities, since they will surely login into “Whole DoudouLinux”. The new version of the activities menu editor can now do this. The trick is quite simple: if only one activity is selected in the menu, DoudouLinux will not show the activities menu but instead will enter this activity directly. Activities menu settings are recorded in the directory /home/etc/, which means that any data persistence (user data or user+system) is sufficient to make settings survive a reboot or a shutdown.

This new version of the activities menu editor will be available with next releases: the coming development release numbered 2011-11 and the planned official release update Gondwana 1.2, due to mid January.

Saturday 19 November 2011

Efika MX SmartBook

Here they are,

3 Genesi Efika MX SMARTBOOK for the DouDouLinux Dev Team.


Thanks again to Genesi for supporting us in this challenge.


Just needed some work now from the dev team to make the first DouDouLinux release available on ARM.

Sunday 13 November 2011

Source package repository now online

We've been providing a DoudouLinux Debian repository for binary packages since the beginning of the project but no source package repository. As we're now part of Debian Derivatives and as we're also moving to ARM™ architecture, we needed to setup a source repository too. For Debian Derivatives, this will allow our father project Debian to automatically fetch all our patches of standard Debian packages. For our ARM™ port, this will ease the compilation of binary packages targeting either the armel or armhf flavor.

Our source package is now online, although it is not complete yet. It can be fetched using the standard way to add source repositories, in /etc/apt/sources.list or /etc/apt/sources.list.d/:

deb-src lenny main
deb-src squeeze main

The source repository is completed for the stable version of DoudouLinux, based on Debian Lenny. The development branch, based on Squeeze is not completed yet, due to difficulties to deal with the new package format Quilt 3. Most of packages have their sources for the development version however :). Finally we now have to set up an experimental branch based on Wheezy to be able to build armhf packages (only armel can be built upon Squeeze).

The way we built the source repository consisted in changing first our package build script to make it automatically generate and collect source packages, then our repository build script to make it handle source packages too. To build the Debian repository, we're using reprepro, an official Debian tool which is quite simple to use:

  1. Create a directory for your Debian repository, say debian/.
  2. Create a file debian/conf/distributions that sets your repository parameters (name, architectures, codename, etc.).
  3. Invoke reprepro for each package to be added, with the options matching your package.

For a binary package:

reprepro -V --basedir debian/ --architecture <arch> includedeb <codename> <debfile>

where <arch> is i386, amd64, armel, etc., <codename> is your distribution codename and <debfile> the binary package to be added.

For a source package the command is slightly different:

reprepro -V --basedir debian/ --type dsc includedsc <codename> <dscfile>

where <dscfile> the DSC file of your source package. It will copy the corresponding .tar.gz file and .diff.gz file (whenever available) that are used to restore the patched source code.

In the future we intend to setup a buildd or buildd-like server that will build all our packages transparently, automatically from source code, whatever the target architecture and the distribution flavor. This way we won't have to do manual operations to update our repository any more.

Saturday 5 November 2011

Genesi supports DoudouLinux ARM™ port

Genesi logo We are very glad to announce that Genesi, which makes computing products using ARM™ and Power Architecture™ technology, has accepted our project DoudouLinux in its latest sponsorship program around the i.MX53 chip from Freescale. The team will benefit from Genesi hardware, graciously donated to help us port DoudouLinux on ARM™. Moreover, as Genesi is already running Debian on its ARM™ devices, this collaboration will undoubtedly speedup our work :).

This first partnership is just the beginning of our move to ARM™ architecture. As this platform is quickly increasing in popularity, we have understood during the early stages of the project that we could not miss this opportunity to provide children all around the world with adapted, efficient, easy, pleasant and… free software. Of course any volunteer willing to help the project is welcome! We are impatient to have DoudouLinux on ARM™: the more developers we are, the faster it will occur.

Stay tuned!

Saturday 9 April 2011

Clean install of DoudouLinux on hard disk

Currently the DoudouLinux installer just copies onto disk the Live media as is. While this is very practical for us and brings interesting features to users (rock-solid read-only system), this also has drawbacks:

  • the system is still compressed and slows down startup on old computers
  • you can not remove software
  • upgrading software creates a duplicate version of each software
  • many boot parameters cannot be changed (they're not persistent)

One of our most active contributors, Richard, suggested to use Remastersys. This is a tool whose goal is to perform full system backup onto a Live CD for Debian-based distributions. One of its features is to let users re-install a clean system onto hard disk from the Live CD: just what we need!

Thanks to it, on a laptop from 2003-2004, DoudouLinux is now booting in 40s instead of 120s from CD. I installed the system in 3 separate partitions: root, home and swap. The root system needs 1.9 GB so you have to setup at least a 2.5 GB root partition. Of course if you want to add software or don't want a separated home partition (bad idea), make it larger! Now let's look at the recipe :).

Remastersys is offered as a Debian package. The package provides a shell script to install the running Live system on disk: “remastersys-installer”. Reading the script showed that it is doing what we need. We have then successfully performed a clean install of DoudouLinux with the following operations:

  1. add Remastersys repository to a running DoudouLinux
  2. install Remastersys
  3. run the Remastersys script called “remastersys-installer”
  4. reboot!

Note that there are some issues to be corrected after the first boot (see after the source code below). We also have to customize the Remastersys script for use in an official future DoudouLinux release. In the meanwhile, if you want to test it by yourself, you need to type several code lines as root then as the main user to be able to use the graphical Gtk interface:

# log as root
su -

# define parameters

# register remastersys repository
echo 'deb debian/' >> $SOURCESLIST

# fix bug DansGuardian blocking some deb's files
# see:
echo '\\.deb$' >> $DANSREGEXPEXCEPT

# install remastersys
apt-get update
apt-get install --assume-yes --force-yes remastersys

# call installer as normal user
sudo remastersys-installer gui

Once completed, if you see messages complaining about the impossibility to unmount /TARGET and /TARGET/home, just unmount them manually in the console:

sudo umount /TARGET/home/
sudo umount /TARGET/

Finally please note that there are few details to be corrected:

  • at boot GRUB is complaining about a missing splash image
  • network may not work because the file /etc/network/interfaces is appended with another network configuration at each boot (which causes inconsistencies)
  • boot is hanging tens of seconds when network is not plugged because it is waiting for a DHCP lease

The first point can be solved by editing /boot/grub/menu.lst and adding “boot” between the double slash (//) in the line speaking of splash. Note that the Remastersys splash image is not childish at all. Prefer installing the package grub-splashimages-doudoulinux instead! (and replace the file /boot/grub/splash.xpm.gz)

The second one can be solved by removing the for loop of the 3rd block of code in /etc/rc.local.

The last one cannot be simply solved. We have to achieve additional experiments to find a solution. They'll be reported in the ticket related to this topic: Provide a way to do a real DDL installation.

Have nice DoudouLinux installs! ;)

Tuesday 1 February 2011

Graphical interface to set the session menu

A new tool to set the session menu has been developed. It has been designed to be dead easy to use: you are shown the list of possible sessions and just check or uncheck the sessions that you want to see or hide. You can then easily adapt the main screen to the audience: small or big children (or adults ;) ). In the future we may add an option to force autologin for a given activity.

Please note that sessions are called activities in the interface, which is certainly more easy to understand for people who are not familiar with computers. Here is a screenshot:


The tool is not available in CD's yet but will be added to next release, the 2011-02, due to late February. It is already available on our Debian package repository. In the meanwhile, if you really feel the need to use it, you can install it manually in a running DoudouLinux:

$ wget
$ sudo dpkg -i doudoulinux-sessions_1.0-3_all.deb

Of course everything is lost at shutdown if you have not activated persistence or not installed DoudouLinux definitively.

Wednesday 19 January 2011

Changing the session menu

A question that is regularly asked is how to remove some entries in the session menu (shown on the screenshot below). The standard session menu has 7 sessions. If you want a DoudouLinux for very young children, you may wonder how to remove the two most advanced sessions, Mini and Whole DoudouLinux. On the contrary the first 2 or 3 sessions are quite useless if your children are bigger.

GDM session menu (Chinese)

The solution is to enter the session Whole DoudouLinux and open a console. Because the session menu is based on GDM, the tool that will allow you to hide sessions is “gdmsetup”:

$ sudo gdmsetup

In the latest tab you can add or remove users in the list of users who are not shown in the menu:

gdmsetup – user's tab

Of course changes are lost after shutdown or reboot if you have not installed DoudouLinux on hard disk or if full persistence is not set. The session names to be used in the order of session difficulty are:


The resulting session menu with “5doudoulinux” and “tux” removed is the following:

GDM session menu modified (Chinese)

So everything is OK but you may have noticed that a problem occurs if you want to change the sound volume or to make removed sessions reappear: you do not have access to the required tools anymore through the remaining sessions… The solution is simple: just type the name of the Whole DoudouLinux session user, which is “tux”, then press Return. This is shown in the following screenshot:

GDM type user name (Chinese)

To conclude there is just one thing to add: it would be better to have a small but nice interface to set the session menu. Be patient, this will come!

Thursday 13 January 2011

Daily build section re-factored

After the current release was out, the dailybuild section naturally disappeared since all its contents simply moved to the official download section. We took the opportunity to change the location of this dailybuild section so please now visit:

Due to changes in the web server configuration, it is not possible to browse our public directories anymore. So we also wrote a Php script in this section to get a table of downloadable files, just as the official download section. Finally there are currently 2 ISO files available. One is the first Chinese build and the other one is a new Russian build with a translation file fixed (see ticket

Thursday 30 December 2010

DoudouLinux logo designed

A first DoudouLinux logo has been designed from the website artwork. It is available as PNG files as well as SVG source file. To draw it we used Inkscape 0.46 and draws from the Open Clipart Library, just as we did for our website. Pages and news will be published soon on our website to inform our visitors that they can now use it to promote our project.






Thursday 16 December 2010

Transifex project page in troubles

Update of Dec. 21th 2010: our TransiFex homepage is back but you have to be patient because they just increased the server timeout.

As you may have noticed, our project page on the translation portal TransiFex is not reachable anymore since several days. This is not due to TransiFex downtime but it seems to be due to the server load after they switched to version 1.0. The sad news is that I can't even post a bug report on their bug manager because it also has a bug preventing me from authenticating…

However almost all other pages on TransiFex are available, so you can still access the language teams:

Then clicking on a language will take you to the list of PO files for your language. You should then be able to work as you did before. We are sorry for the inconvenience and hope to be able to quickly contact TransiFex developers.

Sunday 14 November 2010

Pre-release available from the dailybuild section!

The next DoudouLinux release should be available by the end of November. We are already starting to build pre-releases in order to test it. If you are interested in testing by yourself, just visit the dailybuild section:

Currently only CD's are available and not for all languages already published. But note that there is the first Ukainian build though. Concerning improvements, the list is on the page Realease notes.

Thursday 21 October 2010

Parental controls: web content filtering activated

One feature that has been often said as being missing in DoudouLinux is parental controls. This is true, a web browser is shipped within DoudouLinux but no parental control was implemented to prevent children to visit “naughty” pages until recently. Of course this was not desirable for a system targeted at children and even small children. Filtering does not pretend to replace parents with software(!) but this is an additional security, simply because you cannot always be beside your children on the computer (and he doesn't want you to surely!).

Well, let's talk about technique now… There are different components in parental controls. Here we only focussed on web filtering. Other components, such as authorized hours of use, will be evaluated later. For web filtering we opted for the famous DansGuardian web content filtering solution. This tool provides two ways of avoiding naughty sites: a classical black list and a less classical real-time content filtering. The second is really an interesting feature: it can block a Google search which would otherwise give “naughty” results. The following screen capture shows a blocked Google search for the word “sex”. Yes this would give mainly naughty results…

DansGuardian error page (French)

However recent tests showed that DansGuardian is not perfect yet - so do not leave your children all day long on the Internet ;). We think that this is due to localization of black lists and keyword lists. Our translation team will then have to do some work to show if localization is really the source of malfunctioning or not.

Concerning the mechanics, a French article provides very good information on how to make DansGuardian run along with Squid, some proxy software. Using both tools and some firewalling rules in IPtables, we get a system in which web page requests cannot avoid DansGuardian[1]. However we had to do some more tuning to ensure that both Squid and DansGuardian are always started after network is actually setup. Without taking care, web access would not work at all whenever the network cable is plugged after DoudouLinux is fully working.


[1] except if a website is not using the standard port 80, but this never happens…

Saturday 9 October 2010

Daily builds available!

We have created a new download section named “Daily build”. There is a section for LiveCD images and section for USB key images. Please note that these files cannot be downloaded from the standard download web page because these files are uploaded onto the server for testing purposes only. As usual, this does not mean that they do not work correctly at all!

Unlike what its name suggests, we do not intend to build a DoudouLinux version every night in this directory for obvious upload bandwidth reasons. Instead you may find sometimes versions that are being developed and made available during several days (say at least 7 days). The page Release notes provide information about what has been changed from the latest official build (currently the 2010-08).

Wednesday 29 September 2010

Nouvelles interfaces pour la souris et la sortie son

Les premières interfaces dignes de ce nom ont été écrites pour l'outil de réglage de la souris et celui de réglage de la sortie son. Du point de vue fonctionnel c'est pareil qu'avant, mais du point de vue esthétisme, on pense avoir quand même fait beaucoup mieux ! Quelques heures à s'arracher les cheveux pour se perfectionner un peu en PyGtk et voilà le résultat :



Bon maintenant il n'y a plus qu'à patienter pour que ce soit sur les CD. Ou sinon faites un tour dans notre dépôt de code source. Les mises à jour des paquets Debian devraient aussi finir par arriver, avant les nouvelles versions des CD !

Thursday 2 September 2010

Upload en cours…

Allez patience, encore quelques heures et la nouvelle mouture sera disponible au téléchargement. Rendez-vous normalement dans 24h, en attendant lisez les notes de mise à jour

Sunday 22 August 2010

Installer DoudouLinux définitivement - suite

Dans le billet précédent Installer DoudouLinux définitivement, on a expliqué les détails techniques qui permettent d'installer DoudouLinux définitivement sur l'ordinateur - en détruisant tout ce qui est dessus au passage. Comme cette procédure va effrayer plus d'un utilisateur, j'avais sous-entendu en fin de billet que ça devrait pouvoir s'automatiser…

Et bien oui, c'est fait ! J'ai un script Python doudou-installer qui devine tout seul comme un grand où est la clef USB et où est le disque interne de la machine. L'utilisation est ultra simple lorsqu'il n'y a qu'un seul disque interne : il faut simplement valider le choix proposé par le script ! Il effectuera ensuite les opérations suivantes :

  • copie bas niveau de la clef USB
  • création d'une partition swap d'environ 350 Mo
  • utilisation de l'espace restant pour activer la persistance des données

Le type de persistance mis en place est persistance complète (système + données utilisateurs) avec stockage directement sur la partition, laquelle est formatée ext3. Par contre le système demande toujours à enlever le support à l'extinction (!), un bogue identifié fait qu'il croit toujours être sur un CD malgré mes tentatives…

Au niveau intégration à DoudouLinux, je précise tout de suite qu'il n'y aura pas d'icône pour installer facilement. Même si le script doit poser 3 fois la question « Êtes-vous vraiment sûr de vouloir tout écraser ? », les enfants ne doivent pas pouvoir accéder facilement à cet outil sinon comment papa et maman vont-ils garder l'esprit tranquille ?

NB: côté interface graphique, ne vous attendez pas à de beaux boutons translucides, je développe pour le moment dans l'urgence et je vais à l'essentiel → les fonctionnalités. On verra plus tard pour les beaux boutons !

Saturday 24 July 2010

Installer DoudouLinux définitivement

Pour le moment l'installation de DoudouLinux n'est pas activée via le système officiel des LiveCD Debian. Cependant, comme ceci ajoute une sur-couche logicielle de plusieurs dizaines de Mo, ceci veut dire qu'il faudra opérer des choix sur les logiciels installés… Une solution, pour ceux qui n'ont pas besoin de multiboot, c'est de copier tout simplement les données Live vers le disque dur local.

Avec le LiveCD, c'est compliqué car la structure d'un CD n'est pas celle d'un disque. Par contre avec la clef LiveUSB c'est très simple, il suffit de demander au système de faire une copie de bas niveau. C'est la commande dd qui permet de faire cela :

$ sudo dd if=/dev/sda of=/dev/hda
1434580+0 enregistrements lus
1434580+0 enregistrements écrits
734504960 bytes (735 MB) copied, 437,301 s, 1,7 MB/s

Toute la question est de retrouver les bons chemins /dev/sda et /dev/hda… Dans notre cas, manuel, on s'en sort en analysant les disques du système :

$ sudo fdisk -l

Disk /dev/hda: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disk /dev/hda doesn't contain a valid partition table

Disk /dev/sda: 2070 MB, 2070937600 bytes
255 heads, 63 sectors/track, 251 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0005800f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          92      738958+  83  Linux
/dev/sda2              93         251     1277167+  83  Linux

On a donc deux disques de 40 Go et 2 Go respectivement, le premier est forcément celui de la machine alors que le second est la clef USB. On peut vérifier en regardant ce qui est monté dans le système DoudouLinux en fonctionnement (via df -h). Cependant pour une utilisation en mode automatique (= interface graphique dans DoudouLinux), il faudra un processus de détermination des disques source et cible :

  • la clef USB est connectée sur le bus USB (!) et devrait être montée
  • le disque dur est forcément monté sur un bus interne (IDE ou SCSI)

La clef USB a peut-être aussi des partitions avec un nom en rapport avec DoudouLinux, comme l'image ISO de CD (à vérifier…).

Remarque : cette technique a été testée avec succès depuis une clef USB Live en cours de fonctionnement. Normalement on peut aussi activer la persistance des données avec l'outil intégré à DoudouLinux, mais ça n'a pas été testé. Le seul truc qui manque vraiment : retirer le message à l'extinction qui dit d'enlever la clef !

Saturday 5 June 2010

4 langues à télécharger en CD et clef USB !

Après 3 mois d'absence de nouvelles, il est temps de se manifester un peu… Depuis fin mai, l'espace téléchargement de DoudouLinux met à disposition 8 images de DoudouLinux. Il y a 4 langues : Anglais, Arabe, Espagnol et Français. Ces langues sont disponibles à la fois en version CDROM et en version clef USB. Ces images clef USB peuvent être transférées sur clef USB grâce à notre outil liveusb-write. On peut le trouver sous la forme de paquet Debian à partir du dépôt de paquets DoudouLinux ou sous forme de code source à partir du dépôt de code source chez Gna!. Sinon si vous préférez la méthode traditionnelle[1], c'est bien sûr avec la commande dd qu'on le fait :

$ dd if=doudoulinux-2010-05-fr.img of=/dev/sdx

/dev/sdx est le chemin de votre périphérique amovible.

Bon DoudouLinux !


[1] qui ne créera pas de seconde partition avec persistance activée, contrairement à notre outil…

Sunday 28 February 2010

La construction de CD multi-lingue est opérationnelle !

Ça y'est ! Les modifications nécessaires ont été apportées au code source afin de pouvoir générer des LiveCD dans d'autres langues que le français. Il reste encore à organiser un peu mieux les répertoires et, notamment, ne plus faire de l'anglais la base du LiveCD mais une langue comme une autre ;-). Néanmoins n'importe quelle autre langue peut être créée dans la mesure où elle est gérée par Debian. Il suffit de lancer la commande suivante dans le répertoire doudoulinux/live/trunk :

$ ./ xx

xx est le code de la langue sur deux lettres. On trouve ces codes par exemple dans la page List of ISO 639-1 codes. Ensuite il faut modifier les fichiers placés dans le répertoire de la langue qui vient d'être créé. La liste est la suivante (fichiers en italiques) :

$ tree es/
|-- binary
|-- binary_local-hooks
|   `--
|-- bootstrap
|-- chroot
|-- chroot_local-hooks
|   `--
`-- chroot_local-includes
   |-- etc
   |   `-- skel
   |       |-- .profile
   |       `-- .vkeybdmap
   `-- usr
       `-- share
           `-- lxlauncher
               `-- default
                   `-- lxpanel
                       `-- panels
                           `-- panel

Toutes les explications se trouvent dans le fichier HOWTO, du moins en théorie ;-). Du coup j'ai envoyé sur le serveur deux nouvelles langues du CD :

NB: si les liens sont morts, il faut aller directement dans !

Monday 8 February 2010

Code source initial en place !

Le code source de l'avant dernière version du LiveCD est en place sur le dépôt de code source Gna!. Du coup on va pouvoir commencer à travailler à plusieurs sur le code, ce qui devrait être une bonne nouvelle ;-) ! Par contre, ce qu'il manque pour le moment, c'est de la documentation. Déjà, il faut que je documente l'organisation du code source. Globalement on a à la racine du projet :

  • artwork/ : le graphisme du LiveCD et les documents de propagande (poster, plaquette)
  • docs/ : les futures documentations utilisateur, il en faut une succincte (prise en main) et une plus complète, l'idée est de les éditer en ligne avec un CMS
  • live/ : le code permettant de créer le LiveCD
  • packages/ : les paquets Debian non officiels utilisés dans le LiveCD (paquets « maison » et paquets patchés)
  • website/ : non utilisé pour le moment, la page web du projet sur Gna!

On retrouve les classiques sous découpages en trunk, tags, branches pour les versions actuelles, marquantes et officielles du LiveCD. Pour le moment tout se passe dans trunk, hein ? Sauf que j'ai oublié malencontreusement de le faire pour artwork/ ! Justement ce répertoire ainsi que packages/ méritent un peu de détails :

├── artwork
│   ├── branches
│   ├── tags
│   └── trunk
│       ├── common	= images et dessins utilisés dans les productions officielles
│       ├── live	= thèmes graphiques du LiveCD
│       ├── propaganda	= supports de communication
│       ├── rendered	= résultats de conversion SVG → PNG (vide sur SVN)
│       └── website	= thèmes graphiques du site web
├── packages
│   ├── branches
│   ├── tags
│   └── trunk
│       ├── apps	= les outils spécifiques à DoudouLinux
│       ├── artwork	= les paquets de thèmes graphiques
│       ├── debian	= le dépôt de paquets Debian (presque vide sur SVN)
│       ├── misc	= paquets divers
│       ├── patched	= les paquets officiels Debian mais patchés
│       └── sessions	= les paquets pour créer des sessions d'enfants

- page 2 of 3 -