libbdplus est disponible au publique !

La bibliothèque ouverte libbdplus conçue pour décrypter le DRM BD+ du bluray est enfin disponible à tous.
Voici une capture d’écran de la lecture du bluray Avatar :

libbdplus

Bluray qui est sorti le 21 avril 2010 est dorénavant lisible dans nos distributions… Si vous souhaitez comprendre pourquoi cela a été aussi long, je vous invite à regarder la vidéo de l’équipe Videolan lors de la conférence Pas Sage En Seine 2013.

Pour résumer rapidement, voici comment lire un bluray sous GNU/Linux.

  1. Installer libbluray, libaacs et libbdplus
  2. Installer VLC, mplayer ou XBMC
  3. Installer une base de données de clés (celle-ci ou celle-là)

Avec la première base de donnée il est facile de lire un bluray de AACS v1 à v25 mais au delà c’est à vous de déchiffrer votre volume. Pour info la dernière version de AACS est la 46…

Merci aux différents développeurs et à Videolan pour ses trois bibliothèques ainsi qu’à Alessio Treglia pour les empaqueter dans Debian à chacune de mes demandes.

Libérer un BIOS/UEFI – Installation de coreboot sur l’ASRock E350M1

Coreboot_full_web

Mes chers lecteurs, bien que majorité d’entre vous utilise un système d’exploitation GNU/Linux ou *BSD, combien d’entre vous peuvent prétendre avoir un ordinateur entièrement libre et donc avoir entièrement le contrôle ?
Comme le dit si bien le site Prism-break pour éviter de participer à un programme de surveillance à votre insu vous devez avoir un accès total au code/matériel.

Au menu de cet article nous allons voir comment libérer profondément un ordinateur en remplaçant un BIOS propriétaire (un UEFI dans cet exemple) par le logiciel libre d’amorçage coreboot.
Coreboot effectue qu’un tout petit peu d’initialisation du matériel, puis exécute une logique d’amorçage supplémentaire, appelée charge utile (payload).

Avec cette séparation de l’initialisation du matériel et le démarrage logique plus tard, coreboot peut évoluer à partir des applications spécialisées qui fonctionnent directement à partir du firmware, exécuter des systèmes d’exploitations dans la mémoire flash, charger des programmes d’amorçages personnalisés, ou mettre en œuvre les normes du firmware, comme les services PC BIOS ou UEFI. Cela permet aux systèmes d’inclure uniquement les fonctions nécessaires à l’application cible, ce qui réduit la quantité de code et de l’espace flash nécessaire.

Avertissement : Bien que simplifié au maximum cet article s’adresse aux personnes expérimentées, consulter préalablement le wiki du projet voir si cette procédure est toujours d’actualité.

Ingrédients nécessaires :

_ Idéalement une distribution 100 % libre supportée par la FSF
_ Une carte mère supporté par coreboot (les modèles récents encore commercialisés sont l’ASUS F2A85-M et l’ASRock E350M1 qui sera utilisé ici pour la suite)
_ Des puces de secours
_ Un extracteur de puce
_ Optionnellement un noyau linux 100% libre (si vous voulez un noyau plus récent que celui de votre distribution).

Préparation de la recette :

Installer votre distribution.
Retirer la puce originale de la carte mère et la garder précieusement (pour la garantie notamment) et y placer l’une de vos puces.

Installer les dépendances pour la construction de coreboot:
sudo apt-get install git build-essential libncurses5-dev

Optionnellement vous pouvez également installer les paquets suivants :
sudo apt-get install iasl flex bison gdb

Récupérer coreboot :
git clone http://review.coreboot.org/p/coreboot
cd coreboot
git submodule update --init --checkout

Pour éviter les erreurs avec la chaine de compilation de nos distributions, taper la commande :
make crossgcc
rm .xcompile

Récupérer votre bios vga (depuis le wiki ou de par vous même) puis le placer à la racine du dossier coreboot (et pas ailleurs!).
cp Bios-vga-E350M1.bin coreboot/vgabios.bin

Vérifier la somme md5 du bios vga de l’Asrock E350M1 :
md5sum vgabios.bin

Vous devez absolument avoir retrouvé l’une des 2 sommes de contrôles que j’ai testé (la différence entre les 2 c’est que l’un est coupé en hexa au niveau 0000e200) :
27d5d5b9dbd69dcd9af596de59cadc2a
ou
c6489a495362c09dd591ddb5cf3c5cac

Capture-vgabios.bin - GHex

Configurer coreboot :
make menuconfig

  1. Dans "Mainboard" choisir "ASROCK" en tant que "Mainboard vendor".
    Selectionner "E350M1" dans "Mainboard model".
    Vérifier que le "ROM chip size" correspond bien à la taille de vos chips, pour ma part 4096 KB (4 MB). Coreboot
  2. Dans "Generic Drivers" cocher si besoin la case "PS/2 keyboard init".
  3. Dans "VGA BIOS" cocher la case "Add a VGA BIOS image".
  4. Dans "Payload" vérifier que ce soit bien "SeaBIOS" qui est sélectionné.
    Seabios est la charge utile la plus compatible qui fonctionne avec Windows, Linux et BSD car elle implémente les standards des BIOS. C’est également cette charge utile qui est utilisée dans QEMU et KVM.

Passer à la compilation :
make

Si tout c’est bien passé, votre bios "coreboot.rom" est disponible dans le dossier "build".

Vérifier que votre bios vga soit bien intégré à votre rom coreboot, soit avec un éditeur de fichiers binaires genre "ghex" vous avec cette commande :
cat build/coreboot.rom | grep -ai VBIOS

La commande précédente devant vous renvoyer :
AMD Fusion Wrestler generic VBIOS

Mise au four de notre préparation :

Après la création de notre rom coreboot, nous allons utiliser l’utilitaire flashrom pour écrire sur notre puce de mémoire flash.

Pour installer Flashrom des dépôts :
sudo apt-get install flashrom

Sauvegarder le BIOS
sudo flashrom -r sauvegarde-bios.rom

Flasher le BIOS avec votre rom coreboot :
sudo flashrom -w coreboot.rom

Enfin et uniquement si flashrom n’a pas détecté d’erreurs, vous pouvez redémarrer votre machine.

Si vous avez une erreur aller faire un tour sur l’IRC de flashrom pour demander de l’aide ou essayez de rattraper votre puce avec une version récente de flashrom provenant de branche AMD :
sudo dpkg --purge flashrom
sudo apt-get install libpci-dev zlib1g-dev pciutils
cd ~
git clone https://github.com/stefanct/flashrom.git
cd flashrom/
git checkout -b amd origin/amd
make
sudo make install

Puis re-flasher (la syntaxe peut-être différente entre la version des dépôts et la dernière version disponible) :
flashrom -p internal -c modèle-de-votre-puce -w coreboot.rom

coreboot-boot

Sur le wiki il y a également un fichier de configuration pour fancontrol afin ajuster la vitesse du ventilateur du CPU de manière dynamique. Pour cela installer fancontrol :
sudo apt-get install fancontrol

Copier le fichier de configuration au bon emplacement :
sudo cp fancontrol /etc/fancontrol

Charger le module nécessaire maintenant et redémarrer le service fancontrol :
sudo modprobe w83627ehf
sudo /etc/init.d/fancontrol restart

Puis pour charger automatiquement le module à chaque démarrage :
echo "w83627ehf" >> /etc/modules

A consommer tout de suite et sans modération. Admirer la vitesse, 2 seconde top chrono entre le démarrage et grub ;) (et encore c’est juste l’histoire d’appuyer sur F12 pour démarrer sur un autre support mdr)

Je tiens à remercier le projet Coreboot et Flasrom pour leur travail et à remercier spécialement Alien, Rluett, Openvoid pour avoir répondu à mes questions, à GNUtoo pour son choix de carte mère, à stefanct pour sa branche git amd flasrom.

Test ultra-rapide du navigateur web IRON

IRON

J’ai voulu tester le navigateur web IRON conçu par SRWare éditeur de logiciels. Ce navigateur web est une version basée sur chromium offrant une meilleure confidentialité et sécurité que Google Chrome.

Cette version contrairement à Google Chrome ne contient pas de Client-ID, suggestions de recherches, pages d’erreur alternatives, rapport d’erreur, RLZ-Tracking (transmission d’informations codées à Google), mise à jour automatique, et d’URL-Tracker. Intéréssant sur le papier, j’ai décidé de tester ce dernier.

Je récupère le paquet debian ici :
http://www.srware.net/forum/viewtopic.php?f=18&t=6457

Soit pour l’occasion la version 32 bits (md5 = 145dbaa79ee26ddec4a5fd3b04b83c56).
Après l’installation, je lance l’application (avec un œil étonné vers le chemin de l’exécutable…) :
/usr/share/iron/iron

Et là ça commence bien :
/usr/share/iron/iron: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory

En effet, Ubuntu 13.04 que je test sur mon netbook dispose d’une version récente de libudev, j’ai du corriger le problème via un lien symbolique :
sudo ln -s /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0

Restant particulièrement étonné du chemin de l’exécutable, je décide de regarder les permissions d’accès et là c’est le drame :
ls IRON

Un utilisateur quelconque sans droit root peut supprimer tout cela :
«/usr/share/iron/extensions»
«/usr/share/iron/content_resources.pak»
«/usr/share/iron/chrome_100_percent.pak»
«/usr/share/iron/iron»
«/usr/share/iron/chrome_remote_desktop.pak»
«/usr/share/iron/product_logo_48.png»
«/usr/share/iron/resources.pak»
«/usr/share/iron/libavcodec.so.52»
«/usr/share/iron/libavformat.so.52»
«/usr/share/iron/chrome.pak»
«/usr/share/iron/libavutil.so.50»
«/usr/share/iron/chrome-wrapper»
«/usr/share/iron/libffmpegsumo.so»

Forcement ça va beaucoup moins bien marcher après ^^ (mort de rire). C’est quand même le comble pour un soit disant "Navigateur du Futur", "sans problème de confidentialité ni de sécurité"… J’aurai pu corriger cela rapidement via un "chmod -R 755 /usr/share/iron/" mais j’ai décidé d’arrêter là…

IRON offre certainement une meilleure confidentialité face à google chrome d’accord, mais la différence doit être beaucoup moindre face à chromium. D’ailleurs pourquoi sortir un navigateur au lieu de créer une extension ? (qui je pense rencontrerait un plus grand succès) Dans tous les cas personnellement, je reste sous Mozilla Firefox qui offre une bonne sécurité et plus de respect de la vie privée.

Note: J’ai contacté l’éditeur en question et j’éditerais cet article si j’ai un retour.

Debian 7 (Wheezy) sortie imminente :)

wheezy

Debian Wheezy c’est pour ce weekend et je n’ai donc qu’une chose à dire… Youupppii!

Pour résumer rapidement (en attendant l’annonce officielle qui sera beaucoup plus complète), voici ce que cette nouvelle version nous apporte :

  • Noyau Linux 3.2
  • X.Org 7.7
  • GNOME 3.4
  • KDE 4.8.4
  • Xfce 4.8
  • LibreOffice 3.5.4
  • Iceweasel et Icedove 10.0.12 ESR
  • Apache 2.2.22
  • PHP 5.4.4
  • MySQL 5.5.30
  • Python 2.7 & 3.2

A noter que c’est dorénavant le système de fichier ext4 qui est utilisé par défaut, l’UEFI est supporté sur l’architecture amd64 et l’installateur supporte le WPA.

Si comme moi vous êtes impatient de faire une installation toute fraiche de votre système, voici le lien ultime pour récupérer votre précieux système libre avec un peu d’avance :

http://cdimage.debian.org/cdimage/.wheezy_release/

Bonne install ;)

Leed mon agrégateur RSS en ligne

Leed

Je suis abonné à énormément de flux rss, ce qui me permet de faire de la veille informatique rapidement. C’est un point important pour un administrateur système, car cela permet de suivre l’évolution des normes, du matériel, si on est concerné par les nouvelles failles de sécurité etc…

Pendant longtemps j’ai utilisé comme agrégateur liferea que j’aime bien, mais comme c’est un programme installé sur l’ordinateur il est impossible de suivre ses flux rss depuis n’importe où.

Comme je m’auto-héberge j’ai déjà essayé pas mal de solutions comme tiny RSS et RSSlounge mais, ils ne fonctionnent pas ou très mal avec suphp.
Ardilla lui fonctionne avec suphp mais également avec les injections SQL et XSS… (c’est un jeune projet qui n’est pas mort, à suivre avec intérêt. En attendant je déconseille ça mise en production pour des questions de sécurité sauf si vous modifiez le code en conséquence).

Enfin j’ai testé Leed et je l’ai adopté, que c’est bon de trouver une chaussure à son pied :)

Leed est rapide, simple et il bénéficit d’une interface très agréable. Il utilise CRON pour traiter les informations, fonctionne avec les divers navigateurs et s’adapte aux différentes résolutions des appareils mobiles. Leed est compatible avec l’import (et l’export) de fichier OPML (et donc liferea).

N’hésitez pas à faire comme moi et remonter vos modifications, remarques et suggestions directement. D’ailleurs l’auteur vient de sortir la release 87 aujourd’hui avec notamment le changement de sa licence. Idleman un grand merci pour ton travail que j’utilise au quotidien ;)

Libérer l’invite de commandes windows

tux

Je vous souhaite pour commencer une bonne année 2013 et surtout une bonne santé et pourquoi pas un peu d’argent avec en vu les différentes augmentations que nous allons voir cette année à savoir le Livret A, le logement, prix du gaz, prix de l’électricité, taxis, bière etc…

Qui n’a jamais saisi par erreur une commande Unix/Linux dans l’invite de commande sous Windows? Personnellement moi c’est surtout avec les commandes "ls" et "ifconfig" , question d’habitude ^^
Mon copain JF m’avait concocté un petit script batch pour rigoler afin d’ajouter les alias de mes commandes.

Récemment un collège m’a envoyé un mail disant qu’il faisait par habitude des erreurs de frappes dans le cmd sous windows, j’ai alors décidé de partager mon "Tux Terminal" que j’ai commencé à améliorer mais je compte sur vous pour le peaufiner d’avantage (je vois déjà venir "format c:"), alors lâchez vos commentaires ;)

Voici le script "tux.bat" en question, à mettre dans "C:\Windows\System32".

@echo off
title Tux Terminal for Windows
mode 128
color 0A
echo %username%@%computername% :
echo.
echo.

doskey ls=dir /b
doskey ifconfig=ipconfig
doskey uname=ver
doskey top=tasklist
doskey clear=cls
doskey pwd=chdir
doskey ls-R=tree
doskey cat=type
doskey sleep=pause
doskey export=set
doskey grep=find
doskey dif=fc
doskey mv=echo move ou rename
doskey rm=del
doskey services=echo Taper "sc queryex | findstr "DISPLAY_NAME STATE""
cd %USERPROFILE%
cmd /K

Ensuite dans l’invite de commande, il vous suffira de taper la commande "tux" pour accéder à ce dernier.