08 Apr 2018, 00:00

Lancer server Xorg sans ecran connecté (Nvidia)

Sur une machine avec une GTX 1070, Xorg refusait de se lancer si un écran n’était pas physiquement connecté à la carte. Le fichier /etc/X11/xorg.conf suivant fait l’affaire (c’est probablement sur les sections Screen qu’on peut simuler la conection des écrans). L’option Coolbits sert à activer les possibilités d’overclocking.

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 375.26  (buildd@debian)  Fri Jan 13 02:38:29 UTC 2017

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    Screen      1  "Screen1" RightOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 1070"
    BusID          "PCI:1:0:0"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 1070"
    BusID          "PCI:2:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "AllowEmptyInitialConfiguration" "True"
    Option         "UseDisplayDevice" "DFP-0"
    Option         "Coolbits" "28"
    Option         "ConnectedMonitor" "DFP-0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "AllowEmptyInitialConfiguration" "True"
    Option         "UseDisplayDevice" "DFP-0"
    Option         "Coolbits" "28"
    Option         "ConnectedMonitor" "DFP-0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

06 Jan 2018, 00:00

Live-USB Hybrid Debian Stretch

Quelques petites variations par rapport à Jessie, notamment le fait que la construction d’une image avec double architecture semble échouer. il faut donc d’abord créer une image complète en architecture i386 (ainsi le système complet sera 32 bits, mais exploitable par un noyau 64 bits), puis créer une image 64 bits dont on extraiera le noyau et l’initrd.

sudo aptitude install live-build live-tools
mkdir stretch_live && cd stretch_live
mkdir auto && cp /usr/share/doc/live-build/examples/auto/* ./auto/

Editer le fichier auto/config pour qu’il contienne ceci :

#!/bin/sh

set -e

lb config noauto \
	--architectures 'i386' \
	--archive-areas 'main contrib non-free' \
	--bootappend-live 'boot=live config locales=fr_FR.UTF-8 keyboard-layouts=fr' \
	--binary-images 'iso-hybrid' \
	--distribution 'stretch' \
	--linux-flavours '686-pae' \
	--source 'false' \
	"${@}"

On peut rajouter le noyau des backports en rajoutant aussi ce qui suit :

	--backports 'true' \
	--linux-packages 'linux-image-4.18.0-0.bpo.1 \

Entrer la commande lb config, puis aller éditer le fichier config/package-lists/live.list.chroot et ajouter les paquets désirés. Je propose ceci :

live-boot
live-config
live-config-systemd
#FIRMWARE
firmware-linux firmware-atheros firmware-b43-installer firmware-bnx2x firmware-brcm80211 firmware-intelwimax firmware-iwlwifi firmware-libertas firmware-myricom firmware-netxen firmware-qlogic firmware-realtek broadcom-sta-dkms

#UTILS
nmap rcconf gparted hfsprogs ntfs-3g hfsplus hfsutils dosfstools lightdm bash-completion chntpw dcfldd bootlogd less mesa-utils numlockx ethtool grub2 ssh gdisk testdisk python-tk iftop nethogs pm-utils dmraid aptitude apt-file smartmontools debootstrap pciutils usbutils cifs-utils e2fsprogs mtools screen lvm2 net-tools mdadm lsscsi haveged rng-tools cryptsetup efibootmgr efivar ncdu wireless-tools

# DESKTOP
hplip system-config-printer xsane simple-scan mate-desktop-environment caja-open-terminal mesa-utils chromium-l10n pulseaudio pavucontrol pavumeter mate-media-common mate-media mate-settings-daemon-dev mate-settings-daemon-common mate-settings-daemon chromium engrampa unrar pluma bluez blueman pulseaudio-module-bluetooth gddrescue ddrescueview vlc rdesktop conky network-manager-gnome

Puis entrer la commande sudo lb build.

A noter qu’il est possible de décomposer la commande sudo lb build en la succession suivante :

sudo lb bootstrap
sudo lb chroot
sudo lb binary

Il est possible d’aller modifier/ajouter manuellement des fichiers entre l’étape chroot et l’étape binary. Par exemple, pour créer /home/user/ , /home/user/Bureau/ et y ajouter des fichiers, qui seront disponibles directement sur le bureau du live.

Si on souhaite recommencer la création du live, on peut utiliser la commande sudo lb clean qui ne conserve que le cache des paquets, du bootstrap et la config. On peut aussi utiliser les options --binary ou bien --chroot pour conserver les étapes antérieures.

18 Dec 2017, 00:00

Divers imprimantes

“Envoyé vers l’imprimante”

Sur un Windows Server 2012, les travaux restaient bloqués dans la file d’attente avec le statut “Envoyé vers l’imprimante”, bien qu’ils soient imprimés correctement. La solution qui semble bien marcher est de passer à un port type IP (au lieu d’un port WSD par exemple).

Outlook et les paramètres d’impression par défaut

Outlook 2016 a certains paramètres définis dans les “styles d’impression” (le style de base étant Mémo) qui outrepassent les réglages par défaut de l’imprimante (par exemple le choix du bac de sortie). Il faut les modifier directement dedans pour qu’il soient respectés.

18 Dec 2017, 00:00

Notes en vrac sur Azure AD Connect et Office 365

Mise en cohérence des domaines

Dans mon cas, l’AD avait été pis en place il y’a longtemps, le domaine local était du genre domain.oldcompany.com, mais les utilsateurs utilisaient aujourd’hui des adresses mail du genre user@newcompany.fr, et l’abonnement O365 avait pour domaine initial unusedcompany.onmicrosoft.com.

Dans ces conditions, la synchro de l’AD vers Azure donnait des identifiants du type nomprenom@unusedcompany.onmicrosoft.com, ce qui rend tout plus pénible, par exemple la connexion à OWA qui ne marche pas avec d’éventuels alias, mais qu’avec cet identifiant.

Comme le domaine initial ne peut être changé, il faut ajouter et vérifier le domaine newcompany.fr dans la gestion des domaines sur le portail O365, connecté en admin de l’abonnement. Pour le vérifier, il faudra aller mettre une preuve TXT dans la zone DNS.
Il faut ensuite ajouter un nouveau suffixe UPN au domaine (Outils d’administration -> Domaines et approbations Active Directory -> Propriétés -> Suffixes UPN), on ajoutera ici newcompany.fr car c’est l’adresse couramment utilisée par l’entreprise. Il faut ensuite modifier les suffixes UPN des utilisateurs dans les Utilisateurs et Ordinateurs AD, pour les passer de p.nom@domaine.oldcompany.fr à p.nom@newcompany.fr. Il est possible de le faire en PowerSehll, par exemple avec ce script

Ainsi, les utilisateurs auront un seul couple adresse/password pour se connecter à tout (Session sur le domaine, OWA, Portail O365 pour télécharger les logiciels etc).

Préparer l’AD local pour la synchro

Pour synchroniser un Active Directory local avec les services Azure Active Directory, il faut commencer par préparer l’AD local (notamment étendre le schéma AD sur un serveur Windows 2012). Cette page de Microsoft détaille beaucoup plus la précédure.

Il faut récupérer une installation d’Exchange 2013, par exemple sur cette page de chez Microsoft. On la décompresse, on lance cmd puis la commande suivante :
Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms

Une fois que le schéma est préparé, on peut identifier les incohérences dans l’annuaire avant de synchroniser avec O365. Pour ça, on utilise l’outil IdFix (DL). Dans le cas où une offre dediée à O365 a été souscrite, il faut aller dans les paramétres et choisir “Dedicated” au lieu de “Multi-tenants”. On clique sur Query, on le laisse chercher, on vérifie puis acccepte les modifications, on fait Apply et on voit ce que ça donne. Si tout va bien, on peut passer à la synchro avec Azure. Si il y’a des problèmes (par exemple attributs non-existants), revérifier que l’AD a bien été préparé tel qu’indiqué sur le tuto de Microsoft.

Mise en oeuvre Azure AD Connect

Télécharger AAD Connect. La dernière version à prendre en charge Windows Server 2012 R2 est la 1.6.16.

Synchronisation du hachage de mot de passe.
Utilisé l’UPN (userPrincipalName) comme nom d’utilisateur AAD.

Powershell

Pour charger le module :
Import-Module ADSync
ou si ça ne fonctionne pas :
Import-Module -Name "C:\Program Files\Microsoft Azure AD Sync\Bin\ADSync" -Verbose

Une fois installé et configuré, il est possible de synchroniser manuellement avec la commande PowerShell :
start-adsyncsynccycle -policytype delta

Vérification de la synchro

Les utilsateurs et groupes doivent apparaître dans le centre d’admin Office.
On peut aussi vérifier explicitement ici :
https://admin.microsoft.com/#/dirsyncmanagement

10 Oct 2017, 00:00

Élements de démarrage sous OSX

Préférences système -> Utilisateurs -> Ouverture

/Library/LaunchAgents et ~/Library/LaunchAgents

/Library/StartupItems

/Library/LaunchDaemons

/var/db/launchd.db/

Pour consulter : launchctl list |more

14 Sep 2017, 00:00

Carte SD non reconnue si branchement à chaud

J’ai sur ma tour un lecteur de carte SD USB qui, depuis Stretch, ne monte plus automatiquement les cartes SD à la volée. Celles-ci sont bien lisibles lorsqu’elles sont déjà insérées lors du boot, mais l’ejection du media est définitive.

La solution, trouvée ici est d’ajouter le paramètre suivant à la ligne GRUB_CMDLINE_LINUX_DEFAULT= du fichier /etc/default/grub :
GRUB_CMDLINE_LINUX_DEFAULT="block.events_dfl_poll_msecs=2000"

Il faut ensuite lancer sudo update-grub pour actualiser le fichier de conf.

Si on veut appliquer le changement sans rebooter, on peut aussi entrer le paramètre 2000 au fichier /sys/module/block/parameters/events_dfl_poll_msecs

31 Aug 2017, 00:00

Identifier si une session est ouverte sous Wayland ou X11

Il suffit de taper la comande suivante : loginctl show-session $XDG_SESSION_ID -p Type

13 Mar 2017, 00:00

Installer Windows 8.1 x64 sur un disque externe USB3

Le tuto suivant a pour but d’installer Windows 8.1 sur un disque externe. En effet, bien que ce soit impossible via une install traditionnelle (par DVD ou clé USB), il est possible de déployer une install Windows sur un disque externe via l’utilitaire DISM, et le disque acceptera alors de booter.

Il est probable, mais non testé, que ce tuto fonctionne avec Windows 10, et il est adaptable pour Windows 7 (avec l’utilitaire Imagex.exe au lieu de DISM).

Prérequis :

  • Un DVD d’install de Windows 8.1 x64 (ou une image montée)
  • Un disque externe USB3 (ce devrait fonctionner en USB2, mais nous perdons beaucoup, beaucuop de performances). TOUTES LES DONNÉES PRÉSENTES SERONT EFFACÉES
  • Un système Windows 8.1 x64 en cours de fonctionnement

Etapes (penser à adapter les lettres des commandes si nécessaire) :

  • Commencer par monter le DVD d’install de Windows 8.1 x64. Dans mon exemple, il sera monté sur le lecteur G:
  • Lancer une invite de commande en tant qu’administrateur
  • Dans mon cas, j’ai un DVD qui contient à la fois l’édition Core et Pro. Il faut commencer par identifier les index de ces éditions via la commande
    dism /get-wiminfo /wimfile=G:\sources\install.wim
    Souhaitant installer la version Pro, j’utiliserai l’index 1.
  • On lance ensuite la commande diskpart pour partitionner le disque externe.
  • Avec
    list disk
    on identifie le bon disque. Dans mon cas, c’est le disque 1. D’où :
    select disk 1
    puis
    clean
    qui va supprimer toute la table de partition.
  • On crée une partition de boot en FAT32, ayant l’avantage d’être accessible aussi pour les Mac :
    create partition primary size=350
    puis
    format fs=fat32 quick
  • On la rend bootable via
    active
    puis on lui donne une lettre via
    assign letter=B
  • On crée la partition contenant le système Windows lui-même :
    create partition primary
    puis
    format fs=ntfs quick
    puis
    assign letter=Z
  • On quitte Diskpart via exit.
  • On va ensuite déployer l’image Windows sur la aprtition assignée en Z via
    dism /Apply-Image /ImageFile:G:\sources\install.wim /Index:1 /ApplyDir:Z:\
    Adapter l’index repéré précedemment. Cela devrait mettre quelques minutes, puis apparaîtra le message “L’opération a réussi”.
  • On copie les fichiers de démarrage via
    bcdboot Z:\Windows /s B: /f all
    Le paramètre /f sert à spécifier le type de démarrage. Avec ALL, on install aussi bien un boot BIOS qu’un boot UEFI.

Il n’y a plus qu’à démarrer sur le disque externe ! (en espérant que le BIOS/UEFI de votre pc soit suffisamment clair et souple pour permettre le démarrage sur n’importe quel disque, y compris externe, ce qui n’est pas toujours gagné…)

Sources : Article sur Slice42 et article sur Bleeptobleep

06 Dec 2016, 00:00

Mise en veille de l'écran récalcitrante

Il arrive, sous Linux, particulièrement après une install neuve ou bien une upgrade du système, que l’écran se mette en veille au bout d’un certain temps d’inactivité, quand bien même l’économiseur d’écran et l’extinction d’écran sont désactivés. Ceci est dû à la fonction DPMS de l’écran, qui se gère de manière distincte des 2 réglages précédents.

Pour la gérer, on utilise le programme xset. Pour sonder les paramètres actuellent en usage, on utilise xset q. Il est assez probable que les lignes suivantes apparaissent :

DPMS (Energy Star):
  Standby: 600    Suspend: 600    Off: 600
  DPMS is Enabled
  Monitor is On

Si on souhaite simplement désactiver dpms, il suffit de lancer xset -dpms, et les soucis de mise en veille intempestive de l’écran devraient disparaître ! Il est bien sûr possible de gérer les paramètres plus finement avec la commande xset.

06 Dec 2016, 00:00

Trouver des fichers en direct download grâce à google

Il suffit de faire une recherche google de ce type :

"nom a chercher" -inurl:(htm|html|php) intitle:"index of" +"last modified" +"parent directory"

Si on trouve une adresse intéressante, il suffit ensuite de lancer

wget -c -r --no-parent http://adresse-interessante.com/folder/

pour récupérer l’ensemble des fichiers (avec un peu de tri à faire)