Frugalware on Raspberry-pi : Installation

I haven’t post on my blog for quite some time now. But I began the new year by resuming my work on embedded devices. This time is about installing Frugalware on a Raspberry Pi.

The first step is to properly partionning your SD card. The Raspberry Pi bootloader can boot only from a FAT32 partition, so we need one. Also we need another partition to contain our Frugalware installation and optionnally a swap partition. As an example, I have the following.

Disk /dev/sdb: 31.9 GB, 31914983424 bytes
64 heads, 32 sectors/track, 30436 cylinders, total 62333952 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f1e37

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      749567      373760    b  W95 FAT32
/dev/sdb2          749568     2846719     1048576   82  Linux swap / Solaris
/dev/sdb3         2846720    62332927    29743104   83  Linux

Now mount your linux partition (in my case /dev/sdb3) and the FAT partition (/dev/sdb1) as “/boot” and extract the following tarball into it.

Another solution is to perform a chroot installation but this require another arm device. In this case you need to add the repo armkernels and install the proper kernel for the Raspberry-pi from it (named kernel-raspberrypi). Otherwise follow the instructions provided here. Copy the content of your boot directory to the FAT partition (or mount your FAT partition as the /boot one before performing the installation). Finally, add a file named “cmdline.txt” into the FAT partition to specify the kernel boot commands like this :

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p3 rootfstype=ext4 rootwait

NB: In my case, my linux partition is the third one (/dev/sdb3) and is of type ext4, so I used “root=/dev/mmcblk0p3 rootfstype=ext4”.

PS: I will upload the script used to create the tarball here as soon as I get internet back @ home.

Quelques nouvelles

Voici quelques nouvelles des projets sur lesquels je travaille actuellement :

Fwife est sorti en version 0.8 à l’occasion de la 1.5pre1 de Frugalware.
Au menu des changement : le mode de sélection des paquets “basique” installe un ensemble plus cohérent de paquets. Ext4 est maintenant le système de fichier proposé par défaut au formattage. Enfin, une option à la création des utilisateurs permet d’ajouter une entrée au fichier /etc/sudoers si sudo est installé.

UEvt est sorti en version 2.2.
Le principal changement à été le support de libnotify 0.7. Notons aussi l’apparition d’une boite de dialogue affichant quelques informations sur les batteries en cliquant sur l’entrée correspondante dans le systray.
La prochaine version devrait apporter quelques améliorations intéressantes et notamment intégrer un support de la luminosité pour les écrans de laptops.

– Le portage ARM de Frugalware avance lentement mais sûrement. J’ai déjà un mini-serveur qui tourne sur mon Seagate Dockstar (lighttpd + vsftpd et quelques autres services).

Frugalware on ARM with QEMU

I started to port Frugalware on ARM some weeks ago.

We will see how to test this port using Qemu to emulate an ARM platform.

For now, the only way to install Frugalware on this architecture is to perform a chroot installation.
But to do so, you need another distribution (on arm) with pacman-g2 installed which is not convenient.

I made a little script to create a Qemu image with a base install properly configured from any other non-arm architecture.
You can download it here. So we can make the image :

wget http://ftp.frugalware.org/pub/other/people/elentir/arm/qemu/make-qemu-fwarm-image.sh
chmod +x make-qemu-fwarm-image.sh
sudo ./make-qemu-fwarm-image.sh

It generates a file named initrd-arm.img.

Note: – You can specify the size of the generated image by specifying the shell variable SIZE.
For exemple :

sudo SIZE=500 ./make-qemu-fwarm-image.sh

will create a 500 Mo image.

The script also copy the kernel image to the current directory. It ‘ll be used by Qemu.
You can also see that the script install an alternate kernel than the one from fwonarm repository.
The reason is that the fwonarm kernel is configured to be used with a Marvell Kirkwood platform (ex: Sheevaplug, Guruplug, Seagate Dockstar, etc.) which is the one I use for my real hardware. But Qemu can’t emulate this board, so we ‘ll use the VersatilePB one instead. The kernel for this platform can be found here.

Now we can start the Qemu arm machine with :

qemu-system-arm -M versatilepb -m 128 -kernel vmlinuz-2.6.39-versatile-fw2 -hda initrd-arm.img -append "root=/dev/sda ro quiet"

The machine will automatically reboot twice before you can get a shell.
(Pacman-g2 can’t run any .install scripts when creating the image so I create a script, executed at the first boot, to finish the configuration).

Log with user root, no password needed.

Edit: Update script and url since merge on current

Fwife 0.7 : New version

Frugalware rc2 has been released this morning . Just before the freeze, I released a new version of Fwife.

Here is the changelog.

Some changes have been made to the package selection plugin.
Now, their is three differents choices : Basic, Intermediate and Expert.
The new one is the basic mode :

It is clearly designed for beginners. It provide a default installation of Frugalware. The only choice is the desktop environment so I added a picture and a short description for each one.

Furthermore, I noticed that the entry message of this plugin was not really clear. So I rewrote it to explain the differences between these three choices.

Another change in this plugin is that it is now possible to do a ‘base’ install of Frugalware using the Intermediate mode, so it is not needed to use the Expert mode anymore.

In the partionning plugin, I add a button to set a custom mount point. Previoulsy the ‘mountpoint’ column was editable to specify a custom mountpoint but some users told me that it was not really intuitive.

Since recently, Fwife is present on the cds/dvds of Frugalware. But so far, Fwife did not not support installation from an cd/dvd. It’s now supported.

Fwife 0.7 : Nouvelle version

La rc2 de Frugalware est sorti ce matin. Juste avant le freeze, j’avais sorti une nouvelle version de Fwife.

Au menu des changements :

Plusieurs changements ont été apportés dans le plugin de sélection des paquets.
Désormais, trois choix sont possible pour la sélection des paquets : Basique, Intermédiaire et Expert.
Le nouveau étant celui-ci (il s’agit évidemment du mode basique) :

Il propose une installation par défaut de Frugalware, le seul choix étant celui de l’environnement de bureau. Il donne une image et une courte description pour chacun des environnements proposés.

De plus, il est maintenant possible de faire une installation de base (i.e. sans environnement graphique) dans le mode intermédiaire.

Dans le plugin de partitionnement, un bouton permet de configurer le point de montage (pour /home par exemple).
Au départ, on pouvait modifier les cellules du tableau (de la colonne ‘Point de montage’) mais comme me l’ont signalé plusieurs personnes, ce n’était pas très intuitif (en fait pas du tout).

Depuis peu Fwife est fournit sur les CDs/DVDs de Frugalware en plus de l’installateur en curse (le choix se faisant au niveau du grub). Mais, jusqu’à présent, Fwife ne supportait pas l’installation depuis les CDs/DVDs. C’est désormais révolu dans cette nouvelle version.

Ajoutons à celà quelques modifications mineures, notamment pour empécher ce genre de choses.

En parlant de bugs vicieux, celui-ci traîne depuis un bout de temps et est difficile à corriger car je n’arrive pas à le reproduire. Il semble que ce bug ne se produise qu’avec le protocole ftp, l’astuce consiste donc à passer par http.

A propos des traductions françaises, celles de cette version ne sont pas à jour, il se peut donc que certains des messages soient en anglais.

UEvt 2.0

J’ai sorti une nouvelle version de mon petit programme UEvt hier. Elle est dès à présent sur les dépôt de Frugalware.

Comme prévu, j’y ai ajouté un support (partiel) de gestion du processeur, ce qui donne :

CPU Manager

Evidemment il est aussi possible de simplement désactiver cette nouvelle icône si l’on en a pas besoin.

Pour pouvoir l’utiliser il est néanmoins nécessaire de configurer quelque peu UEvt.
En effet, changer de fréquence nécessite les droits administrateur.
Ma solution préférée est d’utiliser cpufrequtils (packagé il y a peu sur Frugalware par Devil505).
J’ai ensuite mis cpufreq-set en sudo sans mot de passe.
A partir de là, il suffit de configurer les lignes suivantes du fichier de configuration :

uevt_cpufreq_change_frequency=sudo cpufreq-set -g userspace; sudo cpufreq-set -r -f $2
uevt_cpufreq_change_governor=sudo cpufreq-set -r -g $2

Il est possible d’utiliser la commande gksu plutôt que sudo.
Il est aussi possible de passer par l’outil de configuration graphique (qui est la deuxième nouveauté de cette version) pour configurer ces commandes :

A part celà et quelques corrections de bugs, un nouveau bouton fait son apparition dans le menu du powertray.
Il permet de désactiver la gestion de l’énergie de l’écran (i.e. la mise en veille), chose qui est très pratique quand on regarde un film ou pour ne pas être ennuyé lors d’une présentation.

UEvt 1.0 sur Frugalware

UEvt est un petit programme composé de deux modules basés sur udisks et upower (ce qui permet de s’affranchir de HAL qui n’est plus maintenu).
Il est écrit en Vala et ne nécessite que peu de dépendances (gtk+2, libnotify, upower et udisks).

Je l’ai évidemment packagé pour Frugalware, pour l’installer :

pacman -S uevt

Le premier module permet de gérer les disques amovibles et cdroms et supporte :
– le montage automatique des disques et cdroms (avec reconnaissance des cds audio et cds vierges)
– l’éxécution de commandes définies par l’utilisateur pour certains évènements
– la notification de l’utilisateur via libnotify :

– une icône dans le systray pour monter/démonter les disques manuellement :
UEvt Disks

– Le second module est un gestionnaire d’énergie qui supporte :
– notification de l’utilisateur lorsque la batteries est faible
– éxécution de commandes définies par l’utilisateur lorsque la batterie est faible ou critique.
– une icône dans le systray (état des batteries, suspendre et hiberner l’ordinateur (si il le supporte)) :

– susprendre l’ordinateur à la fermeture du “couvercle” (pour les laptops)

Les deux modules sont complètement indépendants et configurables.
Pour plus de détails, voir ici.
La prochaine version devrait contenir un panneau de configuration et gérer la configuration du processeur dans le gestionnaire d’énergie (changement de fréquence, etc.)

TeX Live 2010 on Frugalware Current

The first TeX Live 2010 version has been released in the middle of September. I pushed this new version on Frugalware current some days ago.

The main changes are the use by default of PDF 1.5, which improve a bit the compression (My (few) tests show a decrease of 8 to 9% of the files’ size) and the new command epstopdf which give the ability to convert eps files to pdf directly (MetaPost fans like me will like that new command).

Some new packages also made their appearance in this version. I’ll present only one : pst-knot.

It allows to draw some classical (mathematical) knots very easily, for exemple the trefoil knot :

\begin{pspicture}[showgrid=false](-2,-2)(2,2) 
  \psKnot[linewidth=3pt,linecolor=red](0,0){3-1}
\end{pspicture}

(Remember that the command pdflatex doesn’t support pspicture : use latex command instead).

Knots are classified according to number of crossings.
The first parameter of the psKnot function give the coordinates of the origin and the second parameter the type of the knot (here it’s the first knot with 3 crossings).

and then the result :

Trefoil Knot

Documentation for this package is available here.

TeX Live 2010 sur Frugalware Current

Mi-septembre est sorti la première version de TeX Live 2010. J’ai poussé cette nouvelle version sur Frugalware current il y a quelques jours.

Les principales nouveautés sont l’utilisation par défaut du format PDF en version 1.5, ce qui améliore quelque peu la compression (mes quelques essais ont montré une diminution de 8 à 9% de la taille des fichiers) et l’apparition de ma commande epstopdf permettant la conversion directe des fichiers eps en pdf (ce qui ravira les amateurs de MetaPost tels que moi!).

Quelques nouveaux paquets ont aussi fait leurs apparition dans cette version. J’en présenterai un seul : pst-knot.

Il permet de dessiner certains noeuds (mathématiques) classiques très facilement, par exemple le noeud de trèfle :

\begin{pspicture}[showgrid=false](-2,-2)(2,2) 
  \psKnot[linewidth=3pt,linecolor=red](0,0){3-1}
\end{pspicture}

(N’oubliez pas que la commande pdflatex ne supporte pas pspicture : utilisez la commande latex à la place).

Les noeuds sont classés en fonction de nombre de croisements.
Le premier paramètre de la fonction psKnot indique les coordonnées du point d’origine et le deuxième le type du noeud (ici le premier noeud à 3 croisement.

et voilà le résultat :

Trefoil Knot

La documentation de ce paquet est disponible ici.