Linux Driver Management 1.0 Released
solus-project.com
solus-project.com
[1]https://solus-project.com/articles/packaging/request-a-packa...
[1]https://www.reddit.com/r/SolusProject/
Certainly there would have to be a bunch of checks and balances, not blind acceptance, capturing source code URLs, checksums and the like, potentially reproducible builds, but could be a way to ‘crowd source’ packages. Or is this a solution in search of a problem?
And it's not about "saving the time to recompile", it's about using the source code so that you can keep using the AUR as long as the compilation process does not break.
Gentoo is a true dev OS and it's not for the meek for sure, but I've grown to love it. I really should contribute more to Void and start making package for it. I think it's one of the best up and coming Linux distros.
A while back, I tried to connect my Bluetooth headset to my low-end notebook. As far as dmesg could tell me, the Bluetooth chip was detected and worked just fine. But it did not detect any devices that were around. After the headphones failed, I tried again with my phone and a tablet (I have too many gadgets, I know) - the result was consistent throughout: The notebook did not discovery any pair-able devices.
After about ten minutes of this, I decided I am too old for this crap and got my good notebook. This time, the notebook discovered the headphones, like it should, and it happily paired with the headphones, like it should, but every now and again, the Bluetooth connection just dropped, and the notebook could not re-discover the headphones until I rebooted it. dmesg was ominously silent about this, it merely pointed out that it had killed the Bluetooth daemon (but I suspect that was a result of the driver or the BT chip misbehaving).
To be fair, otherwise both notebooks work perfectly fine, and I also have no idea if a "Driver Manager" would have helped me with either of these issues. And it is not a deal breaker for me either, because do not normally use my notebooks for anything that requires headphones. But I did run into problems that I suspect were caused either by the hardware or the driver, and dmesg did not help me at all.
In case it matters, though, both notebooks run openSuse Tumbleweed, but I have a hunch neither of these problems is distro-specific.
EDIT: OK, so this was not about enumeration. But still.
BT chipsets on the other hand, are complete crap. And every single BT stack has its own mess of bugs and is 90% of an implementation of what the spec says, and each stack implements a slightly different 90%, and the remaining 10% is just random bugs.
The fact that the massive pile of profiles essentially all need to be supported inside the chipset is what makes their firmware so buggy and unreliable. Software written by semiconductor manufacturers is famously bad, and the approach that bluetooth has taken basically asks them to do more of the firmware work, keep track of more application state, and never get their wires crossed. And because the chipset firmware is almost always a binary blob, system designers have no way to fix anything. Of course it's going to be a massive failure.
What they should have done was built a dumb, encrypted pipe, and let downstream driver and application developers deal with the application-layer logic. Then the semiconductor manufacturers would only be responsible for a basic bulk transfer interface that's a lot harder to screw up. This is why wifi and ethernet and usb drivers tend to work reasonably well, and bluetooth drivers are an unreliable mess.
I get why they did it... in the early days, prices for bluetooth chipsets varied depending on which profiles they supported. This was supposed to be a way for semiconductor companies to differentiate themselves in a world where they were increasingly viewed as commodity suppliers. But because they never bothered to invest in their firmware development (these companies have like 20 people working on chip design and verification and like 3 on firmware), they ended up making everything worse rather than adding value.
BTLE in its entirety is just simple. It is possible to read over the BTLE spec in a couple hours and understand it. (AVRCP can be read in half an hour tops, 15 minutes if you skim the same-y diagrams)
BT SPP is, well, a glorified serial port, with all the advantages and disadvantages that entails.
If you want a glorified pipe, BT SPP is where you go. You can actually use BT LE to do the same thing, at a much slower transfer rate.
> wifi and ethernet and usb drivers tend to work reasonably well
WiFi and USB drivers are also flaming piles of trash. Since 90% of USB use cases consist of either USB-HID or Mass Storage, there is less to get wrong.
Do anything beyond that and you can easily find yourself SOL.
And Wi-Fi drivers are complete crap. Power management sucks, Wi-Fi chips hard lock and somehow a watch dog timer never kicks in (how?), and they rarely give the speeds that they are supposed to. Intel had some Wi-Fi chip a few years back that, for a good 2 years after its release, it would randomly stop deciding to finding networks to connect to, until it was power cycled. After a couple of years on the market they finally released a firmware update.
Don't get me wrong, Chipset BT Firmware is horrible. I've worked with vendors who obviously weren't using version control, subsequent patches would have regressions that made it apparent they had built today's patch off of old source code that predated the last patch they had sent us. Hilarity like that.
But the OS side BT stacks also tend to suck. Then there is the driver for the BT chip, which can also suck.
The actual BT standard itself, I would argue, isn't the largest part of what is wrong.
I have a Bluetooth mouse that I alternate between a Mac and a ThinkPad running OpenSUSE Tumbleweed. It’s flawless on both platforms.
I have a Bluetooth keyboard paired to an iPad, again it works flawlessly.
I have Bluetooth headphones that I’ve paired to a variety of computers and iDevices and they work flawlessly.
In all honesty, I’m actually shocked at how well it all works given the horror stories I’ve heard.
It still pisses me off to this day how people keep extolling macbooks while denigrating how linux is so unstable and broken because my experience has been exactly the opposite.
Looking at my co-workers with Windows laptops, I’m amazed at the amount of crap people are willing to put up with. They are so unreliable it’s unreal.
That phone is a (relatively) cheap Huawei phone running Android. I have no idea how far the Android kernel deviates from the regular Linux kernel, so maybe Huawei just put a real effort into writing good BT drivers (or the company that made the BT chip?).
But the fact remains that with my phone and my tablet, Bluetooth pairing with the headphones works very well (= reliably). So while Bluetooth may suck in many ways I do not even begin to comprehend, in my case, I strongly suspect, the problem lies elsewhere.
modprobe -r iwlwifi
and then reload it with these options:
sudo modprobe iwlwifi bt_coex_active=0 swcrypto=1 11n_disable=8
for Bluetooth to work correctly. Without this, discovering Bluetooth devices often does not work correctly and when I manage to pair my headphones with the laptop, the connection is often lost when wifi is used.
That said I much prefer doing I/O programming on Linux than Windows :)