На большинстве устройств, с которыми я сталкивался, я могу подключить устройство к машине с Linux, и для связи ADB с устройством не требуются дополнительные драйверы.
Однако на двух устройствах LG прошлого года у меня возникли проблемы.
Когда я подключаю устройства, ADB не перечисляет их, когда я запускаю, adb devices
чтобы получить список подключенных устройств. (Я получаю пустой список)
Я убедился, что отладка по USB включена для обоих устройств. И в какой-то момент я установил драйвер LG, который позволяет ADB правильно работать с моего ПК с Windows 7. (Интересно, что на моем ПК с Windows работает только Viper, Optimus Elite также не может быть найден через adb на Windows)
Однако я бы очень хотел использовать ADB с Linux-машины. Я гораздо больше беспокоюсь о том, чтобы Viper работал, чем Optimus Elite, но исправление, которое работало бы для обоих, было бы идеальным.
На рассматриваемой машине с Linux я могу успешно использовать ADB для подключения к любому другому устройству, которое я тестировал, поэтому я знаю, что моя среда настроена правильно.
Я пытался создать различные файлы android.rules, /etc/udev/rules.d/
но до сих пор ничего из того, что я пробовал, не имело никакого эффекта. После создания 51-android.rules
и заполнения соответствующего идентификатора поставщика (1004 для LG) мне больше не нужно использовать sudo adb, чтобы увидеть, какие устройства работают, но с Viper все еще ничего.
Мой вопрос: Нужны ли мне какие-то дополнительные драйверы для правильной работы ADB для LG Viper (LG-LS840) в Linux, и если да, то где я могу найти указанные драйверы? Если нет, кто-нибудь знает, есть ли какой-то этап настройки, который я пропустил, что позволит этому устройству взаимодействовать с моим компьютером Linux через ADB?
РЕДАКТИРОВАТЬ: я запустил `lsusb', вот соответствующие выходные данные:
Bus 001 Device 007: ID 1004:6312 LG Electronics, Inc.
Bus 001 Device 008: ID 1004:6317 LG Electronics, Inc.
Верхняя строка - более новое устройство LG, которое работает нормально, нижняя строка - устройство Viper, которое не может связаться с adb.
Обычно самое быстрое «исправление», чтобы увидеть, что происходит, — это попробовать sudo adb devices
(или sudo ./adb devices
если вы загрузили автономный adb). Если это работает, значит, ваши разрешения неверны. После запуска сервера вы можете использовать adb без sudo.
Однако, поскольку вы сказали, что другие телефоны работают, я предполагаю, что телефоны LG пытаются автоматически обнаруживать или автоматически согласовывать MTP / USB Mass Storage и им не нравится ваша система Linux (в этом нет ничего нового, поставщики не тестируют это. )
Драйверов для Linux для этого нет (в сторону: надеюсь, никогда не будет).
Проверяйте dmesg
и lsusb
выводите - возможно они что-то забавное делают на стороне телефона с USB.
Возможно, вам придется принудительно настроить любой вариант автоматического монтирования или USB-накопителя на «только зарядку», что должно заставить телефон работать.
lsusb
инструментом. Является ли идентификатор поставщика полной строкой («1004:6317») или идентификатором поставщика является только часть перед двоеточием? ('1004') Все рассматриваемые устройства по умолчанию используют режим «Только зарядка», поэтому я думаю, что это не моя проблема.adb
под Linux доступ к USB-устройствам осуществляется libusb
без какого-либо специального драйвера ядра. Также adb
есть список идентификаторов поставщиков , которые разрешено использовать, но это не объясняет рассматриваемой проблемы, поскольку идентификаторы поставщиков для обоих телефонов одинаковы. А в случае проблем с разрешениями из-за отсутствия правил udev adb devices
в списке явно отображается «нет разрешений», так что это тоже не причина этой проблемы.
Сергей Власов
lsusb -v
данные для этих устройств необходимы, чтобы узнать, что здесь происходит — просто видеть VID:PID недостаточно.