Utilisateur de Last.fm de longue date, j’ai maintenant besoin d’installer Spotify un peu partout. Quand est venu le temps d’utiliser mon portable sous Linux, j’ai eu à suivre la manœuvre suivante :

  • rajouter préalablement la clé de signature du dépôt Spotify :
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
  • puis rajouter l’adresse du dépôt dans ceux parcouru (à savoir dans /etc/apt/sources.list) :
deb http://repository.spotify.com testing non-free
  • et enfin lancer un apt update puis
sudo apt install spotify-client

Et voilà !

Source : https://www.spotify.com/fr/download/linux/

Et c’est le grand retour de l’installation qui demande plusieurs mois !

Mon labo s’est payé une nouvelle très belle bécane, dont les spécifications générales sont visibles ici. Pour la configuration exacte de l’ordi (qui n’est pas disponible en ligne pour le grand public), je vous la donne dans les grandes lignes :

  • processeur Intel Core i7 6700HQ cadencé à 2.60 GHz ;
  • carte mère HP 80D5 KBC Version 10.66 ;
  • contrôleur graphique Intel HD Graphics 530 intégré à la carte mère et carte vidéo NVIDIA GM107GLM (“Quadro M1000M”) avec 2 Go de RAM GDDR5 ;
  • carte réseau sans fil Intel “8260” ;
  • disque dur NVMe de 512 Go en SSD ;
  • 32 Go de RAM DDR4 à 1.06 GHz.

Mon disque dur ayant été livré avec une table de partitionnement basée sur un MBR (et non en GPT…), le premier problème à résoudre a été de pouvoir complètement tirer profit de la carte mère proposant pourtant l’UEFI. Après quelques essais infructueux, le plus simple a été de démarrer à partir d’un système Ubuntu sur “live-USB” puis de reformater la table de partition en GPT grâce à l’application GParted. Ensuite, j’ai effectivement partitionné mon DD pour préparer correctement l’installation de mes deux systèmes en parallèle en me servant de l’outil de partitionnement de mon installeur Debian stable (Jessie en l’occurrence). J’aurais aussi bien pu profiter d’être déjà en train d’y toucher avec GParted ; ça m’aurait fait gagner du temps, mais bref…

Je n’ai « que » 512 Go sur mon DD donc j’ai opté pour un partitionnement le plus simple possible, sans partition dédiée, ni pour /home, ni pour les données partagées. Et Linux se fera un plaisir d’aller lire la partition NTFS de Windows 10. J’en arrive donc à du 472 Go pour tout Windows, 32 Go pour le système Linux et enfin 8 Go pour la swap (histoire de dire, je dois encore tester si c’est utile).

On aurait sûrement pu le faire depuis le tout premier démarrage, mais il va falloir faire attention à la technologie Optimus (bascule entre le processeur graphique Intel intégré à la carte mère et la carte graphique NVIDIA, selon les besoins). Dans notre cas (car on ne devrait absolument jamais être confronté à des problèmes d’autonomie sur batterie), on va purement et simplement retirer la fonctionnalité Optimus et forcer l’utilisation de la carte NVIDIA seule en allant jouer dans le BIOS et choisir “Discrete Graphics” en face de l’option “Graphics” des “Built-in Device Options” de l’onglet “Advanced”.

Ensuite, comme Windows n’en fait toujours qu’à sa tête (création de partitions dédiées à l’intérêt douteux, conflits avec GRUB, …), j’ai préféré commencer par lui. Je me suis plutôt laissé faire par l’installeur, et lui ai fait confiance pour qu’il redécoupe lui-même l’espace dédié à Windows. Ceci m’a permis en particulier d’avoir la partition nécessaire au format EFI (d’une centaine de Mo) pour y placer ensuite les démarreurs de mes deux systèmes. Ensuite, il a suffit que je charge une par une les mises à jour des pilotes défectueux pour l’ensemble du matériel grâce au CD fourni par le constructeur (et recopié sur clé USB). Normalement, j’ai tout bien récupéré à l’heure qu’il est. En tout cas, pour tous les derniers pilotes à jour, il convient d’aller voir

http://h20566.www2.hp.com/hpsc/swd/public/readIndex?sp4ts.oid=8693774&swLangOid=17&swEnvOid=4192

Voici maintenant la partie intéressante… L’installeur Debian, même en mode expert, est plutôt simple à suivre (mais attention quand même à bien disposer d’une connexion internet en filaire sous le coude, pour ne pas se retrouver à installer un système vraiment minimaliste). Le seul véritable problème a été le tout dernier point : l’installation de GRUB pour pouvoir avoir le choix entre mes deux systèmes au démarrage…

Là, j’ai retouché quelques options du BIOS, pour rigoler un peu, mais je ne sais plus lesquelles… Alors essayez déjà sans toucher à rien.

Mais finalement, ce qui m’a sauvé, c’est bien l’ensemble de commandes suivant, tapées dans un terminal (par exemple celui obtenu à l’aide de la combinaison Ctrl+Alt+F2), juste après que l’installeur Debian vous dise qu’il n’est pas capable d’installer GRUB :

mount --bind /dev /target/dev
mount --bind /dev/pts /target/dev/pts
mount --bind /proc /target/proc
mount --bind /sys /target/sys
cp /etc/resolv.conf /target/etc
chroot /target /bin/bash

apt update
apt install grub-efi-amd64
update-grub
grub-install --target=x86_64-efi /dev/nvme0n1

L’idée est de se placer dans le contexte du système tout fraîchement installé, puis de télécharger le GRUB au bon format et enfin de lancer sa configuration automatique. Si vous n’avez pas de nouveau message d’erreur, vous pouvez fermer l’installeur sans crainte. Un Linux de base va fonctionner comme sur des roulettes ensuite.

Et oui, j’ai bien dit « Linux », car le lanceur de Windows n’aura vraisemblablement pas été correctement détecté, et vous ne pourrez le lancer que par le menu du BIOS, ce qui est un peu lourdingue à chaque fois… Une fois rentré pour la première fois dans le système Linux, il va donc falloir lancer à nouveau la reconfiguration automatique de GRUB, à l’aide de la commande suivante :

update-grub

Windows est finalement détecté et ajouté au GRUB. Maintenant, installons correctement Linux…

Tout à l’heure, j’ai bien aussi dit « de base » car il reste encore tout un tas de chose à installer correctement sous Linux. La toute première chose à faire me semble être installer sudo, donc, puis taper au moins la première ligne suivante (la deuxième semble inutile, en tout cas toujours avec les mêmes privilèges) et d’y rajouter votre identifiant juste sous la ligne de root, avec les mêmes infos et le même format (dont la tabulation) :

visudo
adduser `whomai` sudo

On va ensuite mettre à jour les dépôts de stable à testing, en modifiant le contenu de /etc/apt/sources.list . Après modification, cela donne la config’ suivante, pour les paquets les plus communs :

deb http://debian.univ-lorraine.fr/debian/ testing main non-free contrib
deb-src http://debian.univ-lorraine.fr/debian/ testing main non-free contrib

deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free

deb http://debian.univ-lorraine.fr/debian/ testing-updates main contrib non-free
deb-src http://debian.univ-lorraine.fr/debian/ testing-updates main contrib non-free

(en effet, j’ai déménagé en Lorraine dernièrement…). Ensuite, les bonnes vieilles commandes

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

devraient faire l’affaire (compter une petite demie-heure, en surveillant un peu car il faut valider quelques fois).

L’étape suivante pour avoir plus de confort est d’installer le Wi-Fi. Ensuite on pourra continuer d’installer tout le reste confortablement installé dans son canapé ou son lit ! Moyennant le fait que vous ayez bien demandé durant l’installation à aussi chercher dans les dépôts “non-free” (licences propriétaires, sinon rajouter cette option à la main), le bon paquet est firmware-iwlwifi, puis dans l’utilitaire wicd (qu’il faudra peut-être installer aussi) ajouter l’interface sans fil “wlp3s0” (ou toute autre interface sans fil que donnerait ifconfig ou la commande ip a chez vous).

Ensuite, il s’agit d’avoir un affichage de qualité (et surtout pas d’une aussi faible définition). Pour ce faire, on va installer le paquet nvidia-driver, qui se chargera d’installer les bonnes bibliothèques et autres dépendances au passage. On pourra par la même occasion installer nvidia-settings, qui facilitera la tâche, quand on voudra au moins vérifier que tout fonctionne correctement. Puis, il est nécessaire de donner un minimum d’information au serveur X, afin qu’il démarre correctement. Donc, dans un nouveau fichier /etc/X11/xorg.conf , il va falloir taper les lignes suivantes :

Section "Module"
 Load "modesetting"
EndSection

Section "Device"
 Identifier "nvidia"
 Driver "nvidia"
 BusID "PCI:1@0:0:0"
 Option "ConstrainCursor" "off"
 Option "AllowEmptyInitialConfiguration" "on"
EndSection

Après tout cela, la première fois que l’on voudra écouter du son, il sera vraisemblablement désactivé. Si c’est le cas, il faut lancer alsamixer dans un terminal puis cliquer sur « m » pour enlever le “mute”.

Et enfin, pour information, voici une liste un peu brute de paquets que j’ai installés pour mon confort personnel :

  • quelques logiciels utiles : ntp et ntpdate (cf. configuration du fichier ntp.conf sur http://www.pool.ntp.org/fr/use.html, pour le réglage automatique de l’heure, qui rentre souvent en conflit avec la manière de faire de Windows, sinon), spotify-client (cf. https://www.spotify.com/fr/download/linux/) skype (cf. https://www.skype.com/en/download-skype/skype-for-linux/downloading/?type=debian32 et https://blog.rsaffi.com/2016/02/install-skype-on-debian-stretch-next-stabletesting/ et ne pas oublier de modifier les paramètres de session si le démarrage systématique du logiciel vous insupporte aussi), kcharselect (pour avoir une table de caractères avec tous les caractères spéciaux) et checkinstall (pour garder la trace des trucs installés depuis des sources et pouvoir les désinstaller comme un simple paquet .deb)  ;
  • LaTeX : kile et texlive-lang-French (option « francais » de Babel), texlive-latex-extra (pour le paquet multirow.sty) et bzr [penser aussi à réaliser un export correct des 3 variables d’environnement TEXINPUTS, BIBINPUTS et BSTINPUTS dans le fichier .bashrc] ;
  • projet scientifique du labo : owncloud-client, thunar-dropbox-plugin, git, meld (pour la comparaison de versions différentes d’un même fichier), qtcreator, qt5-default (et qt5-qmake ?), libeigen3-dev, libboost1.62-dev, l’environnement OpenCL (à savoir nvidia-libopencl1, nvidia-opencl-icd, opencl-headers et nvidia-opencl-dev, avec en bonus clinfo pour pouvoir tester que tout s’est bien installé correctement), libglm-dev, libflann-dev (et libflann1.9 ?), ganttproject (cf. https://www.ganttproject.biz/download/free), StarUML (cf. http://staruml.io/download, en prenant soin d’installer une vieille version de la bibliothèque libgcrypt11 depuis Wheezy), CloudCompare (télécharger les sources depuis https://github.com/CloudCompare/CloudCompare, installer cmake-qt-gui et libdxflib-dev puis suivre les recommandation du BUILD.md, à savoir lancer cmake-gui et cocher l’option OPTION_USE_DXF_LIB pour les imports/exports en DXF et enfin taper make / sudo checkinstall dans le dossier intermédiaire d’installation du Makefile), voire blender. [Par ailleurs, pour pouvoir se servir d’un raccourci Alt-clic du logiciel, il faut taper xfce4-settings-manager dans un terminal (ou sélectionner l’Éditeur de paramètres dans le Gestionnaire de paramètres), puis cliquer sur xwfm4 dans le panneau à gauche et enfin reconfigurer le soit-disant “easy_click”]

Et voilà !

Sources :

Suite à l’installation de Windows 10 sur mon récent Zbook 15 G3 (cf. post à venir), j’ai cherché à faire tourner du code OpenCL et le programme que j’utilise a la fâcheuse tendance à planter dès que plus d’une plate-forme est disponible… Or, Windows 10 m’a apparemment pré-installé une plate-forme pour le contrôleur graphique Intel HD Graphics 530 intégré à la carte mère (alors que je souhaitais plutôt utiliser celle de ma carte vidéo NVIDIA M1000) !

Et tout ceci, alors qu’il existe un SDK dédié, ce qui pouvait même me faire monter le nombre de plate-forme installées à 3 !

Le seul moyen que j’ai trouvé pour désinstaller cette plate-forme fantôme a été de taper directement dans la base de registres, afin de retirer les références qui pointaient vers elle dans la liste des plates-formes disponibles. Comme le processeur central est 64 bits, il faut bien désinstaller les versions 32 et 64 bits à la fois. On les trouve aux références suivantes :

HKEY_LOCAL_MACHINE/SOFTWARE/Khronos/OpenCL/Vendors
-> IntelOpenCL64.dll
HKEY_LOCAL_MACHINE/SOFTWARE/WOWO6432Node/Khronos/OpenCL/Vendors
-> IntelOpenCL32.dll

On supprimera donc, sans peur et sans reproche, ces deux références et voilà !

Le Mac Pro que j’utilise au boulot annonce 8 cœurs physiques tournant en parallèle, pouvant aller jusqu’à 16 cœurs logiques, grâce à l’hyper-threading. Ça, c’est pour la pub…

Mais en cherchant à paralléliser des calculs au maximum, je n’arrive jamais à faire tourner les 16 cœurs en même temps (ça c’est le moniteur d’activité qui me le dit, avec un magnifique 50% de ressources inactives quand mon programme tourne pourtant à 800% d’entre elles).

J’ai donc décidé de désactiver l’hyper-threading afin de m’assurer que les 8 cœurs effectivement présents tournent à plein régime, car leur joli graphique tend à penser que l’ensemble des cœurs passe son temps à ne cordialement rien foutre ! Et comme d’habitude, les configurations les plus poussées sont bien cachées dans le beau monde d’Apple.

Il faut donc tout d’abord installer Xcode (apparemment, car je l’avais déjà installé pour d’autres raisons, personnellement), puis aller chercher le bon tableau de contrôle. En lançant les Préférences d'”Instruments”, on découvre un onglet “CPUs” qui permet justement de désactiver l’hyper-threading.

Attention : il paraît que cette configuration est réinitialisée après passage en veille ou redémarrage.

Et voilà !

P.S. : À l’heure actuelle, j’utilise macOS Sierra, je ne sais pas si cela fonctionne dans les versions précédentes, et bien entendu encore moins dans les versions futures !

Source : http://apple.stackexchange.com/a/199685/208957

Allez, encore un petit pour la route !

Sous prétexte de barrer la route aux pirates de base et leurs keygens, l’utilitaire de décompression d’applications a changé et bloque certains logiciels tout à fait légaux sous toutes leurs formes…

CloudCompare en est un parfait exemple que j’utilise au bureau. J’ai donc eu affaire avec une superbe erreur

"This UPX compressed binary contains an invalid Mach-O header and cannot be loaded."

Qui m’a donc incité à mettre à jour/installer UPX. La commande

brew install upx

devrait faire l’affaire, éventuellement suite à une petite retouche du fichier de configuration de Homebrew. Ensuite, il m’a suffit de décompresser moi-même l’exécutable à l’aide de la commande suivante

upx -d /Applications/CloudCompare.app/Contents/MacOS/CloudCompare

et voilà ! Il n’y avait plus qu’à cliquer sur l’icône dans le dock en bas, comme avant.

Sources :

Et encore un post concernant cette fichue mise à jour vers macOS Sierra…

Pour un bug généré par un logiciel qui marchait très bien avant, j’ai tenté de régler mon problème en mettant à jour UPX (pour lequel j’ai rédigé un autre post). Or, Homebrew me renvoyait le message d’erreur suivant :

upx: This formula either does not compile or function as expected on macOS
versions newer than El Capitan due to an upstream incompatibility.

La solution a carrément été de modifier à la main le fichier de configuration de la « formule » UPX, car il y était explicitement indiqué qu’elle ne pouvait pas être installée après la version El Capitan… (pour des bugs qui y sont explicitement référencés)

Ceci étant, si vous souhaitez, comme moi, l’installer à vos risques et périls, il faut donc mettre en commentaire la ligne comme suit :

#depends_on MaximumMacOSRequirement => :el_capitan

Et voilà !

Source :

http://stackoverflow.com/questions/39690404/brew-install-qt-does-not-work-on-macos-sierra (pour la combine sur la modification du fichier de configuration)

Pour fêter mon grand retour sur ce blog, je publie quelque chose pour OS X, cette fois-ci. Au moins, c’est du Unix…

En voulant installer la bibliothèque GLM (pour faire du rendu OpenGL, tout ça…), la simple commande

brew install glm

aurait dû suffire. Or, suite à une mise à jour vers Sierra, à la fois brew et Xcode n’étaient plus à jour (aussi sûrement parce que je n’avais pas vérifié cela depuis longtemps…).

Il suffit donc de mettre à jour Xcode, via l’App Store d’Apple, et brew, grâce à la commande suivante :

brew update

Attention, c’est très long et il n’y a pas forcément de retour qui s’affiche dans la terminal. Ne pas s’inquiéter…

S’il se plaint des droits appliqués à /usr/local/, il faut d’abord exécuter

sudo chown -R $(whoami) /usr/local

puis la commande précédente. Tant qu’à faire, brew nous indique que, dans sa toute nouvelle version, il n’a plus besoin des droits sur /usr/local/, donc on en profite pour remettre le réglage par défaut du système :

sudo chown root:wheel /usr/local

Ensuite, en retapant la commande d’installation du début, Xcode devrait se plaindre que vous n’avez pas encore accepter les nouveaux termes de la licence d’utilisation. Ceci se règle en exécutant

sudo xcodebuild -license

et en suivant les instructions étape par étape.

Et voilà !

P. S. : Il devrait suffire de remplacer glm par le nom du paquet que vous vouliez installer pour que cela fonctionne chez vous.

P. P. S. : Finalement, après tous mes tests plus ou moins fructueux, j’ai plutôt dû mettre à jour GLM, grâce à la commande

brew upgrade glm

mais bref. Au moins, ça marche maintenant.

P. P. S. :

Si vous souhaitez inclure cette bibliothèque depuis un projet dans Qt Creator, il faut par exemple utiliser les lignes suivantes :

macx: INCLUDEPATH += "/usr/local/Cellar//glm/0.9.8.1/include/glm"

dans defaults.pri et

#include

dans chaque header des classes faisant appel à cette bibliothèque.

Source :