-
Bonjour,
j'ai tenté de rentrer la commande "cat /dev/usbled0" avec le noyau patché en changeant les valeurs de `USBLED_PID' et le 'USBLED_VID' avec les valeurs correspondantes à mon Raspberry Pi Pico. Lors du passage dans la fonction "usbledopen", la fonction "usbd_do_request_flags" elle-même appelé dans "usb_write" retourne le code d'erreur 17, soit USBD_STALLED (usbdi.h) ce qui signifie un état de calage. Donc la fonction usb_write retourne -1 et affiche le message d'erreur ">>> usbledopen usb_write error!\n" suivi de "cat : /dev/usbled0 : Interrupted system call"
Avez vous déjà rencontrer ce problème car j'ai commencé récemment le développement de pilotes sous OpenBSD ?
Merci pour la qualité de l'article dans Linux Magazine que vous avez rédigé à ce sujet.
Edited by Franklin LALERE -
@franckytax Ah oui mais non en fait
😄 Le (ou la) Pico doit faire fonctionner un firmware capable de répondre aux messages USB envoyés par le driver OpenBSD. D'ailleurs la Pico n'apparaît comme un périphérique USB que dans ce cas (avec un firmware utilisant TinyUSB) où si elle est démarrée en mode BOOTSEL. C'est normal qu'une erreur soit provoquée, la Pico ne répond pas parce qu'elle ne connait pas ce type de requête, leusbledopen usb_write error!est donc totalement légitime.Je pensai que ce point était explicite dans l'article, même si le firmware lui-même n'en était pas l'objet. Je joins à ce message un ZIP avec un firwmare simpliste correspondant au driver. La led est sur GPIO 18 et la configuration USB (VIP, PID, etc) peut être bidouillée dans
usb_descriptors.c(mais ça marche à la base dans l'état).Notez que je vais creuser un peu le sujet, à commencer pas un article dans Hackable expliquant comment créer des périphériques USB avec la Pico (USB raw comme ici (et dans le code du ZIP), mais aussi USB HID). Cela servira de base pour détailler la partie cliente (dans Linux Mag), déclinée en : version libusb, version lib hidapi et version module kernel FreeBSD (peut-être aussi module kernel Linux mais c'est pas sûr).
-
Ok, j'ai maintenant mieux compris le lien entre le driver OpenBSD et le firmware du Pico. J'ai modifié le numéro de GPIO 18 en 25 et la led intégrée au pico clignote enfin. Merci du coup de main.
Edited by Franklin LALERE
Please register or sign in to comment