# Flashing Instructions In general, we recommend using the instructions in `README.md`, however, mostly as a development artifact, another method of flashing KMK exists (tested and supported only on Linux, though it should also work on macOS, the BSDs, and other Unix-likes. It may also work on Cygwin and the Windows Subsystem for Linux). Given `make` and `rsync` are available on your system (in `$PATH`), the following will copy the `kmk` tree to your CircuitPython device, and will copy the file defined as `USER_KEYMAP` as your `main.py`. It will also copy our `boot.py`, which allocates a larger stack size (simply - more of the device's RAM will be available to KMK and your keyboard config) than CircuitPython's default. If any of these files exist on your CircuitPython device already, they will be overwritten without a prompt. If you get permissions errors here, **don't run make as root or with sudo**. See `Troubleshooting` below. ```sh make MOUNTPOINT=/media/CIRCUITPY USER_KEYMAP=user_keymaps/nameofyourkeymap.py BOARD=board/nameofyourboard/kb.py ``` # Troubleshooting ## Linux/BSD Check to see if your drive may have mounted elsewhere with a GUI tool or other automounter. Most of these tools will mount your device under `/media`, probably as `/media/CIRCUITPY`. If it's not mounted, you can read up on how to mount a drive manually [here](https://wiki.archlinux.org/index.php/File_systems#Mount_a_file_system). For example, `sudo mount -o uid=$(id -u),gid=$(id -g) /dev/disk/by-label/CIRCUITPY ~/mnt` If you're still having issues, check out our support page to see where you can come say hi and the community will gladly help you out.