labgrid-project / labgridhelper

Helper functions for labgrid tests
1 stars 7 forks source link

USB stick emulation: troubles for setup prior to use the feature #6

Open GLefebvre19 opened 5 years ago

GLefebvre19 commented 5 years ago

I am trying to emulate a USB stick as described in section 3.4 of the documentation.

My first concern is the USB OTG support. It seems that this protocol is mostly used on embedded devices such as cellphones/tablets. Does anyone know if it can work on a server board (PC)?

My second concern was with setting _CONFIG_USBGADGETFS=m in the kernel config. I tried to set Mass Storage Gadget as a module using menuconfig:

Device Drivers ---> USB support ---> USB Gadget Support ---> Mass Storage Gadget

but I am not sure it is the same as CONFIG_USB_GADGETFS... Then, I followed the official CentOS documentation (here and here) to build the kernel but the build failed with errors like:

drivers/usb/gadget/configfs.c:712:2: error: initializer element is not constant &gadget_strings_serialnumber.attr

For the record, I used: Linux CentOS75 3.10.0-862.6.3.el7.x86_64

I am new with building kernels, not to mention custom kernels, so dont hesitate to correct me if I did something wrong.

I know that these issues are not precisely labgrid related, but these steps are necessary in order to use labgrid features. I think there should be more details in the documentation, or at least point to some doc/examples.

It would also be great to specify the OS, kernel version, special hardware (if any), etc. that were used when the USB stick emulation feature was developped so that we can reproduce if needed.

Note: an e-mail was sent to @Emantor regarding the USB OTG support.

I will follow up on any useful info I get.

Emantor commented 5 years ago

I am trying to emulate a USB stick as described in section 3.4 of the documentation.

My first concern is the USB OTG support. It seems that this protocol is mostly used on embedded devices such as cellphones/tablets. Does anyone know if it can work on a server board (PC)?

USB OTG requires hardware support on the board you want to use. This feature was originally used with an Embest Riotboard.

My second concern was with setting _CONFIG_USBGADGETFS=m in the kernel config. I tried to set Mass Storage Gadget as a module using menuconfig:

Device Drivers ---> USB support ---> USB Gadget Support ---> Mass Storage Gadget

You can check the configuration variable name by pressing '?' while your cursor is on the item.

but I am not sure it is the same as CONFIG_USB_GADGETFS... Then, I followed the official CentOS documentation (here and here) to build the kernel but the build failed with errors like:

drivers/usb/gadget/configfs.c:712:2: error: initializer element is not constant &gadget_strings_serialnumber.attr

For the record, I used: Linux CentOS75 3.10.0-862.6.3.el7.x86_64

Unfortunately I can't help you with the compilation errors. USB OTG might neither be tested nor supported in the downstream CentOS kernel. Given the hardware requirements I doubt your server board supports OTG, but I might be wrong.

I am new with building kernels, not to mention custom kernels, so dont hesitate to correct me if I did something wrong.

I know that these issues are not precisely labgrid related, but these steps are necessary in order to use labgrid features. I think there should be more details in the documentation, or at least point to some doc/examples.

It would also be great to specify the OS, kernel version, special hardware (if any), etc. that were used when the USB stick emulation feature was developed so that we can reproduce if needed.

I agree that the labgrid documentation and the USBstick emulation in particular assumes the reader to have an embedded Linux background.

As mentioned above, the hardware was a Riotboard, together with a Distrokit Board Support Package build by the PTXDist build system. However an equivalent configuration should also be achievable by using Yocto or buildroot.

I'll leave this issue open until the usbstick emulation documentation is fixed.