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

  • Status Nouveau
  • Percent Complete
    0%
  • Task Type Autre
  • Category USB
  • Assigned To No-one
  • Operating System Tous
  • Severity High
  • Priority Very High
  • Reported Version 4.7.2
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Freebox Server (Pop V8/ Delta V7 / Revolution V6 / Server Mini 4K)
Opened by JJMA - 03/12/2022

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 commented on 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

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

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

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing