Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failed to download firmware from a firmware file array for moxa-uport-1100-series-linux-kernel-6.x-driver-v6.0 #3

Open
pro-issue-tracker opened this issue Feb 20, 2025 · 1 comment

Comments

@pro-issue-tracker
Copy link

pro-issue-tracker commented Feb 20, 2025

Currently I am using WSL2 Ubuntu to build a custom WSL2 with moxa Linux driver source from MOXA website, and enable other USB serial controller devices in the custom kernel configuration.

git clone https://github.com/microsoft/WSL2-Linux-Kernel.git --depth=1 -b linux-msft-wsl-6.6.y
mkdir ~/moxa
wget https://cdn-cms-frontdoor-dfc8ebanh6bkb3hs.a02.azurefd.net/getmedia/c7a1d4ee-ff6f-46fe-b707-e6e2c6fcc152/moxa-uport-1100-series-linux-kernel-6.x-driver-v6.0.tgz
tar -xvzf moxa-uport-1100-series-linux-kernel-6.x-driver-v6.0.tgz.tgz
cp mxu* ~/moxa
cd ~/WSL2-Linux-Kernel
mkdir wsl
cp Microsoft/config-wsl wsl/linux.config
sudo ln -s ~/WSL2-Linux-Kernel /usr/src/$(uname -r)
sudo ln -s ~/moxa/mxu11x0/driver/m* /usr/src/$(uname -r)/drivers/usb/serial/
sudo ls -l /usr/src/$(uname -r)/drivers/usb/serial/m*
sudo nano /usr/src/$(uname -r)/drivers/usb/serial/Kconfig

config MOXA_UPORT_11X0
    tristate "USB Moxa UPort 11x0 Driver"
    depends on USB_SERIAL

sudo nano /usr/src/$(uname -r)/drivers/usb/serial/Makefile

obj-$(CONFIG_MOXA_UPORT_11X0) += mxu11x0.o

After repairing some incompatible function definition for mxu1_break() in mxu11x0.c:

#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27))
static int mxu1_tiocmget(struct usb_serial_port *port, struct file *file);
static int mxu1_tiocmset(struct usb_serial_port *port, struct file *file,
	unsigned int set, unsigned int clear);
static void mxu1_break(struct usb_serial_port *port, int break_state);
#else
#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39))
static int mxu1_tiocmget(struct tty_struct *tty, struct file *file);
static int mxu1_tiocmset(struct tty_struct *tty,  struct file *file,
	unsigned int set, unsigned int clear);
#else
static int mxu1_tiocmget(struct tty_struct *tty);
static int mxu1_tiocmset(struct tty_struct *tty,
	unsigned int set, unsigned int clear);
#endif
static int mxu1_break(struct tty_struct *tty, int break_state);
#endif

//...

#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27))
static void mxu1_break(struct usb_serial_port *port, int break_state)
{
#else
static int mxu1_break(struct tty_struct *tty, int break_state)
{
	struct usb_serial_port *port = tty->driver_data;
#endif

	struct mxu1_port *mxport = usb_get_serial_port_data(port);

	dbg("%s - state = %d", __FUNCTION__, break_state);

	if (mxport == NULL)
#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27))
		return;
#else
		return 0;
#endif

	mxu1_drain(mxport, (mxport->mxp_closing_wait*HZ)/100, 0);

	if(break_state == -1)
		mxport->mxp_send_break = MXU1_LCR_BREAK;
	else
		mxport->mxp_send_break = 0;
#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27))
	mxu1_set_termios(mxport->mxp_port,NULL);
#else
	mxu1_set_termios(NULL, mxport->mxp_port,NULL);
#endif

#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27))
		return;
#else
		return 0;
#endif
}

Preparing the KConfig...

make oldconfig -j$(nproc) KCONFIG_CONFIG=wsl/linux.config
make prepare -j$(nproc) KCONFIG_CONFIG=wsl/linux.config
make modules_prepare -j$(nproc) KCONFIG_CONFIG=wsl/linux.config
make menuconfig -j$(nproc) KCONFIG_CONFIG=wsl/linux.config
Device Drivers → USB Support → USB Serial Converter Support

Building the custom kernel...

make clean -j$(nproc) KCONFIG_CONFIG=wsl/linux.config
make -j$(nproc) KCONFIG_CONFIG=wsl/linux.config

sudo mkdir /mnt/c/wsl2
cp arch/x86/boot/bzImage /mnt/c/wsl2

make modules -j$(nproc) KCONFIG_CONFIG=wsl/linux.config
sudo make modules_install
sudo make install

Edited %USERPROFILE%/.wslconfig file in Windows:

[wsl2]
#nestedVirtualization=true
#networkingMode=nat
kernel=C:\\wsl2\\bzImage

After loading custom kernel image for WSL2

wsl@DESKTOP-78FITGF:~$ uname -a
Linux DESKTOP-78FITGF 6.6.75.1-microsoft-standard-WSL2+ #4 SMP PREEMPT_DYNAMIC Thu Feb 20 09:07:43 +08 2025 x86_64 x86_64 x86_64 GNU/Linux

My intent is to use the usbipd tool from USBIPD-WIN project to attach the moxa device to WSL2.

PS C:\Users\User> usbipd list
Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-1    c0f4:07c0  USB Input Device                                              Not shared
1-2    413c:301a  USB Input Device                                              Not shared
1-4    1edb:be78  Micro Converter HDMI to SDI 12G                               Not shared
1-9    110a:1618  MOXA UPort 1610-8 Series                                      Shared
1-10   110a:1150  UPort 1150                                                    Shared

Persisted:
GUID                                  DEVICE

PS C:\Users\User> usbipd attach -w -b 1-9
usbipd: info: Using WSL distribution 'Ubuntu' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Loading vhci_hcd module.
usbipd: info: Detected networking mode 'nat'.
usbipd: info: Using IP address 172.27.144.1 to reach the host.
PS C:\Users\User> usbipd attach -w -b 1-10
usbipd: info: Using WSL distribution 'Ubuntu' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Detected networking mode 'nat'.
usbipd: info: Using IP address 172.27.144.1 to reach the host.
wsl@DESKTOP-78FITGF:~$ lsusb -t
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=vhci_hcd/8p, 480M
    |__ Port 001: Dev 002, If 0, Class=[unknown], Driver=mxuport, 480M
    |__ Port 002: Dev 003, If 0, Class=Vendor Specific Class, Driver=[none], 12M
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=vhci_hcd/8p, 5000M
wsl@DESKTOP-78FITGF:~$ lsmod
Module                  Size  Used by
mxu11x0               122880  0
mxuport                32768  0
usbserial              61440  2 mxu11x0,mxuport
vhci_hcd               53248  0
usbip_core             36864  1 vhci_hcd
usbcore               356352  4 usbserial,mxu11x0,vhci_hcd,mxuport
usb_common             16384  3 usbip_core,usbcore,vhci_hcd
intel_rapl_msr         16384  0
intel_rapl_common      36864  1 intel_rapl_msr
crc32c_intel           16384  0
configfs               61440  1
ip_tables              32768  0
autofs4                53248  0
wsl@DESKTOP-78FITGF:~$ modprobe -n -D mxuport
insmod /lib/modules/6.6.75.1-microsoft-standard-WSL2+/kernel/drivers/usb/common/usb-common.ko
insmod /lib/modules/6.6.75.1-microsoft-standard-WSL2+/kernel/drivers/usb/core/usbcore.ko
insmod /lib/modules/6.6.75.1-microsoft-standard-WSL2+/kernel/drivers/usb/serial/usbserial.ko
insmod /lib/modules/6.6.75.1-microsoft-standard-WSL2+/kernel/drivers/usb/serial/mxuport.ko
wsl@DESKTOP-78FITGF:~$ modprobe -n -D mxu11x0
insmod /lib/modules/6.6.75.1-microsoft-standard-WSL2+/kernel/drivers/usb/common/usb-common.ko
insmod /lib/modules/6.6.75.1-microsoft-standard-WSL2+/kernel/drivers/usb/core/usbcore.ko
insmod /lib/modules/6.6.75.1-microsoft-standard-WSL2+/kernel/drivers/usb/serial/usbserial.ko
insmod /lib/modules/6.6.75.1-microsoft-standard-WSL2+/kernel/drivers/usb/serial/mxu11x0.ko

I have no issue to see ttyUSB* when loading mxuport driver for the Moxa Uport 1618 device:

[   34.533424] usb 1-1: New USB device found, idVendor=110a, idProduct=1618, bcdDevice= 2.00
[   34.533427] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   34.533428] usb 1-1: Product: MOXA UPort 1610-8
[   34.533429] usb 1-1: Manufacturer: MOXA Technologies
[   34.541991] usbcore: registered new interface driver usbserial_generic
[   34.541997] usbserial: USB Serial support registered for generic
[   34.545237] usbcore: registered new interface driver mxuport
[   34.545244] usbserial: USB Serial support registered for MOXA UPort
[   34.545803] mxuport 1-1:1.0: Direct firmware load for moxa/moxa-1618.fw failed with error -2
[   34.545806] mxuport 1-1:1.0: Firmware moxa/moxa-1618.fw not found
[   34.545806] mxuport 1-1:1.0: Using device firmware version v1.4.15
[   34.545808] mxuport 1-1:1.0: MOXA UPort converter detected
[   34.546692] usb 1-1: MOXA UPort converter now attached to ttyUSB0
[   34.547327] usb 1-1: MOXA UPort converter now attached to ttyUSB1
[   34.548010] usb 1-1: MOXA UPort converter now attached to ttyUSB2
[   34.548750] usb 1-1: MOXA UPort converter now attached to ttyUSB3
[   34.549624] usb 1-1: MOXA UPort converter now attached to ttyUSB4
[   34.550306] usb 1-1: MOXA UPort converter now attached to ttyUSB5
[   34.551029] usb 1-1: MOXA UPort converter now attached to ttyUSB6
[   34.551652] usb 1-1: MOXA UPort converter now attached to ttyUSB7

But, I have the following firmware downloading issue when loading mxu11x0 for MOXA UPort 1150 as follows:

[   44.192738] vhci_hcd: vhci_device speed not set
[   44.252748] usb 1-2: SetAddress Request (3) to port 1
[   44.299196] usb 1-2: New USB device found, idVendor=110a, idProduct=1150, bcdDevice= 2.00
[   44.299199] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   44.299200] usb 1-2: Product: UPort 1150
[   44.299201] usb 1-2: Manufacturer: Moxa Inc.
[   44.309462] usbcore: registered new interface driver mxu11x0
[   44.309471] usbserial: USB Serial support registered for MOXA UPort 1110
[   44.309475] usbserial: USB Serial support registered for MOXA UPort 1130
[   44.309478] usbserial: USB Serial support registered for MOXA UPort 1150
[   44.309481] usbserial: USB Serial support registered for MOXA UPort 1150I
[   44.309484] usbserial: USB Serial support registered for MOXA UPort 1130I
[   44.309488] usbserial: USB Serial support registered for MOXA USB Console
[   44.309491] usbserial: USB Serial support registered for MOXA USB-to-Serial Port Driver
[   44.309498] mxu11x0 1-2:1.0: MOXA UPort 1150 converter detected
[   45.425049] vhci_hcd: unlink->seqnum 58
[   45.425053] vhci_hcd: urb->status -104
[   45.425077] usb 1-2: mxu1_download_firmware - error downloading firmware, -110
[   45.425388] mxu11x0: probe of 1-2:1.0 failed with error -110
[   45.425408] mxu11x0: Ver6.0: MOXA UPort 11x0 USB to Serial Hub Driver

How can I solve this issue?

static int mxu1_download_firmware(struct mxu1_device *mxdev,
	unsigned char *firmware, unsigned int firmware_size)
{
	int status = 0;
	int buffer_size;
	int pos;
	int len;
	int done;
	__u8 cs = 0;
	__u8 *buffer;
	struct usb_device *dev = mxdev->mxd_serial->dev;
	struct mxu1_firmware_header *header;
	unsigned int pipe = usb_sndbulkpipe(dev,
		mxdev->mxd_serial->port[0]->bulk_out_endpointAddress);

	
	buffer_size = MXU1_FIRMWARE_BUF_SIZE + sizeof(struct mxu1_firmware_header);
	buffer = kmalloc(buffer_size, GFP_KERNEL);
	if (!buffer) {
		dev_err(&dev->dev, "%s - out of memory\n", __FUNCTION__);
		return -ENOMEM;
	}

	memcpy(buffer, firmware, firmware_size);
	memset(buffer+firmware_size, 0xff, buffer_size-firmware_size);

	for(pos = sizeof(struct mxu1_firmware_header); pos < buffer_size; pos++)
		cs = (__u8)(cs + buffer[pos]);

	header = (struct mxu1_firmware_header *)buffer;
	header->wLength = cpu_to_le16((__u16)(buffer_size - sizeof(struct mxu1_firmware_header)));
	header->bCheckSum = cs;

	dbg("%s - downloading firmware", __FUNCTION__);
	for (pos = 0; pos < buffer_size; pos += done) {
		len = min(buffer_size - pos, MXU1_DOWNLOAD_MAX_PACKET_SIZE);

		status = usb_bulk_msg(dev, pipe, buffer+pos, len, &done, 1000);

		if (status)
			break;
	}

	kfree(buffer);

	if (status) {
		dev_err(&dev->dev, "%s - error downloading firmware, %d\n", __FUNCTION__, status);
		return status;
	}

	dbg("%s - download successful", __FUNCTION__);

	return 0;
}

Even changing the timeout value from 1000 ms to 5000 ms in usb_bulk_msg() call in mxu1_download_firmware() doesn't help.

The "vhci_hcd: urb status -104" error typically indicates a problem with USB communication in a Linux environment. This error can occur when there are issues with the USB device connection, such as a timeout or disconnection.

USBView for Moxa UPort 1610-8:

Device Descriptor:
bcdUSB:             0x0200
bDeviceClass:         0xFF
bDeviceSubClass:      0x00
bDeviceProtocol:      0x00
bMaxPacketSize0:      0x40 (64)
idVendor:           0x110A
idProduct:          0x1618
bcdDevice:          0x0200
iManufacturer:        0x01
0x0409: "MOXA Technologies"
iProduct:             0x02
0x0409: "MOXA UPort 1610-8"
iSerialNumber:        0x00
bNumConfigurations:   0x01

ConnectionStatus: DeviceConnected
Current Config Value: 0x01
Device Bus Speed:     High
Device Address:       0x1E
Open Pipes:              6

Endpoint Descriptor:
bEndpointAddress:     0x01  OUT
Transfer Type:        Bulk
wMaxPacketSize:     0x0200 (512)
bInterval:            0x00

Endpoint Descriptor:
bEndpointAddress:     0x82  IN
Transfer Type:        Bulk
wMaxPacketSize:     0x0200 (512)
bInterval:            0x00

Endpoint Descriptor:
bEndpointAddress:     0x83  IN
Transfer Type:        Bulk
wMaxPacketSize:     0x0200 (512)
bInterval:            0x0A

Endpoint Descriptor:
bEndpointAddress:     0x04  OUT
Transfer Type:        Bulk
wMaxPacketSize:     0x0200 (512)
bInterval:            0x00

Endpoint Descriptor:
bEndpointAddress:     0x85  IN
Transfer Type:        Bulk
wMaxPacketSize:     0x0200 (512)
bInterval:            0x00

Endpoint Descriptor:
bEndpointAddress:     0x06  OUT
Transfer Type:        Bulk
wMaxPacketSize:     0x0200 (512)
bInterval:            0x00

Configuration Descriptor:
wTotalLength:       0x003C
bNumInterfaces:       0x01
bConfigurationValue:  0x01
iConfiguration:       0x00
bmAttributes:         0xC0 (Bus Powered Self Powered )
MaxPower:             0x00 (0 Ma)

Interface Descriptor:
bInterfaceNumber:     0x00
bAlternateSetting:    0x00
bNumEndpoints:        0x06
bInterfaceClass:      0x00
bInterfaceSubClass:   0x00
bInterfaceProtocol:   0x00
iInterface:           0x00

Endpoint Descriptor:
bEndpointAddress:     0x01  OUT
Transfer Type:        Bulk
wMaxPacketSize:     0x0200 (512)
bInterval:            0x00

Endpoint Descriptor:
bEndpointAddress:     0x82  IN
Transfer Type:        Bulk
wMaxPacketSize:     0x0200 (512)
bInterval:            0x00

Endpoint Descriptor:
bEndpointAddress:     0x83  IN
Transfer Type:        Bulk
wMaxPacketSize:     0x0200 (512)
bInterval:            0x0A

Endpoint Descriptor:
bEndpointAddress:     0x04  OUT
Transfer Type:        Bulk
wMaxPacketSize:     0x0200 (512)
bInterval:            0x00

Endpoint Descriptor:
bEndpointAddress:     0x85  IN
Transfer Type:        Bulk
wMaxPacketSize:     0x0200 (512)
bInterval:            0x00

Endpoint Descriptor:
bEndpointAddress:     0x06  OUT
Transfer Type:        Bulk
wMaxPacketSize:     0x0200 (512)
bInterval:            0x00

USBView for Moxa UPort 1150:

Device Descriptor:
bcdUSB:             0x0200
bDeviceClass:         0xFF
bDeviceSubClass:      0x00
bDeviceProtocol:      0x00
bMaxPacketSize0:      0x08 (8)
idVendor:           0x110A
idProduct:          0x1150
bcdDevice:          0x0200
iManufacturer:        0x01
0x0409: "Moxa Inc."
iProduct:             0x02
0x0409: "UPort 1150"
iSerialNumber:        0x00
bNumConfigurations:   0x01

ConnectionStatus: DeviceConnected
Current Config Value: 0x01
Device Bus Speed:     Full
Device Address:       0x1F
Open Pipes:              3

Endpoint Descriptor:
bEndpointAddress:     0x81  IN
Transfer Type:        Bulk
wMaxPacketSize:     0x0040 (64)
bInterval:            0x00

Endpoint Descriptor:
bEndpointAddress:     0x01  OUT
Transfer Type:        Bulk
wMaxPacketSize:     0x0040 (64)
bInterval:            0x00

Endpoint Descriptor:
bEndpointAddress:     0x83  IN
Transfer Type:   Interrupt
wMaxPacketSize:     0x0002 (2)
bInterval:            0x01

Configuration Descriptor:
wTotalLength:       0x0027
bNumInterfaces:       0x01
bConfigurationValue:  0x01
iConfiguration:       0x00
bmAttributes:         0x80 (Bus Powered )
MaxPower:             0x32 (100 Ma)

Interface Descriptor:
bInterfaceNumber:     0x00
bAlternateSetting:    0x00
bNumEndpoints:        0x03
bInterfaceClass:      0xFF
bInterfaceSubClass:   0x00
bInterfaceProtocol:   0x00
iInterface:           0x00

Endpoint Descriptor:
bEndpointAddress:     0x81  IN
Transfer Type:        Bulk
wMaxPacketSize:     0x0040 (64)
bInterval:            0x00

Endpoint Descriptor:
bEndpointAddress:     0x01  OUT
Transfer Type:        Bulk
wMaxPacketSize:     0x0040 (64)
bInterval:            0x00

Endpoint Descriptor:
bEndpointAddress:     0x83  IN
Transfer Type:   Interrupt
wMaxPacketSize:     0x0002 (2)
bInterval:            0x01

@pro-issue-tracker
Copy link
Author

pro-issue-tracker commented Feb 20, 2025

Test case A (usbipd detach UPort 1150, Restart the USB/IP Service and usbipd reattach : UPort 1150)

PS C:\Users\User> usbipd list
Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-1    c0f4:07c0  USB Input Device                                              Not shared
1-2    413c:301a  USB Input Device                                              Not shared
1-4    1edb:be78  Micro Converter HDMI to SDI 12G                               Not shared
1-9    110a:1618  MOXA UPort 1610-8 Series                                      Shared
1-10   110a:1150  UPort 1150                                                    Shared

Persisted:
GUID                                  DEVICE
wsl@DESKTOP-78FITGF:~$ sudo modprobe -r vhci_hcd
wsl@DESKTOP-78FITGF:~$ sudo modprobe vhci_hcd
PS C:\Users\User> usbipd attach -w -b 1-9
usbipd: info: Using WSL distribution 'Ubuntu' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Detected networking mode 'nat'.
usbipd: info: Using IP address 172.27.144.1 to reach the host.
[15191.676945] vhci_hcd: disconnect device
[15191.676959] vhci_hcd vhci_hcd.0: USB bus 1 deregistered
[15191.786854] vhci_hcd vhci_hcd.0: USB/IP Virtual Host Controller
[15191.786858] vhci_hcd vhci_hcd.0: new USB bus registered, assigned bus number 1
[15191.786863] vhci_hcd: created sysfs vhci_hcd.0
[15191.786986] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.06
[15191.786989] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[15191.786990] usb usb1: Product: USB/IP Virtual Host Controller
[15191.786991] usb usb1: Manufacturer: Linux 6.6.75.1-microsoft-standard-WSL2+ vhci_hcd
[15191.786991] usb usb1: SerialNumber: vhci_hcd.0
[15191.787317] hub 1-0:1.0: USB hub found
[15191.787338] hub 1-0:1.0: 8 ports detected
[15191.787827] vhci_hcd vhci_hcd.0: USB/IP Virtual Host Controller
[15191.787829] vhci_hcd vhci_hcd.0: new USB bus registered, assigned bus number 2
[15191.787882] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[15191.787966] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.06
[15191.787967] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[15191.787968] usb usb2: Product: USB/IP Virtual Host Controller
[15191.787969] usb usb2: Manufacturer: Linux 6.6.75.1-microsoft-standard-WSL2+ vhci_hcd
[15191.787969] usb usb2: SerialNumber: vhci_hcd.0
[15191.788074] hub 2-0:1.0: USB hub found
[15191.788089] hub 2-0:1.0: 8 ports detected
[15332.547708] vhci_hcd vhci_hcd.0: pdev(0) rhport(0) sockfd(3)
[15332.547712] vhci_hcd vhci_hcd.0: devid(65546) speed(2) speed_str(full-speed)
[15332.547732] vhci_hcd vhci_hcd.0: Device attached
[15332.730852] vhci_hcd: vhci_device speed not set
[15332.794214] usb 1-1: new full-speed USB device number 2 using vhci_hcd
[15332.866023] vhci_hcd: vhci_device speed not set
[15332.929386] usb 1-1: SetAddress Request (2) to port 0
[15332.979409] usb 1-1: New USB device found, idVendor=110a, idProduct=1150, bcdDevice= 2.00
[15332.979416] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[15332.979417] usb 1-1: Product: UPort 1150
[15332.979418] usb 1-1: Manufacturer: Moxa Inc.
[15332.981240] mxu11x0 1-1:1.0: MOXA UPort 1150 converter detected
[15334.150452] vhci_hcd: unlink->seqnum 20
[15334.150455] vhci_hcd: urb->status -104
[15334.150475] usb 1-1: mxu1_download_firmware - error downloading firmware, -110
[15334.150805] mxu11x0: probe of 1-1:1.0 failed with error -110

Test case B (usbipd detach UPort 1610-8, Restart the USB/IP Service and usbipd reattach : UPort 1610-8)

PS C:\Users\User> usbipd list
Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-1    c0f4:07c0  USB Input Device                                              Not shared
1-2    413c:301a  USB Input Device                                              Not shared
1-4    1edb:be78  Micro Converter HDMI to SDI 12G                               Not shared
1-9    110a:1618  MOXA UPort 1610-8 Series                                      Shared
1-10   110a:1150  UPort 1150                                                    Shared

Persisted:
GUID                                  DEVICE
wsl@DESKTOP-78FITGF:~$ sudo modprobe -r vhci_hcd
wsl@DESKTOP-78FITGF:~$ sudo modprobe vhci_hcd
PS C:\Users\User> usbipd attach -w -b 1-10
usbipd: info: Using WSL distribution 'Ubuntu' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Detected networking mode 'nat'.
usbipd: info: Using IP address 172.27.144.1 to reach the host.
[15469.978646] vhci_hcd: disconnect device
[15469.978658] vhci_hcd vhci_hcd.0: USB bus 1 deregistered
[15474.560216] vhci_hcd vhci_hcd.0: USB/IP Virtual Host Controller
[15474.560220] vhci_hcd vhci_hcd.0: new USB bus registered, assigned bus number 1
[15474.560225] vhci_hcd: created sysfs vhci_hcd.0
[15474.560345] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.06
[15474.560348] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[15474.560349] usb usb1: Product: USB/IP Virtual Host Controller
[15474.560350] usb usb1: Manufacturer: Linux 6.6.75.1-microsoft-standard-WSL2+ vhci_hcd
[15474.560350] usb usb1: SerialNumber: vhci_hcd.0
[15474.560500] hub 1-0:1.0: USB hub found
[15474.560516] hub 1-0:1.0: 8 ports detected
[15474.560742] vhci_hcd vhci_hcd.0: USB/IP Virtual Host Controller
[15474.560743] vhci_hcd vhci_hcd.0: new USB bus registered, assigned bus number 2
[15474.560834] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[15474.560919] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.06
[15474.560920] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[15474.560921] usb usb2: Product: USB/IP Virtual Host Controller
[15474.560922] usb usb2: Manufacturer: Linux 6.6.75.1-microsoft-standard-WSL2+ vhci_hcd
[15474.560922] usb usb2: SerialNumber: vhci_hcd.0
[15474.561072] hub 2-0:1.0: USB hub found
[15474.561089] hub 2-0:1.0: 8 ports detected
[15495.275953] vhci_hcd vhci_hcd.0: pdev(0) rhport(0) sockfd(3)
[15495.275957] vhci_hcd vhci_hcd.0: devid(65545) speed(3) speed_str(high-speed)
[15495.275983] vhci_hcd vhci_hcd.0: Device attached
[15495.519039] usb 1-1: new high-speed USB device number 2 using vhci_hcd
[15495.650789] usb 1-1: SetAddress Request (2) to port 0
[15495.672741] usb 1-1: New USB device found, idVendor=110a, idProduct=1618, bcdDevice= 2.00
[15495.672744] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[15495.672745] usb 1-1: Product: MOXA UPort 1610-8
[15495.672765] usb 1-1: Manufacturer: MOXA Technologies
[15495.678529] mxuport 1-1:1.0: Direct firmware load for moxa/moxa-1618.fw failed with error -2
[15495.678830] mxuport 1-1:1.0: Firmware moxa/moxa-1618.fw not found
[15495.678831] mxuport 1-1:1.0: Using device firmware version v1.4.15
[15495.678833] mxuport 1-1:1.0: MOXA UPort converter detected
[15495.679743] usb 1-1: MOXA UPort converter now attached to ttyUSB0
[15495.680351] usb 1-1: MOXA UPort converter now attached to ttyUSB1
[15495.680969] usb 1-1: MOXA UPort converter now attached to ttyUSB2
[15495.681563] usb 1-1: MOXA UPort converter now attached to ttyUSB3
[15495.682166] usb 1-1: MOXA UPort converter now attached to ttyUSB4
[15495.682737] usb 1-1: MOXA UPort converter now attached to ttyUSB5
[15495.683327] usb 1-1: MOXA UPort converter now attached to ttyUSB6
[15495.683920] usb 1-1: MOXA UPort converter now attached to ttyUSB7

When comparing both test cases, it looks like:
(1) vhci_hcd is unable to determine the speed of UPort 1150: "vhci_hcd: vhci_device speed not set" from vhci_hub_control() call
(2) vhci_hcd is able to determine the speed of UPort 1610-8: no ""vhci_hcd: vhci_device speed not set" issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant