Difference between revisions of "Linux Mint: Serial port name bug on fitlet2 with Atom CPU"

From fit-PC wiki
Jump to: navigation, search
(Temporary solution)   (change visibility)
Line 41: Line 41:
 
# CONFIG_SERIAL_DEV_BUS is not set
 
# CONFIG_SERIAL_DEV_BUS is not set
 
</pre>
 
</pre>
 +
 +
* We've build such kernels for some distributions, missing device node will appear as /dev/ttyS2:
 +
<pre>
 +
# 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
 +
</pre>
 +
  
 
[[category:fitlet2]]
 
[[category:fitlet2]]
 
[[category:linux]]
 
[[category:linux]]
 
[[category:software]]
 
[[category:software]]

Revision as of 07:26, 12 September 2019

  • 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