Lire des DVD sous Linux

Fervent défenseur du logiciel libre et du monde du libre de manière général, je suis obligé de reconnaître certains de leurs inconvénients quand j’en vois. A leur décharge, la plupart de ces problèmes sont dû à des formats propriétaires.

En l’occurrence, le problème auquel j’ai été confronté était la lecture d’un DVD. Naïf que j’étais, j’ai vite déchanté quand je me suis rendu compte que VLC, le logiciel qui n’a jamais bronché quel que soit le format de fichier que je lui ai donné à manger, n’arrivait pas à le lire.

Quelques recherches m’ont permis de voir que ceci était dû à une librairie non activée de base car servant à faire sauter les protections des DVD. Je n’ai jamais bien compris cet acharnement des maisons d’édition à mettre des DRM partout alors qu’au final, elles ne causent du tort qu’à ceux qui ont légalement acheté le support. Mais ceci est un autre problème.

En tout cas, la librairie nécessaire à savourer son film se nomme libdvdcss. Sous Ubuntu, elle se trouve dans le paquet ubuntu-restricted-extras. Une fois la librairie installée (je recommande d’installer tout le paquet sans se poser de question, je suis sûr qu’il aidera pour lire un autre format propriétaire un autre jour), il va falloir l’activer afin que VLC puisse la prendre en considération. On va donc taper la commande :

sh /usr/share/doc/libdvdread4/install-css.sh

dans un terminal. Un petit redémarrage de VLC si celui ci était ouvert pendant les opérations et nous voilà prêt à sortir toute notre DVDtech dans l’univers du libre. Bon pour les Blu-ray on reviendra, VLC n’a pas encore les autorisations nécessaire à contourner les protections. Merci Sony !!

Installer Java sous Linux et l’ajouter au Path de l’interface graphique

Je suis un utilisateur de Java depuis quelques années maintenant et malheureusement, depuis le passage à la version 7, il n’y a plus d’installateur automatique pour les versions autres que RPM (gageons que ce soit temporaire). Voici donc la procédure pour avoir un Java fonctionnel et facilement upgradable par la suite.

Tout d’abord, il faut commencer par télécharger le JDK et le JRE qui nous intéresse sur la page officielle de Java. Il faut bien sûr prendre la version tar.gz et pour ma part je prend la version 64bits. Je me retrouve donc avec les fichiers :

jre-7u7-linux-x64.tar.gz
jdk-7u7-linux-x64.tar.gz

Je créé ensuite un dossier java dans le dossier /opt/ puis y déplace le JDK et le JRE à installer à l’aide des commandes :

mkdir /opt/java
mv jre-7u7-linux-x64.tar.gz jdk-7u7-linux-x64.tar.gz /opt/java/

On décompresse ensuite les deux archives puis on les renomme respectivement en jre et en jdk :

tar -xzf jdk-7u7-linux-x64.tar.gz
tar -xzf jre-7u7-linux-x64.tar.gz
mv  jdk1.7.0_07 jdk
mv  jre1.7.0_07 jre

Il ne reste plus qu’à enlever les deux fichiers d’archives et on a les fichiers d’exécution de Java à leurs places définitives. L’avantage de cette mise en place est qu’il n’y aura qu’à remplacer les fichiers à l’intérieur des dossiers jdk et jre par les nouvelles version de Java. Ce sera ainsi le seul changement qu’il y aura à apporter par la suite pour mettre à jour sa version.

Maintenant qu’on a des emplacements de Java suffisamment génériques pour résister aux changements de versions, il faut les inclure au PATH. Il y a plusieurs solutions en fonction de ce que l’on désire mettre en place. Pour ma part, je voulais inclure Java partout (sous entendu y compris dans l’interface graphique) afin que les programmes qui en ont besoin le trouve facilement. De plus, ceci me permet de lancer facilement mes programmes sans mettre la direction absolue de mon installation.

Je vais maintenant détailler différentes possibilités d’installation :

  • La première permet d’ajouter Java au PATH console d’un seul utilisateur. Il suffit pour ce faire de rajouter les lignes :
export PATH=$PATH:/opt/java/jdk/bin:/opt/java/jre/bin
export JAVA_HOME=/opt/java/jre/bin

à la fin du fichier .bashrc de l’utilisateur.

  • La deuxième permet d’ajouter Java au PATH console de tous les utilisateurs du système. Il suffit de rajouter les même lignes qu’au dessus mais dans le fichier : /etc/bash.bashrc
  • La dernière, et celle que j’ai utilisé, permet de modifier le PATH de tout le système. Elle consiste à modifier le fichier /etc/environment. On modifie la ligne PATH et on rajoute une variable JAVA_HOME au fichier de cette manière :

PATH= »/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/java/jdk/bin:/opt/java/jre/bin »
JAVA_HOME= »/opt/java/jre/bin »

De nombreux détails sur les variables d’environnements et leurs utilisations sont présentes sur les pages officielles d’Ubuntu.

Après un simple redémarrage de l’ordinateur, les configurations seront prises en compte. Nous voici donc avec un Java facilement upgradable utilisable partout.

Connecter son téléphone android sur Linux

J’ai tenté de connecter mon Samsung Galaxy S II à mon Ubuntu mais je n’obtenais que des erreurs de connexion et de montage. Je ne pouvais ainsi notamment pas accéder à mes photos afin de les récupérer. Après quelques recherches, j’ai appris que Google avait choisi d’utiliser le MTP (Media Transfert Protocol) à la place de l’USB Mass Storage afin de palier à des problèmes de montage/démontage de partition. Ubuntu a beau gérer nativement le MTP sur le papier, il n’a pas l’air de bien fonctionner avec les périphériques Android.

Plusieurs personnes (ici ou ici) décrivent des procédures à suivre afin de connecter ce genre de périphériques. Cependant, après un essai infructueux, j’ai décidé de voir s’il n’était pas possible de se connecter autrement.

En effet, j’ai juste cherché à retrouver l’ancienne option d’USB Mass Storage en me disant qu’avant il était possible de l’activer avec de simples options comme le debug développeur. Il ne m’a pas fallut longtemps pour trouver dans Paramètres -> Plus … -> Utilitaires USB le stockage de masse USB. On retrouve ainsi l’ancien format de connexion et tous les problèmes disparaissent.

Créer un lanceur d’application à la main et l’ajouter au menu

Afin de pouvoir lancer facilement mon programme Just Wake Up, j’ai voulu créer un lanceur dans ma lens d’applications Unity. Cependant, autant il était très simple de mettre en place ce genre de solutions avec Gnome 2, autant rien de tel n’existe encore sous Unity. Ainsi, il m’a fallut créer un lanceur à la main. Les lanceurs sont basés sur la Desktop Entry Specification.

Voici le script de lancement que j’utilise avec Just Wake Up :

#!/usr/bin/env xdg-open
[Desktop Entry]
Name=Just Wake Up
Comment=Fancy Mornings, Just Wake Up
Exec=java -jar /opt/justwakeup/JustWakeUp.jar
Terminal=false
Icon=/opt/justwakeup/logo.png
Type=Application
Categories=Utility

Il suffit d’enregistrer ceci dans un fichier (extension .desktop la plupart du temps) et le placer avec les autres lanceurs d’applications dans /usr/share/applications/

On peut aussi mettre ce lanceur ailleurs mais afin de le rendre actif, il faut faire un clic droit dessus, aller dans l’onglet Permissions et cocher l’option Autoriser l’exécution du fichier comme un programme.

Installer VMware Workstation sous Linux malgré une erreur de compilation

Avec mon école, nous possédons des licences d’utilisation de VMware. Ainsi, j’ai voulu l’installer sous Linux (sur Ubuntu et Xubuntu) afin de pouvoir travailler en virtualisation. Malheureusement, après l’installation complète de VMware (à l’aide du fichier .bundle), une erreur

VMware Kernel Module Updater
This fails on Virtual Network Device

m’empêchait de lancer le logiciel. Après des recherches, j’ai trouvé ce site qui fournit un patch afin de corriger ce bug. La version de VMware que je souhaitais installer était la 8.0.4. Or le patch contrôle la version de VMware et ne se dit compatible que jusqu’à la 8.0.2, ce qui n’est pas vrai mais il n’a pas encore était mis à jour. Il suffit pour le faire fonctionner avec cette version de modifier la ligne :

vmreqver=8.0.2

par

vmreqver=8.0.4

dans le fichier patch-modules_3.2.0.sh Une fois le patch appliqué, il suffit de l’exécuter pour corriger l’erreur de compilation de VMware et de pouvoir définitivement utiliser le logiciel.

Mettre une image en fond sur grub 2

Ubuntu a une fâcheuse habitude depuis quelques version qui est de mettre un HORRIBLE fond violet en fond de base sur grub. Je remplaçais déjà avant le fond par une jolie image mais là en plus ça permet de corriger ce problème.

Pour ce faire,il n’y a rien de plus simple. Il suffit de mettre une image en JPG, PNG, TGA ou l’un des formats supportés par grub dans le dossier /boot/grub/. Une fois ceci fait, il suffit de réexécuter la commande :

update-grub

pour qu’il régénère le fichier /boot/grub/grub.cfg avec la première image rencontrée dans le dossier /boot/grub/ par ordre alphabétique.

Il m’est arrivé une fois de passer plus d’une heure à chercher d’où pouvait venir le fait que l’image ne s’affichait pas au démarrage alors que le fichier grub.cfg était bien configuré. En réalité le problème venait de certains format de compression de JPG qui ne sont pas pris en compte par grub. Ainsi, de manière global je conseil de mettre une image au format PNG afin d’éviter tout problème de ce genre.

Nouvelle organisation de mes OS

Après avoir testé un certains nombre de systèmes d’exploitations dans le but d’en trouver un dont l’utilisation s’approcherait d’Ubuntu avec Gnome 2, j’ai décidé de me résigner et de me faire violence en utilisant toutes les interfaces que je n’aime pas afin de savoir me servir un peu de tout. Je suis donc de retour sous Ubuntu et, comme je m’y attendais, j’ai beaucoup à critiquer sur Unity. Etant une interface très jeune, je pense qu’il lui faudra un peu de temps pour corriger les défauts qui en découlent. Sur mon ordinateur fixe, j’ai décidé de faire un double boot, alors que jusqu’ici j’étais exclusivement sur Windows 7. Je vais donc passer sur Fedora 17 en OS principal et garder mon Windows 7 en parallèle au cas où le besoin s’en fasse sentir. Je vais ainsi pouvoir tester un système radicalement différent avec la gestion en rpm au lieu des deb et avec Gnome 3. Ainsi, en résumé, voilà l’organisation des machines que j’utilise :

  • Ordinateur portable :
    • Ubuntu 12.04 
    • Windows 7
    • Backtrack 5 r3
  • Ordinateur fixe :
    • Fedora 17
    • Windows 7
  • Ordinateur d’appoint :
    • Xubuntu 12.04

Activer l’espace insécable sous Xubuntu

J’avais eu un problème similaire il y a quelques années lorsque je travaillais avec Code::Blocks. Les espaces n’étaient pas pris en considération. La cause est que seuls les espaces insécables (non-breaking spaces) sont pris en compte. Il existe plusieurs manières de remédier à ce problème :

  • La première est la plus contraignante mais la plus pérenne. Elle consiste à insérer les espaces à l’aide des touches Ctrl + Alt + Espace
  • La deuxième est celle qui avait fonctionné sur ma Ubuntu quelques années auparavant. Elle consiste à aller dans les options Système -> Préférence -> Clavier -> Onglet Agencement -> Autres Options -> Using space key to input non-breakable space character -> Space key outputs usual space at any level
  • Une autre solution que je n’ai jamais testée moi même mais que j’ai trouvé sur internet consiste à modifier son fichier /etc/X11/xorg.conf et à commenter la ligne  » Option « XkbVariant » « oss »  » puis à redémarrer le serveur X.
  • Enfin, celle qui m’a permis de résoudre mon problème sous Xubuntu a été de me rendre dans Paramètres -> Gestionnaire de paramètres -> Clavier -> Onlget Disposition -> Décocher utiliser les paramètres par défaut -> Modifier la disposition du clavier -> Français (variante obsolète)

Toutes ces techniques permettent d’activer les espaces insécables à la place des espaces normaux mais ne fonctionnent pas forcément toutes en fonction de la distribution utilisée.

 

Comment personnaliser sa bannière de connexion SSH

Lorsque l’on se connecte à son serveur en SSH, on a souvent un texte de base contenant des informations sur le serveur. Nous allons ici personnaliser le texte affiché.

La première étape consiste à activer la bannière dans le fichier de configuration d’openSSH. Pour ce faire, on va dans /etc/ssh/ et on modifie le fichier sshd_config. On décommentera la ligne :

#Banner /etc/issue.net

ou on la créera si elle n’y est pas. L’URI indique le fichier qui contiendra notre message d’accueil. On peut modifier son emplacement si on le veut ou simplement utiliser celui qui existe déjà. Après modification du fichier de bannière, un redémarrage à l’aide de la commande

/etc/init.d/ssh restart

suffit à faire prendre en compte les modifications. La bannière est maintenant affichée dès qu’une demande de connexion est effectuée.

Bloquer les documents récents sous Linux

Un des problème récurent que je retrouve sur presque toutes les distributions que j’ai pu tester est le stockage des documents récents. Sous Windows, il est possible d’empêcher le stockage des derniers fichiers/documents utilisés en quelques clics depuis le menu de configuration du menu démarrer, alors que sous Linux la configuration est plus compliquée.

Le fichier qui est chargé de stocker la liste des documents récents peut être le fichier

~/.recently-used.xbel
ou
~/.local/share/recently-used.xbel

en fonction de la distribution.

La solution la plus simple et qui a fonctionné sur toutes les distributions que j’ai testé est de supprimer ce fichier puis de le recréer à l’aide de la commande :

touch .recently-used.xbel

On va ensuite changer ses attributs grâce à la commande :

chattr +i <nom_du_fichier>

Ceci va avoir pour effet d’ajouter l’attribut i au fichier recently-used.xbel. Selon la propre documentation de chattr,

A file with the ‘i’ attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file and no data can be written to the file. Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.

Ainsi, aucun logiciel ne sera capable d’écrire les derniers fichiers qui ont été utilisés avec lui et le gestionnaire de fichier ne pourra pas les afficher.

En attendant une solution plus propre et surtout prévue par le gestionnaire de fenêtre, cette solution fait son office.