Linux kernel module that adds support for higher baud rates (> 115200) on IT8786 Super IO chips.
This module supports all of the standard baud rates up to 115200. After that only the below baud rates are supported
- 128000
- 230400
- 250000
- 256000
- 460800
- 921600
Since this module is built against the Linux kernel, it requires the appropriate headers for the current kernel. This also means that it will need to be recompiled if the kernel is updated. Below is a list of steps for compiling and installing this module for the current kernel.
The commands to install the dependencies varies between distros. Below are instructions for some common distros.
After the dependencies are installed the source files can be downloaded and compiled.
git clone https://github.com/ruggedscience/it8786_serial.gitmake
If everything goes well the module should be built and there should be an it8786_serial.ko file in the current directory. The module can be loaded in the current state using sudo insmod it8786_serial.ko. To verify the module successfully loaded run lsmod | grep it8786_serial and see if it is listed. To remove the module run sudo rmmod it8786_serial. This approach is good for testing but not ideal for long term use as the module can't be automatically loaded during boot.
To install the module into the default system module location run sudo make install. There may be some errors about SSL but this is normal.
For more information about signing the module see the Kernel Docs.
Once the module has been installed it can be loaded using sudo modprobe it8786_serial. Again, this is temporary and won't persist between boots. To make it permenant run sudo echo "it8786_serial" >> /etc/modules-load.d/it8786_serial.conf or manually add it8786_serial to the /etc/modules file.
If there are errors loading the module or opening the COM ports, check the output of sudo dmesg | grep it8786_serial. There is also a DEBUG flag in the it8786_serial.c file that can be set to enable debug logging. After setting that flag the module will need to be recompiled and loaded. Below are the steps to temporarily load a debug enabled module.
- Uncomment the
#define DEBUGline. (Should be line 11 in it8786_serial.c) makesudo rmmod it8786_serialsudo insmod it8786_serial.ko
After the debug module is loaded, make sure to reproduce the failure and then run sudo dmesg | grep it8786_serial to get the logs around when the failure happens.