Slackware - ARMThis forum is for the discussion of Slackware ARM.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Some of my old notes on kernel .config settings for Bluetooth shizzle...
Not sure that that is the answer either. I did try doing a full sarpi/slackwarearm (32 bit) install on the Pi-400, and I couldn't get bluetooth or wifi to work on that either.
Of course, that could also have been the firmware issue, but I suspect there must be something fundamentally different in the Pi 400 that is causing the problem.
I used to always build my own kernels on x86_64, tailoring them to the hardware on which they were running. However, once I ended up with two desktops and a laptop, it just became too time consuming, and I now just run the stock kernels. This also means that any apps I compile myself only have to be done on one machine and can then be applied to the others without fear of a mismatch.
My point was that there is something about the bluetooth hardware implementation on the 400 that is different from the 4, and the clue is that it didn't work on a stock sarpi/slackwarearm install either. (I'm assuming that that stock install had your bluetooth configurations applied.)
Yes, I can use a dongle, and I know it works. Its just annoying me that the built-in one doesn't! Its like an itch in a hard-to-reach place - irritating!
I appreciate that it is probably a low priority for yourself and sndwvs, and also appreciate the efforts to help me out here. I intend to keep trying to get to the bottom of it, because the 400 is currently the newest design and its features will probably be carried forward to forthcoming models. Solving this issue now, whilst there aren't many around, may save a lot of grief in future.
One other thought occurs to me, though I think its unlikely. I installed slarm64 from the xfce image provided by sndwvs. I used this rather than the base version as it already had X11 etc built in and set up. I then added the other things I wanted via slackpkg (kde, etc). The problem with this method, as opposed to the standard Slackware setup program, is that I don't know what is included in the image. Its possible that there is something else that needs to be installed that is missing from the image. I would have expected the tests that sndwvs has had me carry out would have spotted this, but you never know!
I do not think that this is because of the programs, the installed packages are known.
also 2020-12-02-raspios-buster-armhf-lite uses a different kernel (you can move it and see what happens).
the sources and kernel configuration are located in /usr/src. there is also a new compiled kernel.
First thing I'm going to try is to make another sarpi/slackwarearm sd card (I erased the last one, silly me!) and try it with the latest brcm firmware. That is what got wifi working on slarm64. If it gets that and bluetooth working on the 400, then it points to a configuration issue somewhere - possibly in the kernel.
It will take a while, though! It takes over an hour to do the full install on an sd card...!
Sarpi/Slackwarearm (32-bit): Exactly the same as Slarm64. Wifi works once /lib/firmware/brcm replaced, bluetooth doesn't.
It's why I distribute a sarpi-hacks pkg - which includes the latest BRCM wireless firmware - because it's not included in the official Slackware ARM source-tree. I haven't done anything with the onboard Bluetooth for well over a year or so, as I have no use for it on the RPi devices. Perhaps when I've got time to waste I may look into it once again for end-users to play with.
Looks like its a bug in bluez. Lots of information there, including some patches from the Raspberry Pi Foundation (post #9). However, this is all for Ubuntu - not sure how it would relate to here.
--
Pete
Last edited by pchristy; 01-13-2021 at 06:52 AM.
Reason: update patch information
I managed to find the patches for Bluez, and applied them (using the Slackware64-current sources, as I can't find the slarm64 ones). I've tweaked the slackbuild to detect aarch64, but the build fails, complaining about missing GLib:
Code:
......
checking linux/if_alg.h presence... yes
checking for linux/if_alg.h... yes
checking for GLIB... no
configure: error: GLib >= 2.28 is required
As far as I can tell, all the glib packages are installed, so I'm not quite sure why this is happening. How did you build Bluez? Any chance of a copy of your slackbuild?
/source/n/bluez appears to be empty in git. I used the stock slackware64 source for bluez, but added:
Code:
elif [ "$ARCH" = "aarch64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
to the slkcflags definitions.
I notice that your alteration to the slkcflags doesn't seem to add -fPIC. I know this is a requirement for x86_64, and I thought I'd read somewhere that this also applied to 64-bit arm. Is this correct?
None of which seems to explain why the bluez slackbuild can't find GLib, when it is definitely installed!
checking for explicit_bzero... yes
checking for signalfd... yes
checking for clock_gettime in -lrt... yes
checking for pthread_create in -lpthread... yes
checking for dlopen in -ldl... yes
checking for linux/types.h... yes
checking for linux/if_alg.h... yes
checking for glib-2.0 >= 2.28... yes
checking for dbus-1 >= 1.6... yes
checking D-Bus configuration directory... /etc
checking D-Bus system bus services dir... /usr/share/dbus-1/system-services
checking D-Bus session bus services dir... /usr/share/dbus-1/services
Weird! Could you see anything missing from my list of glib stuff? I couldn't see anything obvious.
I'm attaching the patches that are supposed to make it work with the 400. Some people - but not all - have apparently complained that these stop it working with the 4. Got them from here: https://www.spinics.net/lists/linux-.../msg89532.html
There are three of them. Seems that this issue has been known about for a few months! (I had to add a .txt suffix to make them uploadable) I have no idea if or when these might get added to bluez upstream.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.