Getting rtl8814au USB sticks like the ASUS USB-AC88 to actually connect

If you’re forced to use newer and more bizarre USB wifi sticks that rely on the rtl8812au/rtl8814au chipset, you need to do two things:

  1. Compile the driver yourself, since most distros don’t include one
  2. Tell NetworkManager to stop randomizing MAC addresses for that device

You can get the updated source from diederikdehaas’ project on GitHub. The build instructions there are great and the driver integrates with DKMS. However, you won’t be able to connect because NetworkManager is scrambling your MAC address. To make it stop, add this to /etc/NetworkManager/NetworkManager.conf:

[device]
wifi.scan-rand-mac-address=no

And restart NetworkManager (systemctl restart NetworkManager on e.g. Debian 9). With MAC scrambling enabled, the interface came up for me but failed to authenticate.

The solution is from this issue on GitHub.

Something for the weekend, Week 31 2018

Haven’t done any of these in a while, but here goes:

  1. In NPR’s Hidden Brain podcast “Creating God“, social psychologist Azim Shariff explains how religious rituals and psychological manipulation by religions throughout the ages have an evolutionary origin and helped groups become more cohesive and thrive more than competing groups. What’s new here is that religious spread can be viewed like that of an organism under Darwinian rules, explaining much of what was previously unclear about how religions operate, what rituals accomplish, etc. The true functions of many of these rituals aren’t even obvious to the religious practitioners themselves (the researchers call this functional opacity).
  2. In Germany, utterly clueless police raided the offices of Zwiebelfreunde (onion friends), an association that supports Tor among other things, as well as the maker lab OpenLab in Augsburg. Just because they had a donation button supporting independent e-mail provider riseup.net. Press and experts are widely condemning the police operation, in which a 3D printed toy model of an atomic bomb (article in German) was confiscated for “causing of explosions”.

That was that. A very hot week 31 of a very hot year.

Wanna use a Mayflash DolphinBar with Dolphin on Linux? You’ll need this udev rule

This is what I needed, I put it in /etc/udev/rules.d/80-dolphinbar.rules:

SUBSYSTEM=="hidraw", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="0306", MODE="0666"

I can’t remember where I found this, I’m pretty sure I didn’t figure this out for myself. If you need a DolphinBar, Aliexpress should have you covered. It could be that the vendor code differs for yours, so make sure to watch dmesg when you plug it in.

Build your own Spotify-like music streaming solution using mpd

Since I distrust centralized services such as Spotify that can delete content you love at any time they like, I’ve always bought my own music and have a huge collection. But there’s no denying that streaming music to any device or location is a useful feature. You still don’t need Spotify for that, thanks to the FOSS community you can build your own Spotify-like streaming system, and this guide shows one combination of software to accomplish this.

The goal: Stream your music collection from your own PC (or NAS or whatever storage you have) to any web browser, mobile phone and desktop clients.

The method: A little Linux magic involving the following components:

Continue reading “Build your own Spotify-like music streaming solution using mpd”

All the people being raped by Facebook now realize they are being raped by Facebook (updated)

Of course people like me have been telling them to quit Facebook forever, but they didn’t listen. If I were nasty, and I am, I’d say that if you ignore the warnings you probably don’t have much right to complain. The level of brainwashing and manipulation by Facebook and friends is even higher than I  imagined, though. I believed they were just reaping obscene profits from wide-ranging psychological profiling and privacy abuse, but it’s become much worse than that.

Here’s Richard Stallman on this and similar topics, in an older but still valid talk from 2016:

Update: Elon Musk has deleted the Facebook pages for Tesla, SpaceX and himself, Mozilla has pulled all ads from Facebook and the SF Chronicle is picking up on the idea of federation. Techrunch meanwhile discovered that Facebook knows everything about you and what started as a rumor is now confirmed: If you have Facebook’s mobile app, Facebook knows exactly who you called and when.

Update 2: The news has made it to the mainstream press now. People are outraged that Facebook knows each and every social event they’ve been to. What did you expect if you use Facebook to organize your events, have the app installed and have GPS positioning on? They are also surprised that they’ve been snitching on all their friends, uploading phone numbers and call logs for years. The naïveté on display is on one hand charming but also alarming, as it shows that the population at large is not really ready to use the services they’ve signed up for. They don’t even bother to read the fine print and are then surprised when what’s in the fine print actually happens.

I have to say, “we told you so”. For ten years we’ve been warning about the dangers of centralization, of communications silos, of non-standard interfaces and specifically the nastiness of Facebook and friends. I feel vindicated now, it’s just stupid that it always seems to take ~10 years for the greater public to catch on to such dirty behavior.

What will happen in 10 years? Will there be a backlash against siloed streaming services like Apple Music or Netflix as they remove more and more of the content you love due to “complicated licensing”? Against insurance companies using your collected health data from smart devices to refuse to grant you reductions due to your unhealthy lifestyle? The same with black boxes in cars?

Sweeping face recognition will inevitably get something wrong and someone will suffer or die because of it. The Internet of Things as it is right now is insecure. There are already Internet-connected buttplugs that spill details about people’s sex life. What else do you need before you wake up?

You could resist all of this now, by being complacent you lose your right to complain when shit hits the fan.

I thought we had been screaming loudly enough about all these problems, but it seems we were just a whisper. We need to make our warnings be heard this time. I just don’t know how.

Which GNU/Linux distributions are the freest?

Users of proprietary operating systems don’t really have control over their computers, and thus sometimes have to deal with inconvenient changes that they didn’t want and couldn’t plan for.

macOS users had a new filesystem called APFS forced on them. A filesystem that is young and obviously still full of serious errors that can lead to data loss. The OS can only be installed on APFS volumes now, effectively leaving users no choice in the matter unless they want to partition and risk “only” the OS portion while keeping their data in a more battle-tested filesystem.

The situation isn’t better in the Microsoft camp, with forced updates making some computers unusable again and again. It has lead to headlines like “Microsoft Delivers Yet Another Broken Windows 10 Update“. If you read The Register, you’ll catch something like that at least once a month.

Because these companies operate according to their own strategic market interests and not in the best interest of their customers and users, this kind of thing always feels to me like they’re raping people’s computers. The user doesn’t want it, the computer certainly doesn’t need it, yet the actual owners just have to open wide and swallow because these companies have decided for them.

Are things better in the GNU/Linux world, then? Yes and no. Some GNU/Linux distributions are controlled by companies that also serve their own interests first, such as Canonical, makers of the Ubuntu distribution. They have previously partnered with Amazon to supply sponsored search results inside the OS search function. This month they’ve announced that they will collect data on users’ machines. Granted, it’s a lot less than what Microsoft collects about its users, but it’s an ugly move that doesn’t fit the GNU/Linux mentality.

Continue reading “Which GNU/Linux distributions are the freest?”

Yet another way to get a tear-free, stutter-free desktop with Plasma/KDE and Nvidia

So the proprietary Nvidia driver is a large, steaming, smelly pile of shit. At least that’s the impression you get when you read what developers say about it. There’s a bug here and a workaround there, and we haven’t even started talking about the messy situation that is EGLstreams yet. So why do people use Nvidia cards on Linux? Because so far, they give good bang for the buck, use relatively little energy for what they do and work with all commercial games. I’m pretty sure those are the reasons, anyway.

But Nvidia at least on Plasma/KDE has some serious problems with tearing and stutter — I have three Nvidia setups and they all are unsatisfying out of the box. If you use ForceCompositionPipeline like I recommended earlier, you will probably run into stutter issues. But I think I found the perfect setup now, stutter-free and tearing-free for desktop use as well as perfect for gaming.

There are two alternatives:

Method 1: Solve it by switching the GL yield mechanism to USLEEP

Add the following to ~/.config/plasma-workspace/env/kwin.sh:

#!/bin/sh
export __GL_YIELD="usleep"

Thank mahenou on Steam for suggesting I try this again. The first time I did, it was probably too late in the environment for Kwin to pick it up. It’s important that the var is set when Kwin initializes.

Method 2: Solve it by forcing triple buffering

Add the following to ~/.config/plasma-workspace/env/kwin.sh:

#!/bin/sh
export KWIN_TRIPLE_BUFFER=1 

And chmod +x the file. Then add the following to an Xorg config snippet, for example /etc/X11/xorg.conf.d/20-nvidia.conf:

Section "Device"
        Identifier      "Videocard0"
        Driver          "nvidia"
        Option          "TripleBuffer" "true"
EndSection

Finally, enable compositing and vsync

Then make sure you have compositing enabled in System Settings -> Display and Monitor -> Compositor. If you are very doubtful, do a restart. After that you should have a perfect, tear-free and stutter-free desktop experience. I had to disable compositing manually with Alt-Shift-F12 before starting games with the triple buffering method. This was unnecessary with the __GL_YIELD method.

I can’t truthfully explain why this works, but I know it works around a bunch of bugs and unexpected default settings in the Nvidia driver. Also, Kwin is now able to compute the right timings and handle triple buffering instead of rendering half-finished frames like a fucking moron when it still believed Nvidia was doing triple buffering by default.

For me this has been wonderful. The desktop is smooth as if I were using a proper graphics card like an AMD RX 580 with Mesa. Games run exceedingly well, and there is no stutter or delay like with ForceCompositionPipeline. Not even in videos. It’s all just perfect.

This is a mix of hints received from several people on Reddit and Steam that I unfortunately forgot the names of, as well as info from the Arch Linux wiki. I’d like to thank all these people for their knowledge.

Working around broken firmware for Realtek USB WLAN adapters on newer kernels

If you run a combination of newer (4.9ish) kernels and systemd, your USB wifi networking gear probably now gets funky names such as “wlx74da387e95fe” instead of “wlan0” like you were used to back in the good days. This wouldn’t be so bad, only that the firmware on those dongles can mess up when the device gets a long name. Suddenly it won’t let you connect to your wireless network, claiming that the network does not exist, even though you know for a fact that it does. What your machine is actually trying to say, I believe, is that the network device doesn’t seem to exist.

If you have those symptoms, this answer by Maciek on Stackexchange will probably help. I encountered the problem while using one of the Edimax USB wifi dongles that are popular on the Raspberry Pi.

I had to add this to /etc/udev/rules.d/70-persistent-net.rules:

# edimax USB stick
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ba:ba:ba:ba:ba:ba", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan", NAME="wlan1"

Substitute your own dongle’s MAC address for ba:ba:ba:ba:ba:ba and things should work. Of course make sure wlan1 isn’t taken already. If everything turns out well, your dongle now has a sane name again and connecting should just work.

Using Xbox 360-compatible controllers properly inside WINE

If you need to use WINE to play some Windows games, the lack of Xinput support might get on your nerves. WINE maps joystick devices to Dinput. That works for some older games, but buttons need to be mapped manually, and many newer games don’t detect the controllers at all because they expect Xinput.

I tried to get by this issue using x360ce, but this is a fickle beast already when run natively on Windows; even more so in WINE. What worked really well for me was dumbxinputemu. Sometimes dumb things are the best.

To use it, determine if you’re running a 64-bit or a 32-bit game, then copy at least the matching xinput1_3.dll from the latest release to the same directory as the game’s binaries. In the case of Steam, that’s probably somewhere inside Steam/steamapps/common. Then make sure your WINE is set to prefer the native version of the DLL via winecfg:

In the “New override for library” dropdown select “xinput1_3”, then “Edit…” that entry to set it to “native” only. If you have a very new game, you might need to do repeat all these steps for xinput9_1_0.dll. This worked surprisingly reliably for me, no more double-detection of joysticks, no more wrong labels for buttons inside games, no more fiddly x360ce that works sometimes but then mysteriously breaks. Everything behaves as it shoud. Thank you, kozec.

Something for the weekend: Week 51, 2017

These are some longer things I’ve read this week. I don’t guarantee that they’re new, just that I found them interesting:

  1. Google is using its dominance to bully the makers of the Vivaldi browser. Google has blocked Vivaldi’s AdWords revenue and asked them to post links to “uninstall instructions” for the Vivaldi browser on their web page. Something Google itself doesn’t provide for Chrome. This is what happens when you let a single browser maker also control most of the online advertisement market, and things will only get worse the more people use Chrome and AdWords.
  2. Microsoft is using its dominance to bully Google (in the Windows Store). They kicked the Chrome installer out of the Windows Store because only browsers based on Microsoft Edge technologies are allowed there. This is similar to how Apple bullies browser makers on iOS, where you can’t add a browser with its own rendering or JavaScript engine, you must use Apple’s instead. This kind of non-competition is a straitjacket for innovation and destroys user freedom, just because some greedy big companies force it to be this way. Not the best technology wins, just whichever technology the oligopolist forces on users.

I’d be delighted if some of that tickled your curiosity.