Informatique

SheevaPlug qui ne boot pas après mise à jour du noyau

Wednesday, 27 October 2010
|
Écrit par
Grégory Soutadé

C'est rare mais les gars du projet Debian se sont planté. Peut être que j'ai loupé un truc, mais après avoir redémarrer suite à la mise à jour de mon SheevaPlug vers le noyau 2.6.32-5-kirkwood, le système sortait en kernel panic lors de l'initialisation du réseau. Pas pratique ...

Une petite recherche sur le web m'indique le liens suivant : http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=597302#35
Le problème vient du fait que la commande flash-kernel n'est pas appellée après la mise à jour du noyau. La marche à suivre est de rajouter l'option ipv6.disable=1 à la ligne de commande (setenv bootargs ipv6.disable=1) lors du boot. Evidement chez moi ça ne fonctionne pas.

Bref un système inutilisable (puisqu'il plante avant le boot). Ma configuration est la suivante :
- Ubuntu d'origine dans la mémoire flash intégrée
- Debian installée sur la clé USB avec les partitions suivantes :
/dev/sda1    /boot
/dev/sda2    /
/dev/sda3    swap
/dev/sda4    /home

Heureusement on a accès à la clé USB depuis l'Ubuntu d'origine, cela va permettre de remettre en marche tout ça. Il faut d'abord démarrer sous Ubuntu (sortir le cable USB pour accéder à l'interface RS232 via putty ou screen), monter la clé, se chrooter (c'est donc "comme" si on avait booté sur la clé). Hélàs /dev/sdaX n'est pas automatiquement détecté par udev (les événements ne lui sont pas envoyé pour qu'il crée les périphériques), on va donc le faire à la main avec mknod. Puis on monte /boot et /proc avant de pouvoir lancer flash-kernel. On revient sous Ubuntu, un petit fsck sur les partitions modifiées et on peut enfin redémarrer normalement sur notre ancien système !

mount -t ext2 /dev/sda2 /media chroot /media mknod /dev/sda1 b 8 1            # 8 2 pour /dev/sda2, 8 3 pour /dev/sda3 ... mount -t ext2 /dev/sda1 /boot mount -t proc /proc /proc flash-kernel exit reboot

redémarrer sous Ubuntu

fsck /dev/sda1 fsck /dev/sda2 reboot

J'ai remarqué que lorsqu'on débranche brutalement l'alimentation, il ne boote plus sur la clé USB. L'astuce consiste à démarrer sur l'Ubuntu d'origine, monter la partition, faire un ls, démonter la partition, faire les fsck sur les partitions modifiées (sinon il va le faire au boot de la clé et comme le système a été modifié va redémarrer ...), puis redémarrer le Sheeva (via un reboot).

mount -t ext2 /dev/sda2 /media ls /media umount /media fsck /dev/sda2 reboot

L'idéal est de créer un script et de le rajouter dans le crontab d'Ubuntu pour qu'il s'exécute toutes les 10 minutes. Comme ça si le redémarrage intervient pendant la nuit ou quand on n'a pas accès au SheevaPlug il revient tout seul sur Debian. Les 10 minutes permettent de désactiver le crontab quand on a des choses à faire sous Ubuntu (comme un flash-kernel par exemple ...).

Astuces pour GNU/Linux

Sunday, 26 September 2010
|
Écrit par
Grégory Soutadé

Aujourd'hui deux petites astuces pour notre système favoris

Presse papier du serveur X


Vous connaissez certainement le presse papier, c'est l'emplacement temporaire qui accueille les données du couper/copier/coller. Et bien le serveur X a lui aussi un presse papier. Il suffit de sélectionner du texte dans une fenêtre pour le copier, puis de cliquer sur la molette de la souris (bouton 3) pour le coller. Une fois qu'on y a goûté on ne peux plus s'en passer ! Et surtout on râle quand on est sur les systèmes qui ne proposent pas cette fonctionnalité. De plus le presse papier d'X est indépendant, en gros vous pouvez faire un copier/coller traditionnel et en parallèle un copier/coller via X.


Être averti des mises à jours par mail


Heureux possesseur d'un SheevaPlug, il m'arrive souvent d'oublier de faire les mises à jours. Bon sur ma Debian stable il n'y en a pas tous les jours non plus ... Mais ce petit script va vérifier chaque soir s'il y a des mises à jours à effectuer et me prévient par mail. Bien sûr je pourrais forcer les mises à jours mais c'est moins propre que si c'est fait interactivement (notamment quand il s'agit du noyau et qu'il faut redémarrer).

#!/bin/bash apt-get update > /dev/null res1=`apt-get upgrade -s` res2=`apt-get dist-upgrade -s` res3="$res1\n$res2" echo $res3 | grep 'Inst' >/dev/null || exit 0 # Délimiteur du for IFS=$'\n' packages="apt-get upgrade :" for line in $res1 ; do     echo $line | grep 'Inst' >/dev/null || continue     tmp=`echo $line | cut -d' ' -f 2`     packages="$packages $tmp" done packages="$packages\n\napt-get dist-upgrade :" for line in $res2 ; do     echo $line | grep 'Inst' >/dev/null || continue     tmp=`echo $line | cut -d' ' -f 2`     echo $res2 | grep $tmp >/dev/null && continue     packages="$packages $tmp" done echo -e $packages | mail -s "Packages needs to be updated on cybelle" gregory@soutade.fr

Et dans /etc/crontab :

0  2    * * *   root    /root/apt.sh

Samsung r780

Sunday, 19 September 2010
|
Écrit par
Grégory Soutadé

Mon nouveau joujou est arrivé ! Après 6 années (oui 6) de loyaux services, j'ai décidé de mettre mon ancien PC portable à la retraite. Bien qu'il soit encore très fonctionnel pour son age et son matériel, le disque dur devient de plus en plus faiblard, parfois certains fichiers ne sont pas affichés lors d'un simple ls. Bref ça craint pour les données qui sont dessus (bien qu'il y ait une sauvegarde). C'est aussi par crainte que mon disque ne lâche que j'ai investit dans le SheevaPlug.

Donc il a fallu choisir une nouvelle bête (c'est rare d'avoir du matériel dernière génération pour moi, ce qui est plutôt paradoxal). Quel choix : fixe ? portable ? ultra portable ? Les ultra portables c'est non tout de suite, trop petit, trop faibles capacités. Reste le choix entre fixe et portable : fixe plus puissant et un peu moins cher mais beaucoup de fils, d'encombrement et pas de possibilité de transport. Bon, va pour un portable, les capacités de ces engins ont grandement augmentées ces dernières années. Encore un petit soucis : mac ou PC ? Il faut bien le reconnaître autant d'un point de vue matériel que logiciel les macs sont de très bonne qualité mais MacOS ne m'intéresse pas et apparemment ce n'est pas trivial d'installer un GNU/Linux sur leurs matériel ... tant pis, peut être plus tard.

Budget : entre 700€ et 1000€ (en dessous ça ne vaut rien, en dessus c'est un peu trop). Mais quitte à investir, autant que ça dure un minimum de temps (6 ans c'est pas mal). Donc le minimum requis c'était :
- Core i5 : préféré à AMD pour la conso
- Carte graphique nVidia : jamais eu de problèmes avec les pilotes propriétaires nVidia (même si c'est LE MAL)
- Écran > 15" à LED : TRÈS important, et puis niveau conso c'est important
- Poids < 4kg : parce qu'il ne faut pas déconner
L'ensemble de ces éléments doivent avoir une consommation réduite pour limiter l'utilisation du ventilateur.

Bref j'ai trouvé mon bonheur avec le Samsung r780 E7P-C5450 :
- Core i5 450M 2,4Ghz (double cœur)
- 4Go DDR3 1066Mhz
- 640 Go de disque dur 5400tr/min : la vitesse est un peu faible, mais c'est partout pareil :(
- nVidia GeForce 330M 1Go
- Ecran 17,6" LED
- Look sympa
- 2,8kg
- 850€ avec frais de port sur Amazone

Pour information l'ancien PC était un Gericom Hummer 30680 :
- Pentium 4 3Ghz
- 512Mo de RAM
- nVidia Geforce FX5500 64Mo de mémoire partagée
- 80Go de disque dur
- Écran 15" LCD (max 1024x768)

Bref c'est pile ce qu'il fallait ! Bon France Express ont du mal à gérer leurs livreur du coup j'ai dû attendre 4 jours au lieu de 2 max (12€ de frais de port quand même), mais il est arrivé c'est l'essentiel. Le package de Samsung est un peu léger (juste du carton avec quelques protections), on essais de réduire les coûts au maximum et puis ça fait écolo... Il y a quand même un petit  chiffon fournis avec.

Les ennuis commencent maintenant : premier démarrage (histoire d'activer Windows 7 64 bits pour ne pas perdre la licence), il y a un outils de restauration de Samsung qui se lance ... 30 minutes plus tard ... Point positif : il me propose de partitionner le disque, ils ont fait pas mal de progrès (système et données séparées). Bon entre Samsung, l'activation, la configuration, la mise à jour, la mise à jour de live messenger (qui ne fonctionne pas ...) : 3h !! Pour un système censé fonctionner "out-of-the-box" c'est pas terrible. On sent aussi le résultat de la décision de la cours Européenne envers Microsoft : Windows me demande de choisir un navigateur et va même le chercher pour l'installer !!
Autre point positif : le PC est silencieux et ne chauffe quasiment pas. L'écran rend vraiment très bien.

Windows c'est fait ! Passons maintenant sur un vrai système d'exploitation : Debian/GNU/Linux. Il faut faire les choses bien avec un système 64 bits. Première erreur : ia64 c'est l'architecture Itanium 64 bits (le flop d'Intel), en fait amd64 est équivalent à EMT64 qui est équivalent à x86_64. Étant donné qu'AMD s'était déjà positionné sur le marché du 64 bits, Intel a suivi. Le nom d'amd64 doit être là pour la compatibilité (quand il n'y avait qu'AMD en 64 bits).

Deuxième problème : j'ai l'habitude d'installer la version testing en netinstall (donc qui nécessite le réseau pour télécharger les paquets), donc comme d'hab j'utilise l'interface ethernet sachant que le Wifi est difficilement supporté nativement et la *PAF* c'est un chipset Marvell qui n'est pas inclus dans le noyau !! Heureusement qu'il y a un installateur depuis Windows sur la version stable (toujours en netinstall) ... mais qui ne prend pas en charge Windows 7 ! Bref téléchargement du premier iso de la version testing en mode normal (elle contient tout le nécessaire) ... le CD-RW utilisé foire légèrement (il passe pourtant la vérification) du coup changement de CD, téléchargement et compilation des pilotes réseaux et installation plus complète du système ... ouf. Mon ancien PC ne veut vraiment pas partir à la retraite.

Compilation des pilotes nVidia ... c'est beaucoup mieux le 1600*900 ! Copie du répertoire /home de l'ancien PC vers le nouveau (en ethernet). C'est magnifique Linux/UNIX, tous les fichiers de configuration des programmes se trouvent dans son répertoire personnel, donc c'est comme si on n'avait pas reformaté (comparé à la base de registre de Windows qui est une immondice).

Je note quand même que le pilote de la carte ethernet provoque d'importants ralentissements, le pilote Wifi n'a pas l'air terrible non plus (déjà que je me plaignais de l'ancien ...). Les touches fn ne fonctionnent pas non plus :( Il y a aussi un léger sifflement venant du ventilateur qui est assez désagréable.

Globalement ça marche bien, il est beaucoup plus rapide, surtout au niveau du disque dur (c'est important pour la sensation de fluidité), l'écran est beaucoup plus agréable. Il faut juste s'habituer à la nouvelle disposition du clavier (qui est au passage assez agréable au touché).

 

Pour ceux que ça intéresse :

Pilote Ethernet Marvell sk98lin
Pilote Wifi Realtek 8192e

Internet par Orange

Saturday, 11 September 2010
|
Écrit par
Grégory Soutadé

 

France Telecom/Orange premier fournisseur d'accès Internet/téléphonique en France ou comment avoir tous les défauts d'une grosse société :

  • Offres moins compétitives
  • Temps de réaction long
  • Externalisation du savoir faire
  • Volonté de garder le contrôle de la chaîne de bout en bout

Si on pourrait excuser les deux premiers points en compensant par une qualité de service plus importante, mais non on se contente de beaucoup de marketing pour faire passer la pillule.

C'est surtout les deux derniers point qui amènent aujourd'hui cet article. Deux points qui font que le matériel est vérouillé mais qu'en plus il est de mauvaise qualité ! (Mal)Heureux possesseur d'une Livebox Sagem F@st3202 j'ai été confronté à deux problèmes importants.



 

Internet lent sous GNU/Linux

Arf il me semblait avoir déjà résolu le problème par le passé, mais la Livebox a changé de place et l'accès en Wifi à Internet est devenu très lent. Au début je pensais que ce n'était qu'un simple problème de Wifi. En fait les symptômes sont plus sournois que ça, c'est la connexion qui était lente mais une fois établie je bénéficiais d'une bande passante normale. Attendre 3 secondes avant de commencer le chargement c'est une étérnité !!
Bref le problème vient de la résolution de noms (transformer une adresse internet comme http://blog.soutade.fr en adresse IP). GNU/Linux est un système trop avancé pour son temps, en effet il va d'abord essayer une résolution d'adresse IPv6 qui ne va jamais aboutir avec la Livebox jusqu'à arriver au timeout. Que faire ?

  1. Jeter la Livebox par la fenêtre et prendre un vrai routeur ADSL
  2. Désactiver l'IPv6, mais c'est dommage et compliqué
  3. Modifier les paramètres DHCP

La méthode la plus propre est bien sûr la 3., on garde la compatibilité (future) avec IPv6 sans trop toucher au système. On va donc utiliser un serveur de nom par défaut autre que celui de la Livebox, il faut éditer le fichier :

/etc/dhcp3/dhclient.conf

Et rajouter la ligne suivante en début du fichier:

prepend domain-name-servers 8.8.8.8;

Un petit coup de /etc/init.d/networking restart pour redémarrer les interfaces réseau et *magie* enfin un Internet pas trop lent ! (ça change du tout au tout). En fait on aura toujours la Livebox comme serveur DNS, mais uniquement si la requête sur le premier échoue. Ici j'ai choisis le DNS de Google, mais vous pouvez choisir n'importe lequel.


Développer un site web derrière une Livebox

Second problème : au nom de l'expérience d'Internet, si vous vous connectez sur le site d'Orange, vous serez automatiquement loggué (pratique si on vous pirate la connexion, surtout qu'il n'y a pas de WPA2 sur mon modèle). Mais surtout si on tente d'accéder à l'IP externe de la Livebox en étant à l'intérieur du réseau, on arrive sur la page de configuration de la Livebox ... Pas forcément pratique quand on veut tester le rendu de son site auto hébergé via son nom de domaine.

Une des solutions consiste à utiliser directement l'adresse IP de la machine qui héberge le site (192.168.1.12 par exemple), mais ce n'est pas très pratique si l'on a des hôtes virtuels (http://blog.soutade.fr, http://indefereo.soutade.fr par exemple) ou si on fait de la ré écriture d'URL. Cette fois ci on va encore jouer avec la résolution de nom, pour cela on va ajouter une entrée fixe dans le fichier /etc/hosts (C:\Windows\System32\drivers\etc\hosts pour Windows) :

192.168.1.12 www.soutade.fr blog.soutade.fr indefero.soutade.fr

Ainsi lorsqu'un programme essaira d'accéder à une de ces adresses, le système n'effectuera pas de requête DNS mais renverra l'adresse IP qui nous intéresse.


Conclusion

Le bilan n'est pas terrible pour Orange, mais ils possèdent toute l'infrastructure en France et au niveau qualité de service sont équivalents aux autres opérateurs, donc si on se contente des services qu'ils proposent c'est suffisant mais il ne faut pas en demander plus !

SheevaPlug

Wednesday, 04 August 2010
|
Écrit par
Grégory Soutadé

SheevaPlug

 

Après plusieurs années de silence, il est de retour ! Et oui j'ai craqué, je viens de remonter un petit serveur, "cybelle" de son prénom. C'est désormais ce petit engin qui trône à côté du PC principal et qui est chargé de répondre aux requêtes de l'Internet.

Petit ? Tout à fait mon cher ami, 10cmx6cmx4cm mais pas en reste pour autant. En effet pour ceux qui ne le connaissent pas encore le SheevaPlug est un "plug computer", c'est à dire un ordinateur que l'on branche sur une prise de courant. Ceci est rendu possible grâce au SoC (System on Chip) Marvell à base d'ARM. Pour ceux qui seraient perdus il s'agit de mettre un ordinateur complet dans une seule puce. Ce système n'est pas nouveau, on le retrouve dans des appareils du quotidien (smartphone, GPS ...) mais en plus puissant.

Au niveau caractéristiques techniques on a donc :

  • Un processeur ARM v5 (ARM9) cadencé à 1,2 Ghz
  • 512Mo de RAM
  • 512Mo de Flash NAND
  • 1 port USB
  • 1 port ethernet
  • 1 port eSata
  • 1 port pour carte SD

La puissance du processeur peut sembler faible, mais en réalité elle est largement suffisante pour un serveur web à faible charge, et puis nous sommes sur ARM donc plus performant que les processeurs x86 à fréquence égale. Quant à la connectique elle se suffit à elle même, l'administration se fait grâce au port ethernet (et au port USB supplémentaire pour accéder à la séquence de démarrage). Pour ceux qui ne l'auraient pas encore compris, ce petit joujou tourne sous GNU/Linux, sur une Debian pour être plus précis. Dans cette configuration tout (ou presque) se fait via ssh en ligne de commande.

!!! Attention !!! Le SheevaPlug n'est pas capable de délivrer beaucoup de puissance sur son port USB. C'est à dire que tout va bien pour une clé USB, mais dès qu'on commence à rajouter un hub (avec plusieurs périphériques) ou un disque dur il faut que ceux-ci soient auto-alimenté (reliés à une prise de courant).

Pourquoi un serveur ? Je détaillerai dans un autre article les avantages d'avoir un serveur chez soi. Dans mon cas la première motivation était de pouvoir faire tourner une instance de inDefero accessible depuis Internet. En effet je trouve un peu cher l'offre payante et pas forcément adaptée à mes besoins, quant à l'offre gratuite ... elle est un peu trop réduite à mon goût. Je suis donc parti en quête d'un serveur ultra basse consommation compatible avec ma distribution préférée. Et là le SheevaPlug détrône tous ses concurrents (notamment ceux à base d'Atom ou de Geode), consommation annoncée : 5 watts soit 50 fois moins que pour un PC moyenne gamme. Petit calcul rapide : 1h d'utilisation d'un PC = 2 jours de connexion pour le SheevaPlug, dégagement de chaleur et encombrement en moins, le miens est planqué derrière l'écran du PC principal et même s'il chauffe un peu ce n'est rien en comparaison d'un écran.

Bref j'ai craqué, cette petite bête ne coûte "que" 130€ (frais de port compris) (~105£). La commande a été passée un dimanche après midi sur NewIT et reçue le mercredi, j'ai pris la version eSata (surtout parce qu'elle était en stock). Une fois reçu, petite installation d'une Debian sur une clé USB Toshiba 16Go avec les conseils trouvés sur le net :

Le CD d'installation ne contient pas de manuel de démarrage, mais pour information le mot de passe par défaut de root sur l'Ubuntu de base est "nosoup4u", on note tout l'humour des développeurs :)

Les services hébergés sur cybelle sont :

  • Serveur web (apache2)
  • Serveur mail (smtp, pop, imap) (postfix et dovecot)
  • Forge inDefero
  • Serveur MySQL
  • Serveur SSH

Un petit awstats pour les statistiques et Joomla!, accompagné du premier template sympa trouvé, pour la partie web. En effet je ne voulais toucher que le moins possible à la gestion et au contenu web. Un blog me direz vous, et bien oui un blog. Je continu néanmoins à défendre l'idée qu'un blog c'est comme un site web, c'est destiné à mourir, car on arrête rapidement de l'alimenter, mais bon "qui vivra verra". Je vais essayer de le faire vivre le plus longtemps possible. De ce côté là mon cousin m'a donné l'idée de faire une petite section cinéma (qui sera certainement la plus active) étant donné que je m'y retrouve toute les semaines (voir plusieurs fois par semaine), mais pour plus de détails il y a la section dédiée. Et puis qui sait, peut être que mes envies de rédaction reviendront !

"Enfin" me dirait ma tante, un informaticien qui n'a pas de présence sur le web c'est fou non ? C'est un peu comme un garagiste sans voiture !! Je me suis donc honteusement approprié le domaine de toute la famille avec ce magnifique soutade.fr, mais au moins je peux frimer en donnant ma nouvelle adresse gregory sur ce même nom de domaine.

En conclusion on peut monter un petit serveur pour 130€ + 7€ par an pour le nom de domaine (chez OVH). Cela requiert un minimum de connaissance en administration (et beaucoup de recherches sur le net), mais une fois les outils installé tout roule tout seul et on est complètement maître de ses données ! Seule limite la bande passante, ce qui est très correct pour mes 3 visiteurs quotidien (enfin j'exagère, je ne suis pas encore référencé).