01 Jan 0001, 00:00

https://tldp.org/LDP/tlk/dd/pci.html

Organisation PCI-e

Source Autre source

Les bus PCI-e sont différents bus, qui sont reliés ensemble (par des ponts), et peuvent également être reliés à d’autres bus (par exemple le bus ISA).
Ces bus sont hiérarchisés : le complexe PCI-e racine “alimente” plusieurs bus PCI-e enfants. Le lien vers le pont parent est appelé “upstream”, celui vers le pont/périphérique enfant “downstream”.

Le bus racine définit le départ de la hiérarchie. Chaque port sur le bus racine définit un domaine ; dans la plupart des machines, il n’y aura qu’un seul domaine (0000).

Un “endpoint” est un périphérique PCI (carte réseau, carte graph, controlleur SATA etc…). Un endpoint possède au moins 1 fonction (la fonction 0), et peut supporter jusqu’à 8 fonctions.

Un “lien” (link) représente la liaison entre 1 pont PCI-e et 1 (et 1 seul) périphérique, ou entre 2 ponts PCI-e.

Génération et lignes

La génération se définit par le nombre de transferts par seconde, par ligne : PCI-e 1.0 : 2.5 GT/s (soit 250 Mo/s) PCI-e 2.0 : 5 GT/s (soit 500 Mo/s) PCI-e 3.0 : 8 GT/s (soit 984 Mo/s) PCI-e 4.0 : 16 GT/s (soit 1969 Mo/s)

En plus de ça, il peut y avoir plusieurs lignes en parallèle : x1 pour 1 seule ligne, x4 pour 4 lignes, x8 pour 8 lignes et x16 pour 16 lignes.

Tableau récapitulatif

Sous Linux :

pour lister les périphériques pci : lspci. L’adresse est sous la forme bus:device.fonction

Pour afficher les identifiants (pciids), utiliser -nn

Afficher le domaine des périphériques (masqué par défaut lorsqu’il vaut 0000 partout) : lspci -D

Pour lister le détail d’un périphérique (par exemple l’adresse 02:00.0) : lspci -s 02:00.0 ou lspci -s 2:0

Pour voir le détail des vitesses d’un port ou périphérique : sudo lspci -s 02:00.0 -vv | grep Speed
LnkCap : capacité max du périphérique (Speed : gen PCI-e ; Width : nombre de lignes). LnkSta : statut actuel du périphérique. Dépend de la gen PCI-e de la carte-mère, et du pilote. Certains périphériques peuvent adapter leur vitesse à la volée (par exemple certaines cartes nvidia)

Lister tous les noms de périphériques et les vitesses : sudo lspci -vv | grep "[a-z0-9][a-z0-9]:[a-z0-9]\|Speed"

Afficher l’arbre PCI : lspci -t (plus lisible avec lspci -tv

Via dmidecode : dmidecode --type 9

01 Jan 0001, 00:00

Prometheus

Accessible en web interface sur l’ip du la machine/container, sur le port 9000 en http http://localhost:9090

L’ensemble des métriques est dispo ici :
http://localhost:9090/metrics

Par défaut (avec le fichier de conf fourni dans l’image docker), il se “monitore lui-même” avec un job “prometheus”

Possible de lui donner d’autres targets à interroger
http://localhost:9090/targets

01 Jan 0001, 00:00

ECC

Géneral

Error Correction Code
nb de modules impairs
Notée avec un “E”, par exemple PC3-12800E.

Si des barrettes non-ECC sont insérées avec des barrettes ECC dans un PC, l’ECC sera désactivé.
Il faut que la carte-mère supporte l’ECC pour que la fonctionnalité soit activée.
Il peut être possible d’utiliser une barrette ECC dans une carte-mère non-ECC (sans le support de l’ECC).

Pour que l’ECC fonctionne, il faut qu’il soit supporté par :

  • le chipset
  • le CPU
  • la RAM

Pour l’instant, l’ECC n’est pas reporté par memtest86+ .
Il l’est par memtest86 Passmark (dans System Information, et dans “RAM Config” sur l’écran de test).

Linux

sudo dmidecode -t 16
donnes des infos sur le controlleur mémoire, et notamment “Error Correction Type”.
“None” indique une absence de prise en charge de l’ECC (par la carte-mère ou le CPU ou la RAM)
Sinon “Single-bit ECC” ou “Multi-bit ECC”.

sudo dmidecode -t 17
donne des infos sur les barrettes mémoire, et notamment “Error Information Handle”
“Not Provided” semble signifier que l’ECC n’est pas activé.
Si “Total Width” est + grand que “Data Width” c’est qu’il y’a un chip pour l’ECC ; cela reflète l’état physique du module, mais pas l’activation effective de l’ECC.

EDAC (Error Detection And Correction)

sudo apt install edac-utils
sudo edac-util
sudo edac-util --status
lsmod | grep -i edac

Si l’ECC est activé, on peut voir “No Error” (je suppose que si une barrette est défectueuse, le message sera différent).

Windows

wmic MemoryChip get DataWidth,TotalWidth

wmic MemPhysical get MemoryErrorCorrection

Valeurs :
0 (0x0) 	Reserved
1 (0x1) 	Other
2 (0x2) 	Unknown
3 (0x3) 	None
4 (0x4) 	Parity
5 (0x5) 	Single-bit ECC
6 (0x6) 	Multi-bit ECC
7 (0x7) 	CRC

https://superuser.com/questions/893560/how-do-i-tell-if-my-memory-is-ecc-or-non-ecc
https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-physicalmemoryarray

Registres

La mémoire à registres est également nommée “registered”, “buffered” ou encore RDIMM. Typiquement PC3-12800R
À l’inverse, la mémoire sans registres est également nommée ““unregistered”, “unbuffered” ou encore UDIMM”. Typiquement PC3-12800U.

Le type de mémoire doit correspondre au type supprté par la carte-mère (registered ou registered).
La majorité des cartes-mères grand public nécessitent de la ram unregistered.

SoDIMM

La mémoire format ordinateur portable est appelée SoDIMM (small outline).
Elle est aussi notée avec un S, par exemple PC3-12800S.

Suffixe

S : sodimm
R : registered
U : unbuffered
E : ECC

Diagnostic vitesse RAM/Memtest

MT/S : megatransfers/seconds, parfois notée en MHz.
Memtest86+ v7 indique la vitesse effective sous l’intitulé “IMC”.
Memtest86+ v6 n’indique pas correctement les fréquences ou les timings ; il indique ceux qui seraient utilisés si la RAM fonctionnait aux performances maximales.
Memtest86+ v5.x indique les infos correctes une fois le test lancé. La fréquence indiquée est toutefois celle du bus (donc la moitié de la fréquence de la RAM).

Linux

sudo dmidecode -t 17
La ligne “Speed” donne la vitesse max théorique du module (pas toujours bien détecté).
La ligne “Configured Speed” donne la vitesse effective actuelle du module.

DDR5

Standards : PC5-32000 to PC5-51200
XMP :

DDR3

Récap wikipedia

DDR3-800 = 800MT/s = PC3-6400 = 400 MHz (bus)
DDR3-1066 = 1066MT/s = PC3-8500 = 533 MHz (bus)
DDR3-1333 = 1333MT/s = PC3-10600 = 666MHz (bus)
DDR3-1600 = 1600MT/s = PC3-12800 = 800 MHz (bus)

01 Jan 0001, 00:00

Ouvrir une session RDP sans mot de passe

gpedit.msc -> Configuration Ordinateur -> Paramètres Windows -> Paramètres de sécurité -> Stratégies locales -> Options de sécurité
Comptes : restreindre l’utilisation de mots de passe vides par le compte local à l’ouverture de session console

https://www.makeuseof.com/connect-remote-desktop-without-password-windows-11/

01 Jan 0001, 00:00

Vue d’ensemble

RDS Architecture : https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/desktop-hosting-logical-architecture

L’autorisation d’accès distant via les paramètres système avancés n’autorise que 2 sessions en parallèle.

Si on n’a pas de domaine, seul les Devices-CAL peuvent être utilisés.
Pour les user CAL, il faut un domaine.
À choisir entre les 2, il est considéré comme bonne pratique de déployer le serveur de licences RDP plutôt sur le DC que sur le serveur RDP.

https://community.spiceworks.com/topic/2193241-small-office-ts-server-rds-cals-no-domain
https://social.technet.microsoft.com/Forums/en-US/ad8572b7-323c-42fe-b8fb-e2207245c042/how-do-user-cals-work-without-domain-terminalserver?forum=winservergen

Install

Install : Choisir “Services Bureau à distance” qui permet d’avoir les choix suivants :

Pour le serveur de licences :

Services Bureau à distance
  Gestionnaire de licences des services Bureau à distance

Outils d'amin de serveur distant
  Outils d'admin de rôles
    Outils des services bureau à distance
      Outils du gestionnaire de licences des services Bureau à distance

Sur le serveur RDP :

Outils d'amin de serveur distant
  Outils d'admin de rôles
    Outils des services bureau à distance
      Outils de diagnostic des licences des services Bureau à distance

Services Bureau à distance
  Remote Desktop Session Host
  Service Broker pour les connexions Bureau à distance
  Passerelle des services Bureau à distance

Le broker est le service qui récupère les connections entrantes, et les redirige sur le serveur hôte. Le serveur hôte est le serveur qui va effectivement héberger le bureau à distance.

Ajouter le serveur de licences RDS et “SERVICE RESEAU” au groupe “Serveur de licences des services Terminal Server” (peut être fait automatiquement par l’assistant dans la gestion des licences RDS)
Inscrire le serveur en tant que point de connexion de service (SCP)

On peut se passer du broker, mais il faut faire quelques modifs à la main :
https://docs.microsoft.com/en-us/troubleshoot/windows-server/remote/install-rds-host-role-service-without-connection-broker

Gestionnaire de serveur -> Installation des services bureau à distance permet de configurer le déploiement (en + de tout ce qui est mentionné ci-dessus). Utiliser déploiement standard -> basé sur une session

Pas de serveur de licence disponible :
https://docs.microsoft.com/en-us/troubleshoot/windows-server/remote/cannot-connect-rds-no-license-server
Gestionnaire de serveur -> Services Bureau à distance -> Vue d’ensemble -> Tâches -> Modifier -> Gestionnaire de licences

Il est possible/fréquent que les messages restent. Pour corriger le message relatif au mode non configuré :
regedit
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core
et passer LicensingMode de 5 (non configuré) à 4 (per-user) ou 2 (per-device)

Pour corriger le message relatif à la période de grâce, en powershell (admin) :

$object = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$object.GetSpecifiedLicenseServerList()

qui renverra probalement “SpecifiedLSList” vide. On ajoute le serveur de license :
$object.SetSpecifiedLicenseServerList("my.server.com")

Redémarrer le serveur pour appliquer les modifs.

https://techgenix.com/remote-desktop-licensing-mode-is-not-configured-error/

Utilisateurs

Lorsqu’un utilisateur est ajouté au groupe de domaine “Utilisateurs du bureau à distance”, ceci lui donne un droit de connexion aux DCs, mais pas aux autres postes/serveurs.
Si on souhaite leur accorder l’accès, on peut le faire sur 1 poste/serveur précis, par la boîte de dialogue Système -> Avancé -> Utilisation à distance -> Utilisateurs.

On peut aussi le faire par GPO, via “Config ordi -> Préférences -> Paramètres du panneau de configuration -> Utilisateurs et groupes locaux” et ajouter un groupe “Utilisateurs du Bureau à distance (intégré)” qui contiendra les utilisateurs en question (ça peut aussi être un groupe qui contient les utilisateurs).

Licences, CAL

Pour que l’administrateur n’utilise pas de licence, il faut passer le paramètre /admin à la commande xfreerdp.

On ne peut pas révoquer les per-user CALs. Ils se suppriment tout seuls au bout de 60 jours sans connexion de l’utilisateur. Si on veut forcer la suppression, on peut réinitialiser la base de licences. POur ceci, dans le gestionnaire de licences RDS, sélectionner le serveur de licences -> clic-droit -> Gérer les licences -> Reconstruire la base de données, puis choisir un motif.

Il faudra ensuite entrer à nouveau la clé de licence des CALs. Possible que MS arrête de valider si trop de changements rapprochés ?

Licence case-sensitive

https://social.technet.microsoft.com/Forums/en-US/bb5d15b8-11f8-4ffc-99c8-afe491ce504a/2019-cal-user-license-duplicates-based-upon-case-sensitivity?forum=winserverTS
Dans les Utilisateurs et ordinateurs AD, clic-droit -> Propriétés sur un utilisateur qui a un accès RDP. Dnas l’Éditeur d’attributs, rechercher des attributs msTS[…]. S’ils sont vides, c’est probablement le problème de permissions. Pour corriger ceci :
clic-droit sur l’OU qui contient les users -> Délégation de controle
Utilisateurs et groupes sélectionnés : SELF
Tâche personnalisée
Seulement les objets suivants -> Objects Utilisateur
Autorisation : Générales -> Lire et écrire Serveur de licences Terminal Server

Gestionnaire de licences

en cas d’activations rapprochées, la clé peut être bloquée par MS en ce cas on peut faire une activation par téléphone

Gestionnaire de licences des services bureau à distance -> Tous les serveurs -> clic-droit sur le serveur de licences et Propriétés Passer le mode de connexion en Téléphone Ils donnent les numéros américains ; chercher “téléphone Clearinghouse france” pourt rouver les numéros

https://www.microsoft.com/fr-fr/licensing/existing-customer/activation-centers 08.05.11.02.35 (gratuit) 01.72.26.60.80 (payant ?) 01.55.17.40.75 (payant ?)

https://activate.microsoft.com/Help.aspx?locale=fr-fr

https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/rds-client-access-license https://learn.microsoft.com/fr-fr/windows-server/remote/remote-desktop-services/rds-client-access-license#per-user-cals

Observateur d’evenements (sur la machine qui héberge le gestionnaire de licences) : Journaux des applications et services -> Microsoft -> Windows -> TerminalServices-Licensing

Licence overused

https://learn.microsoft.com/en-us/answers/questions/1250596/rds-licensing-issuing-2016-built-in-overused-cals

https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/rds-client-access-license

https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc754874(v=ws.11)?redirectedfrom=MSDN#locate-the-microsoft-clearinghouse-telephone-number-when-the-license-server-is-not-activated

01 Jan 0001, 00:00

who -u pour voir les utilisateurs connectés et les PID respectifs

pour chacun des PID, pour voir ce que c’est et ses potentiels enfants : pstree -pg $pid

01 Jan 0001, 00:00

netsh int ip reset
netsh winsock reset
netsh advfirewall reset

ipconfig /release
ipconfig /renew
ipconfig /flushdns

Pour lister les réseaux connus :
netsh wlan show profiles

Pour lister les réseaux dispos :
netsh wlan sh ne

01 Jan 0001, 00:00

/L : lister uniquement, ne rien effectuer

/XF “filename.ext” pour exclure tous les fichiers nommés “filename.ext”, quels que soient leur chemin

/NDL pour ne pas logger les noms de répertoires (sinon ils apparaissent tous, modifiés ou non) - n’afficher pas non plus les répoertoires modifiés !

/XD pour exclure un répertoire

/LOG:filename.txt pour enregistrer le log dans un fichier filename.txt (au lieu de l’afficher) /TEE pour afficher le log sur la sortie en + de l’enregistrer

Lecture du log

Fichier SUPPL. : le fichier existe sur la destination mais pas sur la source Plus récent :

01 Jan 0001, 00:00

https://fr.wikipedia.org/wiki/Thunderbolt_(interface)

Un port thunderbolt peut généralement transférer un signal thunderbolt (PCIe), un signal USB (différentes version selon la version de TB), un signal video (DisplayPort), du courant (100W pour TB3).

Thunderbolt 1-2 : prise type mini-DisplayPort

Thunderbolt 2-3 : prise type USB-C

Il est nécessaire que la carte-mère supporte Thunderbolt ; on ne peut pas juste y ajouter une carte d’extension, cela ne fonctionnera pas.
Il semblerait que le processeur soit indifférent à la possibilité d’utiliser TB.

Certaines cartes-mères ont directement des prises thunderbolt ; d’autres ont la compatibilité avec la technologie, mais nécessitent une carte d’extension pour avoir les prises (en ce cas, la carte doit posséder un header Thunderbolt (THB-C) pour y brancher un cable en + de la connection PCIe).
Les cartes d’extension ne sont pas compatibles avec toutes les cartes-mères ; il faut un modèle compatible ave la CM.

Cables

https://www.journaldulapin.com/2018/09/04/usb-c-thunderbolt/

Les cables USB-C, bien que physiquement branchables, ne pourront pas (sauf coup de bol et lentement) transporter un signal thunderbolt.
Un cable thunderbolt passif peut transporter de la donnée USB-C et de la donnée thunderbolt.
Un cable thunderbolt actif transportera uniquement de la donnée thunderbolt.

Pour le transport de donnée thunderbolt (3-4), les cables passifs permettent 40Gbps sur de courtes distances (~50cm), et 20Gbps sur 2m.
Les cables actifs permettent 40Gbps sur de + grandes distances (2m ?). Ils sont évidemment + chers. Ils contiennent de l’électronique spécifique.

01 Jan 0001, 00:00

EXT4 commande stat pour voir le détail atime : access time mtime : modification du contenu ctime : modification des attributs crtime : date de création du fichier ; compliqué à modifier, non supporté par rsync

NTFS

Partage SMB sur serveur Windows accédé depuis Linux