Difference between revisions of "USB Gadget"

From ArmadeusWiki
Jump to: navigation, search
 
(Installation)
Line 10: Line 10:
 
==Installation==
 
==Installation==
  
when you build your kernel image, then modify your configuration:
+
* configure your Linux kernel:
  [user@toto]$ make xconfig
+
  [armadeus]$ make linux-menuconfig
in Device Drivers->USB support->USB Gadget Support, choose Support for USB Gadgets and activate all USB Gadget Drivers
+
in '''Device Drivers->USB support->USB Gadget Support''', choose:
Save your configuration and then rebuild your kernel image:
+
 
  [user@toto]$ make
+
[[Image:linuxconfig_usb_gadget.png]]
 +
 
 +
Support for USB Gadgets and activate all USB Gadget Drivers
 +
 
 +
* save your configuration and then rebuild your kernel image:
 +
  [armadeus]$ make
 
now you should have following drivers in your kernel source tree:
 
now you should have following drivers in your kernel source tree:
 
  '''drivers/usb/gadget/gadgetfs.ko'''        For test
 
  '''drivers/usb/gadget/gadgetfs.ko'''        For test

Revision as of 22:45, 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:

File:Linuxconfig usb gadget.png

Support for USB Gadgets and activate all USB Gadget Drivers
  • 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.MX USB device Core Controller 

Copy imx_udc.ko, g_file_storage.ko & g_serial.ko to your target root filessytem 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