Setup Tool Environment (Linux)
The flash programming process is performed over a USB connection between the target board and the host computer containing the image.
To do so, you need to install Genio tools. It is a set of tools to configure or interact with MediaTek Genio boards.
Note
Genio tools also supports Windows. Please visit this page if you want to flash the board under Windows environment, however a Linux host is required for building.
System Requirements
To install Genio tools on a Linux host, you need:
Ubuntu 18.04 or later LTS version
Administrator privilege
Internet connection
Git 1.8 or later
Python 3.8 or later
pip3 20.3 or later
Fastboot 28.0.2 or later
Note
If your board is powered through a USB-C connector, e.g. i500-pumpkin, we recommend using high quality “fast charging” USB-C cables.
Git
Install Git from the projects repositories:
apt update
apt-get install git
You can check the Git version by running the following command:
git --version
git version 2.34.1
If the version of Ubuntu you are using does not provide a new enough version of Git, the Ubuntu Git Maintainers Personal Package Archive (PPA) can be used to retrieve a newer version:
add-apt-repository ppa:git-core/ppa
apt update
apt-get install git
Python 3
If you don’t have Python 3 and pip installed, run following commands to install them.
sudo apt update
sudo apt-get install python3
sudo apt-get install python3-pip
You can check Python and pip versions by running the following commands:
python3 --version
Python 3.9.2
pip3 --version
pip 21.2.4 from /usr/bin/pip3 (python 3.9)
If your version of pip3
is older than 20.3. Please upgrade it by running:
pip3 install --upgrade pip
Fastboot and ADB
Genio tools use fastboot to flash image. The Fastboot and ADB tools are packaged for Ubuntu. The Genio tools require the Fastboot device driver to be properly installed. ADB can be used to connect to the board once it has been flashed with rity-demo-image.
Run following commands to install packages:
sudo apt update
sudo apt-get install android-tools-adb android-tools-fastboot
Note
Refer to Android SDK Platform-Tools to install Fastboot if you are using Linux distributions other than Ubuntu.
USB Device rules
In order for your host machine to be able to talk to the board through USB without needing root privileges, you need to create a udev rules that will grant user access to your device:
echo -n 'SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", ATTR{idProduct}=="201c", MODE="0660", TAG+="uaccess"
SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", ATTR{idProduct}=="0003", MODE="0660", TAG+="uaccess"
SUBSYSTEM=="usb", ATTR{idVendor}=="0403", MODE="0660", TAG+="uaccess"
SUBSYSTEM=="gpio", MODE="0660", TAG+="uaccess"
' | sudo tee /etc/udev/rules.d/72-aiot.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
Also, add new udev rule and add your user account to plugdev
group if you plan to use adb to connect to the board:
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", ATTR{idProduct}=="201c", MODE="0660", $ GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/96-rity.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo usermod -a -G plugdev $USER
This last command requires you to logout and login again with your account to make it effective. You only have to do this once.
udev is a device manager for the Linux kernel.
It can be used to grant an user or a group the permission to access a device.
In this case, we added a udev rule to assign the plugdev
group to the newly created SoC USB device.
In order to access the SoC, your user account must be a member of the plugdev
group.
UART Setup
For Linux users, before you can connect to the device you must check if your user account is
a member of the dialout
group:
groups
user dialout cdrom floppy sudo audio dip video plugdev netdev bluetooth
If not, you need to add your account to that group:
sudo usermod -a -G dialout $USER
This last command requires you to logout and login again with your account to make it effective. You only have to do this once.
Install a Serial Terminal Emulator
A serial terminal emulator is required to communicate with the UART serial console provided by IoT Yocto. There are a number of serial terminal emulators for Linux, including picocom and screen.
To install picocom run:
sudo apt update
sudo apt-get install picocom
To install screen run:
sudo apt update
sudo apt-get install screen
Install Genio Tools
Genio Tools contains the following utilities:
genio-config
checks if Linux or Windows host has proper setup.genio-flash
provides flash writing functions.genio-board
allows you to reset the board programmatically.
Only genio-flash
and genio-config
are used throughout operations mentioned in this guide. For usage of other utilities, please refer to Genio Tools.
After finishing the installation of the required packages and necessary configuration, we are now ready to install Genio Tools:
pip3 install -U genio-tools
Important
Please logout and login again after installing genio-tools.
This makes sure the PATH
environment variable is being properly updated.
After re-login, please check your installation with genio-config
:
genio-config
fastboot: OK
udev rules: OK
In case your environment is not set up correctly, the tool provides you with instructions on how to correctly configure it.