Maniatux's Blog

Welcome to the internet

Archives 2014

ArchBSD dans une jail FreeBSD 10

Rédigé par Xavier - - Aucun commentaire

ArchBSD peut être installé dans une jail sur un hôte FreeBSD très facilement car très proche. En effet, là où Debian GNU/kFreeBSD est une Debian utilisant un noyau FreeBSD, ArchBSD peut se résumer à l'équation suivante : ArchBSD = FreeBSD + pacman. En effet sur ArchBSD on retrouve un rc.conf (avec des daemon_enable="YES") et le fonctionnement ne nécessite pas de couche de compatibilité Linux.

Création de la jail

Malheureusement ArchBSD ne propose pas d'image tout prête qu'il suffirait de décompresser. Il va falloir utiliser pacman et bidouiller un peu pour le faire fonctionner.

# pkg install pacman

Ensuite créez un fichier pacman.conf (dans le répertoire courant) avec le contenu suivant :

[options]
SigLevel = Never
[core]
Server = ftp://ftp.archbsd.net/core/os/x86_64

Note : x86_64 est à remplacer par i686 si votre système est 32 bits.

Créez le répertoire de la jail ainsi que deux répertoires nécessaires à pacman :

# mkdir /usr/jails/archbsd
# mkdir -p /usr/jails/archbsd/var/lib/pacman
# mkdir -p /usr/jails/archbsd/var/cache/pacman/pkg

Procédez maintenant à l'installation :

pacman -Sy base \
-r /usr/jails/archbsd \
--cachedir /usr/jails/archbsd/var/cache/pacman \
--arch x86_64 \
--config pacman.conf

Configuration de la jail

Editez votre /etc/jail.conf pour y ajouter votre jail archbsd. Exemple :

# DEFAULT PARAMETERS
#
exec.start      = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.clean;
mount.devfs;
path = "/usr/jails/$name";
host.hostname = "$name";

# INDIVIDUAL JAIL PARAMETERS
#
archbsd {
        ip4.addr = re0|192.168.0.13;
        persist;
}

Ensuite démarrez la jail :

# service jail start

Configurer ArchBSD

Entrez dans la jail ArchBSD :

# jexec archbsd bash

Premièrement, nous avons un souci avec pacman. En effet la détection de l'architecture ne fonctionne pas bien (FreeBSD utilise amd64 pour les systèmes 64 bits, alors que sur les dépôts de ArchBSD c'est x86_64), il faut donc la forcer. Editez le fichier /etc/pacman.conf et modifiez comme suivant :

Architecture = x86_64

Note : Bien entendu si vous êtes sur du 32 bits, c'est i686 qu'il faut saisir.

Ensuite il faut initialiser le keyring de pacman, avec les commandes suivantes :

# pacman-key --init
# pacman-key --populate archbsd

Et voilà, ArchBSD est prêt !

3 youtubeurs à suivre

Rédigé par Xavier - - Aucun commentaire

Comme en ce moment je ne sais pas quoi poster, voici 3 bons youtubeurs qui ont retenu mon attention et dont je tenais à parler :

  • Durendal1 est un apprenti réalisateur qui publie des émissions sous différents formats en rapport avec le cinéma. Ce que j'apprécie particulièrement ce sont ses prises de positions franches et argumentées, qui vont parfois à l'encontre de l'avis général, les PJREVAT (Pourquoi J'ai Raison Et Vous Avez Tort) sont un excellent exemple. Il y a même des épisodes dédiés à Starwars, de quoi faire troller beaucoup de gens.
  • Le Fossoyeur de Films est un cinéphile publiant des chroniques sur des bons ou mauvais films. Le ton est un plus porté sur l'humour sans tomber dans l'excès et sans oublier le sujet de base (le cinéma !). Voilà un excellent épisode : Top 10 des légendes urbaines du cinéma.
  • e-penser est animé par Bruce qui a décidé de faire de la vulgarisation scientifique sur Youtube. Là encore de l'humour mais surtout des sujets très intéressants : Dix choses insensées que votre cerveau sait faire sans e-penser.

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

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