Difference between revisions of "USB Gadget"

From ArmadeusWiki
Jump to: navigation, search
(Installation)
(Installation)
Line 12: Line 12:
 
* configure your Linux kernel:
 
* configure your Linux kernel:
 
  [armadeus]$ make linux-menuconfig
 
  [armadeus]$ make linux-menuconfig
in '''Device Drivers->USB support->USB Gadget Support''', choose:
+
in '''Device Drivers->USB support->USB Gadget Support''', choose '''Support for USB Gadgets''' and activate all USB Gadget Drivers:
  
[[Image:linuxconfig_usb_gadget.png]]
+
[[Image:linux_config_usb_gadget.png]]
 
+
Support for USB Gadgets and activate all USB Gadget Drivers
+
  
 
* save your configuration and then rebuild your kernel image:
 
* save your configuration and then rebuild your kernel image:
Line 26: Line 24:
 
  '''drivers/usb/gadget/g_serial.ko'''        Serial emulation on USB
 
  '''drivers/usb/gadget/g_serial.ko'''        Serial emulation on USB
 
  '''drivers/usb/gadget/g_zero.ko'''          For test
 
  '''drivers/usb/gadget/g_zero.ko'''          For test
  '''drivers/usb/gadget/imx_udc.ko'''        i.MX USB device Core Controller  
+
  '''drivers/usb/gadget/imx_udc.ko'''        i.MXL USB device Core Controller  
  
Copy imx_udc.ko, g_file_storage.ko & g_serial.ko to your target root filessytem in /lib/modules/
+
* reflash your RootFS or manually copy ''imx_udc.ko, g_file_storage.ko & g_serial.ko'' to your target in /lib/modules/...
  
 
==Usage==
 
==Usage==

Revision as of 23:48, 26 November 2007

Instructions to use the USB port of your Armadeus board to communicate with your PC

Introduction

You can connect your Armadeus board to a PC using its USB port and it can be enumerated as many USB devices (depending on the type of communication way you want to use):

  • serial device
  • net device
  • mass storage device

Installation

  • configure your Linux kernel:
[armadeus]$ make linux-menuconfig

in Device Drivers->USB support->USB Gadget Support, choose Support for USB Gadgets and activate all USB Gadget Drivers:

Linux config usb gadget.png

  • save your configuration and then rebuild your kernel image:
[armadeus]$ make

now you should have following drivers in your kernel source tree:

drivers/usb/gadget/gadgetfs.ko        For test
drivers/usb/gadget/g_ether.ko         Ethernet emulation on USB
drivers/usb/gadget/g_file_storage.ko  Mass storage
drivers/usb/gadget/g_serial.ko        Serial emulation on USB
drivers/usb/gadget/g_zero.ko          For test
drivers/usb/gadget/imx_udc.ko         i.MXL USB device Core Controller 
  • reflash your RootFS or manually copy imx_udc.ko, g_file_storage.ko & g_serial.ko to your target in /lib/modules/...

Usage

First, load the core controller driver on your board:

# insmod /lib/modules/imx_udc.ko

To emulate a mass storage device:

  • create or get a "backing storage file", for example: [[1]]
  • copy this file (uncompressed) in the /tmp directory of your rootfs (see NetworkConfig if necessary)
  • load g_file_storage module:
# insmod /lib/modules/g_file_storage.ko file=/tmp/backing_file
  • connect target's USB cable to your PC and,

On Linux:

  • as root, launch dmesg and find the /dev/sdaX device assigned to your board
  • then mount the device and enjoy file sharing:
[root@toto]# mount /dev/sda1 /mnt/tmp
[root@toto]# cd /mnt/tmp
[root@toto]# showimage /mnt/tmp/test.jpg

To emulate a serial port:

# mknod /dev/ttygserial c 127 0   (only needed the first time you want to use it, if not already existing)
# insmod /lib/modules/g_serial.ko

TBDL

Links