USB serial don't work Colibri iMX7

I am using a Colibri iMX7 and I have a problem with the USB serial on X27.

The only way to have it worked is to enter Recovery Mode doing ./update.sh -d and then I have the serial output.

But if I do a hard Reset, a software reboot, or a power off/on I have nothing on the serial output…


During the boot after the recovery mode I can see this error :

[FAILED] Failed to start Load default USB gadget schema g1.schema.
See 'systemctl status usbg.service' for details.

And systemctl status usbg.service returns :

[0;1;31m●[[0m usbg.service - Load default USB gadget schema g1.schema
   Loaded: loaded (/lib/systemd/system/usbg.service; enabled; vendor preset: enabled)
   Active: [[0;1;31mfailed[[0m (Result: exit-code) since Fri 2017-03-31 10:04:08 UTC; 22s ago
  Process: 305 ExecStartPost=/bin/sh -c /bin/cat /proc/device-tree/serial-number >                                     /sys/kernel/config/usb_gadget/g1/strings/0x409/s
erialnumber [[0;1;31m(code=exited, status=1/FAILURE)[[0m
  Process: 301 ExecStartPost=/bin/sh -c /bin/cat /proc/device-tree/model >                                     /sys/kernel/config/usb_gadget/g1/strings/0x409/product (
code=exited, status=0/SUCCESS)
  Process: 289 ExecStart=/usr/bin/gadget-import g1 /etc/usbg/g1.schema (code=exited, status=0/SUCCESS)
 Main PID: 289 (code=exited, status=0/SUCCESS)

Mar 31 10:04:08 colibri-imx7 systemd[1]: Starting Load default USB gadget schema g1.schema...
Mar 31 10:04:08 colibri-imx7 sh[305]: cat: can't open '/proc/device-tree/serial-number': No such file or directory
Mar 31 10:04:08 colibri-imx7 systemd[1]: [[0;1;39musbg.service: Control process exited, code=exited status=1[[0m
Mar 31 10:04:08 colibri-imx7 systemd[1]: [[0;1;31mFailed to start Load default USB gadget schema g1.schema.[[0m
Mar 31 10:04:08 colibri-imx7 systemd[1]: [[0;1;39musbg.service: Unit entered failed state.[[0m
Mar 31 10:04:08 colibri-imx7 systemd[1]: [[0;1;39musbg.service: Failed with result 'exit-code'.[[0m

I have this problem since I flashed my board.

Any idea?

Thank you for help !

I am using a Colibri iMX7 and I have a problem with the USB serial on X27.

I assume you mean the USB to Serial Connector X27 on our Colibri Evaluation Board, right? I further assume you did set the jumpers JP17, JP19, JP20, JP21 to position 2-3 for the Colibri UART_A to be connected to the USB to serial chip/connector?

The only way to have it worked is to enter Recovery Mode doing ./update.sh -d and then I have the serial output.
But if I do a hard Reset, a software reboot, or a power off/on I have nothing on the serial output…

That sounds rather strange. And you are sure you are not talking about USB Client X29 shared with USB OTG X30?

During the boot after the recovery mode I can see this error :

[FAILED] Failed to start Load default USB gadget schema g1.schema.
See ‘systemctl status usbg.service’ for details. have this problem since I flashed my board.

That really has nothing to do with UART_A potentially routed to X27 as the Colibri module knows nothing about this potentially being converted to USB. However that talks about the USB client side of things which would require separate activation as explained in the following article on our developer website. Note that this similarly applies to the Colibri iMX7 as well.

Thank you for your help.

I assume you mean the USB to Serial
Connector X27 on our Colibri
Evaluation Board, right? I further
assume you did set the jumpers JP17,
JP19, JP20, JP21 to position 2-3 for
the Colibri UART_A to be connected to
the USB to serial chip/connector?
Yes I mean the USB to Serial connector X27 and I did set the jumpers JP17 to JP21.
That sounds rather strange. And you are sure you are not talking about USB Client X29 shared with USB OTG X30?
I do have the USB to serial connected to my computer to have the Serial Log, and I have the X29/X30 connected to do the recovery mode.
And as I said since I flashed my board the only way to have the serial (X27) working is to do a recovery mode (X29/30)…

May I ask what exact model (e.g. Solo vs. Dual) and version (e.g. V1.1A, V1.1B or V1.1C) we are talking about?

And what BSP version are you trying this with?

It is possible that you’ve accidentally erased bcb data from flash, when in recovery try this commands:

Colibri iMX7 # nand erase.chip
Colibri iMX7 # run setupdate
Colibri iMX7 # run create_bcb
Colibri iMX7 # run update

Colibri iMX7 Dual V1.1C and I flashed the latest BSP downloaded here : http://developer1.toradex.com/files/toradex-dev/uploads/media/Colibri/Linux/Images/

Is it normal while I am in Recovery mode (since there is a known issue about flashing through USB) to configure a flashing process over Ethernet or SD card ?

Yes ! You saved my day ! I surely accidentally erased bcb data from flash. Thank you

FWIW, we use the serial number in the USB descriptor field. The serial number gets loaded from the device tree ( /proc/device-tree/serial-number). In your case that file was missing, hence initializing the USB gadget failed.