Bloc-note 'ZaurusFr'
Le 15 décembre 2007, à 16:50 par Ulhume...

Trucs en vrac sur la distribution Zaurus Francisée initiée par Dab.

Création de l'environnement

Le plus simple est de créer avec debootstrap un environnement chrooté spécifique. De créer un utilisateur une fois dans le chroot (ex. gaston) et de faire le checkout suivant :

  • ##apt-get install subversion
  • ##useradd gaston
  • ##visudo
  • Editer ici le sudo pour ajouter gaston avec une ligne du genre
  • gaston ALL=(ALL) NOPASSWD:ALL
  • et faire CTRL-X Y pour sortir
  •  
  • ##mkdir -p /home/gaston/tmp
  • ##chown gaston:gaston /home/gaston -Rc
  • ##su - gaston
  • svn co http://artisan.karma-lab.net/dev/zaurusfr/trunk/zaurusfr/construct
  • cd construct
  • ./oe build
  • Faire quelque prière ici pour que tout fonctionne

Lorsque le build est terminé, une archive contenant tout ce qu'il faut pour flasher le zaurus sur trouve dans le dossier /home/rober/construct/stuff/zaurusfr/tmp/deploy/glibc/images/akita sous le nom poétique de Angstrom-zaurusfr-gpe-image-glibc-ipk-2007.9-test-YYYMMDD-akita-installkit.tgz. Il suffit de décompresser cette archive à la racine d'une carte SD, et d'installer la nouvelle ROM.

Faire un patch kernel

Si si, c'est toujours utile Smiling

  • cd stuff/zaurusfr/tmp/work/akita-angstrom-linux-gnueabi/linux-rp-2.6.23-r100
  • # on fait une copie des sources du kernel
  • rsync -a linux-2.6.23 linux-2.6.23-new
  • # on modifie le kernel sur la copie et on fait un patch que l'on stoque directement au bon endroit
  • patch  -Naur linux-2.6.23 linux-2.6.23-new > ../../../../myoe/packages/linux/linux-rp-2.6.23/mon-patch.patch

On modifie ensuite le fichier ../../../../myoe/packages/linux/linux-rp_2.6.23.bb en rajoutant dans SRC_URI une ligne du style :

file://mon-patch.patchpatch=1 \

Ensuite, soit on utilise oe pour faire un clean de linux-rp puis un build. Soit on veut tester et on va alors passer bitbake en mode interactif :

  • cd /home/gaston/construct/stuff/zaurusfr
  • . oe.env
  • bitbake -i
  • clean linux-rp
  • fetch linux-rp
  • unpack linux-rp
  • patch linux-rp
  • build linux-rp

USB mode host/slave

Pour l'instant, l'Angstrom ne détecte pas correctement le changement de câble. Il faut donc charger le module correspondant au mode "host" à la main :

  1. #!/bin/sh
  2. # Stop possible USB networking to release g_ether lock
  3. ifconfig usb0 down 2>/dev/null
  4. # Remove USB client modules
  5. rmmod g_file_storage g_ether pxa27x_udc 2>/dev/null
  6. # Load USB master module
  7. modprobe ohci-hcd

Soucis d'installation sur la partition /home

Lors de l'utilisation de la syntaxe ipkg install -d home abiword, ipkg installe bien abiword sur la seconde partition mais l'utilitaire ipk-link n'est pas appelé pour créer les liens avec le système racine. Et pour cause, il n'est pas présent... Donc en attendant que ce soit inclus par défaut, voici le source de l'utilitaire à utiliser après ipkg, sous la forme ipk-link add abiword :

/usr/bin/ipkg-link
  1. #!/bin/sh
  2. COMMAND=$1
  3. PACKAGE=$2
  4. setdest () {
  5.         for i in `grep dest /etc/ipkg.conf | cut -d ' ' -f 3`; do
  6.                 if [ -f $i/usr/lib/ipkg/info/$PACKAGE.list ]; then
  7.                         DEST=$i
  8.                 fi
  9.         done
  10.         if [ "x$DEST" = "x" ]; then
  11.                 echo "Can not locate $PACKAGE."
  12.                 echo "Check /etc/ipkg.conf for correct dest listings";
  13.                 echo "Check name of requested package: $PACKAGE"
  14.                 exit 1
  15.         fi
  16. }
  17. addlinks () {
  18.         setdest;
  19.         cat $DEST/usr/lib/ipkg/info/$PACKAGE.list | while read LINE; do
  20.                 SRC=$LINE
  21.                 DST=`echo $SRC | sed "s|$DEST||"`
  22.                 DSTNAME=`basename $DST`
  23.                 DSTDIR=`echo $DST | sed "s|$DSTNAME\$||"`
  24.                 test -f "$SRC"
  25.                 if [ $? = 0 ]; then
  26.                         test -e "$DST"
  27.                         if [ $? = 1 ]; then
  28.                                 mkdir -p $DSTDIR
  29.                                 ln -sf $SRC $DST
  30.                         else
  31.                                 echo "Not linking $SRC to $DST"
  32.                                 echo "$DST Already exists"
  33.                         fi
  34.                 else
  35.                         test -d "$SRC"
  36.                         if [ $? = 0 ]; then
  37.                                 test -e $DST
  38.                                 if [ $? = 1 ]; then
  39.                                         mkdir -p $DST
  40.                                 else
  41.                                         echo "directory already exists"
  42.                                 fi
  43.                         else
  44.                                 echo "Source directory $SRC does not exist"
  45.                         fi
  46.                 fi
  47.         done
  48. }
  49. removelinks () {
  50.         setdest;
  51.         cat $DEST/usr/lib/ipkg/info/$PACKAGE.list | while read LINE; do
  52.                 SRC=$LINE
  53.                 DST=`echo $LINE | sed "s|$DEST||"`
  54.                 DSTNAME=`basename $DST`
  55.                 DSTDIR=`echo $DST | sed "s|$DSTNAME\$||"`
  56.                 test -f $DST
  57.                 if [ $? = 0 ]; then
  58.                         rm -f $DST
  59.                         test -d $DSTDIR && rmdir $DSTDIR 2>/dev/null
  60.                 else
  61.                         test -d $DST
  62.                         if [ $? = 0 ]; then
  63.                                 rmdir $DST
  64.                         else
  65.                                 echo "$DST does not exist"
  66.                         fi
  67.                 fi
  68.         done
  69. }
  70. mountdest () {
  71.         test -d $PACKAGE
  72.         if [ $? = 1 ]; then
  73.                 echo "Mount point does not exist"
  74.                 exit 1
  75.         fi
  76.         for i in $PACKAGE/usr/lib/ipkg/info/*.list; do
  77.                 $0 add `basename $i .list`
  78.         done
  79. }
  80. umountdest () {
  81.         test -d $PACKAGE
  82.         if [ $? = 1 ]; then
  83.                 echo "Mount point does not exist"
  84.                 exit 1
  85.         fi
  86.         for i in $PACKAGE/usr/lib/ipkg/info/*.list; do
  87.                 $0 remove `basename $i .list`
  88.         done
  89. }
  90. case "$COMMAND" in
  91.   add)
  92.         addlinks
  93.   ;;
  94.   remove)
  95.         removelinks
  96.   ;;
  97.   mount)
  98.         mountdest
  99.   ;;
  100.   umount)
  101.         umountdest
  102.   ;;
  103.   *)
  104.         echo "Usage: $0 <cmd> <target>"
  105.         echo "       Commands: add, remove, mount, umount"
  106.         echo "       Targets: <package>, <mount point>"
  107.         echo "Example:  $0 add kismet-server"
  108.         echo "Example:  $0 remove kismet-server"
  109.         echo "Example:  $0 mount /mnt/usb"
  110.         echo "Example:  $0 umount /mnt/usb"
  111.         exit 1
  112.         ;;
  113. esac
  114. exit 0

Et pour installer tous les paquets d'un coup :

/usr/bin/ipkg-link-all
  1. #! /bin/sh
  2. cd /
  3. for package in $(cat /home/packages/usr/lib/ipkg/status | grep Package | cut -d" " -f2) ; do
  4.   ./ipk-link add $package
  5. done

Commentaires

Poster un nouveau commentaire

Le contenu de ce champ est gardé secret et ne sera pas montré publiquement.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • To highlight piece of code, just surround them with <code type="language"> Your code &tl;/code>>. Language can be java,c++,bash,etc... Everything Geshi support.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Textual smileys will be replaced with graphical ones.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.

Plus d'informations sur les options de formatage

Connexion utilisateur
Les derniers bavardages...