Jump to content

Lack of Bluetooth support on rock 4 c+


Recommended Posts

Hello community,


I am running Armbian taken from here on Radxa Rock 4c+. Everything I need seems to be in order (including wifi) but there appears to be no bluetooth device present (it is there using Radxa's images which have old kernels though).

I tried to find out what could be the reason and noticed that dtb coming with Radxa has this:


		wireless-bluetooth {

			uart0-gpios {
				rockchip,pins = <0x02 0x13 0x00 0xd0>;
				phandle = <0xf1>;

 in pincntrl section and few other bluetooth/uart related bits while one coming with Armbian does not.


I am not sure if this is the root cause and what the easiest way to fix it. I would appreciate any pointers on how to make bluetooth work.



Edited by Vskho
Link to comment
Share on other sites

Just to leave a note for someone who would come across


As I suspected, the issue was in device tree configuration. I checked DTS files for the rock 4c+ in the corresponding release tag of the mainline kernel source (6.1 in my case), and saw that it had bluetooth config present, similar to Radxa's own kernels. I could not find where does Armbian take their DTSes from.


Anyway, things I did:

  1. Followed regular steps for building the kernel. To be safe, I went with version of the sources as close to the running kernel version as possible.
  2. Built just device tree blobs with `make dbts` in the root of sources.
  3. Copied over the generated file (arch/arm64/boot/dts/rockchip/rk3399-rock-4c-plus.dtb) to /boot/dtbs
  4. Updated `/boot/armbianEnv.txt` to point `fdtfile` the blob I just put there.
  5. Reboot!

After this I immediately got bluetooth and sound working, I do not experience any issues with BT keyboard connectivity/speed (as I used to with official legacy 4.4 kernel).


P.S.: there are though some things that got broken because of the update. Particularly, I cannot seem to be able to enable the thermal sensor ADC anymore, although, it works fine with DTB shipped by default.

Edited by Vskho
Link to comment
Share on other sites

You`re running Kernel 6.1 ?
Did you guys made any changes for the GPU/Driver/Resolution ?
only with a forced resolution in the armbianenv I got videoutput in the CLI & bootime but as soon the xserver started I got no more video output or I got broken output :-S

with kernel 5 I also got a BT issue & I also guess there is an issue with DTB, btw. GPU is disabled by default but easy to fix in the decompiled DTS file.

unfortunately I couldn't follow these steps ...., but does make dtbs the same than compling a DTS to DTB ?
Did you use any specific dts ?

I'm a bit confused because I tried every DTS /DTB I found....


Link to comment
Share on other sites

@krankes_etwas, yes, I am on 6.1.11 at the moment with DTB compiled from the master branch of linux kernel.

I did not do anything specific with the resolution/graphics, it worked out of box for me.

As far as I know, `make dtbs` compiles dtc and builds dts to dtbs with it.

Link to comment
Share on other sites

@Roman Khudobei I think I have the same, however, I've got sound through HDMI screen, that's the only ALSA source pulseaudio displays. Built-in audiojack does not work.

1 source(s) available.
  * index: 0
	name: <alsa_output.platform-hdmi-sound.stereo-fallback.monitor>
	driver: <module-alsa-card.c>
	suspend cause: IDLE
	priority: 1000
	volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max rewind: 0 KiB
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	used by: 0
	linked by: 0
	configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
	monitor_of: 0
	card: 0 <alsa_card.platform-hdmi-sound>
	module: 6
		device.description = "Monitor of Built-in Audio Stereo"
		device.class = "monitor"
		alsa.card = "0"
		alsa.card_name = "hdmi-sound"
		alsa.long_card_name = "hdmi-sound"
		alsa.driver_name = "snd_soc_simple_card"
		device.bus_path = "platform-hdmi-sound"
		sysfs.path = "/devices/platform/hdmi-sound/sound/card0"
		device.form_factor = "internal"
		device.string = "0"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card"


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines