Difference between revisions of "USB Host"

From ArmadeusWiki
Jump to: navigation, search
(Controller)
(add missing board and OTG instructions)
Line 2: Line 2:
  
 
== Controller ==
 
== Controller ==
 
 
* [[APF9328DevFull|APF9328DevFull]]: it is equipped with a USB 2.0 Host controller (ISP1761) featuring three USB high speed ports. The ISP1761 driver is already configured with armadeus version 3. For older versions refer to the [[ISP1761_Linux_driver |how to install USB Host Linux driver for the DevFull]] page  
 
* [[APF9328DevFull|APF9328DevFull]]: it is equipped with a USB 2.0 Host controller (ISP1761) featuring three USB high speed ports. The ISP1761 driver is already configured with armadeus version 3. For older versions refer to the [[ISP1761_Linux_driver |how to install USB Host Linux driver for the DevFull]] page  
 
* [[APF27]] and [[APF27Dev]]: two Host ports are available. The controllers are integrated in the i.MX27 processor. Nothing has to be done to configure the controller. No special operation has to be done to use both USB ports (driver is included in default kernel).
 
* [[APF27]] and [[APF27Dev]]: two Host ports are available. The controllers are integrated in the i.MX27 processor. Nothing has to be done to configure the controller. No special operation has to be done to use both USB ports (driver is included in default kernel).
* [[APF27 PPS]]: only one Host port is available.
+
* [[APF27 PPS]]: one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.
 +
* [[APF51Dev]]: 2 Host ports and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.
 +
* [[PPS51]] one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.
 
* [[APF28Dev]]: one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.
 
* [[APF28Dev]]: one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.
  
= Using USB devices =
+
== Forcing an OTG controller to Host mode==
 +
<pre class="apf">
 +
BIOS> setenv extrabootargs otg_mode=device
 +
BIOS> saveenv
 +
BIOS> boot
 +
</pre>
 +
 
 +
== Using USB devices ==
  
== USB keyboard/mouse (HID: Human Interface Device) ==  
+
=== USB keyboard/mouse (HID: Human Interface Device) ===
=== Driver installation ===
+
==== Driver installation ====
 
* [[Talk:USB_Host|Done by default]] in recent releases
 
* [[Talk:USB_Host|Done by default]] in recent releases
  
===Plug the keyboard===
+
====Plug the keyboard====
 
* you should see on console (here on APF9328 for example):
 
* you should see on console (here on APF9328 for example):
 
<pre class="apf">
 
<pre class="apf">
Line 29: Line 37:
 
</pre>
 
</pre>
  
===Plug the mouse===
+
====Plug the mouse====
 
* you should see on console (here on APF9328 for example):
 
* you should see on console (here on APF9328 for example):
 
<pre class="apf">
 
<pre class="apf">
Line 38: Line 46:
 
</pre>
 
</pre>
  
== USB Flash memory / USB key / USB card reader / USB Hard Drive==  
+
=== USB Flash memory / USB key / USB card reader / USB Hard Drive===  
=== Driver installation ===
+
==== Driver installation ====
 
* [[Talk:USB_Host|Done by default]] in recent releases.
 
* [[Talk:USB_Host|Done by default]] in recent releases.
  
=== Plug the storage device ===
+
==== Plug the storage device ====
 
* You should see (for example):
 
* You should see (for example):
 
<pre class="apf">
 
<pre class="apf">
Line 53: Line 61:
 
</pre>
 
</pre>
  
=== Additional configuration ===
+
==== Additional configuration ====
 
* If /dev/sdaX does not exist, then create it:
 
* If /dev/sdaX does not exist, then create it:
 
<pre class="apf">
 
<pre class="apf">
Line 65: Line 73:
 
</pre>
 
</pre>
  
=== Mount the device ===
+
==== Mount the device ====
 
* Mount the USB Mass Storage device
 
* Mount the USB Mass Storage device
 
<pre class="apf">
 
<pre class="apf">
Line 86: Line 94:
 
</pre>
 
</pre>
  
== USB <--> Serial adapters ==
+
=== USB <--> Serial adapters ===
 
* See [[USB_to_serial_adapter]]
 
* See [[USB_to_serial_adapter]]
  
== USB <--> WiFi adapters ==
+
=== USB <--> WiFi adapters ===
 
* See [[USB_to_WiFi_adapter]]
 
* See [[USB_to_WiFi_adapter]]
  
= Links =
+
== Links ==
 
* Any links ?
 
* Any links ?
  

Revision as of 09:32, 14 July 2012

How-To use the USB Host functionnality of Armadeus boards under Linux.

Controller

  • APF9328DevFull: it is equipped with a USB 2.0 Host controller (ISP1761) featuring three USB high speed ports. The ISP1761 driver is already configured with armadeus version 3. For older versions refer to the how to install USB Host Linux driver for the DevFull page
  • APF27 and APF27Dev: two Host ports are available. The controllers are integrated in the i.MX27 processor. Nothing has to be done to configure the controller. No special operation has to be done to use both USB ports (driver is included in default kernel).
  • APF27 PPS: one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.
  • APF51Dev: 2 Host ports and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.
  • PPS51 one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.
  • APF28Dev: one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.

Forcing an OTG controller to Host mode

BIOS> setenv extrabootargs otg_mode=device
BIOS> saveenv
BIOS> boot

Using USB devices

USB keyboard/mouse (HID: Human Interface Device)

Driver installation

Plug the keyboard

  • you should see on console (here on APF9328 for example):
 usb 1-1.1: new low speed USB device using isp1761 and address 3
 usb 1-1.1: configuration #1 chosen from 1 choice
 input: NOVATEK USB Keyboard as /class/input/input0
 input: USB HID v1.10 Keyboard [NOVATEK USB Keyboard] on usb-platform-1.1
 input: NOVATEK USB Keyboard as /class/input/input1
 input: USB HID v1.10 Mouse [NOVATEK USB Keyboard] on usb-platform-1.1
  • To change keyboard keymap (by default US one is used):
 # loadkmap < /etc/i18n/fr.kmap

Plug the mouse

  • you should see on console (here on APF9328 for example):
 usb 1-1.2: new low speed USB device using isp1761 and address 6
 usb 1-1.2: configuration #1 chosen from 1 choice
 input: Logitech USB-PS/2 Optical Mouse as /class/input/input6
 input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-platform-1.2

USB Flash memory / USB key / USB card reader / USB Hard Drive

Driver installation

Plug the storage device

  • You should see (for example):
 usb 1-1.2: new high speed USB device using isp1761 and address 6
 usb 1-1.2: configuration #1 chosen from 1 choice
 scsi0 : SCSI emulation for USB Mass Storage devices
 usb 1-1.2: reset high speed USB device using isp1761 and address 6
 scsi 0:0:0:0: Direct-Access     Hama     Card Reader   CF 1.9C PQ: 0 ANSI: 0 CCS
 sd 0:0:0:0: [sda] Attached SCSI removable disk

Additional configuration

  • If /dev/sdaX does not exist, then create it:
 # mknod /dev/sda b 8 0
 # mknod /dev/sda1 b 8 1
 # mknod /dev/sda2 b 8 2
  • Create a mount directory "usbdisk"
 # mkdir -m 777 /mnt/usbdisk

Mount the device

  • Mount the USB Mass Storage device
 # mount -t vfat /dev/sda1 /mnt/usbdisk
  • Check what is present on the USB Mass Storage device:
 # ls -al /mnt/usbdisk
  • And if it is well mounted (for example):
 # mount
 rootfs on / type rootfs (rw)
 /dev/root on / type jffs2 (rw)
 proc on /proc type proc (rw)
 devpts on /dev/pts type devpts (rw)
 tmpfs on /tmp type tmpfs (rw)
 sysfs on /sys type sysfs (rw)
 /dev/sda1 on /mnt/usbdisk type msdos (rw,fmask=0022,dmask=0022,codepage=cp437)

USB <--> Serial adapters

USB <--> WiFi adapters

Links

  • Any links ?