Skip to content

Perte du mot de passe session sous Ubuntu

25 mars 2016

Ça a fini par arrivé, j’ai perdu mon mot de passe de session. Et bien sûr, c’est le compte qui permet d’accéder au super-utilisateur.

Trouver la solution fait perdre beaucoup de temps alors que c’est tout bête.

  1. Rebootez votre PC
  2. Appuyez sur Échappe (ou Shift sinon) pour faire apparaître la liste de choix pour lancer Ubuntu.
  3. Prenez un recovery mode.
  4. Allez sur le choix root.
  5. Tapez ce qui suit (probablement en qwerty… courage) :

mount -o rw,remount /
passwd votre_log_de_session
reboot

Et normalement c’est tout bon.

Si comme moi, vous faîtes encore plus fort et ne vous souvenez pas de votre login. Vous devriez pouvoir le trouver vers la fin du fichier /etc/passwd.

CodeBlocks avec des répertoires avec des accents

12 décembre 2015

Sous Ubuntu, depuis la dernière mise à jour (15.10), Code::Blocks me pose des soucis. J’avais pour habitude de mettre mes projets Code::Blocks en c++ sous le répertoire /home/boutor/Modèles/cpp/

Jusqu’à aujourd’hui pas de soucis.

Lors de la compilation les fichiers objets ne sont pas générés (.o) , ce qui fait que la liaison plante et donc on n’obtient pas d’exécutable.

On obtient une sortie typique comme suit :

Build started on: 12-12-2015 at 16:02.02
Build ended on: 12-12-2015 at 16:02.02
————– Build: Debug in Shallow (compiler: GNU GCC Compiler)—————
g++ -Wall -fexceptions -I./include -g -c /home/ben/Modèles/cpp/Shallow_Magnet/main.cpp -o obj/Debug/main.o
g++ -Wall -fexceptions -I./include -g -c /home/ben/Modèles/cpp/Shallow_Magnet/src/grid.cpp -o obj/Debug/src/grid.o
g++ -Wall -fexceptions -I./include -g -c /home/ben/Modèles/cpp/Shallow_Magnet/src/tinyxml2.cpp -o obj/Debug/src/tinyxml2.o
g++ -o bin/Debug/Shallow_Magnet obj/Debug/main.o obj/Debug/src/grid.o obj/Debug/src/tinyxml2.o
g++: error: obj/Debug/main.o: Aucun fichier ou dossier de ce type
g++: error: obj/Debug/src/grid.o: Aucun fichier ou dossier de ce type
g++: error: obj/Debug/src/tinyxml2.o: Aucun fichier ou dossier de ce type
g++: fatal error: no input files
compilation terminated.
Process terminated with status 1 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))

Si vous lancez la compilation dans un terminal en recopiant les lignes fournies par l’onglet Build Log, les fichiers objets sont bien créés. Par exemple cette ligne-là :

g++ -Wall -fexceptions -I./include -g -c /home/ben/Modèles/cpp/Shallow_Magnet/main.cpp -o obj/Debug/main.o

J’ai déplacé le répertoire contenant mon projet Code::Blocks à la racine de mon /home/ et là, la compilation a fonctionné. Le problème vient en fait du « è » dans Modèles. Je n’ai pas trouvé la réelle origine du problème. En attendant si vous êtes bloqués, enlevez les caractères spéciaux dans votre arborescence pour Code::Blocks.

Par défaut je n’en met jamais, mais ce répertoire est créé par défaut. Donc je l’utilisais.

 

 

Utiliser OpenMP avec Code::Blocks sous Windows

7 novembre 2015

J’avais déjà fait en 2011 un article sur OpenMP et Code::Blocks (http://wp.me/pJPCq-6H).
Comme celui-ci a toujours du succès et qu’il est franchement daté, je le remets au goût du jour.

Je vous laisse installer Code::Blocks. Quelque soit la version choisie, le MinGW intégré ne supporte pas OpenMP.

Vous allez dans le répertoire C:\Program Files (x86)\CodeBlocks et changer le répertoire MinGW en MinGW_old, pour revenir en arrière en cas de besoin.

Vous allez chercher le MinGW de TDM disponible ici : http://tdm-gcc.tdragon.net/download.
Vous lancez l’application et choisissez CREATE.

Le lanceur TDM-GCC

Le lanceur TDM-GCC

Choisissez le 32 ou le 64 bits.

On veut que le TDM-gcc vienne remplacer l’ancien wingw, on remplit la destination comme suit : C:\Program Files (x86)\CodeBlocks\MinGW\

Emplacement de création du TDM-GCC

Emplacement de création du TDM-GCC

Il faut ne pas oublier de cocher que l’on veut installer OpenMP.

TDM settings

TDM settings

On finit l’installation de TDM-gcc.

On lance code::blocks. Il faut ensuite aller changer les noms des exécutables pour la compilation : Settings -> Compiler.

Et aller dans l’onglet (image ci-dessous) : Global compiler settings, et sous onglet toolchain executables.
Entrez les exécutables correspondant au TDM installé (varie selon 32 ou 64 bits).

Compiler settings

Compiler settings

Tout est ok pour la partie installation de TDM-gcc.

Je vous propose d’aller tester l’installation réalisée.

Je vous laisse créer un projet OMPTest et de mettre le code suivant dans main.cpp.

#include <iostream>
#include <omp.h>
#include <ctime>


using namespace std;

void simple(int n, double *a, double *b)
{
    int i;
    #pragma omp parallel for
    for(int j = 0; j < 3300; j++) {
        for (i=1; i<n; i++) 
            b[i] = (a[i] - a[i-1]) / 2.0;
    }
}

int main()
{
    cout << "Hello world!" << endl;
    int n = 1000000;
    double *a, *b;
    time_t tbegin,tend, texec;

    tbegin=time(NULL);
    a = new double[n];
    b = new double[n];

    #pragma omp parallel for
    for (int i=0; i<n; i++) {
        a[i] = i * 10.0;
        b[i] = 0.0;
    }

    for (int i=n-10; i<n; i++)
        cout << b[i] << endl;
    cout << endl;

    simple(n, a, b);

    for (int i=n-10; i<n; i++)
    cout << b[i] << endl;
    cout << endl;
    tend=time(NULL);
    texec=difftime(tend,tbegin);

    std::cout << "Execution time : " << texec ;
    cout << " The end "<< endl;
    return 0;
}

Je l’exécute sans OpenMP, il dure 12 secondes.

Pour activer OpenMP, on va dans Project -> build options et on ajoute -fopenmp dans Compiler Settings, onglet Other options.

Compiler Other options

Compiler Other options

On va ensuite dans l’onglet Linker Settings, où on ajoute la librairie : C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\x86_64-w64-mingw32\5.1.0\libgomp.a. Il faut probablement adapter le lien.

Linked libraries

Linked libraries

On peut lancer la compilation. Si vous faîtes le test avec le gestionnaire de tâches, vous voyez que les 4 processeurs tournent en parallèle. Le code est très mauvais puisque la version parallèle est plus lente que la version scalaire (54 secondes).

Problème démarrage IDLE

23 novembre 2014

J’obtiens parfois une erreur au démarrage d’Idle :
IDLE’s subprocess didn’t make connection. Either IDLE can’t start a subprocess or personal firewall software is blocking the connection.

J’ai remarqué que cela se produit lorsque je lance Idle dans un répertoire qui contient des fichiers python. Pensez à lancer Idle depuis un répertoire sans fichiers Python dedans.
En espérant que ce post évitera à certains de perdre du temps avec ce problème.

Idle est l’environnement de développement par défaut de Python.

Upgrade Ubuntu 13.04 vers 13.10 impossible avec pilotes propriétaires

29 octobre 2013

Je ne sais pas si c’est le cas avec tous les pilotes propriétaires, mais c’est le cas avec ceux de Nvidia (le 310 chez moi).
Lorsqu’on lance l’upgrade vers le 13.10, rien ne se passe.

Si on lance le programme dans un terminal: update-manager, on obtient l’erreur « Signal 0 ».
Ce problème est référencé comme bug dans Launchpad et devrait être réglé prochainement.

Cependant, il est tout de même possible de lancer l’upgrade en désinstallant le driver Nvidia et réinstallant le driver libre vidéo nouveau (pour cela aller dans update-manager -> Configuration, onglet Pilotes additionnels). Redémarrer votre PC, puis lancez la mise à jour.
Vous pouvez alors réinstaller le pilote Nvidia (319 maintenant par exemple, toujours via l’onglet Pilotes additionnels).

Script awk : mkl2gpx

2 août 2013

Je fais de la capture de parcours avec OSMtracker.
Les fichiers obtenus sont au format XML GPX. J’ai trouvé une série d’outils me permettant de réaliser des tracés et quelques statistiques. Et je saisie le cas échéant les chemins manquant dans Open Street Map (OSM!).

Lors d’une de mes sorties, c’est un ami qui a réalisé la capture GPS. Le fichier obtenu est un KML, aussi en XML.
En regardant le contenu, c’est la même chose que le GPX écrit différemment.
Du coup, j’ai réalisé ce petit script pour réaliser le travail.

L’unique astuce du script est

 FS = "[> <]" 

qui permet d’avoir le signe > et < en séparateur de champ.

BEGIN {
  print "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"
  print "<gpx xmlns=\"http://www.topografix.com/GPX/1/1\" version=\"1.1\" creator=\"KML convertor\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd \">"
  print "	<trk>"
  print "		<name>"FILENAME"</name>"
  print "		<trkseg>"
  FS = "[> <]"
  capture  = 0
  DEBUG = 0
  reduce = 2
  count = 0
}

( $2 == "gx:Track" ) {
  capture = 1
  next
}

/when/ {
  time = $3
  if(DEBUG){
    for(i = 1; i <= NF; ++i) {
      printf("%s %s  :  ", i, $i)
    }
    printf("\n")
  }
}

( /gx:coord/ && capture == 1) {
  lon = $3
  lat = $4
  alt = $5
  count ++
  if( count == reduce ) {
    print "			<trkpt lat=\""lat"\" lon=\"" lon "\">"
    print "				<ele>"alt"</ele>"
    print "				<time>"time"</time>"
    print "			</trkpt>"
    count = 0
  }
  if(DEBUG){
    for(i = 1; i <= NF; ++i) {
      printf("%s %s  :  ", i, $i)
    }
    printf("\n")
  }
  next
}




END {
  print "		</trkseg>"
  print "	</trk>"
  print"</gpx>"
}

Pour l'utiliser :

awk -f kml2gpx.awk in.kml > out.gpx

Problème lecture DVD

4 juillet 2013

J’ai acheté récemment des DVDs et ni VLC, ni TOTEM, ni MPLAYER n’arrivent à les lire. C’est la première fois que VLC et MPLAYER me font défauts. Les erreurs sont les suivantes :

Pour VLC :

libdvdnav: decoder.c: [WARNING, unknown bits: 1000000000080000]

libdvdnav: decoder.c:[WARNING, unknown bits: 1000000000000000]

***libdvdread: CHECK_VALUE failed in ifo_read.c:914

****** for pgc->cell_playback_offset != 0 ***

Pour MPLAYER :

Audio: no sound
Starting playback…
Unsupported PixelFormat 61
Unsupported PixelFormat 53
Unsupported PixelFormat 81
Movie-Aspect is 1.33:1 – prescaling to correct movie aspect.
VO: [vdpau] 720×576 => 768×576 Planar YV12
[mpeg2video @ 0x7f9fd4513540]ac-tex damaged at 37 7
[mpeg2video @ 0x7f9fd4513540]Warning MVs not available
[mpeg2video @ 0x7f9fd4513540]concealing 1305 DC, 1305 AC, 1305 MV errors
V: 0.6 11/ 11 ??% ??% ??,?% 0 0

 

C’est XINE qui a réussit à les lire. Ce sont des DVDs de 2012 avec une protection anti-copiage (je dirais plutôt une protection anti-lecture).

Donc avant de brûler votre lecteur DVD, essayez XINE.🙂

Suivre

Recevez les nouvelles publications par mail.