I’ll start with mine. yes part of this was to brag about my somewhat but not too unusual setup. But I also wanna learn from your setups!
Anyways: I primarily use Gentoo Linux.
I have two headless servers: a Raspberry Pi 4B and a Oracle cloud VM (free tier). Both running OpenRC, and both were running mainline kernel with custom config (I recently switched the Pi to PiFoundation kernel due to some issues). The raspberry pi boots from SSD and has no sd card inserted.
Both servers were running musl libc instead of glibc for a while. This gave me a couple of random issues, but eventually I got tired and switched back to glibc.
I have a desktop running gentoo and a laptop running arch, but hoping to switch the laptop to gentoo soon.
Both are daily driving wayland (the desktop had nvidia card and used for gaming). The desktop is running a kernel with a minimal config that compiles in 2-3 minutes.
What’s your unusual setup like?
I sometimes use a snap
Gross
My username has a space and a newline in it.
Random things break at random times.
a) why? b) what does your shell prompt look like?
My work machine isn’t too unusual, apart that it has 52 USB devices connected. And here’s something you may not know: Linux can’t enumerate more than 16 USB ports if the root is configured as USB3, so I had to force all the ports to run in USB2 mode - which is fine in this case, since most of them are serial ports.
This is caused by your root controller’s limited bandwidth and it’s inability to handle that many 3.0 devices at the same time. Some of the newer motherboards with USB C PD have controllers in them that can do a lot more.
It’s basically a hack on part of the company that made the root controller IC. They know they only have enough internal bandwidth to support 16 USB 3.0 devices so they intentionally bork things when you plug in more than that since their Transaction Translator (TT) can’t handle more and they were too lazy to bother implementing the ability to share 2.0 and 3.0 properly.
I’m guessing the decision went something like this…
“We have enough bandwidth for 16 3.0 devices… What do we do if someone plugs in more than that?” “Only a few people will ever have that many! We don’t have the budget to handle every tiny little use case! Just ship it.”
So it’s not Linux fault in this case. Or at least, if it is (a problem with the driver) it’s because of some proprietary bullshit that the driver requires to function properly 🤷
Yeah I figured it might be something like that. But I wasn’t sure it wasn’t a kernel limit - or even a limit in the USB3 specification - because I actually only have one USB3-capable device connected (my cellphone). All the other devices are low-bandwidth USB2 FTDI USB serial converters. I thought it couldn’t be a bandwidth issue when all but one device can only use a fraction of what’s available.
Uh, you’re outputing 52 DMX universes straight from USB? I have questions!
- What software are you using, and is qlcplus really able to do that?
- Have you ever heard the words ArtNet? SACN?
I had no idea what you’re talking about so I had to look it up 🙂
I think you’re making assumptions on what I need many serial ports for and it’s nothing like what you think.
I work for a company that makes measuring instruments that talk serial (RS232, RS422 and UART), we have many variants of our products and I’m tired of plugging and unplugging devices to the same serial ports to test code. Also, I can’t do that remotely when I work from home. So I have many serial ports and all the different devices I need to test my code on regularly are all plugged in and powered at the same time.
No lighting here 🙂
Linux can’t enumerate more than 16 USB ports if the root is configured as USB3
What? Really?
I’m not sure it’s a kernel limitation or a hardware limitation. But it does throw an error in syslog when you connect the 17th device. Not as USB2 though.
Knowing some fringe users, your setup is probably ~3 points or so ahead of the middle of the bell curve. You never know. There’s probably a guy running kernel 4.12 on a 1990s CPU with his showa era CRT monitor to play freedoom.
fringe
Kept reading it as fridge users and was really flummoxed for a few seconds
Well, you aren’t that far off after all!
I have NixOS running on my main desktop with some unusual changes:
- / is mounted as tmpfs, with /etc, /nix and /var being mounted from the actual system partition (this actually isn’t too uncommon on NixOS)
- For swap, zswap and dynamically allocated swapfiles using swapspace daemon (this is imo the best swap setup if you don’t need hibernation)
- Akonadi (KDE’s PIM server) using PostgreSQL instead of MySQL
- ISO8601 date format, for this I have glibc’s en_DK locale which does this copied to en_SE because Qt has en_SE as the locale with ISO date
- A couple changes to make the layout more like macOS because I can:
- Partitions are either mounted or auto-symlinked (if they can’t be mounted there, such as for the system partition) under /Volumes
- I patched udisks to also mount devices under /Volumes
- User home directories are under /Users and root’s home is /var/root
- Keyboard layout changed as far as I can to be mostly like Mac’s so I don’t have to rethink layouts as much when switching between this and my MacBook
- Can’t technically list this anymore since I’ve had to tear it down for unrelated reasons but NFS using Kerberos authentication for my NAS
- This is apparently very unusual since a lot of games completely break with it but two monitors with the main monitor on the right
This is apparently very unusual since a lot of games completely break with it but two monitors with the main monitor on the right
This is unusual? I use the same monitor configuration, and I didn’t notice any problems with it. Or at least I didn’t figure out they could have been caused by monitor setup. Could you give me an example of what problems have you encountered?
Either games spawning on the wrong monitor and not reacting well to you moving the fullscreen window to the other monitor, or mouse input issues. Latest I’ve had was L.A. Noire, which locks the mouse to a portion of the screen and doesn’t allow you to freely turn the camera. (I just tested it again and now it seems to work fine though! I hope that persists.) Quake II doesn’t allow you to move the mouse at all, or rather only in what seems in like a 2 pixel wide boundary in the middle of the screen. No such issues if the other monitor is turned off or configured to be on the right side. I’ve encountered more games that had issues with this in the past but these two are the recent ones I’ve had trouble with since setting it up like this again.
If you’re on Wayland, try gamescope. It’s basically built to handle issue like this.
With L.A. Noire, that actually made it worse. It spawned on the wrong monitor, and every time I moved the mouse, the camera would spin to the right no matter what (even with only one monitor, I think). I need to get around to making bug reports for these.
Question: are you using Flakes?
I’ve been kinda dipping my toes on NixOS but the flakes are really throwing a wrench my way… Yet they are apparently NixOS’ future so I’m just kinda stuck
Yeah. Flakes are essentially three things (or four if you count the new CLI):
- Lock files for inputs (like NPM)
- A defined output layout (so, every flake has its packages at packages.<system> for example)
- Pure mode (don’t worry about it unless you read from arbitrary locations in the file system or try to download files without a hash)
That’s it, essentially nothing else changes. It’s just a different entry point to Nix code including NixOS configurations.
Here’s a great article (apparently, I have only skimmed it myself) explaining flakes more in detail: https://jade.fyi/blog/flakes-arent-real/
Flakes on the system level aren’t too bad. You can pretty much just keep your configuration.nix, but now you call that from a flake.nix. The difference is you remove all your nix-channels and you specify your nixpkgs in your flake.nix. So its really using a flake instead of nix-channels.
The cool part is when you nixos-rebuild the first time, it will save your nixpkgs version in a flake.lock. Then it will stay that way until you choose to upgrade with
nix flake update
. Nice and stable.
i have a single box i use for data storage; backup; wifi; router; and switch.
it runs ubuntu on the bare iron with
- a windows 10 kvm/qemu vm with pci pass through on wifi to get 1 gig wifi speeds on intel in ap mode (intel won’t allow it using linux drivers)
- a pfsense kvm/qemu vm for router & firewall to internet and with pci pass through on a 1 gig nic to gap the internet from the base ubuntu
- dns & ip masquerade along with kvm/qemu based sofware defined networking for windows, pfsense and ubuntu to forward all wifi and cabled network through to internet and
- connected via 3 gig nic and switch for much faster local data storage and backup on the ubuntu install.
- vpn and remote backup using pfsense for access to my setup from anywhere else in the world. (eg routing traffic from the office to my home connection for personal use and access to my data)
topographically, it looks like this, but in reality it’s all one box:
┌────┐ ┌─────────────┐ ┌───────────────────┤vpn │ ┌──────────────────┤windows (wifi│ ▼ └────┘ │ └─────────────┘ ┌──────────┐ │ │ internet │ │ └──────────┘ ▼ ┌───────┐ ┌──────┐ ┌───────────┐ ▲ ┌─────────┐ │ubuntu │◄───────┤switch│◄─────┤ backups │ └────────────────┤ pfsense │◄─────────────────┴───────┘ └──────┘ └───────────┘ └─────────┘
Alpine Linux on my desktop and laptop, Alpine on a Raspberry Pi 3 working as a network/Bluetooth speaker for 5.1 surround speakers, postmarketOS on 2 RockPro64’s which I’m currently replacing for a single x86 NAS running Alpine.
deleted by creator
i have a gentoo system with a custom s6-rc service tree that fully replaces openrc and boots via s6-linux-init.
instead of a display manager i have tinydm (from postmarketos) and autologin setup. since i use full-disk encryption and suspend-to-disk i find that i don’t need the extra login step into my user session.
i have a bunch of bemenu-based helpers for wifi, bluetooth, vpn, audio, passwords, mounting drives, etc.
i don’t have polkit or sudo installed. i use doas.
I use Microsoft edge
Not mine, but while I was an intern for a lab I enjoyed using a very normal-looking desktop with a casual 4TB of DDR4 and no SSD or HD, dual Xeon configuration. Rather, it did network boot and pivot root into an in-memory filesystem. It had a UPS and typically ran for months entirely from volatile storage and was used to run experimental photo and video processing. This was about ten years ago.
I can only imagine what that much RAM and a system that could hold it cost 10 years ago. Yikes.
I have a Microsoft Surface 7 running NixOS. Everything works, even touch/pen
@mjpc13 @cyclohexane that’s impressive. Would mean the laptops should also be supported ? Was it hard to do?
It was not too hard if you are already familiar with Nix. The features supported (and the custom Linux kernel) can be found in surface-linux. For NixOS I used the nix-hardware flake to simplify things.
The worst part was the compilation of the Linux kernel, that took hours on the surface. Eventually, I used the remote nix build feature to compile on a more capable computer.
@mjpc13 this would be an amazing blog if you wrote it up. Front page HN content right here. Very cool stuff. Thank you for sharing.
Maybe I’ll write something in the future
Wellll, so I practically used to write my own WM
Stump user huh?
Or maybe DWM?
I used to have Gentoo running a Libvirt hypervisor, which would then run multiple short lived isolated windows and Linux machines with GPU passthrough for all the different companies and projects I was working on.
Spent far too much time keeping the guest machine images up to date, and all the configs and stuff managed and synchronised.
Then my laptop died that I was using to manage everything so I gave up.
A Qubes OS-like setup for windows machines. I like it. I do have an headless GPU ready in case I want to do such a thing.
Some tips? Were you running Windows 10? How was the performance?