Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)

  • État Nouveau
  • Pourcentage achevé
    0%
  • Type Autre
  • Catégorie USB
  • Assignée à Personne
  • Système d'exploitation Tous
  • Sévérité Haute
  • Priorité Très haute
  • Basée sur la version 4.7.2
  • Due pour la version Non décidée
  • Échéance Non décidée
  • Votes
  • Privée

FS#37448 - Status USB

Est-il possible de connaitre sur freebox DELTA le status du port USB ? Et par exemple d’interroger le composant qui lui est connecté.

Dans Freebox OS, je n’ai pas trouvé d’écran ad-hoc.

Est-ce qu’il est-possible d’accéder à ma DELTA en SSH et avoir la liste des commandes qu’elle accepte ?

JJMA a commenté le 03.12.2022 09:23

après une recherche sur Internet, J’ai l’impression que beaucoup d’utilisateurs ont le même problème que moi sur l’instabilité du port USB.

êtes vous dans ce cas ?

⇒ remet en cause l’utilisation des machines virtuelles et l’utilisation pour la domotique (VM Jeedom, Home Assistant, …)

J'ai demandé une mise à jour de libusb il y a fort longtemps :
- https://dev.freebox.fr/bugs/task/34213

nbanba a commenté le 07.12.2022 17:35

Bonjour

Malheureusement, je ne connais pas de moyens simple.
J'ai déjà demandé à Free l'accès SSH plusieurs fois, mais jamais eu de réponses.

Par contre, il y a une API assez complète, mais qui ne traite pas des ports USB, à l'exception des ports USB à bind dans les VM

Vous pouvez récupérer le status d'une VM qui à des ports USB attachés puis depuis cette VM, vous pouvez contrôler le bon fonctionnement de ces ports.

Voici ce que renvoi l'API des VMs quand on fait un call global(sur ma box):

$ curl -s "https://fbx.mydomain.net:2xxx/api/v9/system" " -H X-Fbx-App-Auth: $_SESSION_TOKEN --cacert /usr/share/ca-certificates/nba/MA-CA-PERSO-8192.pem" |jq

{
  "success": true,
  "result": {
    "usb_used": false,
    "sata_used": false,
    "sata_ports": [
      "sata-internal-p0",
      "sata-internal-p1",
      "sata-internal-p2",
      "sata-internal-p3"
    ],
    "used_memory": 8192,
    "usb_ports": [
      "usb-external-type-a",
      "usb-external-type-c"
    ],
    "used_cpus": 3,
    "total_memory": 15360,
    "total_cpus": 3
  }
}

Après le binding sur une VM se fait également avec l'API, je vous recommande d'aller voir :

https://github.com/nbanb/fbxvm-ctrl

Exemple ou j'affiche le détail d'une de mes VM qui à les ports USB bind dessus :

$ fbxvm-ctrl 8 detail

CONTROL FREEBOX VM

URL CALLED : https://fbx.mydomain.net:2xxx/api/v9/
API CALLED : vm
VERB|VM ID : 8
ACTION : detail

VM-8 : Full details properties :

	name = 14RV-FSRV-08
	id = 8
	status = stopped
	memory = 2048
	vcpus = 1
	disk_type = qcow2
	disk_path = /FBX24T/box-vm/14RV-FSRV-08.qcow2
	cd_path = /FBX24T/iso/debian-11.0.0-arm64-DVD-1.iso
	mac_address = ce:3c:ee:b4:f4:f0
	os = debian
	enable_screen = true
	bind_usb_ports = ["usb-external-type-c","usb-external-type-a"]
	enable_cloudinit = true
	cloudinit_hostname = 14RV-FSRV-08
	cloudinit_userdata = ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEA3FSyQwBI6Z+nCSjUUk8EEAnnkhXlukKoUPND/RRClWz2s5TCzIkd3Ou5+Cyz71X0XmazM3l5WgeErvtIwQMyT1KjNoMhoJMrJnWqQPOt5Q8zWd9qG7PBl9+eiH5qV7NZ mykey@host
- ssh-rsa AAAAB3NzaC....
...
json_vm_object = {"mac":ce:3c:ee:b4:f4:f0,"cloudinit_userdata":ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEA3FSyQwBI6Z+nCSjUUk8EEAnnkhXlukKoUPND/RRClWz2s5TCzIkd3Ou5+Cyz71X0XmazM3l5WgeErvtIwQMyT1KjNoMhoJMrJnWqQPOt5Q8zWd9qG7PBl9+eiH5qV7NZ mykey@host
- ssh-rsa AAAAB3NzaC....
....
...,"cd_path":L0ZCWDI0VC9pc28vZGViaWFuLTExLjAuMC1hcm02NC1EVkQtMS5pc28=,"id":8,"os":debian,"enable_cloudinit":true,"disk_path":L0ZCWDI0VC9ib3gtdm0vMTRSVi1GU1JWLTA4LnFjb3cy,"vcpus":1,"memory":2048,"name":14RV-FSRV-08,"cloudinit_hostname":14RV-FSRV-08,"status":stopped,"bind_usb_ports":["usb-external-type-c","usb-external-type-a"],"enable_screen":true,"disk_type":qcow2}

Et pour créer une VM en mettant des ports usb, avec le script fbxvm-ctrl c'est facile :

$ fbxvm-ctrl add vm disk_type="qcow2" disk_path="/freeboxdisk/vmdiskpath/myvmdisk.qcow2" vcpus="1" memory="2048" cd_path="/freeboxdisk/vmisopath/debian-11.0.0-arm64-netinst.iso" os="debian" enable_screen="true" cloudinit_hostname="14RV-FSRV-08" cloudinit_userdata="cloudinit-userdata.yml" bind_usb_ports='"usb-external-type-c","usb-external-type-a"' name="14RV-FSRV-08.dmz.lan"

Si vous avez déjà une VM, récupérez les parametres et ajoutez le support des ports USB :

$ fbxvm-ctrl list
$ fbxvm-ctrl <id> detail
$ fbxvm-ctrl <id> modify disk_type="qcow2" disk_path="/freeboxdisk/vmdiskpath/myvmdisk.qcow2" vcpus="1" memory="2048" cd_path="/freeboxdisk/vmisopath/debian-11.0.0-arm64-netinst.iso" os="debian" enable_screen="true" cloudinit_hostname="14RV-FSRV-08" cloudinit_userdata="cloudinit-userdata.yml" bind_usb_ports='"usb-external-type-c","usb-external-type-a"' name="14RV-FSRV-08.dmz.lan"

Puis pour se connecter à votre nouvelle vm :

$ fbxvm-ctrl <id> start
$ fbxvm-ctrl <id> console  

Puis ensuite, sous Linux, vous pouvez facilement avoir le status des ports USB avec

$ sudo lsusb -v
$ dmesg -wT | grep -i usb

Voilà, c'est la seule solution que j'ai trouvé pour le moment pour gérer les ports USB

En espérant que cela vous aide
Cordialement
nbanba

nbanba a commenté le 07.12.2022 17:40

Bonjour

Désolé, erreur dans le premier cURL
c'est : /api/v9/vm/info et non /api/v9/system

$ curl -s "https://fbx.mydomain.net:2xxx/api/v9/vm/info" " -H X-Fbx-App-Auth: $_SESSION_TOKEN --cacert /usr/share/ca-certificates/nba/MA-CA-PERSO-8192.pem" |jq

{
  "success": true,
  "result": {
    "usb_used": false,
    "sata_used": false,
    "sata_ports": [
      "sata-internal-p0",
      "sata-internal-p1",
      "sata-internal-p2",
      "sata-internal-p3"
    ],
    "used_memory": 8192,
    "usb_ports": [
      "usb-external-type-a",
      "usb-external-type-c"
    ],
    "used_cpus": 3,
    "total_memory": 15360,
    "total_cpus": 3
  }
}

Cordialement
nbanba

Chargement...

Activer les raccourcis clavier

Liste des tâches

Détails de la tâche

Édition de la tâche