Fix USB issues

You may encounter connection issues when trying to connect your Ledger Nano X device. If this occurs, try the solutions in this article.

Video instructions

MacOS, Windows or Linux

Open the app on your Ledger device before starting the companion (web) app, like Ledger Live.

  1. Close other applications (Ledger apps, crypto wallets, Geth, Parity, Mist, Bitcoin Core, etc).
  2. Turn OFF VPN and anti-virus.
  3. Change the USB cable if possible
  4. Try different USB ports.
  5. Restart your computer.
  6. Try another computer.

If the problem persists, please select your system below.

Windows
  • Update USB input device drivers
    1. Open Devices and Printers from Control Panel.
    2. Double-click Nano X and open the Hardware tab.
    3. Select USB Input Device and click Properties.
    4. Click Change Settings.
    5. Click the Driver tab.
    6. Click Update driver and select automatic driver selection.
    7. Repeat this for both USB Input Devices.

  • If it still does not work, please try on a Mac to verify that your Ledger Nano X is working properly.
Mac

Enable full disk access

Mac

Enable full disk access

  1. Open System Preferences.
  2. Go to Security & Privacy.
  3. In the Privacy tab, add Ledger Live to the Full Disk Access list.

Reset PRAM or NVAM

Another solution is to reset the PRAM or NVRAM on your Mac. Follow Apple's official instructions to do so before you retry in Ledger Live.

Linux

On Linux you need to create a set of udev rules to allow device access. Refer to the Chrome USB API documentation for details. Please follow the instructions below.

1. Add the udev rules

  1. Enter the following command to automatically add the rules and reload udev:
    wget -q -O - https://raw.githubusercontent.com/LedgerHQ/udev-rules/master/add_udev_rules.sh | sudo bash
  2. Retry connecting your Ledger Nano X with Ledger Live.

    If it's still not working, continue to step 3: troubleshooting.

2. Troubleshooting

Try each of the following three options. 

  • Option 1
    Edit the file /etc/udev/rules.d/20-hw1.rules file by adding the OWNER="<user>" parameter to each line, where <user> is your Linux user name.
    Then reload the rules as follows:
    udevadm trigger
    udevadm control --reload-rules
    Retry the connection with Ledger Live. If it does not work, try the next option.
  • Option 2
    Edit the /etc/udev/rules.d/20-hw1.rules file and add the following lines:
    KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="plugdev", ATTRS{idVendor}=="2c97"
    KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="plugdev", ATTRS{idVendor}=="2581"
    Then reload the rules:
    udevadm trigger
    udevadm control --reload-rules
    Retry connecting with Ledger Live. If it does not work yet, try the last option.
  • Option 3
    If you are on Arch Linux, you can try the following rules:
    /etc/udev/rules.d/20-hw1.rules
    SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="1b7c", MODE="0660", TAG+="uaccess", TAG+="udev-acl"
    SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="2b7c", MODE="0660", TAG+="uaccess", TAG+="udev-acl"
    SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="3b7c", MODE="0660", TAG+="uaccess", TAG+="udev-acl"
    SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="4b7c", MODE="0660", TAG+="uaccess", TAG+="udev-acl"
    SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="1807", MODE="0660", TAG+="uaccess", TAG+="udev-acl"
    SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="1808", MODE="0660", TAG+="uaccess", TAG+="udev-acl"
    SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0000", MODE="0660", TAG+="uaccess", TAG+="udev-acl"
    SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0001", MODE="0660", TAG+="uaccess", TAG+="udev-acl”
    SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0004", MODE="0660", TAG+="uaccess", TAG+="udev-acl"
  • Then reload the rules again and retry the connection with Ledger Live:
    udevadm trigger
    udevadm control --reload-rules

 

Was this article helpful?
23 out of 401 found this helpful