• 1 Post
  • 40 Comments
Joined 1 year ago
cake
Cake day: July 1st, 2023

help-circle
  • I have three ideas: First, you could switch the desktop environment to one of the ones that has a GUI settings tool to set passwordless automatic sign in. I think Gnome 3 on Ubuntu, and Mate Desktop on Linux Mint have that feature. There are probably others.

    Second, you could switch your display manager to “nodm”. The display manager is the thing that runs the X server or Wayland, and it starts the greeter (the greeter is the program that shows the login screen). nodm is a special display manager that doesn’t use a greeter or ask for a password. It immediately starts the session using the username and desktop environment specified in its configuration file.

    I use nodm for my HTPC and it works very well. The only downside is that you have to edit its configuration file, /etc/default/nodm , using a text editor. I’m not aware of any GUI configuration tool for it. However, it’s pretty easy to configure.

    Third, you could abandon all display managers, and start the session manually, either from a shell script, or over SSH. This is a little more complex. You will probably want to get comfortable with SSH before trying this (SSH is the command-line analog of remote desktop).




  • I cannot recommend any USB-connected drive for long-term use. (Only for portable devices that get plugged in for a little while at a time.) In the long term, any USB drive will randomly reset during periods of heavy use – including heavy writes, meaning some data will get lost.

    USB enclosures tend to just crap out completely after a year or two, if used continuously on a server. I know because I twice used 1TB external drives with OpenWRT (home router) devices. The data will be safe on the drive, but you’ll have to replace the enclosure.

    1. My first recommendation would be to look very carefully at the chassis and see if there’s any way at all to fit another SSD inside it. 2.5" SSD’s are usually thinner than 2.5" hard drives, so it may be possible, and most motherboards have more SATA ports than they need.

    Is there possibly an NVMe slot on the motherboard? Or an open PCIe slot where you could put an NVMe adapter?

    1. My second recommendation would be using a 2.5" hard drive. Newegg has a 5TB one for $135, but unfortunately that’s as large as they seem to go. It will be a bit slower than an SSD, but still probably around 150MB/s for sequential access.

    2. My third recommendation, if money is really tight, would be an additional server, with a large 3.5" hard drive. This will be a lot cheaper than an 8TB SSD, but adds complexity, electricity use, space use, and possibly fan noise.


  • What do you expect them to say? That they’re proud of this guy? Even though he’s clearly a madman?

    I know IRL gun nuts, and none of them would identify with this person. Also, none of them subscribe to the fallacy/straw-man of a “good guy with a gun”. The ones who carry concealed would remind you that they are carrying for themselves, not for you. If you find an active shooter in a mall, you can count on them… to run away.

    Skillful gun nuts know that shooting defensively is never worth the legal hassle unless it saves your life (or a family member’s life).

    The shooter in this article is nothing like any of the gun nuts I’ve ever met. This shooter is another Kyle Rittenhouse, someone anxious for a chance to kill a person and get away with it under the excuse of defense.







  • Haha. I sent them an opt-out notice by email, and it bounced!

    They are using Google email servers for discord .com and Google has apparently shadowbanned me. It gives an error message saying “The account [my email address] is disabled.” but I have never created a Google or Gmail account, and my email address is on a domain not associated with Google at all.

    So I’ve completed my obligation to opt-out. Discord will have no record of it, but I have the email server logs to prove I sent it.

    If, in the future, anyone needs to sue Discord and forgot to opt-out, feel free to use this same excuse.


  • I never got Proton working on my main distro (Debian), so I probably fall into this category. I did use Wine, but Wine is a lot harder to set up, and never ran games as well as Proton did.

    Here is my major gaming history, since I started on Linux in 2007. Yes, I really could focus on a single game for years back then.

    • 2007: Starcraft, in Wine
    • 2007: Nethack, native
    • 2011: Morrowind and Oblivion in Wine
    • 2012: Minecraft, native
    • 2014: sgt-puzzles, native
    • 2016: Steam, got hundreds of native Linux games.
    • 2017: Briefly got Steam and Path of Exile working inside a Wine instance.
    • 2022: Steam deck, with the specific purpose of being able to run Proton on it.
    • 2023: New Ubuntu installation, and Proton finally worked on my PC.

    Today, I still prefer native Linux games. I mostly only use Proton when peer pressure for a multiplayer game required it. But I never use Wine any more.




  • A couple months ago, I made a Palworld server box out of a spare motherboard assembly (mobo, processor, ram) from a computer I had recently upgraded.

    I didn’t have any spare drives lying around, so I plugged in 7 USB flash drives and made them into a RAID array. Not a true RAID array, but a BTRFS filesystem with volumes spread onto each flash drive, with the data redundancy set to raid1, and the metadata redundancy set to raid1c3.

    It worked… in the sense that I never lost any data. It certainly didn’t work in the sense of having good uptime.

    The first problem was getting it to boot right. The boot line in GRUB had “root=UUID=…” instead of a specific drive named. That is normal. However, in BTRFS multi-volume filesystems, all the volumes have the same UUID. So the initrd was only waiting for a single drive matching that UUID, then trying to mount it as the root filesystem. This failed, because the kernel had not yet set up the other 6 USB drives, and this BTRFS filesystem needs all 7 volumes present. Maybe 6, if you used the “degraded” mount option.

    The workaround was to wait for this boot process to fail, at which point you get dropped into an initrd shell. Then, you look at all the drives and make sure they’re all there. And then… I don’t exactly remember what happened next. I think it was some black magic that erases your mind in the process. I somehow got it booted from the initrd shell.

    Installing Steam and the Palworld server worked ok, and it even ran for a few hours before crashing overnight.

    The next morning, I tried rebooting it. Unfortunately, the USB drives weren’t all appearing. Turns out the motherboard had some bad USB ports, some sometimes-bad USB ports, and a maybe-bad PCIe bus, because the PCIe USB expansion card I plugged in had weird problem that it had never had before.

    I found the most reliable ports and plugged the drives in there. But you can’t just replug them in the initrd. It doesn’t have USB hotplug support. So each time it tried to boot with not all the drives there, I restarted it again until one time I finally had all the drives.

    I changed the GRUB boot line to “root=/dev/sdg1” . This made it wait for all the drives to load, in any order, and whichever one was last would be mounted as the root filesystem (but the kernel would automatically include all the others too, since they were successfully initialized).

    The bad USB ports kept bringing down the server every day or two. I bought a cheap NVMe drive and added it to the BTRFS filesystem, and then removed all the USB drives except the largest. That fixed the reliability. It’s been like that since.

    Now, to boot the server, all I have to do is change the GRUB boot line to “root=/dev/sdb1” . Since the NVMe drive is much faster than the USB drive, it always initializes first. If the initrd waits for sdb2, then it will always have both drives initialized when it tries to mount the root filesystem.

    I could add that to the grub.cfg, or come up with some other more permanent solution, but I’m not planning on rebooting this server ever again. My friends fell off Palworld, and I gave a shutdown date that’s about a week away. And the electricity is pretty reliable here.



  • Microsoft has enforced mandatory digital signatures for drivers, and getting a digital signing key from Microsoft costs a ton of money. So, presumably they do care.

    In contrast, consider nProtect GameGuard, the anti-cheat system in Helldivers 2. It is a rootkit, and runs in the kernel. Why does Microsoft permit this? Shouldn’t this be blocked? It must be using either an exploit like the article, or a properly signed driver. Either way, Microsoft could fix it – by patching the exploit, or revoking the signing key.

    The fact that Microsoft hasn’t done anything about malicious anticheat rootkits is a sign that they really don’t care. They just want their payment.


  • The good news is: the error shown there was a PCIe bus error, which means the error is somewhere between the NVME controller and your processor’s PCIe interface. Also good news: the errors you experienced were fully corrected, so you probably lost no data.

    So the flash memory in the drive isn’t failing. That’s good because if the flash memory starts failing, it’s probably only going to fail more. In this case, your errors may be correctable: by replacing the motherboard, by replacing the processor, by reseating the NVME drive in its slot, by verifying that your power supply is reliable…

    However, if your NVME controller actually does fail, it will be little consolation to tell you that your data is all still there on the flash chips, but with no way to get it. So now might be a good time to make a backup. Any time is a good time to make a backup, but now is an especially good time.

    If you keep getting these errors at the same rate, then you probably don’t need to do anything, since the errors are being corrected. If you’re worried, you could use BTRFS and enable checksumming of data.


  • Using a VPN (like Tailscale or Netbird) will make setup very easy, but probably a bit slower, because they probably connect through the VPN service’s infrastructure.

    My recommended approach would be to use a directly connected VPN, like OpenVPN, that just has two nodes on it – your VPS, and your home server. This will bypass the potentially slow infrastructure of a commercial VPN service. Then, use iptables rules to have the VPS forward the relevant connections (TCP port 80/443 for the web apps, TCP/UDP port 25565 for Minecraft, etc.) to the home server’s OpenVPN IP address.

    My second recommended approach would be to use a program like openbsd-inetd on your VPS to forward all relevant connections to your real IP address. Then, open those ports on your home connection, but only for the VPS’s IP address. If some random person tries to portscan you, they will see closed ports.