[gestion périphériques] Désactiver un périphérique ?

Reconnaissance et configuration du matériel / kernel linux
Répondre
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

[gestion périphériques] Désactiver un périphérique ?

Message par esclapion »

Bonjour à tous,

(semi-débutant)

Je cherche depuis deux jours au moins le moyen de le faire. J'ai notamment par exemple du bluetooth, du firewire, du Hauppauge, un combo 5 en 1, dont je ne me sers jamais et qui me consomment des ressources.

Sous un "Os Alternatif" ( :wink: ), il me suffit de faire un clic droit dessus dans le gestionnaire de périphériques, désactiver.

Je n'ai pas besoin d'un truc aussi simple, mais ce que je souhaiterais, c'est mettre ces périphériques hors-jeu.

D'après mes recherches, je pourrais peut-être bloquer leur module de gestion, mais ça ne me paraît pas très sain comme méthode.

Mon rêve, ce serait de pouvoir indiquer au sytème de ne pas s'en occuper à priori.

Je suis aussi intéressé par toute méthodologie permettant des les identifier précisément, car ce n'est pas simple de les repérer par dmesg ou lspci.

Merci d'avance.
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [gestion périphériques] Désactiver un périphérique ?

Message par tuxce »

Salut, pour avoir le même effet que la désactivation depuis le gestionnaire de périphériques, il faudrait décharger les modules (après avoir arrêter les services etc.)
Tu peux avoir la liste des modules utilisés par l'usb avec une commande du genre:

Code : Tout sélectionner

find  /sys/bus/usb -iname 'module' -exec readlink -f {} \; | xargs -n 1 basename | sort -u
(il doit y avoir plus simple, mais bon ...)
Par contre, il faut pas décharger n'importe quel module:

Code : Tout sélectionner

$ find  /sys/bus/usb -iname 'module' -exec readlink -f {} \; | xargs -n 1 basename | sort -u
btusb
usbcore
usbhid
uvcvideo
Là par exemple, j'ai le bluetooth (btusb), une caméra (uvcvideo), usbcore est le gestionnaire de l'usb, et usbhid me permet d'utiliser par exemple mon clavier/souris.

Pour les modules des périphériques pci:

Code : Tout sélectionner

lspci -k
Mais pour des trucs comme le bluetooth, il y a bien plus simple ... Un environnement de bureau tel que gnome te permet de le désactiver, sinon, il se peut que tu ais un interrupteur matériel pour le faire ou encore en utilisant rfkill:

Code : Tout sélectionner

$ rfkill list 
0: dell-wifi: Wireless LAN
	Soft blocked: no
	Hard blocked: no
1: dell-bluetooth: Bluetooth
	Soft blocked: no
	Hard blocked: no
2: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
6: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no
$ rfkill block 6
$ rfkill list 6
6: hci0: Bluetooth
	Soft blocked: yes
	Hard blocked: no
Pour des trucs moins standard, tout dépend de ce qu'ils te permettent de faire (et c'est souvent selon ce que l'auteur du pilote du noyau a pu découvrir dessus).
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [gestion périphériques] Désactiver un périphérique ?

Message par FoolEcho »

esclapion a écrit :D'après mes recherches, je pourrais peut-être bloquer leur module de gestion, mais ça ne me paraît pas très sain comme méthode.
Pourquoi donc ? C'est la façon de faire.
Tu blacklistes tel ou tel module dans un /etc/modprobe.conf/blacklist.conf par exemple:

Code : Tout sélectionner

blacklist le_module
Tu peux aussi les désactiver complétement avec install, mais c'est là où ça peut être problématique en fait, car un autre périphérique peut avoir besoin dudit module et ne pourra pas se charger automatiquement non plus... donc tiens-toi plutôt au simple blacklist (ça te permettra de charger le module manuellement au besoin):
http://archlinux.fr/news/changement-pou ... -un-module
esclapion a écrit :e suis aussi intéressé par toute méthodologie permettant des les identifier précisément, car ce n'est pas simple de les repérer par dmesg ou lspci.
hwinfo est plus intéressant dans la mesure où tu peux justement être plus spécifique dans la recherche de matériel (voir hwinfo --help). Il t'indiquera le(s) module(s) utile(s): hwinfo --usb, hwinfo --bluetooth, etc..
«The following statement is not true. The previous statement is true.» :nage:
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [gestion périphériques] Désactiver un périphérique ?

Message par esclapion »

Merci, je suis toujours admiratif devant tes réponses. :bravo:

J'ai oublié de préciser que je suis sous Cinnamon (donc Gnome3).

Sinon, j'ai une tour HP Elite, sans switch (du moins que j'aie repéré).

Code : Tout sélectionner

find  /sys/bus/usb -iname 'module' -exec readlink -f {} \; | xargs -n 1 basename | sort -u

snd_usb_audio
uas
usbcore
usbhid
usb_storage
uvcvideo
[root@arch pat]# 
J'avais sinon trouvé rfkill, mais ça ne me donne pas grand-chose :

Code : Tout sélectionner

rfkill list
0: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
Malgré tout, comme j'ai à la fois la liaison par RJ45 et par Wifi, il serait intéressant de pouvoir désactiver ce dernier.
Dernière modification par esclapion le jeu. 29 mars 2012, 13:38, modifié 3 fois.
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [gestion périphériques] Désactiver un périphérique ?

Message par esclapion »

Pourquoi donc ? C'est la façon de faire.
Tu blacklistes tel ou tel module dans un /etc/modprobe.conf/blacklist.conf par exemple:
blacklist le_module
Parce que mon journal devient une poubelle :wink: , et que je ne suis pas sûr que ce soit gratuit en ressources. Un extrait :

Code : Tout sélectionner

7.039542] cx23885[0]: Here is a list of valid choices for the card=<n> insmod option:
[    7.039543] cx23885[0]:    card=0 -> UNKNOWN/GENERIC
[    7.039544] cx23885[0]:    card=1 -> Hauppauge WinTV-HVR1800lp
[    7.039546] cx23885[0]:    card=2 -> Hauppauge WinTV-HVR1800
[    7.039547] cx23885[0]:    card=3 -> Hauppauge WinTV-HVR1250
[    7.039548] cx23885[0]:    card=4 -> DViCO FusionHDTV5 Express
[    7.039550] cx23885[0]:    card=5 -> Hauppauge WinTV-HVR1500Q
[    7.039551] cx23885[0]:    card=6 -> Hauppauge WinTV-HVR1500
[    7.039552] cx23885[0]:    card=7 -> Hauppauge WinTV-HVR1200
[    7.039554] cx23885[0]:    card=8 -> Hauppauge WinTV-HVR1700
[    7.039555] cx23885[0]:    card=9 -> Hauppauge WinTV-HVR1400
[    7.039556] cx23885[0]:    card=10 -> DViCO FusionHDTV7 Dual Express
[    7.039558] cx23885[0]:    card=11 -> DViCO FusionHDTV DVB-T Dual Express
[    7.039559] cx23885[0]:    card=12 -> Leadtek Winfast PxDVR3200 H
[    7.039560] cx23885[0]:    card=13 -> Compro VideoMate E650F
[    7.039562] cx23885[0]:    card=14 -> TurboSight TBS 6920
[    7.039563] cx23885[0]:    card=15 -> TeVii S470
[    7.039564] cx23885[0]:    card=16 -> DVBWorld DVB-S2 2005
[    7.039565] cx23885[0]:    card=17 -> NetUP Dual DVB-S2 CI
[    7.039567] cx23885[0]:    card=18 -> Hauppauge WinTV-HVR1270
[    7.039568] cx23885[0]:    card=19 -> Hauppauge WinTV-HVR1275
[    7.039569] cx23885[0]:    card=20 -> Hauppauge WinTV-HVR1255
[    7.039571] cx23885[0]:    card=21 -> Hauppauge WinTV-HVR1210
[    7.039572] cx23885[0]:    card=22 -> Mygica X8506 DMB-TH
[    7.039573] cx23885[0]:    card=23 -> Magic-Pro ProHDTV Extreme 2
[    7.039574] cx23885[0]:    card=24 -> Hauppauge WinTV-HVR1850
[    7.039576] cx23885[0]:    card=25 -> Compro VideoMate E800
[    7.039577] cx23885[0]:    card=26 -> Hauppauge WinTV-HVR1290
[    7.039578] cx23885[0]:    card=27 -> Mygica X8558 PRO DMB-TH
[    7.039580] cx23885[0]:    card=28 -> LEADTEK WinFast PxTV1200
[    7.039581] cx23885[0]:    card=29 -> GoTView X5 3D Hybrid
[    7.039582] cx23885[0]:    card=30 -> NetUP Dual DVB-T/C-CI RF
[    7.039584] cx23885[0]:    card=31 -> Leadtek Winfast PxDVR3200 H XC4000
[    7.039585] cx23885[0]:    card=32 -> MPX-885
[    7.039867] CORE cx23885[0]: subsystem: 1461:e139, board: UNKNOWN/GENERIC [card=0,autodetected]
[    7.057246] firewire_ohci: Added fw-ohci device 0000:03:00.0, OHCI v1.10, 4 I
Tout ça pour des périphériques dont je ne me sers jamais. Ça masque les trucs intéressants.
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [gestion périphériques] Désactiver un périphérique ?

Message par esclapion »

Re,

hwinfo est intéressant, mais très (trop ?) détaillé. Avec --short, c'est déjà plus lisible (bizarrement, je n'ai pas le man en ligne).

Un extrait :

disk:
/dev/sda OCZ-AGILITY3
/dev/sdb ST31000528AS
/dev/sdc ST31000528AS
/dev/sde Generic Compact Flash
/dev/sdd WD Ext HDD 1021
/dev/sdf Generic SM/xD-Picture
/dev/sdg Generic SD/MMC
/dev/sdh Generic MS/MS-Pro
Si par exemple, je veux désactiver ceux en gras, en pratique -> ???
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [gestion périphériques] Désactiver un périphérique ?

Message par tuxce »

esclapion a écrit : Parce que mon journal devient une poubelle :wink: , et que je ne suis pas sûr que ce soit gratuit en ressources. Un extrait :
J'ai pas bien saisi. Si tu blacklist le module, il ne se chargera pas (ou alors, c'est qu'il l'a été par le biais d'un autre et qu'en fait c'est ce dernier qu'il fallait blacklister) et donc ne produira aucun message.
esclapion a écrit :Si par exemple, je veux désactiver ceux en gras, en pratique -> ???
J'imagine que les 4 sont un seul périphérique. Il faudrait l'isoler et en blacklister le module.
Sans le short, tu devrais avoir le module, par exemple:

Code : Tout sélectionner

30: None 00.0: 10600 Disk
  [Created at block.245]
  Unique ID: HAKk.Fxp0d3BezAE
  Parent ID: pLqc.AZxnINYsvA6
  SysFS ID: /class/block/mmcblk0
  SysFS BusID: mmc0:7984
  SysFS Device Link: /devices/pci0000:00/0000:00:1e.0/0000:03:01.1/mmc_host/mmc0/mmc0:7984
  Hardware Class: disk
  Model: "Disk"
  Driver: "sdhci-pci", "mmcblk"
  Driver Modules: #####"sdhci_pci"#####
  Device File: /dev/mmcblk0
  Device Files: /dev/mmcblk0, /dev/disk/by-id/mmc-SD04G_0xb1d9e937, /dev/disk/by-path/pci-0000:03:01.1
  Device Number: block 179:0-179:7
  Drive status: no medium
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #25 (SD Host controller)
ou par lspci:

Code : Tout sélectionner

03:01.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 22)
	Subsystem: Dell Device 0209
	Kernel driver in use: sdhci-pci

(Sinon, je suis pas sûr qu'un lecteur non utilisé consomme tant d'énergie, si ?)
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [gestion périphériques] Désactiver un périphérique ?

Message par FoolEcho »

Tu n'auras pas assez d'info, mais tu peux affiner les options (y a pas de man, mais y en a pas besoin: --help).
Par exemple pour:
esclapion a écrit :

Code : Tout sélectionner

/dev/sde Generic Compact Flash
Tu dois pouvoir obtenir les infos spécifiques avec:

Code : Tout sélectionner

hwinfo --disk --only /dev/sde
(ou même: hwinfo --disk --only /dev/sde --only /dev/sdf --only /dev/sdg --only /dev/sdh)
Exemple (à adapter): j'imagine qu'au niveau module, tu devrais retrouver usb_storage et sd (mais pas forcément...)... Barrer le premier n'est pas trop une bonne idée car utile à d'autres choses, par contre tu dois pouvoir blacklister sd (c'est peut-être sd_mod par contre).

... bon, heu, grillé en partie (encore). :)
tuxce a écrit :(Sinon, je suis pas sûr qu'un lecteur non utilisé consomme tant d'énergie, si ?)
Je ne pense pas non plus.

Aussi, ne fais pas plusieurs messages à la file (ça agace, particulièrement à peu de temps d'intervalle :mrgreen: ), édites plutôt ou fais un gros message avec toutes les questions/infos utiles/nouveaux. :chinois:
«The following statement is not true. The previous statement is true.» :nage:
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [gestion périphériques] Désactiver un périphérique ?

Message par esclapion »

Aussi, ne fais pas plusieurs messages à la file (ça agace, particulièrement à peu de temps d'intervalle ), édites plutôt ou fais un gros message avec toutes les questions/infos utiles/nouveaux.
Ben oui, mais si je mélange les réponses à deux interlocuteurs, il va falloir trier.

J'ai sinon essayé sur /dev/sde :

Code : Tout sélectionner

47: SCSI 600.0: 10600 Disk                                      
  [Created at block.256]
  Unique ID: lfzD.0S2r_HOfOj8
  Parent ID: pwJ7.mfdBQdURql7
  SysFS ID: /class/block/sde
  SysFS BusID: 6:0:0:0
  SysFS Device Link: /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/host6/target6:0:0/6:0:0:0
  Hardware Class: disk
  Model: "Generic Compact Flash"
  Vendor: usb 0x0bda "Generic-"
  Device: usb 0x0151 "Compact Flash"
  Revision: "1.00"
  Serial ID: "20060413092100000"
  Driver: "usb-storage", "sd"
  Driver Modules: "usb_storage"
  Device File: /dev/sde (/dev/sg5)
  Device Files: /dev/sde, /dev/disk/by-id/usb-Generic-_Compact_Flash_20060413092100000-0:0, /dev/disk/by-path/pci-0000:00:1a.0-usb-0:1.1:1.0-scsi-0:0:0:0
  Device Number: block 8:64-8:79 (char 21:5)
  Speed: 480 Mbps
  Module Alias: "usb:v0BDAp0151d5195dc00dsc00dp00ic08isc06ip50"
  Driver Info #0:
    Driver Status: uas is active
    Driver Activation Cmd: "modprobe uas"
  Driver Info #1:
    Driver Status: usb_storage is active
    Driver Activation Cmd: "modprobe usb_storage"
  Drive status: no medium
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #11 (USB Controller)
Et il y a de tout, pas facile à décoder. Je ne peux pas virer "usb_storage", je pense, car j'ai une clé USB.

sd me paraîtraît plus sympa, à blacklister ? Ou c'est uas (pour ce que c'est)?

Sinon, ce n'est pas une question de consommation d'énergie, plutôt de simplification du système.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17625
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [gestion périphériques] Désactiver un périphérique ?

Message par benjarobin »

esclapion a écrit :simplification du système.
:shock: Je trouve que c'est se prendre la tête pour pas grand chose et je ne vois pas comment cela peut être une simplification, c'est tout le contraire, tu auras une usine à gaz et quand cela ne fonctionnera plus tu te demanderas pourquoi...
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [gestion périphériques] Désactiver un périphérique ?

Message par FoolEcho »

esclapion a écrit :sd me paraîtraît plus sympa, à blacklister ? Ou c'est uas (pour ce que c'est)?
sd_mod au moins... uas aussi, peut-être (je ne sais pas ce que c'est et modinfo ne le dit pas :P ).
esclapion a écrit :Sinon, ce n'est pas une question de consommation d'énergie, plutôt de simplification du système.
+1 avec benjarobin. C'est plus simple de tout garder. :copain:


esclapion a écrit :Ben oui, mais si je mélange les réponses à deux interlocuteurs, il va falloir trier.
Ben non, car tu peux citer qui a dit quoi (faut juste citer à partir de la partie du message qui t'intéresse ou en rajoutant quote="untel"). :)
«The following statement is not true. The previous statement is true.» :nage:
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [gestion périphériques] Désactiver un périphérique ?

Message par esclapion »

modinfo ne le dit pas ).
Connaissais pas, merci. Par contre, en déduire ce que ça peut être :

Code : Tout sélectionner

filename:       /lib/modules/3.2.13-1-ARCH/kernel/drivers/usb/storage/uas.ko.gz
author:         Matthew Wilcox and Sarah Sharp
license:        GPL
alias:          usb:v*p*d*dc*dsc*dp*ic08isc06ipAA*
alias:          usb:v*p*d*dc*dsc*dp*ic08isc06ip62*
alias:          usb:v*p*d*dc*dsc*dp*ic08isc06ip50*
depends:        usbcore,scsi_mod
intree:         Y
vermagic:       3.2.13-1-ARCH SMP preempt mod_unload modversions 
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [gestion périphériques] Désactiver un périphérique ?

Message par esclapion »

Le blacklist fonctionne bien, mais ce n'était pas tout à fait ce que je cherchais :

hwinfo --disk --only /dev/sde

48: SCSI 600.0: 10600 Disk
[Created at block.256]
Unique ID: lfzD.0S2r_HOfOj8
Parent ID: pwJ7.mfdBQdURql7
SysFS ID: /class/block/sde
SysFS BusID: 6:0:0:0
SysFS Device Link: /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/host6/target6:0:0/6:0:0:0
Hardware Class: disk
Model: "Generic Compact Flash"
Vendor: usb 0x0bda "Generic-"
Device: usb 0x0151 "Compact Flash"
Revision: "1.00"
Serial ID: "20060413092100000"
Driver: "usb-storage", "sd"
Driver Modules: "usb_storage"
Device File: /dev/sde
Device Files: /dev/sde, /dev/disk/by-id/usb-Generic-_Compact_Flash_20060413092100000-0:0, /dev/disk/by-path/pci-0000:00:1a.0-usb-0:1.1:1.0-scsi-0:0:0:0
Device Number: block 8:64-8:79
Speed: 480 Mbps
Module Alias: "usb:v0BDAp0151d5195dc00dsc00dp00ic08isc06ip50"
Driver Info #0:
Driver Status: uas is not active
Driver Activation Cmd: "modprobe uas"
Driver Info #1:
Driver Status: usb_storage is active
Driver Activation Cmd: "modprobe usb_storage"
Drive status: no medium
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #11 (USB Controller)
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [gestion périphériques] Désactiver un périphérique ?

Message par FoolEcho »

Et ? Si tu ne peux plus utiliser ce matériel, je ne vois pas ce que tu veux de plus (en clair: hwinfo, lsusb/lspci et cie ne font que lister ce que le système a détecté, ce qui ne veut pas dire que le matériel est actif). :|
«The following statement is not true. The previous statement is true.» :nage:
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [gestion périphériques] Désactiver un périphérique? [Rés

Message par esclapion »

Oui, tu as raison. Merci, je passe en résolu.

Mais j'aurais préféré que le système s'en désintéresse à priori, mais bon, si ça n'est pas possible...
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [gestion périphériques] Désactiver un périphérique ?

Message par FoolEcho »

Tout comme nous, le système n'a pas de boule de cristal: un module pouvant servir à tel ou truc, pour se désintéresser d'un matériel, il faut bien qu'il regarde de quoi il s'agit et ce dont il pourrait avoir besoin (ce que doit faire le gestionnaire de périphériques sous windows, j'imagine: si actif, je le montre ; si désactivé, je peux ne pas le montrer). :)
«The following statement is not true. The previous statement is true.» :nage:
Répondre