ot8 Posted January 27, 2020 Share Posted January 27, 2020 After bootup I get # systemd-analyze Bootup is not yet finished. Please try again later. # systemctl list-jobs JOB UNIT TYPE STATE 142 systemd-update-utmp-runlevel.service start waiting 114 rk3399-bluetooth.service start running 1 multi-user.target start waiting If I stop rk3399-bluetooth.service everything completes and list-jobs is clean, but then bluetooth stops working. I've tried a few things in the rk3399-bluetooth unit file but so far I've not been able to find a way to make systemd happy and finish cleanly. By the way, in the service file it uses "--use_baudrate_for_downloade", typo and should be "--use_baudrate_for_download" Link to comment Share on other sites More sharing options...
sergvpurik Posted January 30, 2020 Share Posted January 30, 2020 (edited) Hello. I've Radxa Rock Pi 4 SBC. I've tried several latest Armbian Buster images with 5.x kernel and never got bluetooth working. I've tested your propose on Armbian_20.02.0-rc1_Rockpi-4b_buster_current_5.4.14_desktop... On 1/27/2020 at 3:27 PM, ot8 said: By the way, in the service file it uses "--use_baudrate_for_downloade", typo and should be "--use_baudrate_for_download" ... bluetooth doesn't work and I've got a flood in Rock Pi 4 syslog ... Jan 30 20:10:30 rockpi brcm_patchram_plus_rk3399[1089]: 01 03 0c 00 Jan 30 20:10:34 rockpi brcm_patchram_plus_rk3399[1089]: writing Jan 30 20:10:34 rockpi brcm_patchram_plus_rk3399[1089]: 01 03 0c 00 Jan 30 20:10:38 rockpi brcm_patchram_plus_rk3399[1089]: writing Jan 30 20:10:38 rockpi brcm_patchram_plus_rk3399[1089]: 01 03 0c 00 Jan 30 20:10:42 rockpi brcm_patchram_plus_rk3399[1089]: writing Jan 30 20:10:42 rockpi brcm_patchram_plus_rk3399[1089]: 01 03 0c 00 .... There're also interesting bluetooth related messages in Rock Pi 4 syslog: ... Jan 30 19:41:41 localhost systemd[1]: Starting Bluetooth Rockpi... ... Jan 30 19:41:50 localhost systemd[1]: Condition check resulted in Bluetooth service being skipped. Jan 30 19:41:50 localhost brcm_patchram_plus_rk3399[1089]: writing Jan 30 19:41:50 localhost brcm_patchram_plus_rk3399[1089]: 01 03 0c 00 Jan 30 19:41:54 localhost brcm_patchram_plus_rk3399[1089]: writing Jan 30 19:41:54 localhost brcm_patchram_plus_rk3399[1089]: 01 03 0c 00 ... Jan 30 19:45:10 localhost dbus-daemon[803]: [system] Activating via systemd: service name='org.bluez' unit='dbus-org.bluez.service' requested by ':1.44' (uid=1000 pid=1830 comm="/usr/lib/chromium/chromium --disable-smooth-scroll") Jan 30 19:45:10 localhost systemd[1]: Condition check resulted in Bluetooth service being skipped. ... Edited January 30, 2020 by TRS-80 put in some code fences for clarity Link to comment Share on other sites More sharing options...
piter75 Posted January 30, 2020 Share Posted January 30, 2020 18 minutes ago, sergvpurik said: ... bluetooth doesn't work and I've got a flood in Rock Pi 4 syslog I didn't have time and enough interest in Bluetooth to pursue a solution but one thing I have noticed with 5.x kernels on all rk3399 boards I own is that Bluetooth's firmware is correctly patched after cold boot / power on but not after a reboot. 1 Link to comment Share on other sites More sharing options...
sergvpurik Posted January 31, 2020 Share Posted January 31, 2020 Looks like the typo "--use_baudrate_for_downloade" is used to skip this brcm_patchram_plus_rk3399 option. I've tried to use brcm_patchram_plus_rk3399 without "--use_baudrate_for_downloade". I did power OFF/ON. Jan 31 19:28:46 localhost systemd[1]: Starting Bluetooth Rockpi... ... Jan 31 19:28:46 localhost brcm_patchram_plus_rk3399[1126]: proc_resetwriting Jan 31 19:28:46 localhost brcm_patchram_plus_rk3399[1126]: 01 03 0c 00 Jan 31 19:28:46 localhost kernel: [ 86.277578] ttyS0 - failed to request DMA ... Jan 31 19:28:46 localhost brcm_patchram_plus_rk3399[1126]: received 7 Jan 31 19:28:46 localhost brcm_patchram_plus_rk3399[1126]: 04 0e 04 01 03 0c 00 Jan 31 19:28:46 localhost brcm_patchram_plus_rk3399[1126]: writing ... Here're many "writing" and "received X" messages mixed with HEX dumps. ... Jan 31 19:28:50 localhost brcm_patchram_plus_rk3399[1126]: Done setting baudrate Jan 31 19:28:50 localhost kernel: [ 90.111432] Bluetooth: Core ver 2.22 Jan 31 19:28:50 localhost kernel: [ 90.111479] NET: Registered protocol family 31 Jan 31 19:28:50 localhost kernel: [ 90.111481] Bluetooth: HCI device and connection manager initialized Jan 31 19:28:50 localhost kernel: [ 90.111491] Bluetooth: HCI socket layer initialized Jan 31 19:28:50 localhost kernel: [ 90.111495] Bluetooth: L2CAP socket layer initialized Jan 31 19:28:50 localhost kernel: [ 90.111503] Bluetooth: SCO socket layer initialized Jan 31 19:28:50 localhost brcm_patchram_plus_rk3399[1126]: Can't set hci protocol Jan 31 19:28:50 localhost kernel: [ 90.119645] Bluetooth: HCI UART driver ver 2.3 ... Jan 31 19:28:55 localhost systemd[1]: Starting Bluetooth service... Jan 31 19:28:55 localhost bluetoothd[1729]: Bluetooth daemon 5.50 Jan 31 19:28:55 localhost dbus-daemon[779]: [system] Successfully activated service 'org.bluez' Jan 31 19:28:55 localhost systemd[1]: Started Bluetooth service. Jan 31 19:28:55 localhost bluetoothd[1729]: Starting SDP server Jan 31 19:28:56 localhost bluetoothd[1729]: kernel lacks bnep-protocol support Jan 31 19:28:56 localhost bluetoothd[1729]: System does not support network plugin Jan 31 19:28:56 localhost bluetoothd[1729]: Bluetooth management interface 1.14 initialized Jan 31 19:28:56 localhost NetworkManager[806]: <info> [1580498936.0221] bluez: use BlueZ version 5 ... and no bluetooth. hciconfig doesn't show any device. I found there isn't any selected HCI protocol in /proc/config.gz. # # Bluetooth device drivers # # CONFIG_BT_HCIBTUSB is not set # CONFIG_BT_HCIBTSDIO is not set CONFIG_BT_HCIUART=m # CONFIG_BT_HCIUART_H4 is not set # CONFIG_BT_HCIUART_BCSP is not set # CONFIG_BT_HCIUART_ATH3K is not set # CONFIG_BT_HCIUART_INTEL is not set # CONFIG_BT_HCIUART_AG6XX is not set # CONFIG_BT_HCIBCM203X is not set # CONFIG_BT_HCIBPA10X is not set # CONFIG_BT_HCIBFUSB is not set # CONFIG_BT_HCIVHCI is not set # CONFIG_BT_MRVL is not set CONFIG_BT_MTKSDIO=m # end of Bluetooth device drivers It looks similar to Raspberry Pi bluetooth problem ( https://github.com/raspberrypi/linux/issues/2479 ). And the solution was enabling CONFIG_SERIAL_DEV_BUS=m, CONFIG_BT_HCIUART_SERDEV=y, CONFIG_BT_HCIUART_BCM=y options. Link to comment Share on other sites More sharing options...
ot8 Posted February 3, 2020 Author Share Posted February 3, 2020 What I ended up doing for NanoPC T4 is disable the systemd service and in rc.local: /usr/bin/brcm_patchram_plus_rk3399 --enable_hci --no2bytes \ --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 \ --enable_lpm --patchram /lib/firmware/brcm/BCM4345C5.hcd /dev/ttyS0 & > ... bluetooth doesn't work and I've got a flood in Rock Pi 4 syslog The --enable_lpm stops the flood and allows it to more-or-less complete. FWIW I haven't yet seen an Armbian 5.x kernel where both wifi and bluetooth actually worked on the T4, but I haven't tried 5.x since I started messing around with brcm_patchram so maybe ... 1 Link to comment Share on other sites More sharing options...
sergvpurik Posted February 5, 2020 Share Posted February 5, 2020 I've built Armbain (5.4.17-rockchip64) from sources with additing the next options CONFIG_BT_HCIUART_SERDEV=y, CONFIG_BT_HCIUART_H4=y, CONFIG_BT_HCIUART_BCM=y to linux-rockchip64-current.config. And bluetooth is working. brcm_patchram_plus_rk3399[1446]: Done setting baudrate Feb 3 20:28:32 localhost kernel: [ 99.787745] Bluetooth: Core ver 2.22 Feb 3 20:28:32 localhost kernel: [ 99.787784] NET: Registered protocol family 31 Feb 3 20:28:32 localhost kernel: [ 99.787787] Bluetooth: HCI device and connection manager initialized Feb 3 20:28:32 localhost kernel: [ 99.787797] Bluetooth: HCI socket layer initialized Feb 3 20:28:32 localhost kernel: [ 99.787802] Bluetooth: L2CAP socket layer initialized Feb 3 20:28:32 localhost kernel: [ 99.787809] Bluetooth: SCO socket layer initialized Feb 3 20:28:32 localhost kernel: [ 99.800667] Bluetooth: HCI UART driver ver 2.3 Feb 3 20:28:32 localhost kernel: [ 99.800672] Bluetooth: HCI UART protocol H4 registered Feb 3 20:28:32 localhost kernel: [ 99.800829] Bluetooth: HCI UART protocol Broadcom registered Feb 3 20:28:32 localhost brcm_patchram_plus_rk3399[1446]: Done setting line discpline Feb 3 20:28:32 localhost systemd[1]: Starting Load/Save RF Kill Switch Status... Feb 3 20:28:32 localhost systemd[1]: Starting Bluetooth service... Feb 3 20:28:32 localhost systemd[1]: Started Load/Save RF Kill Switch Status. rock@rockpi:~$ hciconfig hci0: Type: Primary Bus: UART BD Address: 43:45:C5:00:1F:AC ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING RX bytes:1186 acl:0 sco:0 events:77 errors:0 TX bytes:3609 acl:0 sco:0 commands:71 errors:0 rock@rockpi:~$ sudo hcitool lescan LE Scan ... D8:2D:27:A6:53:45 (unknown) D8:2D:27:A6:53:45 Mi Smart Band 4 F8:D8:37:3D:17:75 (unknown) F8:D8:37:3D:17:75 Mi Smart Band 4 ... but only after a cold boot, as @piter75 said. Who knows what is a right way to make changes in Armbian sources to fix Linux kernel options for Rock Pi 4? I want to make pull request. 1 Link to comment Share on other sites More sharing options...
piter75 Posted February 5, 2020 Share Posted February 5, 2020 55 minutes ago, sergvpurik said: Who knows what is a right way to make changes in Armbian sources to fix Linux kernel options for Rock Pi 4? I want to make pull request. I would add the mentioned options to kernel config, built the kernel, copied resulting ".config" file over "linux-rockchip64-current.config" and then commit it. It would be great to do the same with "dev" kernel (which is now 5.5.y in Armbian's master) in the same PR for feature parity 1 Link to comment Share on other sites More sharing options...
chwe Posted February 5, 2020 Share Posted February 5, 2020 3 hours ago, sergvpurik said: Who knows what is a right way to make changes in Armbian sources to fix Linux kernel options for Rock Pi 4? IMO the easiest way is ./compile.sh KERNEL_CONFIGURE=yes make your changes when menuconfig pops up and you get your new config in output/config after compilation. It's even named the way it should be.. 1 Link to comment Share on other sites More sharing options...
sergvpurik Posted February 10, 2020 Share Posted February 10, 2020 Thank for your advices. My PR has already been merged. https://github.com/armbian/build/commit/48bb7ca9aec095138805c06ebde6d9d0b71ad9a3 1 Link to comment Share on other sites More sharing options...
Recommended Posts