Bonjour!
Petit défi : comment allumer une webcam via une ligne de commande? Cette commande devrait avoir le même effet que la combinaison de touches FN+F10.
Ça serait pratique via ssh…
un peu léger comme cahier des charges …
Quel type de webcam ?
On ne te demandera pas quelle cam tu veux activer à distance, à l’insu de l’utilisateur (trice) …
a la seule condition que tu la mettes en ligne
Ce n’est pas à l’insu de quelqu’un puisque c’est une machine qui m’appartient .
Bon, je complète alors. C’est une webcam intégrée à mon pc portable. Je cherche une commande à exécuter pour allumer la webcam.
Au démarrage du pc portable, la webcam est éteinte :
lsusb ~
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Lorsque j’appuie sur fn+F10 :
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 009: ID 5986:0315 Acer, Inc
Et dans le syslog :
Jun 2 20:20:45 Lothlorien kernel: [ 8968.886228] usb 2-1.6: new high-speed USB device
i_hcd
Jun 2 20:20:45 Lothlorien kernel: [ 8969.036255] usb 2-1.6: New USB device found, idV
t=0315
Jun 2 20:20:45 Lothlorien kernel: [ 8969.036266] usb 2-1.6: New USB device strings: M
ialNumber=0
Jun 2 20:20:45 Lothlorien kernel: [ 8969.036272] usb 2-1.6: Product: BisonCam, NB Pro
Jun 2 20:20:45 Lothlorien kernel: [ 8969.036277] usb 2-1.6: Manufacturer: BISON Corpo
Jun 2 20:20:45 Lothlorien kernel: [ 8969.074460] uvcvideo: Found UVC 1.00 device Biso
315)
Jun 2 20:20:45 Lothlorien kernel: [ 8969.121519] input: BisonCam, NB Pro as /devices/
d.0/usb2/2-1/2-1.6/2-1.6:1.0/input/input19
Jun 2 20:20:45 Lothlorien udevd[17292]: failed to execute '/lib/udev/mtp-probe' 'mtp-
ci0000:00/0000:00:1d.0/usb2/2-1/2-1.6 2 10': No such file or directory
La webcam est alors allumée. Donc fn+F10 est un interrupteur matériel.
Lorsque je cherche un éventuel évènement (afin de lancer un raccouci avec xdotools par exemple) avec xev, c’est comme si je ne faisais rien lorsque j’appuie sur fn+F10. Pourtant, cette combinaison active/éteint la webcam.
Autre point, sur le salon jabber debian-fr, il m’a été proposé de regarder la piste d’acpi, qui pourrait permettre d’allumer la webcam au même titre que fn+F10.
J’allais te proposer la même chose, si linux ne voit rien, c’est que ça se passe au niveau du BIOS de la machine.
Tu as peut étre une option dans celui ci pour allumer la cam au boot.
Sinon effectivement, reste le passage par l’ACPI, mais je n’ai jamais pratiquer (à part pour la hwclock, mais c’est pas vraiment via l’ACPI).
J’ai déja vérifié, et non, il n’y a rien
Il ne te reste plus qu’a te plonger dans /proc/acpi pour y trouver ta cam.
ser-info-02.ec-nantes.fr/users/i … log/97f17/
Merci pour le lien! J’avoue que je ne savais plus où chercher.
plus exactement, trouver le switch qui allume et éteint la cam.
bon courage
Un truc COOL :
- Installer les machins:
aptitude install xmacro
- Enregistrer la macro:
xmacrorec -k 9 > macro.rec
Appuyer sur la touche esc pour sortir (keycode: 9)
Pour chopper une autre touche, voir la liste
xmodmap -pke
- Jouer la macro:
cat macro.rec | xmacroplay :0
Tu peux aussi modifier le fichier pour y rajouter tes keycodes (en particulier si ton clavier n’a pas les touches adéquat, par ex les touches fn sur un fixe)
Note: il faut avoir X lancé, évidement;
Un truc qui, au feeling, devrait fonctionner:
echo "MotionNotify 403 839 KeyStrPress XF86WebCam KeyStrRelease XF86WebCam | xmacroplay :0
c’est un keylogguer ça!
ben c’est du propre.
Déja qu’il voulait activer la webcam à distance, maintenant il va piquer les coordonnées bancaires
Ouais, enfin quand tu fait un xmacrorec, tout ce que tu entres est capturé par le programme, sauf la touche spéciale
Du coup, c’est limite comme keyloger (pas très discret)
Bon, xmacro n’enregistre rien (cette touche n’est vraiment pas reconnue par debian, c’est vraiment qu’un interrupteur matériel on dirait).
Du coup, j’y ai presque cru en découvrant XF86WebCam avec xmodmap -pke, mais non cette touche n’a aucun effet lorsque je lance :
Et je sais pas vous, mais je ne sais pas du tout où chercher pour acpi…
La touche FN est chiante au possible
J’ai passé plusieurs heures à essayer de la “cloner” sur un clavier ‘non portable’ mais je n’ai jamais réussi.
Ce message ne sert à rien sinon à m’inscrire car le résultat m’intéresse.
À propos, j’croyais que pour allumer une cam de portable, il suffisait de l’utiliser
Tu doit avoir du matos exotique (fn + F10, c’est pas pour mute classiquement ?)
Bon, si tu n’arrives pas à trouver le bon keycode (même si j’trouve ca étrange), tu peux tester avec la bonne vieille méthode RACHE:
for keycode in $((cat /usr/include/X11/keysymdef.h ; cat /usr/include/X11/XF86keysym.h) | grep '#define' | awk '{print $2}' | sed 's/XK_//')
do
xdotool key $keycode
sleep 0.1
done
Et toi, tu restes à coté, et tu regardes si le truc s’allume.
Y’en a que 2200+, ca devrait être asser rapide (j’me demande si y’a la touche powercontrol est dans la liste)
Tu peux aussi commencer par le contenu de /usr/include/X11/XF86keysym.h, seulement, y’en a que 180 et je suppose que le tien est dans la liste.
Bon amusement!
C’est une webcam sans DEL. Le matériel est celui-ci (ça n’a pas trop du évoluer depuis l’achat): [0]
Du coup je vais adapter ta commande avec un lsusb entre temps pour voir si la ligne Bus 002 Device 006: ID 5986:0315 Acer, Inc
apparaît.
Alors, avec /usr/include/X11/XF86keysym.h : aucun résultat
Avec usr/include/X11/keysymdef.h, aucun résultat, mis à part que le test n’aboutit pas car le serveur X est fermé en cours de route…
Est-ce étonnant? Ces codes devraient être captés par xev, et comme il ne comprend rien…
Je met le script utilisé pour si ça peut aider quelqu’un :
#!/bin/sh
for keycode in $((cat /usr/include/X11/XF86keysym.h ; cat /usr/include/X11/XF86keysym.h) | grep '#define' | awk '{print $2}' | sed 's/XK_//')
do
xdotool key $keycode
lsusb |grep Acer && echo $keycode
done
Je viens de tenter avec la commande showkey en tty : toujours rien
EDIT : avec acpi_listen, rien non plus -> là, j’ai besoin qu’on m’explique, acpi ne gère pas cet interrupteur! Alors c’est impossible?