Linux Mint: Serial port name bug on fitlet2 with Atom CPU
From fit-PC wiki
- This document is applicable to fitlet2 configured with Intel(R) Atom(TM) E3XXX CPU running Linux.
- It provides an explanation to workaround a bug related to the serial port's name change in certain Kernels.
Serial port name
- There is a bug in serial port name in Linux on Intel(R) Atom(TM) E3XXX platforms.
https://bugs.launchpad.net/ubuntu/+source/linux-oem/+bug/1769610
- Depending on Linux distribution and kernel version serial port name can be: /dev/ttyS6 or /dev/ttyHS1 or something similar or just unavailable
- For example, on Linux Mint 19 with kernel 4.15+ serial port initially detected as /dev/ttyS6, but then device node is absent in the /dev/ directory
Temporary solution
- Ensure latest BIOS is installed: Fitlet2:_BIOS_Files
- Install development Ubuntu kernel provided by Canonical Kernel Team
$ sudo add-apt-repository ppa:canonical-kernel-team/ppa $ sudo apt update $ sudo apt install linux-oem $ sudo reboot
- Missing device node /dev/ttyS6 will appear now as /dev/ttyHS1
- Tested with serial loopback cable:
$ sudo -i $ echo "12345678" > /dev/ttyHS1 $ cat /proc/tty/driver/serial | grep -v unknown serinfo:1.0 driver revision: 4: uart:16550A mmio:0x7FFFF10000 irq:4 tx:0 rx:0 5: uart:16550A mmio:0x7FFFF0E000 irq:5 tx:0 rx:0 RTS|CTS|DTR 6: uart:16550A mmio:0x281011000 irq:6 tx:10 rx:10 RTS|DTR 7: uart:16550A mmio:0x7FFFF0C000 irq:7 tx:0 rx:0 CTS
Compile custom kernel
- Another way is to get serial port working is to recompile your kernel manually and disable CONFIG_SERIAL_DEV_BUS in menuconfig:
Device Drivers -> Character devices -> < > Serial device bus
- As result in .config will appear:
# CONFIG_SERIAL_DEV_BUS is not set
- We've build such kernels for some distributions, missing device node will appear as /dev/ttyS2:
# Debian $ wget /path/to/linux-headers-4.19.67-compulab.2019.09.11_4.19.67-compulab.2019.09.11-1_amd64.deb $ wget /path/to/linux-image-4.19.67-compulab.2019.09.11_4.19.67-compulab.2019.09.11-1_amd64.deb $ sudo dpkg -i linux-headers-* linux-image-* $ sudo reboot