LINUX & OPEN SOURCE

23 janvier 2012

Restaurer une installation Ubuntu Oneiric cassée

J'ai cassé mon installation Ubuntu 11.10 (Oneiric Ocelot) en supprimant tous les fichiers reltatives à Unity. Ce dernier ne m'étant point utile, j'ai lancé synaptic et j'ai bêtement supprimé tout ce qui commencait pas unity. J'ai aussi supprimé compiz qui m'encombrait pour rien.

C'était une bien mauvaise idée: Au redemarrage de l'ordinateur, je me suis retrouvé avec un écran noir et une longue liste de commandes se terminant pas un xdm.

 

Alors voila comment j'ai restauré étape par étape mon installation:

1 - Connecter l'ordinateur au cable ethernet - le wifi est pour l'instant inutilisable.

2 - Booter en mode recovery.

3 - Lancer le fsck et attendre la fin de la vérification.

4 - Demarrer avec les droit du root.

5 - Entrer: ifconfig eth0 up    et attendre environ une minute que le système confirme que eth0 est dispo. Préparer le café en attendant!

6 - Entrer: dhclient eth0      dans mon cas j'ai un message d'erreur mais ça marche.

( Á partir d'ici les opérations deviennent longues - Prévoyez une bonne heure devant vous! )

7 - Entrer: apt-get remove gnome-themes-standard

8 - Entrer: apt-get remove libgtk-3-common

9 - Entrer: apt-get install ppa-purge

10 - Entrer: ppa-purge ppa:gnome3-team/gnome3

11 - Entrer: apt-get install gnome

12 - Entrer: apt-get install lightdm (puis choisir lightdm comme display manager dans la boite de dialogue)

13 - Entrer: apt-get install unity-common

14 - Entrer: apt-get install apt-get install unity-2d

15 - Entrer: apt-get install apt-get install unity-greeter

16 - reboot (croisez les doigts, vous devriez retrouver votre configuration, et bien sûr Unity).

J'ai procédé de manière itérative, en ajoutant des apt-get install jusqu'à temps que je retrouve la page d'ouverture de la session. Pour finir, je pense que le problème vient du script de démarrage qui cherche à lancer lightdm et unity-geeter. Á priori, il suffirait juste de réinstaller ces deux derniers. Á voir...

 

 

Posté par InPhilly à 19:04 - - Commentaires [0] - Rétroliens [0]


22 janvier 2012

Marre de Gnome 3 ? Alors pourquoi pas Fluxbox ?

La version 3.2 de Gnome ne semble pas encore tres stable, en particulier Gnome Shell.

Alors pour les boulots sérieux, il vaut mieux choisir un gestionnaire de fenêtre léger et stable. Donc mon cas, c'est Fluxbox (*) quand je développe. Il ne prend que 3,3 Mo ce qui me permet d'ouvrir mes applications favorites au démarrage. Le menu apparaît avec un clic droit sur le bureau. On passe d'un bureau d'un bureau  a un autre avec la molette de la souris. Bref, il est difficile de faire plus simple.

Oui, Gnome 3 c'est plutôt bien... à condition d'avoir un gestionnaire de fenêtre stable pour faire du vrai travail! Je garde espoir, Gnome 3 va grandir et perdra ses défauts de jeunesse.

 (*) Openbox est aussi très bien mais encore plus minimaliste que Fluxbox. Fluxbox dispose d'un panneau, il peut charger une image en fond d'écran et il gère aussi les transparences. L'avantage, c'est qu'à lui seul, il est suffisant et que les fichiers de configurations se trouve tous dans le même répertoire: ~/.fluxbox/

 

Posté par InPhilly à 16:23 - - Commentaires [0] - Rétroliens [0]
21 janvier 2012

Gnome Shell, consommation de mémoire

J'ai noté que Gnome Shell consomme une quantité non négligable de mémoire au lancement, de l'ordre de 60Mo à 70 Mo et surtout que cette mémoire augmente continuellement pendant l'utilisation pour arriver à 200Mo après quelques heures.

C'est beaucoup quand on compare avec des applications comme firefox, libreoffice. En outre, le taux d'occupation CPU de Gnome-Shell arrive à augmenter jusqu'à 100%, sans raison évidente et rendant l'interface graphique quasi inutilisable.

Je suppose que c'est un bug...

Voici le screenshot:

gnome-shell-memory

 

 

 

 

 

 

 

 

 

 

 Je n'ai pas de solution pour résoudre ce bug... à part un log out / log in à faire toutes les 4 heures.

 

 

 

 

 

 

 

 

Posté par InPhilly à 18:58 - - Commentaires [0] - Rétroliens [0]
20 janvier 2012

Gnome Shell, c'est plutôt bien!

Gnome Shell a été largement critiqué. Je trouve les critiques trop excessives, après une semaine d'utilisation, il est devenu mon interface graphique préféré.

Son plus gros défaut à mes yeux étant l'impossibilité de mettre ses propres icons sur le panel. Avec Gnome 2.32, je faisais largement usage de drawers contenant une série de lanceur d'appli. C'était pratique, rapide et bien organisé: Un clic sur le drawer Office est j'avais les icons de LibreOffice, Planner...

Gnome 3 ne permet plus ce genre de configuration et c'est bien dommage. Alors j'ai trouvé un pis-aller:

J'ai créer des dossiers dans le répertoire ~/Desktop avec le nom des rubriques que j'avais pour mes Drawers. Dans chaque répertoire j'ai créé des fichiers "appli.desktop" chargés de lancer les applications, et voila!

Bon, la manip est un peu longue (il y a une solution rapide en bas de cette page!) car il faut donner le nom exacte du programme à lancer (Exec=geany , par exemple), ainsi que rechercher l'icon dans usr/share/pixmaps ou usr/share/icons (Icon=/usr/share/pixmaps/geany.xpm).  Mais ça marche - c'est bien organisé et rapide: Un double clic sur l'icon "Develop" (j'ai choisi des pommes colorées) et Nautilus affiche toutes les applis que j'ai mis dans cette rubrique, et il me reste plus qu'à double cliquer sur l'appli que je veux lancer.

Voici une capture d'écran (remarquer les petites pommes colorées où j'ai rangées mes applis. La fenêtre ouverte à gauche concerne les applis que j'utilise en développement)

screenshot-Gnome-shell

 

 

 

 

 

 

 

Concernant le fichier application.desktop.

Voici un example qui lance Geany:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=gnome-panel-launcher
Exec=geany
Name[en_US]=Geany
Name=eterm
Icon=/usr/share/pixmaps/geany.xpm
GenericName[en_US]=terminal

Note: Un fichier .desktop créé peut être facilement modifié avec Nautilus: Clic droit sur l'icon, puis clic sur propriétés/properties. Là, il vous reste à entrer le nom de l'appli dans COMMAND et à choisir son icon en cliquant sur l'icon affiché. N'oublier pas de rendre le fichier executable dans permission.

Solution rapide pour créer vos lanceurs "appli.desktop" sans avoir à écrire quoi que ce soit:

Avec Nautilus, aller dans usr/share/applications. Vous y trouverez toutes les applications avec leurs icons & lanceurs. Il suffit alors de faire un "copier" depuis usr/share/applications de l'appli qui vous interesse et un "coller" dans le repertoire "Ma_Rubrique_Truc" que vous avez créer dans ~/Desktop. N'oubliez pas d'autoriser l'exécution du lanceur que vous avez copier-coller avec un clic droit - propriété - permissions - autoriser l'exécution.

Enjoy Gnome Shell ;-)

 

Posté par InPhilly à 22:14 - - Commentaires [0] - Rétroliens [0]
14 octobre 2011

mpide-0022-linux32-20110822 sur Ubuntu Natty 64 bits

J'ai rencontré un problème avec mpide-0022-linux32-20110822 (téléchargé depuis le site de ChipKIT https://github.com/chipKIT32/chipKIT32-MAX/downloads) , et que j'ai installé sur Ubuntu Natty 64 bits.

Le programme mpide se lance sans probleme mais la compilation d'un "sketch" produit le message le message d'erreur: error while loading shared libraries libelf.so.1 wrong elf class elfclass64

La solution: Il faut installer libelf-0.148.so et libelf.so.1 qui sont à extraire de libelf1_0.148-1ubuntu1_i386.deb (http://packages.ubuntu.com/natty/libelf1), et ensuite les 2 fichiers sont à copier dans usr/lib32

Le upload va aussi produire un message d'erreur: error while loading shared libraries libreadline.so.6 wrong elf class elfclass64

Il faut installer libreadline.so.6 et libreadline.so.6.2 qui sont à extraire de libreadline6_6.2-0ubuntu1_i386.deb (http://packages.ubuntu.com/natty/libreadline6), et ensuite les 2 fichiers sont à copier dans usr/lib32

Ensuite mpide a fonctionné correctement dans mon cas.

Posté par InPhilly à 23:23 - - Commentaires [0] - Rétroliens [0]




23 septembre 2011

UEFI secure booting

Est-ce que le démarrage de sécurité UEFI que M$ veut imposer avec Windows 8 pourra gêner l'installation de Linux sur les nouvelles machines estampillées Windows 8 ?

- Non, à condition que le démarrage de sécurité puisse être désactivé (de la même manière que l'on change le paramétrage du bios).

- Oui, si on veut un dual boot Linux/Windows 8 (à moins peut-être d'activer le démarrage de sécurité quand on veut Windows 8 et de le désactiver quand on veut Linux?).

- Non, même en dual boot si Canonical, Redhat, Debian... arrivent à imposer leurs clés aux OEMs.

Quoi qu'il en soit, il est certain que l'option pour désactiver le démarrage de sécurité sera présente. Sinon, M$ entre autres risque bien de se retrouver devant les tribunaux pour monopole et entrave à la liberté.

Pour en savoir plus http://mjg59.dreamwidth.org/5552.html

 

 

Posté par InPhilly à 23:44 - Commentaires [0] - Rétroliens [0]
30 juin 2011

region free - region hack for DJIX PVS 702 40L

I bought the small DJIX PVS 702 40L dvd player for its dual screens. My kids brought back a stack of dvd from Philadelphia, their favorite Curious George, Babies, Tomas and Friends... So I had to find a hack (to keep my twins quite during the long journey on the A7). Perhaps, it could be useful for some of you. So here is the easy hack:

- Power on the player.

- Open the tray.

- Press Setup button (on the remote control).

- Press Right arrow button 3 times (on the remote control).

- Press 9 6 5 3 (on the remote control).

Now, you should see the secret menu.

With the Up / Down arrow (on the remote control), change the region code. ( 0 for region free)

- Finally, press Setup.

The job is done!

 

Posté par InPhilly à 22:01 - - Commentaires [0] - Rétroliens [0]

Dézonage du lecteur DJIX PVS 702 40L

J'ai fait l'aquisition du petit lecteur de dvd portatif double écrans DJIX PVS 702 40L. Mes enfants ont une pile de dvds qu'ils ont emportés avec eux de Philadelphie. Il a m'a donc fallu trouvé le code de dézonage. Je pense que cela pourrait intéresser quelques personnes alors le voiçi la procédure:

- Mettre le lecteur sous tension.

- Ouvrir la porte.

- Appuyer sur setup (télécommande).

- Appuyer sur la flêche droite 3 fois (télécommande).

- Composer 9653 (télécommande).

Le menu secret doit apparaitre.

- Avec les flêches haut / bas de la télécommande, changer le code région. ( 0 pour le multi-zone ).

- Appuyer sur setup (télécommande).

Et voilà!

 

Posté par InPhilly à 21:31 - - Commentaires [1] - Rétroliens [0]
23 juin 2011

Vala: Les fonctions qui retournent null et les fonctions qui plantent avec null

Je vais lister sur ce billet les fonctions et opérations qui peuvent générer une erreur de segmentation (segmentation fault) avec Vala. Cette liste sera complétée à l'occasion.

A - Fonction qui plante lorsqu'elle reçoit une chaine non référencée (null):

int.parse(str)  si str = null alors un segment fault est généré.

var strB = strA si strA = null et que valac traduit cette affectation par un g_strdup (ce n'est pas systèmatique).

B - Opération qui plante lorsque les bornes sont dépassées:

string[] strA={"abc","def","ghi"}

var strB = strA[5];

C - Fonctions qui retournent une chaine non référencée (null):

substr = str[a:b]   si b excéde la longueur de la chaine str, alors substr = null

var strB = str.split(",",2)   si str est null ou si le séparateur n'est pas dans str alors strB[1] n'est pas  référencé.

var str = hashtable.lookup(key)   si key n'est pas trouvé alors str est null.

 

 

Posté par InPhilly à 14:25 - - Commentaires [0] - Rétroliens [0]

les risques d'erreur de segmentation en Vala

Vala est moins succeptible aux erreurs d'allocation mémoire, aux erreurs de segmentation que le C. Mais quelques risques subsistent. Dans mon précédent billet, je vous ai parlé du problème du split, dans celui-ci je vais abordé le problème des tableaux, et en particulier lorsqu'on dépasse les limites du tableaux. Prenons le petit exemple qui suit:

string[] str = {"ABC","DEF","GHI"};
message(str[5]);

La table str ne contient que 3 chaines, et on tente d'accèder à une chaine en position 5. À l'execution du programme, on obtiendra un segmentation fault car str[5] n'est pas défini.

Pour éviter ce type d'erreur, il faut vérifier que l'index soit dans les limite de la table. On utilise pour cela str.length pour connaitre le nombre d'éléments dans la table str.
Voici un exemple:


if (idx < 0 || idx >= str.length) {
  message("Erreur - indexe hors limites");
  exit(-1);
}

 

Posté par InPhilly à 09:18 - - Commentaires [0] - Rétroliens [0]