element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
Software Application Development Linux USB Device
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 4 replies
  • Subscribers 312 subscribers
  • Views 326 views
  • Users 0 members are here
Related

Linux USB Device

Former Member
Former Member over 12 years ago

Hi guys!

I'm currently trying to make the zedboard appear as a USB device for my host computer (running W7 and Ubuntu12.04).

I have tried with both the most recent kernel from Xilinx and with the kernel from Analog Devices from their reference design(3.3 I think).

I have been able to compile down modules for g_mass_storage, g_file_storage, g_hid etc...

I would be perfectly happy as soon as the zedboard enumerates correctly... The Gadgets have been compiled to modules and after power on for the board, I try to load the g_mass_storage module with args:

modprobe g_mass_storage file=/str/something

This command works fine, and gives the following dmesg output:

g_mass_storage gadget: controller 'xusbps-udc' not recognized
g_mass_storage gadget: Mass Storage Function, version: 2009/09/11
g_mass_storage gadget: Number of LUNs=1
lun0: LUN: removable file: /str/backing_file
g_mass_storage gadget: Mass Storage Gadget, version: 2009/09/11
g_mass_storage gadget: userspace failed to provide iSerialNumber
g_mass_storage gadget: g_mass_storage ready
xusbps-udc: bind to driver g_mass_storage

However, that is where my luck ends... Trying to insert it into one of my host PCs is not very successful, my Ubuntu gives the following output in dmesg:

...
[2415.212220]usb 2-5: new high-speed USB device number 7 using ehci hcd
[2415.282304]hub 2-0:1.0 unable to enumerate USB device on port 5
[2415.544223]usb 2-5: new high-speed USB device number 8 using ehci hcd
[2415.614193]hub 2-0:1.0 unable to enumerate USB device on port 5
[2415.876221]usb 2-5: new high-speed USB device number 9 using ehci hcd
[2415.946815]hub 2-0:1.0 unable to enumerate USB device on port 5
...

Anyone having succeeded in creating an USB device?

  • Sign in to reply
  • Cancel
  • Former Member
    0 Former Member over 12 years ago

    Furthermore, it seems like the gadget is loaded properly but then oscillates between suspend and resume-states, my dmesg-output is crowded with:
    ..
    g_serial gadget: resume
    g_serial gadget: suspend
    g_serial gadget: resume
    g_serial gadget: suspend
    ...
    and so on...

    Anyone having any ideas as to why and/or how to fix it? Or know where to search for information? Tried googling, but no luck yet...

    And on another topic, there seem to be something wrong with xusbps-driver, since it gets a null-pointer exception when unloading modules... Will look into it further tomorrow...

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 12 years ago

    Ok, found un-registring problem and fixed it. Inside the IFDEF for OTG in udc-driver there is an unconditional setting of two pointers. However, they may be NULL if a gadget is non-otg. Fixed by surrounding those two lines with:

    if (gadget_is_otg(&udc_controller->gadget)) {
    tudc_controller->xotg->start_peripheral = NULL;
    tudc_controller->xotg->stop_peripheral = NULL;
    }

    Hope it helps someone.

    However, not closer to solving why gadgets gets resumed/suspended .......

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 12 years ago

    Further information about the problem... When loading a module and plugging the cable into a host, it seems like only three types of interrupts ever appear... its

    xusbps-udc: bind to driver g_serial
    USB irq is : 100
    Suspend_irq
    g_serial gadget: suspend
    irq_src & usb_sts_suspend
    USB irq is : 40
    bus_resume
    g_serial gadget: resume
    USB irq is : 4
    USB irq is : 40
    USB irq is : 4
    USB irq is : 40
    USB irq is : 4
    USB irq is : 100
    Suspend_irq
    g_serial gadget: suspend
    irq_src & usb_sts_suspend
    USB irq is : 40
    bus_resume
    g_serial gadget: resume
    USB irq is : 4
    USB irq is : 40
    USB irq is : 4
    USB irq is : 40
    USB irq is : 4
    USB irq is : 100
    Suspend_irq
    g_serial gadget: suspend
    irq_src & usb_sts_suspend
    USB irq is : 40
    bus_resume
    g_serial gadget: resume
    USB irq is : 4
    USB irq is : 40
    USB irq is : 4
    USB irq is : 40
    USB irq is : 4
    USB irq is : 100
    Suspend_irq
    g_serial gadget: suspend
    irq_src & usb_sts_suspend
    USB irq is : 40
    bus_resume
    g_serial gadget: resume
    USB irq is : 4
    USB irq is : 40
    USB irq is : 4
    USB irq is : 40
    USB irq is : 4

    (0x4, 0x40 and 0x100) which are called:
    #define  USB_STS_PORT_CHANGE 0x00000004
    #define  USB_STS_RESET       0x00000040
    #define  USB_STS_SUSPEND     0x00000100

    starting with a suspend... Does this point towards a hw-fault? or is it something wrong in the driver?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 12 years ago

    Hi, I'd like to make the zedboard visible as device using USB but  I've not been able to do this. I've done some test but without success. The strange issue is that the driver seems not receive any event when I plug/unplug the USB cable.

    Any suggestion on how proceed. There is any specific kernel version where you have tested this functionality?

    Thanks in advance,
    Manuele

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube