Linux Fu: The Bluetooth Regression

There’s a line in a [Weird Al] (no relation) song that says, “I upgrade my system at least twice a day…” I know how that is. I primarily use a rolling distro, OpenSuse Tumbleweed, and if I’m having a problem that I’m too lazy to run down, it is extremely tempting to do an upgrade and see if it just happens to fix the problem.

Of course, the problem is often caused by a previous upgrade. Recently, I’ve been having a lot of trouble with the NVIDIA proprietary drivers, so I updated them yet again. After a huge amount of effort to sort out the video problems, I found that the latest kernel didn’t like my MediaTek Bluetooth adapter, which is built into the motherboard’s WiFi chipset.

This post isn’t about how to fix your Bluetooth problem. You probably don’t have the same setup I do, and even if you do, it will be sorted out in a week or two anyway. But how I temporarily fixed this issue is worth documenting. The details are going to apply to Tumbleweed and this particular adapter, but the general approach should work anywhere with any sort of kernel module problem.

My Own Fault

Part of my problem is my own fault, of course. I have a complex disk setup and do not use the recommended btrfs root file system. That means I can’t do the snapshot thing where I can just undo a bad upgrade. If I did, then sure, I should just roll back and wait for an upstream fix.

I do have “normal” backups, but they are not always totally up to date. Worse, I have found that for things like NVIDIA, the user stuff and the kernel module stuff have to match up. That makes it very hard to roll back a kernel with older modules. The modules themselves live with the kernel, but the user space stuff gets pushed out. Or, if you uninstall things, it uninstalls it for all kernels.

Truthfully, NVIDIA and others like that should keep all the user space stuff in a kernel-specific place, and then symlink it at boot to /usr/bin or wherever. But they don’t. In the end, I didn’t want to go through the trouble of rolling things back and decided to push ahead.

Continue reading “Linux Fu: The Bluetooth Regression”

Remember When Flash Drives Were Going To Make Your PC Faster?

The 2000s was a decade of great change in the computer industry. The world had grown accustomed to corruptible floppy disks, blue screens of death, and achingly slow load times. In a few short years, all of that would change, as USB drives, better operating systems, and faster processors brought forth a new age of stability and speed.

Amidst this era of upheaval, Microsoft introduced a new technology. It was intended to increase performance on the cheap to a new generation of machines, but it would turn out to be little more than a gimmick that never really caught on. Let’s explore the easily-forgotten legacy of ReadyBoost.

Continue reading “Remember When Flash Drives Were Going To Make Your PC Faster?”

Wayland Comes To Minecraft

The overall adoption and implementation of Wayland — intended as a replacement for the decades-old X11 windowing system — in the Linux world has been full of fits and starts. But perhaps the most surprising adopter we’ve seen yet is this Minecraft patch which brings a full Wayland compositor into the game.

This software project, called Waylandcraft, is the brainchild of a developer known as [EVVIE] who spent a considerable amount of time and effort getting this to work. According to a post on GamingOnLinux it was also done the old fashioned way, with no AI involved.

Users wanting to run this compositor need a Linux system to run Minecraft, as well as the Fabric mod loader and a few other tools. For those wishing to show off to their friends, though, they’ll need to do so in-person as streaming the Wayland windows to other users in the server is not possible.

With everything running, you’ll be able to launch arbitrary programs and have the windows placed within the Minecraft world as if they were in-game. Users can place the windows in any orientation and can interact with them like any other desktop environment. [EVVIE] has released all of the code under the GPL for anyone wanting to try it out or build on the project itself.

If you haven’t spun up a Minecraft server at all yet, all you really need is something like an ESP32 to get started.

Continue reading “Wayland Comes To Minecraft

Bring Back That Aged Scanner, In Your Browser

We have probably all at some point had to replace a peripheral not because it is faulty, but because it is no longer supported by our operating system. It’s especially bad for Windows users, but for older hardware this is increasingly a part of the Linux experience too. [George MacKerron] is here with what may prove to be a valuable technique to keep these devices active. He’s running a minimalist x86 computer in the browser, with just enough OS to support the device.

In this case the hardware is a USB scanner, and the resulting software takes a WebAssembly x86 emulator and adds a bit of glue software allowing it to use WebUSB to talk to the real-world hardware. It runs a minimal Alpine Linux environment with SANE — something that’s normal for Linux users but which has never been there on a Windows machine. The result is something which needs no installation, but can be run on any machine with a powerful enough web browser.

While such an approach might at first seem like overkill, we’re told it runs surprisingly quickly. In this case it’s for scanner, but we can see it could find a use with many other pieces of aged hardware.

If WebAssembly is new to you, we gave it a primer a few years ago.


Header image: Fir0002/Flagstaffotos, GFDL 1.2.

Your Browser Probably Lies To The Big Sites (Blame Chrome)

When you visit certain large sites in Firefox or Safari, the browser may detect your visit and change its behavior. It could be as simple as lying about its identity, or it may totally change how it renders the page. But according to a post by [Den Odell], this isn’t a conspiracy between browsers and big Internet — rather, it is a byproduct of Chrome’s dominance.

Here’s how it goes. Chrome puts out a new feature and everyone rushes to implement it on their site. Maybe the new code breaks other browsers. Maybe the other browser supports the feature, but the website doesn’t detect it correctly or is unaware. Maybe it just relies on some quirk of Chrome. Regardless, Firefox and Safari will change to match the site rather than mess up the user’s experience.

If you want to check it out, Firefox will show you what it does and let you disable specific fixes if you visit the about:compat URL. For Safari, you’ll have to read code from a file named quirks. Bugzilla tracks the fixes for Firefox, if you want more details.

Browsers are huge and complex so even niche browsers, today, usually use one of a handful of rendering engines. It seems that the question isn’t if a big company should control the way the web works. It is more a question of which one is currently dominating.

Mixapps: The Mixtape Of The Internet Age

Mixtapes used to be a way that we cultivated a personal selection of music for our own enjoyment, or to give as gifts to those we wanted to impress with a personal touch. These days, we’d typically try that with a playlist, but it’s less romantic despite also being more ephemeral. Songs fall off streaming services all the time, and few of us have the exact same subscriptions as those we’re trying to flirt with. Thus, [Hunter Irving] whipped up a more lasting solution for this modern age.

The concept is simple—it’s a collection of songs that are packaged together in a easily portable format that won’t disappear because of corporate bureaucratic nonsense. [Hunter] has termed their project Mixapps—because it’s a method of sharing music based around Progressive Web Apps (PWA). To create a custom mix, you start by running a Python script, which will then let you add tracks and reorder them as you desire. From there, you run a second script that builds the web app for you.

You can then upload the prepared app directory to a web host to share it with anyone you like. They can then save the PWA to the home screen of their mobile device, where it will live happily ever after. There’s no need to keep hosting the app online or for the user to remain connected to the Internet; everything is self contained on their device. If you’re curious, there’s a demo you can check out online.

It’s worth noting that there are intellectual property concerns to be had as with any form of music sharing, but what else is new? We’ve explored the magic of mixtapes in the past, anyway, to be sure. If you’re finding new ways to trade music and playlists, romantically or platonically, don’t hesitate to let us know.

PreFlight Slicer Brings Added Part Strength Feature, And Many More

Interested in taking some wild new 3D printing features for a test drive? preFlight is a free and open source slicer that brings a host of processing improvements as well as fascinating new features and interesting twists on old ones. There are almost too many to list, so here are a few that caught our eye.

Cross-sectional view of Interlocking Perimeters, which increases Z-strength. Unlike brick layers, layer height stays constant.

Want to mix and match different support types on the same object? No problem. How about use Nip & Tuck seams to better hide where layers start and stop? You can emboss images directly onto print surfaces with a real-time preview and use smart bridging for counter-bored holes. We particularly like the ability to preview a sliced object from the side instead of just by layer. That’s not all, either.

Those features alone are pretty intriguing, but there’s one in particular that is particularly relevant to creating stronger parts. Interlocking Perimeters increases layer bonding to increase object strength. Unlike brick layers, which staggers layers vertically, interlocking perimeters plays with spacing and compression to increase bonding in the Z axis while keeping layer heights constant. This is possible thanks in part to the greater control offered by Athena, the new perimeter generator.

There are plenty more features — like a full Python runtime embedded directly into the slicing pipeline, and a host of export pathways — so check out the GitHub repository for added detail and let us know in the comments if you give it a try.