# FAQ / Linux USB settings for Configurators ### Debian/Ubuntu Edit/create `udev` rules (use vi, nano, or any text editor). * Note: The filename/order can be different as per personal preferences. `45-stdfu-permissions.rules` is typical of most Cleanflight/Betaflight installations. ``` sudo nano /etc/udev/rules.d/45-stdfu-permissions.rules ``` Copy/paste this content and save it: (See STM list here: https://devicehunt.com/view/type/usb/vendor/0483) ``` # All STMicroelectronics STM32 devices SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="****", GROUP="plugdev", MODE="0664" # All Artery AT32 devices SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="****", GROUP="plugdev", MODE="0664" ``` Then reload the rules: ``` sudo udevadm control --reload ``` You must add yourself (username) to plugdev group. ``` sudo usermod -a -G plugdev $USER ``` Also, add yourself to the dialout group for tty/serial permissions: (Fixes `Failed to open serial port: FILE_ERROR_ACCESS_DENIED`) ``` sudo usermod -a -G dialout $USER ``` Often, ModemManger is installed by default, but we rarely use phone-line dial-up modems any more, so fix some issues by removing it: (usually required) ``` sudo systemctl stop ModemManager.service sudo systemctl disable ModemManager.service ``` Optionally, uninstall it: ``` sudo apt remove modemmanager ``` ***Required***: After the above `usermod` commands are applied, you **_must_** logout/login to update user access rights. They will not apply until re-login. Afterward, you may run Configurator which should properly connect to flight controllers. ### Fedora Similar to the above, but `plugdev` group is not needed. Instead use `uaccess` tag in your udev rule for dfu: ``` # ALL STMicroelectronics devices & DFU SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", TAG+="uaccess" # All Artery AT32 devices SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", MODE="0664", TAG+="uaccess" ``` *Caveat: I know nothing about USB in Fedora; This was taken from documentation and may be incomplete.* ### Arch Similar to all of the above, except `GROUP`/`MODE` can be replaced with `TAG`: ``` # ALL STMicroelectronics devices & DFU SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="****", TAG+="uaccess" # All Artery AT32 devices SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="****", TAG+="uaccess" ``` ### USB port locked If other app are locking the port, or it is otherwise stuck/occupied, try resetting it with `stty sane -F /dev/PORT`. e.g.: ``` sudo stty sane -F /dev/ACM0 ``` --- #### Sources * http://betaflight.com/docs/development/USB-Flashing#platform-specific-linux * http://betaflight.com/docs/wiki/archive/Installing-Betaflight#platform-specific-linux * https://github.com/emuflight/EmuConfigurator/wiki/Linux-Serial-&-USB * internets / experience * useful Q&A in here: https://askubuntu.com/questions/15570/configure-udev-to-change-permissions-on-usb-hid-device albeit for different device