Maniatux's Blog

Welcome to the internet

Linux

En avant pour Yunohost

Rédigé par Xavier - - Aucun commentaire

Yunohost est une distribution Linux basée sur Debian et orientée auto-hébergement. Le principe ? Debian + des services de base (mail, jabber) + un annuaire ldap + une interface web et la possibilité d'installer des "applications" en quelques clics seulement comme par exemple Owncloud. Les possesseurs de Raspberry Pi ne sont pas oubliés puisque des images sont proposées. La cerise sur le gâteau, c'est l'upnp qui permet (en théorie) d'ouvrir tout seul comme un grand les ports sur le routeur/box.

L'interface web est vraiment bien fichue et flate l'oeil. L'ensemble fonctionne bien et l'équipe du projet est très motivée. J'ai donc décidé de migrer mes services "personnels" (le blog maniatux n'est pas inclus) sur Yunohost.

Yunohost peut être installé soit à partir d'une ISO, soit à partir d'un script du moment que le serveur dispose de Debian i386 ou amd64 (malheureusement kfreebsd n'est pas encore supporté). Les instructions d'installation manuelles sont par ici. Pour les autres méthodes (iso ou images raspberry pi) c'est par là.

Ensuite concernant la migration de mes données, voici un petit résumé :

Migration des domaines et comptes

Yunohost permet à travers l'interface web de configurer plusieurs domaines et comptes utilisateurs. Il m'a donc suffit de les recréer. Les alias de messagerie ne sont pas oubliés, ce qui est un excellent point.

Migration des e-mail

J'ai tenté de copier mon /var/mail et de reconfigurer les droits, mais cela n'a jamais fonctionné, pour une raison inconnue Dovecot n'arrivait pas à écrire. J'ai donc du faire une sauvegarde des mails de l'ancien serveur à travers Thunderbird (copie dans le dossier local), puis les restaurer sur le nouveau serveur.

Migration Jabber

J'ai copié le contenu de /var/lib/prosody de l'ancien serveur sur /var/lib/metronome du nouveau serveur. Metronome est un fork de prosody et il est totalement compatible avec pour le moment. Le fait de copier ce répertoire permet de récupérer la liste de contacts.

Allons-y !

J'aime beaucoup le projet Yunohost, il m'évite de devoir configurer un annuaire ldap et y rattacher tous les services, le gain de temps est énorme. De plus son interface web est très bien pensée, dynamique, et la facilité à installer les applications tierces et déconcertante.

Je vous encourage fortemment à l'essayer, vous serez conquis !

Maniatux.fr tourne maintenant sur un VPS Classic 1 (OVH)

Rédigé par Xavier - - Aucun commentaire

Pour 2,39€ TTC/mois je loue désormais un serveur chez OVH. En fait il s'agit d'un VPS, c'est à dire qu'il n'est pas physique, c'est un container OpenVZ. Pour ce prix on a donc 1 vcore, 1Go de ram, 10GB d'espace disque, 1 IPv4 + 1 IPv6 (/128). J'ai choisi la distribution Debian Wheezy en 64 bits.

Pourquoi avoir choisi d'externaliser le serveur du blog ? Pour les raisons suivantes :

  • Vie privée : maniatux.fr étant "public", j'étais ennuyé que son IP soit celle de mon domicile (risque d'attaques, de recoupement d'informations, etc).
  • Continuité de service : entre les reboot de box, les arrêts volontaires en cas d'orage, les reboot pour mises à jour, les bidouillages, ce n'était pas l'idéal pour un site web.
  • Envie de tester ce que vaut un serveur à 2,39€.

Pour le moment mon ressenti sur ce VPS est plutôt bon et, chose intéressante, son cpu :

$  cat /proc/cpuinfo
[...]
model name	: AMD Opteron(tm) Processor 6128

De l'Opteron ! C'est étonnant. Tous les serveurs que j'ai vus dans ma vie étaient tous en Intel Xeon. Je commençais à croire que personne ne voulait de l'AMD Opteron et j'étais très curieux de savoir ce que cela vaut. Autre point intéressant, la version du noyau :

$ uname -r
2.6.32-042stab092.3

Un kernel 2.6.32 ?? Et oui, parce qu'on est sur une plateforme en OpenVZ. Ce dernier se base sur un kernel RHEL modifié, et c'est encore le 2.6.32 qui est utilisé. Le 3.10 (utilisé sur RHEL7) ne semble pas annoncé. Dommage car les kernel récents apportent beaucoup d'améliorations, et le 2.6.32 nous ramène quand même en 2010.

Pour le moment je suis plutôt satisfait de ce VPS, très correct pour le prix si on peut se limiter aux 10GB d'espace de stockage.

Tablette tactile + ubuntu

Rédigé par Xavier - - Aucun commentaire

J'ai actuellement entre les mains une tablette Samsung ATIV7. Elle fonctionne sous une plateforme Intel Core i5 et est équipée de Windows 8. Avec son clavier dockable c'est donc plus un PC qui se fait passer pour une tablette, mais c'est assez réussi. Windows 8 est plutôt bien adapté à un usage tactile, mais pour savoir si cela est la même chose avec Linux, j'ai démarré Ubuntu 14.04 en LiveUSB dessus et je vais livrer rapidement mes impressions.

Ubuntu propose un clavier visuel ce qui est bien pratique pour pouvoir frapper son texte directement sur l'écran, sans devoir utiliser le dock. Il faut tout de même prendre le soin de le paramétrer, ainsi je lui demande de se montrer automatiquement quand je sélectionne une zone de texte, mais aussi de se placer en bas de l'écran et non en position libre ce qui est plutôt gênant. Voilà ce que ça donne :

C'est plutôt bien fait, sauf dans le menu de lancement Unity où là le clavier ne se montre pas. Pas de panique, le clavier est en fait rangé dans la zone de notification à côté de l'heure et on peut alors le déplier à la main. L'écran tactile répond bien et la localisation des points est très précis.

Concernant l'affichage on remarque rapidement un problème : c'est ridiculement petit. En effet on dispose d'un écran 11 pouces mais avec une résolution de 1920x1080. Donc c'est très fin. Windows 8 adapte automatiquement son DPI, et même si le système est perfectible, il a le mérite d'exister. Ubuntu en revanche ne le fait pas. Il faut aller dans l'outil de configuration de l'affichage et passer à 1,5 ou plus la taille des éléments. Voilà, beaucoup mieux !

Les boutons de volume situés sur le côté sont bien reconnus, ce qui est un bon point. Pas de gestion de la luminosité malheureusement, que ce soit en automatique ou avec les touches raccourcis. Le bouton de verrouillage ne permet pas de mettre en veille rapidement la tablette non plus. Cela n'est pas particulièrement bloquant car j'avais l'habitude de laisser la luminosité à fond et pestais même contre le réglage automatique toujours trop sombre.

Avec Ubuntu on a quelques défauts, mais globalement la tablette est utilisable. L'affichage est bon, l'écran tactile est supporté, le wifi, un clavier visuel, et un bon réglage de taille des éléments. L'environnement Unity est à mon sens un excellent compromis Desktop / Tablette.

Update : Installer Archlinux ARM la Toshiba Folio 100

Rédigé par Xavier - - Aucun commentaire

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 - - Aucun commentaire

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