Skip to main content

Fix USB Driver Issues in Linux

Overview​

If the computer can't detect a Project Aria device, it may be that your Aria device's battery is drained, or in Linux it may be because of your USB driver.

Use the following instructions to resolve USB driver issues in Linux.

Prerequisites​

Android Device Bridge (ADB)

  • To install ADB use sudo apt install adb

Instructions​

Look for Aria device​

With your Aria device plugged into your computer, use the command adb devices.

If your device can be found, you'll get an output like:

List of devices attached
1820dc10 device

If you see no permissions:

List of devices attached
1820dc10 no permissions

you likely need to change your udev.

Change udev​

The following instructions were taken from Arch Linux's Android Debug Bridge instructions and Janos Gyerik's Adding udev rules:

Step 1: Get VENDOR_ID and PRODUCT_ID​

Use list devices to find the [VENDOR_ID] and [PRODUCT_ID] of your Aria device.

The command

lsusb

should show something like:

Bus 002 Device 002: ID 2833:0086 Facebook, Inc. Aria

In the example above, [VENDOR_ID] = 2833 and [PRODUCT_ID]=0086

Step 2: Modify 51-android.rules​

Using lsusb will create a new file /etc/udev/rules.d/51-android.rules

Modify 51-android.rules using the following commands or script. Make sure you create a group called adbusers and $USER, so that you have the correct permissions.

Commands

$ cat /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="2833", MODE="0660", GROUP="adbusers", TAG+="uaccess"
SUBSYSTEM=="usb", ATTR{idVendor}=="2833", ATTR{idProduct}=="0086", MODE="0660", GROUP="adbusers", SYMLINK+="android_adb"
SUBSYSTEM=="usb", ATTR{idVendor}=="2833", ATTR{idProduct}=="0086", MODE="0660", GROUP="adbusers", SYMLINK+="android_fastboot"

Reboot your workstation to ensure the changes are applied.

Script

This script will will apply the previous commands and reboot your workstation.

IDs=$(lsusb | grep Facebook)
if [[ "$?" -ne 0 ]]; then
echo "Make sure you have your VROS device connected to your workstation"
exit
fi
IDs=$(echo $IDs | cut -d " " -f 6)
VID=$(echo $IDs | cut -d ":" -f 1)
PID=$(echo $IDs | cut -d ":" -f 2)
conf_f=/etc/udev/rules.d/51-android.rules
sudo touch ${conf_f}
echo "SUBSYSTEM==\"usb\", ATTR{idVendor}==\"$VID\", MODE=\"0660\", GROUP=\"adbusers\", TAG+=\"uaccess\"" >> $conf_f
echo "SUBSYSTEM==\"usb\", ATTR{idVendor}==\"$VID\", ATTR{idProduct}==\"$PID\", MODE=\"0660\", GROUP=\"adbusers\", SYMLINK+=\"android_adb\"" >> $conf_f
echo "SUBSYSTEM=="usb", ATTR{idVendor}==\"$VID\", ATTR{idProduct}==\"$PID\", MODE=\"0660\", GROUP=\"adbusers\", SYMLINK+=\"android_fastboot\"" >> $conf_f
sudo groupadd adbusers
sudo usermod -aG adbusers $USER