Le Blog Maniatux

Bienvenue sur internet

Point hardware 2014

Rédigé par Xavier - - aucun commentaire

J'écris cet article après avoir pompé l'idée à Cyrille Borne, sans aucune forme de pitié. Voilà un petit bilan matériel aout 2014 :

  • Mon ordinateur portable, un Asus B43E, tourne actuellement sur Manjaro (cuvée Xfce). Xfce c'est bien, mangez-en, probablement le meilleur rapport fonctionnalités/performances. J'ai upgradé ce portable avec un SSD de 128GB, la différence est flagrante.
  • Mon PC de bureau, qui me sert à jouer, est une machine assemblée par mes propres soins en 2009 composé de : Core i7, 8GB de ram, carte son Asus Xonar (upgrade 2011), GTX670 (upgrade 2012), SSD 250GB (upgrade 2012), le tout fonctionnant sous Windows 7 x64. A cela s'ajoutent un clavier Corsair et une souris RAT7 assez classes.
  • Un tablette Toshiba Folio 100 que j'ai récupéré en 2012 et sur laquelle je n'ai jamais trouvé d'image Android parfaitement stable, avec en vrac les bugs suivants : la tablette ne se rallume plus si on la laisse se mettre en veille, parfois le wifi se barre et il faut la redémarrer 4 fois pour le retrouver, parfois le son ne marche plus. J'essaie actuellement d'installer ArchLinux ARM, ainsi que Fedora ARM, mais ce n'est pas gagné. Comme je le disais dans cet article, je me bagarre avec tegra et la version trop récente de Xorg sur Arch.
  • Mon smartphone Nexus 4 que j'adore, il est parfait, je n'ai jamais eu besoin de le rooter car le système est propre, il n'y a pas de surcouche constructeur, et les mises à jour sont suivies.
  • Mon ancien serveur fonctionnant avec un AMD Geode à 500Mhz est au placard, parce que les bonnes blagues ont une fin. Je le réutiliserai un jour si j'ai besoin d'un routeur sous pfsense ou OpenBSD, car sa faible consommation en fait une plateforme idéale.
  • Mon serveur actuel est une plateforme Intel en mini-ITX, Atom monocoeur + hyperthreading, 1GB de ram et un disque de 320GB. Il tourne sous FreeBSD, avec des jails en FreeBSD ou en Debian kFreeBSD. La jail qui me sert de serveur mail utilise un backend sqlite. Je trouvais cela drôle à l'époque, mais je compte migrer mes comptes sous OpenLDAP. Démesuré ? Oui mais c'est très intéressant.
  • Un NAS Buffalo qui dormait dans mon placard car son firmware était bousillé, mais que j'ai récemment réussi à réparer. Son utilité est de stocker les données multimédia, ainsi que quelques logiciels achetés. A terme il me servira à stocker les sauvegardes de mon serveur.
  • Ma connexion à internet Bbox Sensation fibre dont je suis très satisfait, je tenais à souligner ce point. En effet le web est rempli de mauvais retours d'expérience avec les FAI français, donc pour une fois essayons d'en dire du bien. La Bbox marche bien et les débits (en fibre) sont ceux indiqués sur la publicité. Donc rien à redire, sauf le manque l'IPv6 peut être.

Classé dans : Hardware - Mots clés : aucun

Update : Installer Archlinux ARM la Toshiba Folio 100

Rédigé par Xavier - - 2 commentaires

J'installe actuellement Archlinux ARM sur ma tablette Toshiba Folio 100. Cela fait l'objet d'articles en plusieurs parties dont la partie 1 a été publiée. J'ai promis une partie 2, je bosse dessus, mais ce n'est vraiment pas simple. En effet si j'ai bien compris, pour la partie Xorg, on peut utiliser 4 pilotes au choix :

  • Le pilote vesa, c'est à dire le générique qui permet d'avoir un affichage mais pas d'accélération 2D ni 3D, pas de gestion de l'énergie non plus
  • Le pilote tegra, qui est propriétaire à nvidia et offre toutes les fonctionalités
  • Le pilote fbdev, aucune idée de son utilité
  • Le pilote opentegra, qui est un peu similaire à nouveau (pilote libre réalisé à partir de rétro ingénierie) mais destiné à tegra.

Je bloque car jusqu'ici je n'ai réussi qu'à faire fonctionner vesa alors que mon objectif est d'avoir tegra ou opentegra afin d'espérer lire des vidéos de manière à peu près correcte et avoir une gestion de l'énergie. Mais ces pilotes ne veulent pas fonctionner :

  • tegra (propriétaire nvidia) est fourni sous forme binaire pour une ancienne version de Xorg (avec l'abi 14). Or Archlinux fourni un Xorg trop récent (abi 18) qui refuse de charger le pilote. Il existe une ligne à ajouter dans le xorg.conf pour bypasser cette vérification de version, mais cela aboutit sur un segfault.
  • opentegra, qui doit être compilé ainsi que libdrm, n'a pas ce problème d'abi en revanche j'obtiens à nouveau un segfault. Une petite recherche semble indiquer qu'il faut utiliser un kernel récent, or avec cette tablette je suis bloqué sur une version 3.1.10-betelgeuse (spécifique à ce matériel). J'ai tenté de compiler un 3.17-rc avec les mêmes options, voire avec le template tegra2, mais la tablette ne boote pas.

Pour le premier point je tente actuellement un downgrade de Xorg, mais ce n'est pas simple en raison des dépendances et du temps nécessaire à la compilation. Pour le second point j'aimerai trouver un moyen de booter un kernel plus récent, mais j'ai peu d'espoir. Le manque de standardisation des plate-formes ARM et leurs blobs propriétaires sont un véritable enfer.

Installer Archlinux ARM la Toshiba Folio 100 - Ep. 1 : Installation

Rédigé par Xavier - - 3 commentaires

Ma tablette, ma précieuse tablette Toshiba Folio 100 qui prend la poussière depuis longtemps. Trop lente et buguée malgré les différentes ROM android testées. Six mois après leur sortie, les tablette sont laissées à l'abandon par leur constructeur, il n'y a plus de mises à jour, et lorsque la nouvelle version d'Android requiert deux fois plus de ram pour faire la même chose il devient alors impossible de l'utiliser. Achetez une nouvelle tablette et c'est tout. L'obsolescence programmée dans toute sa splendeur, aidée par la trop grande rigidité des plateformes ARM comme nous allons le voir.

Pour en revenir à la Toshiba Folio 100, il est apparemment possible de faire fonctionner Fedora dessus comme le montre cette vidéo. Sur le forum XDA d'autres se sont attaqués à Archlinux. Cela rend cette tablette un peu plus intéressante, on peut enfin y caser un vrai système Linux, mais c'est très compliqué.

Voici mes notes sur l'installation d'Archlinux ARM sur votre Toshiba Folio 100.

Note importante

Dans cette première partie nous n'installerons rien en dur sur la tablette, donc pas de risque de break. Nous nous contenterons de booter un kernel avec fastboot, et monter un système de fichiers présent sur une carte sd ou une clé USB.

Principe

On va démarrer la tablette en mode fastboot puis lui injecter un kernel Linux qui va booter avec pour instruction de monter son root depuis une carte sd ou une clé USB. Le kernel est la partie délicate car il faut une version patchée pour le matériel, c'est d'ailleurs là qu'on se rend compte qu'ARM est chiant. Le seul kernel utilisable pour le moment est le 3.1.10, nous verrons comment le compiler et le charger.

Concernant la partie distribution, c'est un peu plus permissif. Nous allons extraire l'arborescence d'Archlinux ARM sur une carte sd formatée en ext4.

Pré requis

  • Une tablette Toshiba Folio 100 rootée
  • Un clavier USB branché sur la tablette
  • Une carte sd ou une clé USB d'au moins 2GB
  • Un ordinateur sous Linux avec un lecteur de cartes sd (sauf si vous choisissez la clé USB)
  • Un câble USB pour connecter l'ordinateur à la tablette

Procédure

1. Installation du système sur la carte SD

Commencez par insérer la carte sd ou la clé USB dans votre ordinateur. Ensuite localisez-là avec dmesg ou fdisk. Dans mon cas c'est /dev/sdb1. On formatte la carte en ext4 :

# mkfs.ext4 /dev/sdb1

2. Télécharger Archlinux ARM :

Il existe plusieurs versions d'Archlinux ARM. La plus appropriée pour la tablette est trimslice :

# wget http://archlinuxarm.org/os/ArchLinuxARM-trimslice-latest.tar.gz

Malheureusement il manque quelques composants utiles notamment pour le WiFi. Pour cela on va télécharger des paquets additionnels à l'adresse suivante : http://au.mirror.archlinuxarm.org/armv7h/core/. Donc ouvrez un navigateur web et enregistrez les paquets suivants : dhcpcd, iw, wireless-tools, libnl et wpa_supplicant.

Maintenant on va monter la carte sd, extraire l'arborescence Archlinux ARM et copier les paquets que nous installerons plus tard :

# mkdir /mnt/mmc
# mount /dev/sdb1 /mnt/mmc
# tar -xvzf ArchLinuxARM-trimslice-latest.tar.gz -C /mnt/mmc/
# cp dhcpcd-6.4.3-1-armv7h.pkg.tar.xz /mnt/mmc/root/
# cp libnl-3.2.24-1.1-armv7h.pkg.tar.xz /mnt/mmc/root/
# cp wpa_supplicant-2.2-2-armv7h.pkg.tar.xz /mnt/mmc/root/
# cp wireless_tools-30.pre9-1-armv7h.pkg.tar.xz /mnt/mmc/root/
# cp iw-3.14-1-armv7h.pkg.tar.xz /mnt/mmc/root/

3. Compiler un kernel bootable

Commencez par installer les outils de compilation croisée ainsi que git :

Pour Arch / Manjaro :

# pacman -S git arm-none-eabi-gcc

Pour Debian, voir ici (non testé).

Utilisez git pour récupérer les sources du kernel pour Toshiba (et similaires) :

# git clone https://github.com/DerArtem/android_kernel_toshiba_betelgeuse

Ouvrez un navigateur web et rendez-vous sur cette page pour y télécharger le fichier config_patch.txt.

Entrez ensuite dans le répertoire des sources de ce kernel. Ensuite nous allons patcher le .config (qui contient la liste des choses à compiler/mettre en modules) :

# cd android_kernel_toshiba_betelgeuse
# patch -p0 .config config_patch.txt

Lancez la compilation :

# export ARCH=arm
# export CROSS_COMPILE=arm-none-eabi-
# make
# make modules

Important : Installez les modules sur le système cible :

# make modules_install INSTALL_MOD_PATH=/mnt/mmc

Nous en avons terminé avec la carte sd. Vous pouvez la démonter à l'aide de la commande suivante :

# umount /dev/sdb1

Booter la tablette avec un kernel Linux

A partir de là on peut enfin booter notre tablette sous Arch. Pour cela il va nous falloir les android-tools, qui fournissent fastboot. Installez donc android-tools :

# pacman -S android-tools

Démarrez la tablette, avec la carte sd dedans, et quand le logo Toshiba apparait appuyez 3x Power + 1x Vol Up. Le système va alors se mettre en attente de réception de données :

Starting Fastboot USB download protocol, please execute 'fastboot' command

Sur l'ordinateur, relié en USB à la tablette, entrez la commande suivante :

# fastboot -i 0x955 -c "mem=448M@0M nvmem=64M@448M vmalloc=192M video=tegrafb usbcore.old_scheme_first=1 tegrapart=recovery:122000:a00:800,linux:a0e00:1000:800,loader:300:400:800,mbr:700:200:800,system:900:20000:800,cache:20900:80000:800,misc:a0900:400:800,userdata:a1f00:80000:800 boardtype=PR root=/dev/mmcblk1p1 rw usb-storage.delay_use=0 rootdelay=3" boot arch/arm/boot/zImage

Cette commande va injecter notre kernel avec quelques instructions, notamment celle d'utiliser /dev/mmcblk1p1 (la carte sd) comme root. Note : si vous utilisez une clé USB et non une carte sd, remplacez mmcblk1p1 par sda1. Si cela ne marche pas, tentez sdb1 (non testé).

Configurer ArchARM

Si tout va bien devriez obtenir un prompt sur la tablette. Utilisez le clavier USB et ouvrez une session avec l'identifiant + mot de passe 'root'. Passez le clavier en français :

# loadkeys fr

Maintenant installez wpa_supplicant et dhcpcd via les paquets récupérés tout à l'heure :

# cd /root
# pacman -U *.xz

Et voilà. Si tout s'est bien passé, vous devriez pouvoir connecter la tablette au WiFi grâce à la documentation wpa_supplicant. Vous pouvez désormais utiliser pacman pour installer des paquets.

Nous verrons plus tard comment installer un environnement graphique.

Liens

J'ai sauvé un NAS Buffalo Linkstation Duo LS-WXL

Rédigé par Xavier - - 2 commentaires

Il y a quelques temps on m'a offert un NAS Buffalo LS-WXL qui contient deux disques de 1TB. Comme j'avais envie de m'amuser, j'ai pris les deux HDD et les ai mis dans un autre PC sur lequel j'ai installé FreeNAS, puis Openmediavault. Ces deux OS sont super, mais préférant la discrétion du LS-WXL, j'ai remis les disques dedans. Et c'est là que les ennuis ont commencé. En fait ce genre de NAS a la bonne idée de stocker son firmware sur les disques de données eux-même. Donc en formatant les disques, j'ai écrasé le firmware. Donc le NAS ne voulait plus booter.

Et après avoir pas mal galéré j'ai réussi à le remettre d'aplomb. Voici en gros la procédure à suivre :

  • Télécharger le firmware updater sur le site constructeur
  • Télécharger TFTP Boot Recovery
  • Brancher le NAS en direct sur un PC, paramétrer le PC en IP fixe 192.168.11.1
  • Exécuter TFTP Boot Recovery
  • Allumer électriquement le NAS
  • Appuyer 5 secondes sur le bouton fonction
  • Editer le fichier LSUpdater.ini
  • Modifier comme suivant :
  • [Flags]
    VersionCheck = 1
    NoFormatting = 1
    
    [SpecialFlags]
    Debug = 1
  • Passer votre PC en IP automatique (DHCP), il va se mettre en 169.x c'est nécessaire
  • Exécuter LSUpdater.exe
  • Faire clic droit sur la barre de titre puis passer en debug
  • Cocher toutes les cases
  • Cliquer sur OK, valider les différents messages.
  • Le NAS va finir par rebooter. S'il est à nouveau en erreur, reprenez la procédure du début.
  • S'il boote sans erreur, utilisez Nas navigator pour le trouver et le configurer
  • Profit.

Pfiou, un NAS sauvé. Et vu que ce NAS m'a causé pas mal d'ennuis, je vais émettre quelques critiques à son encontre :

  • Il est très lent au niveau des transferts, même sur un réseau Gigabit, je soupçonne l'utilisation d'une vieille version de Samba, je déconseille ce modèle. Pour comparer, avec FreeNAS je met ~6 heures pour transférer toutes mes données. Avec ce NAS c'est 21 heures !!!
  • Il ne supporte pas NFS
  • Il stocke son firmware sur les disques on ne peut donc pas les remplacer par des disques standard ou plus gros, ou alors il faut se taper la procédure d'urgence décrite dans cet article
  • J'ai testé la procédure avec des disques de 160GB, cela ne marche pas, ce qui m'amène à penser qu'il est configuré "en dur" pour utiliser des disques de 1TB uniquement

Bref si vous en avez la possibilité, faites-vous votre propre NAS sous FreeNAS ou Openmediavault, les performances et la souplesse sont à des années-lumière des modèles propriétaires du commerce.

Liens

Debian 7 + Xen + Xapi + XenCenter HOWTO

Rédigé par Xavier - - 6 commentaires

En 2011 dans l'article XenServer : le Xen facile je présentais la solution XenServer de Citrix qui est un serveur Xen prêt à l'emploi doté d'une console de gestion graphique similaire à vsphere : XenCenter. Puis en 2014 j'ai découvert que Xen installé à la main sur Debian n'était pas si méchant que ça : Découverte de XEN sur Debian Wheezy. Eh bien il parait que l'on peut marier les deux. Installer une debian, Xen, puis la couche Xapi qui permet ensuite de se connecter soit avec Xencenter, soit avec openxenmanager.

Sur papier l'installation est rapide et simple, mais en pratique elle est plutôt laborieuse car il y a beaucoup de bugs qui font que ça ne marche pas du premier coup et qu'il faut chercher des solutions. Voilà donc étape par étape comment installer Xapi sur Debian 7 et s'y connecter avec XenCenter.

Installation de Xen

Jusque là, rien de compliqué. Il faut installer le paquet xen-hypervisor :

# apt-get install xen-hypervisor

Puis on va dire à grub de booter en priorité sur Xen :

# dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
# update-grub

Puis, on reboote afin de démarrer sur Xen, c'est très important sinon la suite ne fonctionnera pas.

# reboot

Installation de xapi

Après avoir démarré en Xen, installez xcp-xapi :

# apt-get install xcp-xapi

Notez que des paquets de développement comme linux-image sont installés comme dépendances. C'est pour pouvoir compiler les modules d'openvswitch. Cette étape est faite avec dkms, elle est donc automatique et suivra les montées de version du kernel sans action de la part du sysadmin. Pour le gestionnaire de réseau XCP, il est plus simple de laisser bridge.

Note : vous allez obtenir quelques messages de fail, ignorez-les pour le moment.

On va spécifier à Xen d'utiliser xapi comme backend. Editez le fichier /etc/defaults/xen :

TOOLSTACK="xapi"

Maintenant on va configurer notre bridge. Editez le fichier /etc/network/interfaces et modifiez-le comme ceci :

auto lo
iface lo inet loopback

# allow-hotplug eth0
# iface eth0 inet dhcp

auto xenbr0
iface xenbr0 inet dhcp
  bridge_ports eth0

Note : oui, eth0 est désactivé. Mais xenbr0 va prendre le relai.

Maintenant, rebootez le serveur.

# reboot

Connexion XenCenter

Si votre système ne boote pas et bloque sur la configuration du réseau Xen, vous devez alors forcer le redémarrage puis booter en mode de dépannage sur grub. Puis refaites la configuration du réseau ci-dessus.

Maintenant que votre système est booté, ouvrez la console XenCenter sur une autre machine et tentez de vous connecter à votre serveur Debian :

Au bout de quelques instants on obtient l'erreur suivante :

Après avoir bataillé et surtout ragé parce que visiblement personne n'avait jamais rencontré ce problème alors que je le reproduits à volonté, j'ai enfin trouvé une solution sur ce thread d'un forum citrix. Il s'agit en fait d'un fichier .pem qui ne fonctionne pas bien et qu'il faut donc détruire :

# rm /etc/xcp/xapi-ssl.pem

Puis relancez le service xcp-xapi pour regénérer ce fichier :

# service xcp-xapi restart

Maintenant, tentez à nouveau de vous connecter avec Xencenter, cela doit fonctionner.

Et voilà !

Il faut savoir cependant que xencenter ne révèle son potentiel que sur une infrastructure composée de plusieurs serveurs. Les VM et les ISO ne peuvent pas être stockées sur l'hyperviseur il faut obligatoirement un datastore externe (iSCSI, CIFS ou NFS).