Background
After Linux-3.8, the Android kernel branch, then removed the F_ADB, using USB function FS, the user space to implement the USB adb function. This article, based on the original author's Google + article, has been tested on the Atmel SAMA5 Development Board, documenting the steps below, for the reader's reference as needed, and you can view the author's original text: https://plus.google.com/ 111524780435806926688/posts/aaeccfjknhe
Enable USB ADB on Linux-3.10
enable USB Functionfs when compiling the kernel
When building your kernel, make sure to configure in Functionfs:
Device Drivers USB Support-USB Gadget support
USB Gadget Driver, Function Filesystem
Set the correct USB vendor ID and Product ID
This setting can be placed on bootcmd or loading kernel modules via parameters: Modify Your boot parameters to set the vendor and product IDs so adb on your host RECOG Nizes the device.
G_FFS.IDVENDOR=0X18D1 G_ffs.idproduct=0x4e26
Alternatively this can also is done if your built the gadget driver as a module at load time:
Insmod G_ffs.ko idvendor=0x18d1 Idproduct=0x4e26
Start Android and Mount Functionfs to enable USB Adbnow here I ' m assuming you ' ve got a serial port working. Boot your target device with your new kernel (and insmod the g_ffs driver if necessary), and setup the FUNCTIONFS Director Y:
# mkdir/dev/usb-ffs # mkdir/dev/usb-ffs/adb # mount-o uid=2000,gid=2000-t functionfs adb/dev/usb-ffs/adb
Restart ADBD Daemon If everything is working, you can kill adbd and when it restarts it should find the Functionfs mount and make Use of it.
# PS adbd # kill <pid for Adbd>
Then enter CMD or Linux Host to successfully connect USB adb to get Android shell on your Host system, connect to the target using the ADB program:
$./adb Shell [email protected]:/#
Hooray there ' s your shell!