Tiago Batista Cardoso 0a97bda868 minimal packet handling
2026-02-05 17:57:34 +01:00
2026-02-05 17:57:34 +01:00
2026-02-05 17:04:23 +01:00
2026-02-05 17:57:34 +01:00

journal de bord

super document partage

etat initial du device : lorsqu'on le branche, lsmod retourne cette ligne :

usbnet                 61440  1 cdc_ether

qui est le driver charge nativement par le kernel.

il existe un moyen de "blacklist" ce-dit driver :

creer un fichier :

echo "blacklist cdc_ether" | sudo tee /etc/modprobe.d/blacklist.conf

puis mettre a jour le initramfs :

sudo update-initramfs -u

En l'etat (5/2/26) le driver s'installe, s'attache au device ch349 puis creer une interface reseau sur la machine. on peut alors recuperer le nom de l'interface grace a :

ip a

puis attribuer une IP a l'interface grace aux commandes suivantes :

sudo ip addr add 192.168.1.100/24 dev <nom_interface>
sudo ip link set <nom_interface> up

ce qui nous permet ensuite, depuis une autre machine d'envoyer des pings a l'ip (192.168.1.100) qui sont ensuite parses en hexadecimal et affiches sur l'interface usb (visibles en executant dmesg | grep ch349)

Todo

  • Enregistrer une interface réseau
  • Implémenter les opérations réseau
  • Gérer la réception de trames
    • Soumettre des URBs (USB Request Blocks) pour lire en continu sur l'endpt. IN
    • Parser les trames ethernet reçues
    • Les passer au network stack avec netif_rx(skb)
  • Gérer l'émission de trames
  • Récupérer l'adresse MAC
  • Gérer les contrôles CDC
    • Link up/down notifications via endpoint interrupt (0x81)
    • Vitesse de connexion (10/100 Mbps)
    • Statistiques réseau
  • Gestion d'énergie et erreurs
    • Gérer les déconnexions brutales
    • Suspend/Resume propres
    • Récupération d'erreurs USB

Utile

https://cdn.promelec.ru/upload/items/2025/09/18/CH397_.pdf

Description
No description provided
Readme 202 KiB
Languages
C 88.6%
Makefile 11.4%