Kernel module for 8250 missing

i use a serial homematic controller board on ttyAMA0 on raspberry pi3.
to get bluetooth working i added

enable_uart=1
dtoverlay=pi3-miniuart-bt
core_freq=250

to config.txt

but there is no 8250 serial port driver in the kernel to get it working.
Is there a way to get the missing driver or do i something wrong?

If you let us know the CONFIG_ option we can probably add it.

Sam

grep 8250 /boot/config-4.14.26-2-osmc

CONFIG_SERIAL_8250 is not set
Non-8250 serial port support
CONFIG_DEBUG_UART_8250 is not set

Hi

Hopefully the issue is now addressed with the following commit:

I’d appreciate it if you could test this and provide feedback before we potentially release this as an update to other users. To test this update:

  1. Login via the command line
  2. Edit the file /etc/apt/sources.list
  3. Add the following line: deb http://apt.osmc.tv stretch-devel main
  4. Run the following commands to update: sudo apt-get update && sudo apt-get dist-upgrade && reboot
  5. Your system should have have received the update.

Please see if the issue is resolved.

I also recommend you edit /etc/apt/sources.list again and remove the line that you added after updating. This will return you to the normal update channel.

after a modprobe 8250 dmesg gives me:
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled

also
/dev/serial0 → ttyAMA0
/dev/serial1 → ttyS0

are now there where they should be :slight_smile:

only bluetooth is not in the network settings
and /usr/bin/hciattach /dev/ttyS0 bcm43xx 921600 noflow says:
Can’t get port settings: Input/output error
Can’t initialize device: Input/output error

I assume BT worked before?

Might need to make some dtoverlay= changes in your config.txt

We set up the UART for BT as follows:

KERNEL=="ttyAMA[01]", PROGRAM="/bin/sh -c '\
        ALIASES=/proc/device-tree/aliases; \
        if [ $(cat $ALIASES/uart0) = $(cat $ALIASES/serial0) ]; then \
            echo 0;\
        elif [ $(cat $ALIASES/uart0) = $(cat $ALIASES/serial1) ]; then \
            echo 1; \
        else \
            exit 1; \
        fi\
    '", SYMLINK+="serial%c"

KERNEL=="ttyS0", PROGRAM="/bin/sh -c '\
        ALIASES=/proc/device-tree/aliases; \
        if [ $(cat $ALIASES/uart1) = $(cat $ALIASES/serial0) ]; then \
            echo 0; \
        elif [ $(cat $ALIASES/uart1) = $(cat $ALIASES/serial1) ]; then \
            echo 1; \
        else \
            exit 1; \
        fi \
    '", SYMLINK+="serial%c"

(udev rule)