On most devices I've run across I can plug the device into a Linux machine and no additional drivers are needed in order for ADB to communicate with the device.

However on two LG devices from last year I am having trouble.

  • LG Viper (LG-LS840)
  • LG Optimus Elite (LG-LS969)

When I plug the devices in ADB does not list them when I run adb devices to get a list of connected devices. (I get an empty list)

I have ensured that USB Debugging is turned on for both devices. And I have at some point installed an LG driver which allows the ADB to work correctly from my Windows 7 PC. (Interestingly only the Viper works on my Windows PC, the Optimus Elite can't be found by the adb on windows either)

However I would really like to use ADB from a linux machine. I am far more concerned about getting the Viper working than the Optimus Elite, but a fix that worked for both would be ideal.

On the linux machine in question I can successfully use ADB to connect with every other device I've tested so I know that my environment is set up correctly.

I have tried creating various android.rules files under /etc/udev/rules.d/ but thus far nothing I've tried has had any effect. After creating 51-android.rules and filling in the appropriate vendor id (1004 for LG) I no longer need to use sudo adb to see the devices that do work, still nothing with the Viper though.

My question is: Do I need some sort of additional drivers in order to get ADB working correctly for the LG Viper (LG-LS840) on Linux, and if so where can I find said drivers? If not does anyone know if there is some setup step that I am missing that will allow this device to communicate with my Linux computer via ADB?

EDIT: I ran `lsusb' here are the relavent outputs:

Bus 001 Device 007: ID 1004:6312 LG Electronics, Inc.
Bus 001 Device 008: ID 1004:6317 LG Electronics, Inc.

The top line is a newer LG device that is working properly, the bottom line is the Viper device that can't communicate with adb.

  • The lsusb -v output for these devices is required to find out what happens here — seeing just VID:PID is not enough. Commented Jun 2, 2013 at 16:04

1 Answer 1


Normally, the quickest 'fix' to see what's going on is to try sudo adb devices (or sudo ./adb devices if you downloaded adb stand-alone.) If that works, then your permissions aren't right. Once the server starts you can use adb without sudo.

However since you said other phones work, my guess is that the LG phones attempt to auto-detect or auto-negotiate MTP / USB Mass Storage and don't like your Linux system (this is nothing new, vendors don't test this.)

There are no drivers for Linux for this (aside: I hope there never are.)

Check dmesg and lsusb output - it's possible they're doing something funny on the phone side with USB.

You may need to force any sort of auto-mounting or USB storage option to "charge only" which should make the phone behave.

  • I edited my question to include output from lsusb. I assume that the slight difference in ID is what is causing me trouble. I am not familiar with the lsusb tool. Is the vendor ID the entire string ('1004:6317') or is vendor ID only the part before the colon? ('1004') All of the devices in question default to 'Charge Only' so I think that is not my issue.
    – FoamyGuy
    Commented Nov 6, 2012 at 17:38
  • It looks like someone needs to add that ID to the list that counts as a phone. You should be able to do this yourself if you can recompile your kernel.
    – Broam
    Commented Nov 13, 2012 at 18:47
  • Actually adb under Linux accesses USB devices using libusb without any specific kernel driver. Also adb has a list of vendor IDs which it is allowed to use, but this does not explain the problem in question, because vendor IDs for both phones are the same. And in case of permission problems due to missing udev rules adb devices clearly shows “no permissions” in the list, so this is also not the cause of this problem. Commented Jun 2, 2013 at 16:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .