> For the complete documentation index, see [llms.txt](https://amobile-solutions.gitbook.io/yocto-developer-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://amobile-solutions.gitbook.io/yocto-developer-guide/getting-started/iot-800n-g420/genio-tools-setup.md).

# Genio-tools Setup

`genio-tools` provides `genio-flash`, the utility that writes images to the board over USB.

## Install

```
pip3 install genio-tools
```

Check it is on the path:

```
genio-flash --version
```

If the command is not found, `~/.local/bin` is probably missing from `PATH`:

```
export PATH="$HOME/.local/bin:$PATH"
```

## udev rules for non-root access

Without these, `genio-flash` has to run as root.

```
sudo curl -s -o /etc/udev/rules.d/72-aiot.rules \
  https://gitlab.com/mediatek/aiot/bsp/manifest/-/raw/main/72-aiot.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
```

Then add yourself to the `dialout` group and log out and back in:

```
sudo usermod -aG dialout $USER
```

## Verify the board is seen

With the board in download mode (see [Flash Image to Board](/yocto-developer-guide/getting-started/iot-800n-g420/flash-image-to-board.md)):

```
lsusb | grep -i mediatek
```

The board appears as a MediaTek device only while it is in download mode. Once it has booted normally it will not be listed.

## Further reading

The upstream documentation covers genio-tools in more depth, including partition handling and the `genio-config` utility:

* [MediaTek IoT Yocto documentation](https://genio.mediatek.com/doc/iot-yocto/latest/index.html)
