Changes

Jump to: navigation, search

Linux Mint: Serial port name bug on fitlet2 with Atom CPU

4,827 bytes added, 08:13, 15 September 2019
/* Compile custom kernel */
* This document is applicable to fitlet2 configured with Intel(R) Atom(TM) E3XXX CPUrunning Linux.* It provides an explanation to workaround a bug related to the serial port's name changein certain Kernels.
== Serial port name ==
* 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
</pre>
* Missing device node /dev/ttyS6 will appear now as /dev/ttyHS1
* Tested with serial loopback cable:
<pre>
# Test with serial loopback cable:
$ sudo -i
$ echo "12345678" > /dev/ttyHS1
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
</pre>
 
=== Compile custom kernel ===
* The above temporary solution works for Ubuntu based distributions like Linux Mint, for other distributions, see below.
* Another way is to get serial port working is to recompile your kernel manually and unset CONFIG_SERIAL_DEV_BUS in menuconfig
* The configuration path: Device Drivers > Character devices > Serial device bus
<pre>
> Device Drivers > Character devices ─────────────────────────────────────────────────────────────────
┌─────────────────────────────────────── Character devices ───────────────────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty submenus ----). │
│ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes │
│ features. Press <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] built-in [ ] │
│ excluded <M> module < > module capable │
│ ┌───────────^(-)──────────────────────────────────────────────────────────────────────────────┐ │
│ │ <M> GSM MUX line discipline support (EXPERIMENTAL) │ │
│ │ < > Trace data sink for MIPI P1149.7 cJTAG standard │ │
│ │ [*] Automatically load TTY Line Disciplines │ │
│ │ [*] /dev/mem virtual device support │ │
│ │ [ ] /dev/kmem virtual device support │ │
│ │ Serial drivers ---> │ │
│ │ < > Serial device bus ---- │ │
│ │ <M> TTY driver to output user messages via printk │ │
│ │ <M> Parallel printer support │ │
│ │ [ ] Support for console on line printer │ │
│ └───────────┴(+)──────────────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
│ <Select> < Exit > < Help > < Save > < Load > │
└─────────────────────────────────────────────────────────────────────────────────────────────────┘
</pre>
 
* We've build example .deb kernel packages for Debian 10, missing device node will appear as /dev/ttyS2:
<pre>
# Download and install the kernel packages:
$ wget https://fit-iot.com/files/download/fitlet2/sw/images/Linux/Kernel-packages/linux-headers-4.19.67-compulab.2019.09.11_4.19.67-compulab.2019.09.11-1_amd64.deb
$ wget https://fit-iot.com/files/download/fitlet2/sw/images/Linux/Kernel-packages/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
 
# Test CONFIG_SERIAL_DEV_BUS variable:
$ cat /boot/config-4.19.67-compulab.2019.09.11 | grep CONFIG_SERIAL_DEV_BUS
# CONFIG_SERIAL_DEV_BUS is not set
 
# Test with serial loopback cable:
$ sudo -i
$ echo "12345678" > /dev/ttyS2
$ cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A mmio:0x7FFFF10000 irq:4 tx:0 rx:0
1: uart:16550A mmio:0x7FFFF0E000 irq:5 tx:0 rx:0 CTS
2: uart:16550A mmio:0x180000000 irq:6 tx:10 rx:10
3: uart:16550A mmio:0x7FFFF0C000 irq:7 tx:0 rx:0 CTS
</pre>
[[category:fitlet2]]
[[category:linux]]
[[category:software]]
425
edits