You may encounter connection issues when trying to connect their Ledger Nano S or Ledger Blue device. If this occurs, try the following solutions one by one:
- Close other applications (Ledger apps, crypto wallets, Geth, Parity, Mist, Bitcoin Core, etc).
- Turn OFF VPN and anti-virus temporarily. If that works, make sure to whitelist Ledger Live.
- Change the USB cable if possible.
- Try different USB ports.
- Restart your computer.
- Try another computer.
If the problem persists, please select your system below.
- Right-click on Ledger Live to run it as Administrator.
- Error code 38
- Navigate to Windows > Settings > Update and Security > Troubleshoot > Run the troubleshooter
- The troubleshooter will detect USB Composite Device has error, possibly multiple times. Select one and continue.
- Select Apply this fix
- Repeat for other USB Composite Device has error errors. Then restart the computer.
- Update USB input device drivers
- Open Devices and Printers from Control Panel.
- Double-click Nano S and open the Hardware tab.
- Select USB Input Device and click Properties.
- Click Change Settings.
- Click the Driver tab.
- Click Update driver and select automatic driver selection.
- Repeat this for both USB Input Devices.
- If it still does not work, please try on a Mac to verify that your Ledger Nano S is working properly.
If you're having connection issues on a Mac, you can try giving Ledger Live full disk access:
- Open System Preferences.
- Go to Security & Privacy.
- In the Privacy tab, add Ledger Live to the Full Disk Access list.
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. Setup
- Check if the plugdev group exists by entering the command:
cat /etc/group | grep plugdev
- Follow the steps below if the previous command did not return a result
- Create the plugdev group:
sudo groupadd plugdev
- Check if you are in the group plugdev with the command:
groups
-
If the output does not contain plugdev, you are not in the plugdev group. Enter the command:
sudo gpasswd -a <user> plugdev
Note: replace <user> by your username, e.g for user "mike", it would be: sudo gpasswd -a mike plugdev.
-
Logout and login for the change to take effect. To verify you are now in the plugdev group, enter:
and search for a plugdev occurrence. If it's not there, you've missed a step and should restart from step 1.groups
- Create the plugdev group:
2. Add the udev rules
- 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
- Retry connecting your Ledger Nano S with Ledger Live.
If it's still not working, continue to step 3: troubleshooting.
3. 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:
Retry the connection with Ledger Live. If it does not work, try the next option.udevadm trigger
udevadm control --reload-rules - Option 2
Edit the /etc/udev/rules.d/20-hw1.rules file and add the following lines:
Then reload the rules:KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="plugdev", ATTRS{idVendor}=="2c97"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="plugdev", ATTRS{idVendor}=="2581"
Retry connecting with Ledger Live. If it does not work yet, try the last option.udevadm trigger
udevadm control --reload-rules - 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"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="1011", MODE="0660", GROUP="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="1015", MODE="0660", GROUP="plugdev" - Then reload the rules again and retry the connection with Ledger Live:
udevadm trigger
udevadm control --reload-rules
Still not working after following all the steps correctly? Please contact Ledger Support.