1
440
submitted 2 years ago* (last edited 2 years ago) by wfh@lemm.ee to c/linux@lemmy.ml

You're about to take your first steps in the wonderful world of Linux, but you're overwhelmed by the amount of choices? Welcome to this (I hope) very simple guide :)

The aim of this guide is to provide simple, clear information to ease your transition as a beginner. This is not a be-all-end-all guide nor an advanced guide. Because there is a lot of info and explanations everywhere, I will often (over-)simplify so as to keep the information accessible and digestible. Please refrain from asking to add your favorite distro/DE in the comments, I feel there is too much choice already ;)

Preamble

Make sure your hardware is compatible

Nowadays most relatively recent hardware works perfectly fine on Linux, but there are some edge cases still. If you don't use niche hardware and your wifi card is supported, chances are you're golden. Please note that nVidia is a bad faith player in the Linux world, so if you have a GeForce GPU, expect some trouble.

Make sure your favourite apps are either available or have a good replacement on Linux

If some proprietary app is essential to your workflow and is irreplaceable, consider running it in a VM, keeping a Windows partition for it or try and run it through Wine (this is advanced stuff though).

Be aware that Linux is not Windows/MacOS

Things work differently, and this is normal. You will probably struggle at the beginning while adjusting to a new paradigm. You may have to troubleshoot some things. You may break some things in the process. You will probably get frustrated at some point or another. It's okay. You're learning something new, and it can be hard to shed old habits forged by years on another system.

When in doubt, search for documentation

Arch Wiki is one of the greatest knowledge bases about Linux. Despite being heavily tied to Arch, most of its content is readily usable to troubleshoot most modern distros, as the building blocks (Kernel, systemd, core system apps, XOrg/Wayland, your DE of choice etc.) are the same. Most distros also maintain their own knowledge base.

Understanding the Linux world

What is Linux?

Linux, in the strictest definition, is the kernel, ie. the core component that, among other things, orchestrates and handles all interactions between hardware and software, of a large family of operating systems that, by metonymy, are called "Linux". In general understanding, Linux is any one of these operating systems, called distros.

What is a distro?

A distro, short for "Software Distribution", is a cohesive ensemble of software, providing a full operating system, maintained by a single team. Generally, all of them tend to provide almost the same software and work in a very similar way, but there are major philosophical differences that may influence your choice.

What are the main differences between distros?

As said above, there are a lot of philosophical differences between distros that lead to practical differences. There are a lot of very different ways the same software can be distributed.

  • "Point Release" (OpenSUSE Leap) vs. "Rolling Release" (OpenSUSE Tumbleweed): Point release distros are like traditional software. They have numbered releases, and between each one no feature updates take place, only security updates and bug fixes. Rolling Release distros package and distribute software as soon as it's available upstream (the software developer's repos), meaning that there are no versions and no specific schedule.
  • "Stable" (Debian Stable) vs. "Bleeding edge" (Arch): Stable distros are generally point release, and focus on fixing bugs and security flaws at the expense of new features. Each version goes through a lenghty period of feature freeze, testing and bug fixing before release. Stability here not only means trouble-free operation, but more importantly consistent behavior over time. Things won't evolve, but things won't break. At least until the next release. Bleeding edge distros, which often follow the rolling release model (there are outliers like Fedora which are mostly bleeding edge yet have point releases), on the other hand, are permanently evolving. By constantly pushing the latest version of each software package, new features, new bugs, bug fixes, security updates and sometimes breaking changes are released continuously. Note that this is not a binary, there is a very large continuum between the stablest and the most bleeding edge distro.
  • "Community" (Fedora) vs. "Commercial" (RHEL): Despite the name, Community distros are not only maintained by volunteers, but can also be developed by some company's employees and can be sponsored by commercial entities. However, the main difference with Commercial distros is that they're not a product destined to be sold. Commercial distros like Red Hat's RHEL, SuSE Linux Enterprise or Ubuntu Pro are (supposed to be) fully maintained by their company's employees and target businesses with paid support, maintenance, fixes, deployment, training etc.
  • "x package manager" vs. "y package manager", "x package format" vs. "y package format": It doesn't matter. Seriously. apt, dnf or pacman, to name a few, all have the exact same purpose: install and update software on your system and manage dependencies.
  • "general purpose" (Linux Mint) vs. "niche" (Kali Linux): General purpose distros are just that: distros that can do pretty much anything. Some are truly general purpose (like Debian), and have no bias towards any potential use, be it for a server, a desktop/laptop PC, some IOT or embedded devices, containers etc., some have various flavors depending on intended use (like Fedora Workstation for desktops and Fedora Server for, you guessed it, servers) but are still considered general purpose. They aim for maximum hardware compatibility and broad use cases. At the opposite end, niche distros are created for very specific and unique use cases, like pentesting (Kali), gaming (Nobara), music production (AV Linux) etc. They tend to have a lot of specific tools preinstalled, nonstandard defaults or modified kernels that may or may not work properly outside of their inteded use case.
  • "team" (Any major distro) vs. "single maintainer" (Nobara): Pretty self explanatory. Some distros are maintained by a single person or a very small group of people. These distros do not usually last very long.
  • "traditional" (Fedora Workstation) vs. "atomic" (Fedora Silverblue): In traditional distros, everything comes from a package. Every single component is individually installable, upgradeable, and deletable. Updating a package means deleting its previous version and replacing it with a new one. A power failure during an update lead to a partial upgrade and can make a system unbootable. Maybe a new package was bad and breaks something. Almost nothing prevents an unsuspecting user from destroying a core component. To mitigate risks and ensure a coherent system at each boot, atomic (also called transactional or immutable) distros, pioneered by Fedora Silverblue and Valve's SteamOS, were born. Like mobile phone OSes, the base system is a single image, that gets installed, alongside the current running version and without modifying it, and becomes active at the next reboot. As updates are isolated from one another, if the new version doesn't work the user can easily revert to a previous, functional version. Users are expected to install Flatpaks or use Distrobox, as installing (layering) packages is not as straightforward as with standard distros.
  • "OG" (Debian) vs. "derivative" (Ubuntu): Original distros are directly downstream of their components' source code repositories, and do most of the heavy lifting. Because of the tremendous amount of work it represents, only a few distros like Debian, Arch, Slackware or Fedora have the history, massive community and sometimes corporate financial backing to do this. Other distros reuse most packages from those original distros and add, replace or modify some of them for differenciation. For example, Debian is the parent of almost all deb-based distros like Ubuntu, which itself is the parent of distros like Mint or Pop!_OS.

What are the main components of a distro, ie. a Linux-based operating system?

All distros provide, install and maintain, among other things, the following components:

  • Boot and core system components (these are generally out-of-scope for beginners, unless you need to fix something, but you should at least know they exist):
    • A boot manager (GRUB, systemd_init, etc.): Boots the computer after the motherboard POSTs, lets you choose what to start
    • An init system (systemd, etc.): Starts everything needed to run the computer, including the kernel
    • A kernel (Linux): Has control over everything, main interface for software to discuss with hardware
  • Command-line environment, to interact with he computer in text mode:
    • A shell (bash, zsh, fish etc.): The main interface for command-line stuff
    • Command-line tools (GNU, etc.): Standard suite of command-line tools + default tools chosen by the distro maintainers
    • User-installable command-line tools and shells
  • Graphical stack for desktop/laptop computers:
    • Display servers (X11, Wayland compositors): Handle drawing stuff on screens
    • A Desktop environment (Plasma, Gnome, XFCE etc.): The main graphical interface you'll interact with everyday.
    • User-facing applications (browsers, text processors, drawing software etc.): Some are generally installed by default and/or are part of a desktop environment's suite of software, most are user-installable.
  • A package manager (apt, dnf, pacman, yast etc.): Installs, deletes, updates and manages dependencies of all software installed on the machine.

Which are the main Desktop Environments and which one should I choose?

As a new user, this is basically the only thing you should concern yourself about: choosing a first Desktop environment. After all, it will be your main interface for the weeks/years to come. It's almost as important as choosing your first distro. These are a few common choices that cater to different tastes:

  • Gnome: Full featured yet very minimalist, Gnome is a great DE that eschews the traditional Desktop metaphor. Like MacOS, out of the box, it provides its strongly opinionated developers' vision of a user experience. Fortunately, unlike MacOS, there are thousands of extensions to tweak and extend the looks and behaviour of the DE. Dash-to-dock or Dash-to-panel are great if you want a more MacOS-like or Windows-like experience, Blur My Shell is great if you love blurry transparent things, Appindicator is a must, and everything else is up to you. Gnome's development cycle is highly regular and all core components and apps follow the same release schedule, which explains why a lot of distros choose it as their default DE.
  • KDE Plasma: Full featured and maximalist, Plasma does not cater to a single design philosophy, is very flexible and can be tweaked almost ad infinitum. This may be an advantage for people who like to spend hours making the perfect environment, or a disadvantage as the possibilities can be overwhelming, and the added complexity may compromise stability, bugginess or completeness. There is not yet a single development cycle for core components and apps, which makes it a bit more difficult for distro maintainers and explains why there are so few distros with Plasma as the flagship DE. The KDE team is however evolving towards a more regular update cycle.
  • Cinnamon: Forked from Gnome 3 by the Linux Mint team who disliked the extreme change of user experience it introduced, Cinammon provides a very traditional, "windows-like", desktop-metaphor experience in a more modern software stack than the older DEs it takes inspiration from. Cinnamon still keeps a lot in common with Gnome by being simple and easy to use, yet heavily modifiable with themes, applets and extensions.
  • Lightweight DEs for old or underpowered machines: The likes of XFCE, LXDE, LXQt are great if you want to ressurect an old machine, but lack the bells and whistles of the aforementioned DEs. If your machine is super old, extremely underpowered and has less than a few Gb of RAM, don't expect miracles though. A single browser tab can easily dwarf the RAM usage and processing power of your entire system.

As for which one you should choose, this is entirely up to you, and depends on your preferences. FYI, you are not married to your distro's default desktop environment. It's just what comes preinstalled. You can install alternative DEs on any distro, no need to reinstall and/or distro-hop.

How do I install stuff on Linux?

Forget what you're used to do on Windows of MacOS: searching for your software in a seach engine, finding a big "Download" button on a random website and running an installer with administator privileges. Your package manager not only keeps you system up to date, but also lets you install any software that's available in your distro's repositories. You don't even need to know the command line, Gnome's Software or Plasma's Discover are nice graphical "App Stores" that let you find and install new software.

Flatpak are a great and more recent recent alternative to distro packages that's gaining a lot of traction, and is increasingly integrated by default to the aforementioned App Stores. It's basically a "universal" package manager system thet sits next to your system, that lets software developers directly distribute their own apps instead of offloading the packaging and distribution to distro maintainers.

Choosing a first distro

As discussed before, there is a metric fuckload (or 1.112 imperial fucktons) of distros out there. I advise you to keep it as mainstream as possible for your first steps. A distro with a large user base, backed by a decently large community of maintainers and contributors and aimed at being as fuss-free as possible is always better than a one-person effort tailored to a specific use-case. Choose a distro that implements well the DE of your choice.

What are great distros for beginners?

The following are great distros for beginners as well as more advanced users who just want to have a system that needs almost no configuration out of the box, just works and stays out of the way. Always read the installation documentation thoroughly before attempting anything, and follow any post-install requirements (for example, installing restricted-licence drivers on Fedora).

  • Fedora Workstation: Clean, sensible, modern and very up to date and should work out of the box for most hardware. Despite being sponsored by Red Hat (who are getting a lot of justified hate for moving RHEL away from open-source), this is a great community distro for both beginners and very advanced users (including the Linus Torvalds). Fedora is the flagship distro for the Gnome Desktop Environment, but also has a fantastic Plasma version. Keywords: Point Release, close to Bleeding Edge, Community, dnf/rpm, large maintainer team, traditional, original.
  • Linux Mint: Mint is an Ubuntu (or Debian for the LMDE variant) derivative for beginners and advanced users alike, that keeps Ubuntu's hardware support and ease of use while reverting its shenanigans and is Cinammon's flagship distro. Its main goal is to be a "just works" distro. Keywords: Point Release, halfway between Stable and Bleeding Edge, Community, apt/deb, smallish maintainer team but lots of contributors, traditional, derivative (Ubuntu or Debian).
  • Pop!_OS: Backed by hardware Linux vendor System76, this is another Ubuntu derivative that removes Snaps in favor or Flatpaks. Its heavily modified Gnome DE looks and feels nice. In a few months/years, it will be the flagship distro for the -promising but still in development- Cosmic DE. Keywords: Point Release, halfway between Stable and Bleeding Edge, commercially-backed Community, apt/deb, employee's maintainer team, traditional, derivative (Ubuntu).
  • If you want something (advertised as) zero-maintenance, why not go the Atomic way? They are still very new and there isn't a lot of support yet because they do things very differently than regular distros, but if they wort OOTB on your system, they should work reliably forever. Sensible choices are uBlue's Aurora (Plasma), Bluefin (Gnome) or Bazzite (gaming-ready), which are basically identical to Fedora's atomic variants but include (among other things) restricted-licence codecs and QOL improvements by default, or OpenSUSE's Aeon (Gnome). Keywords: Point Release, Bleeding Edge, Community, rpm-ostree, large maintainer team, Atomic, sub-project (Fedora/OpenSUSE).

Which power-user distros should I avoid as a beginner, unless I reaaaally need to understand everything instead of being productive day one?

These are amongst the very best but should not be installed as your first distro, unless you like extremely steep learning curves and being overwhelmed.

  • Debian Stable: as one of the oldest, still maintained distros and the granddaddy of probably half of the distros out there, Debian is built like a tank. A very stringent policy of focusing on bug and security fixes over new features makes Debian extremely stable and predictable, but it can also feel quite outdated. Still a rock-solid experience, with a lot to tinker with despite very sensible defaults. It is an incredible learning tool and is as "Standard Linux" as can be. Debian almost made the cut to "beginner" distros because of its incredible reliability and massive amount of documentation available, but it might be a bit too involved for an absolute beginner to configure to perfection. Keywords: Point Release, Stable as fuck, Community, apt/deb, large maintainer team, traditional, original.
  • Arch: The opposite of Debian in philosophy, packages often come to Arch almost as soon as the source code is released. Expect a lot of manual installation and configuration, daily updates, and regularly fixing stuff. An incredible learning tool too, that will make you intimate with the inner workings of Linux. The "Arch btw" meme of having to perform every single install step by hand has taken a hit since Arch has had a basic but functional installer for a few years now, which is honestly a good thing. I work in sofware. A software engineer who does every single tedious task manually instead of automating it is a shit software engineer. A software engineer who prides themself from doing every single tedious task manually should seriously reconsider their career choices. Arch's other main appeal is the Arch User Repository or AUR, a massive collection of user-created, automated install scripts for pretty much anything. Keywords: Rolling Release, Bleeding-edge, Community, pacman/pkg, large maintainer team, traditional, original.

Which distro should I avoid, period?

  • Ubuntu: despite having a huge mind-share as the beginner distro, Ubuntu suffers from it's parent company's policy to make Ubuntu kinda-Linux-but-not-really and a second-rate citizen compared to their Ubuntu Pro commercial product. Some of the worst takes in recent years have been pushing Snaps super agressively in order to get some "vendor-lock-in", proprietary walled-garden ecosystem with exclusive commercial apps, forcibly installing snaps even when explicitely asking for a .deb package through apt, baking ads and nags into major software or only delivering critical security patches to Pro customers. Fortunately, there are some great derivatives like Mint or Pop!_OS cited above that work equally well but revert some of the most controversial decisions made by Canonical.
  • Manjaro: Manjaro might seem appealing as a "user-friendlier" Arch derivative and some of its tools are fantastic to remove some configuration burden, but ongoing mismanagement issues and the fact that it needs Arch-style regular maintenance as updates often break stuff prevent it from being a truly beginner distro. Manjaro also has a highly irregular update schedule that's weeks behind Arch, making using the AUR extremely dangerous, as it always expects a fully up-to-date Arch system.
  • Any single-maintainer or tiny team distros like Nobara or CachyOS. They might be fantastic distros made by exceptional people (I have mad respect for Nobara's maintainer Glorious Eggroll and his work on Proton-GE), they are most often derivatives so the heavy lifting is already done by their parent distro's maitainers, but there is too much risk involved. Sometimes life happens, sometimes people move on to other projects, and dozens of small distros get abandonned every year, leaving their users dead in the water. Trusting larger teams is a much safer bet in the long term.
  • Anything that refuse to use standards for ideological reasons like Alpine Linux, Devuan or Artix. Don't get me wrong, not using any GNU tools or systemd is a cool technological feat and developing alternatives to the current consensus is how things evolve. However, these standard tools have a long history, hundreds if not thousands of maintainers and are used by millions, meaning there's a huge chance your specific issue is already solved. Refusing to use them should be reserved to very advanced users who perfectly understand what they're gaining and losing. As a beginner to intermediate level, it will at best make most of the documentation out there irrelevant, at worst make your life a miserable hell if you need to troubleshoot anything.

Philosophical questions, or "I've seen people arguing over the Internet and now I'm scared"

You've done your research, you're almost ready to take the plunge, you even read a lot of stuff on this very community or on the other website that starts with a "R", but people seem very passionately for or against stuff. What should you do?

Shoud I learn the command line?

Yes, eventually. To be honest, nowadays a lot of things can be configured on the fly graphically, through your DE's settings. But sometimes, it's much more efficient to work on the command line, and sometimes it's the only way to fix something. It's not that difficult, and you can be reasonably productive by understanding just about a dozen very simple commands.

I have a very old laptop/desktop, should I use a distro from its era?

Noooo!. Contrary to Windows and MacOS which only work correctly on period-correct computers, Linux runs perfectly well on any hardware from the last 20 to 30 years. You will not gain performance by using an old distro, but you will gain hundreds of critical security flaws that have been since corrected. If you need to squeeze performance out of an old computer, use a lightweight graphical environment or repurpose it as a headless home server. If it's possible, one of the best ways to breathe new life into an old machine is to add some RAM, as even lightweight modern sofware will struggle with less than a few Gb.

Should I be concerned about systemd?

No. In short, systemd is fine and all major distros have switched to systemd years ago. Even the extremely cautious people behind Debian have used systemd as default since 2015. Not wanting to use systemd is a niche more rooted in philosophical and ideological rather than practical or technical reasons, and leads to much deeper issues than you should concern yourself with as a beginner.

Should I be concerned about XOrg/Wayland?

Yes and No, but mostly No. First off, most distros install both Wayland and XOrg by default, so if one is not satisfying to you, try the other. Remember in the preamble when I said nVidia was a bad actor? Well, most of people's complaints about Wayland are because of nVidia and their shitty drivers, so GTX/RTX users should stay on XOrg for now. But like it or not, XOrg is dead and unmaintained, and Wayland is the present and future. XOrg did too many things, carried too many features from the 80's and 90's and its codebase is a barely maintainable mess. X11 was born in a time when mainframes did most of the heavy lifting and windows were forwarded over a local network to dumb clients. X11 predates the Internet and has basically no security model. Wayland solves that by being a much simpler display protocol with a much smaller feature set adapted to modern computing and security. The only downside is that some very specific functionalities based on decades of X11 hacking and absolute lack of security can be lost.

I want to play some games, should I look for a gaming distro?

No. General purpose distros are perfectly fine for gaming. You can install Steam, Lutris, Heroic, Itch etc. and use Proton just fine on almost anything. Even Debian. In short, yes, you can game on Linux, there are great tutorials on the internet.

Should I be concerned about Flatpaks and/or Snaps vs. native packages?

Not really. Flatpaks are great, and more and more developers package their apps directly in Flatpak format. As a rule of thumb, for user facing applications, if your app store gives you the choice between Flatpak and your native package manager version, choose the most recent stable version and/or the one packaged by the developer themselves (which should often be the Flatpak anyway). Snaps however are kinda bad. They are a Canonical/Ubuntu thing, so as long as you avoid Ubuntu, its spins and its derivatives that still include Snaps, you should be fine. They tend to take a lot longer to startup than regular apps or Flatpaks, the snap store is proprietary, centralized and Canonical controls every part of it. Also, Canonical is very aggressive in pushing snaps to their users, even forcing them even when they want to install an apt package. If you don't care, have fun.

I need/want program "x", but it is only available on distro "y" and not on mine. I've been told to ditch my beloved distro and install the other one, should I?

No. Generally, most software is intallable from your distro's package manager and/or Flatpak. But sometimes, your distro doesn't package this program you need, or an inconsiderate developer only distributes a random .deb on their Github release page. Enter Distrobox. It is a very simple, easy to use command line tool that automates the creation of other Linux distros containers using Docker or Podman (basically, tiny, semi-independant Linuxes that live inside your regular Linux), and lets you "export" programs installed inside these containers to you main system so you can run them as easily and with almost the same performance as native programs. Some atomic distros like uBlue's variants even include it by default. That .deb we've talked about before? Spin a Debian container and dpkg install the shit out of it. Absolutely need the AUR? Spin an Arch container and go to town.

Acknowledgements

Thanks to everyone who helped improve this guide: @GravitySpoiled@lemmy.ml, @tkn@startrek.website, @throwaway2@lemmy.today, @cerement@slrpnk.net, @kzhe@lemm.ee, @freijon@feddit.ch, @aarroyoc@lemuria.es, @SexualPolytope@lemmy.sdf.org, @Plopp@lemmy.world, @bsergay@discuss.online ...and many others who chimed in in the comments <3

Link to version 1: https://lemm.ee/post/15895051

2
8
submitted 5 hours ago* (last edited 5 hours ago) by inari@piefed.zip to c/linux@lemmy.ml
3
533
submitted 18 hours ago* (last edited 17 hours ago) by marcie@lemmy.ml to c/linux@lemmy.ml

https://gs.statcounter.com/os-market-share/desktop/north-america/#monthly-200901-202607

https://radar.cloudflare.com/explorer?dataSet=http&groupBy=os&dt=28d&loc=north-america&filters=deviceType%253DDESKTOP

Cloudflare stats also seem to support peaks of 15% usage but around 9-10% on average. In the United States alone, the market share for Linux is nearly 12% now for the whole month and Cloudflare stats suggest peaks of up to 25% (!) Linux desktop usage on certain days and times.

The trendline suggests this is just the start. When will companies realize they cannot ignore Linux anymore?

4
160
submitted 22 hours ago by TheIPW@lemmy.ml to c/linux@lemmy.ml

Two years into full-time Linux and I’m finally burning the distro-hopping cycle. I fell for the Arch/AUR trap for a while, but I got tired of spending my weekends debugging file manager crashes instead of maintaining my home lab.

Switched back to Fedora, and it’s boring in exactly the way I need it to be. It’s a stable launchpad for my projects, not the project itself.

5
10
submitted 15 hours ago* (last edited 15 hours ago) by inari@piefed.zip to c/linux@lemmy.ml
6
21
submitted 18 hours ago by Virual@lemmy.dbzer0.com to c/linux@lemmy.ml
7
3
submitted 14 hours ago by ranzispa@mander.xyz to c/linux@lemmy.ml

I'm thinking of setting up multi user nix on a compute cluster. The advantage would be to have a shared storage where common packages are reused, this is a great advantage compared to conda where every environment duplicates storage and inodes.

However, the packages are installed as root. As such I'm a bit wary of whether a user installing something could have the system run malware as root by installing a package.

What are the safeguards in place and how do I know I can trust them?

8
5
submitted 17 hours ago* (last edited 17 hours ago) by WereCat@lemmy.world to c/linux@lemmy.ml

Hi, I've decided to try NixOS on my laptop and I've encountered this minor issue that I'm unable to locate the name of the default audio player package on GNOME.

Apparently it's supposed to be called 'gnome-decibels' but I can't find it anywhere or open it via terminal. Before I was able to open it via terminal with gnome-music but now that I've removed it by adding it into the

environment.gnome.excludePackages = with pkgs.gnome; [

music

];

it still appears in the applications menu and I can still open it and confirm it runs and it's called "Decibels" but if I try adding decibels into the exclude list I get error that no such pkgs exist and can't rebuild.

Any idea what's up with this? I was able to remove everything else that's bundled with GNOME by default which I don't use.

9
166
submitted 1 day ago by mereo@piefed.ca to c/linux@lemmy.ml
10
176
submitted 1 day ago by KarnaSubarna@lemmy.ml to c/linux@lemmy.ml
11
24

Which approach do you think is better, and why?

  1. FIDO2
  2. HMAC-SHA1
  3. OpenPGP (alternative guide)

Or do you think there is an even better way to use a hardware security token to unlock drives having LUKS full disk encryption?

12
24
submitted 1 day ago by libewa@feddit.org to c/linux@lemmy.ml

I just found out about systemd-analyze, and it shows that the 5 slowest devices are all the TPM. Why is that, and can I do anything about it? I do actually use the TPM for disk encryption and Measured Boot, and can't simply disable it. My host is a ThinkPad T14 Gen 6 AMD, and I run NixOS with this configuration.

The output of systemd-analyze blame

5.246s sys-devices-platform-NTC0702:00-tpmrm-tpmrm0.device
5.246s dev-tpmrm0.device
4.109s sys-devices-virtual-dmi-id.device
3.661s sys-devices-platform-NTC0702:00-tpm-tpm0.device
3.661s dev-tpm0.device
3.634s dev-ttyS0.device
3.634s sys-devices-platform-serial8250-serial8250:0-serial8250:0.0-tty-ttyS0.device
3.633s sys-devices-platform-serial8250-serial8250:0-serial8250:0.2-tty-ttyS2.device
3.633s dev-ttyS2.device
3.633s dev-ttyS1.device
3.633s sys-devices-platform-serial8250-serial8250:0-serial8250:0.1-tty-ttyS1.device
3.632s dev-ttyS3.device
3.632s sys-devices-platform-serial8250-serial8250:0-serial8250:0.3-tty-ttyS3.device
3.547s dev-disk-by\x2dpath-pci\x2d0000:c1:00.0\x2dnvme\x2d1\x2dpart-by\x2duuid-77CE\x2dDAD4.device
3.547s sys-devices-pci0000:00-0000:00:02.1-0000:c1:00.0-nvme-nvme0-nvme0n1-nvme0n1p1.device
3.547s dev-disk-by\x2did-nvme\x2dSKHynix_HFS256GEM9X169N_5SE9N446214309B2S\x2dpart1.device
3.547s dev-disk-by\x2did-nvme\x2dSKHynix_HFS256GEM9X169N_5SE9N446214309B2S_1\x2dpart1.device
3.547s dev-disk-by\x2dpartuuid-d934ece7\x2de91d\x2d47e8\x2db93e\x2d5a9523864f89.device
3.547s dev-disk-by\x2dpartlabel-disk\x2dmain\x2dESP.device
3.547s dev-disk-by\x2did-nvme\x2deui.ace42e0055a17b99\x2dpart1.device
3.547s dev-nvme0n1p1.device
3.547s dev-disk-by\x2duuid-77CE\x2dDAD4.device
3.547s dev-disk-by\x2dpath-pci\x2d0000:c1:00.0\x2dnvme\x2d1\x2dpart1.device
3.547s dev-disk-by\x2ddesignator-esp.device
3.547s dev-disk-by\x2dpath-pci\x2d0000:c1:00.0\x2dnvme\x2d1\x2dpart-by\x2dpartuuid-d934ece7\x2de91d\x2d47e8\x2db93e\x2d5a9523864f89.device
3.547s dev-disk-by\x2dpath-pci\x2d0000:c1:00.0\x2dnvme\x2d1\x2dpart-by\x2dpartnum-1.device
3.547s dev-disk-by\x2ddiskseq-1\x2dpart1.device
3.547s dev-disk-by\x2dpath-pci\x2d0000:c1:00.0\x2dnvme\x2d1\x2dpart-by\x2dpartlabel-disk\x2dmain\x2dESP.device
3.536s dev-disk-by\x2dpartlabel-disk\x2dmain\x2dluks.device
3.536s dev-disk-by\x2dpath-pci\x2d0000:c1:00.0\x2dnvme\x2d1\x2dpart2.device
3.536s dev-disk-by\x2dpath-pci\x2d0000:c1:00.0\x2dnvme\x2d1\x2dpart-by\x2dpartlabel-disk\x2dmain\x2dluks.device
3.536s dev-disk-by\x2dpartuuid-b4d9eb9a\x2d04d8\x2d4a74\x2d9348\x2d0a45c1825f41.device
3.536s dev-disk-by\x2dpath-pci\x2d0000:c1:00.0\x2dnvme\x2d1\x2dpart-by\x2dpartnum-2.device
3.536s dev-nvme0n1p2.device
3.536s dev-disk-by\x2duuid-cbf7bc59\x2df58d\x2d4bd5\x2d8dac\x2d4fcb5baa8106.device
3.536s sys-devices-pci0000:00-0000:00:02.1-0000:c1:00.0-nvme-nvme0-nvme0n1-nvme0n1p2.device
3.536s dev-disk-by\x2ddiskseq-1\x2dpart2.device
3.536s dev-disk-by\x2did-nvme\x2dSKHynix_HFS256GEM9X169N_5SE9N446214309B2S_1\x2dpart2.device
3.536s dev-disk-by\x2did-nvme\x2deui.ace42e0055a17b99\x2dpart2.device
3.536s dev-disk-by\x2dpath-pci\x2d0000:c1:00.0\x2dnvme\x2d1\x2dpart-by\x2dpartuuid-b4d9eb9a\x2d04d8\x2d4a74\x2d9348\x2d0a45c1825f41.device
3.536s dev-disk-by\x2dpath-pci\x2d0000:c1:00.0\x2dnvme\x2d1\x2dpart-by\x2duuid-cbf7bc59\x2df58d\x2d4bd5\x2d8dac\x2d4fcb5baa8106.device
3.536s dev-disk-by\x2did-nvme\x2dSKHynix_HFS256GEM9X169N_5SE9N446214309B2S\x2dpart2.device
3.520s dev-disk-by\x2ddiskseq-1.device
3.520s dev-disk-by\x2dpath-pci\x2d0000:c1:00.0\x2dnvme\x2d1.device
3.520s dev-disk-by\x2did-nvme\x2dSKHynix_HFS256GEM9X169N_5SE9N446214309B2S_1.device
3.520s sys-devices-pci0000:00-0000:00:02.1-0000:c1:00.0-nvme-nvme0-nvme0n1.device
3.520s dev-disk-by\x2did-nvme\x2dSKHynix_HFS256GEM9X169N_5SE9N446214309B2S.device
3.520s dev-nvme0n1.device
3.520s dev-disk-by\x2did-nvme\x2deui.ace42e0055a17b99.device
2.164s sys-devices-pci0000:00-0000:00:08.3-0000:c6:00.0-usb3-3\x2d5-3\x2d5.2.device
2.164s dev-bus-usb-003-005.device
1.989s systemd-timesyncd.service
1.949s systemd-tpm2-setup.service
1.791s firewall.service
1.517s systemd-pcrlock-make-policy.service
1.403s home-manager-linus.service
1.261s libvirtd.service
1.171s initrd-switch-root.service
1.073s home-manager-guest.service
 757ms fwupd.service
 460ms NetworkManager.service
 258ms systemd-journal-flush.service
 252ms systemd-udev-trigger.service
 231ms systemd-modules-load.service
 154ms btrbk-btrbk.service
 152ms systemd-pstore.service
 128ms user@1000.service
 106ms cups.service
 103ms systemd-random-seed.service
  91ms upower.service
  90ms fwupd-refresh.service
  89ms plymouth-quit.service
  86ms systemd-tmpfiles-setup-dev.service
  85ms libvirtd-config.service
  84ms systemd-udevd.service
  73ms suid-sgid-wrappers.service
  70ms systemd-pcrlock-secureboot-authority.service
  70ms systemd-pcrlock-firmware-code.service
  66ms udisks2.service
  66ms resolvconf.service
  62ms systemd-pcrlogin@1000.service
  58ms systemd-pcrlogin@994.service
  58ms systemd-tmpfiles-setup.service
  57ms systemd-tpm2-setup-early.service
  56ms avahi-daemon.service
  55ms power-profiles-daemon.service
  52ms bluetooth.service
  50ms polkit.service
  49ms wpa_supplicant.service
  49ms systemd-rfkill.service
  48ms NetworkManager-ensure-profiles.service
  48ms plymouth-quit-wait.service
  43ms systemd-logind.service
  40ms systemd-journald.service
  40ms rtkit-daemon.service
  40ms dbus-broker.service
  38ms network-local-commands.service
  37ms boot.mount
  34ms systemd-hostnamed.service
  31ms systemd-sysctl.service
  31ms logrotate.service
  30ms systemd-tmpfiles-clean.service
  29ms modprobe@sd_mod.service
  28ms systemd-oomd.service
  28ms systemd-fsck@dev-disk-by\x2dpartlabel-disk\x2dmain\x2dESP.service
  27ms NetworkManager-wait-online.service
  26ms fwupd-efi.service
  25ms modprobe@fuse.service
  25ms systemd-backlight@leds:tpacpi::kbd_backlight.service
  24ms systemd-vconsole-setup.service
  23ms plymouth-start.service
  22ms systemd-pcrlock-secureboot-policy.service
  21ms systemd-machined.service
  20ms systemd-backlight@backlight:amdgpu_bl1.service
  20ms systemd-boot-random-seed.service
  20ms user-runtime-dir@1000.service
  18ms systemd-journalctl.socket
  17ms plymouth-read-write.service
  16ms dev-hugepages.mount
  15ms systemd-tmpfiles-setup-dev-early.service
  15ms dev-mqueue.mount
  15ms sys-kernel-debug.mount
  14ms systemd-remount-fs.service
  14ms logrotate-checkconf.service
  14ms sys-kernel-tracing.mount
  14ms \x2eswap.mount
  13ms nscd.service
  13ms systemd-user-sessions.service
  13ms post-boot.service
  13ms media.mount
  12ms modprobe@configfs.service
  12ms libvirt-guests.service
  11ms run-wrappers.mount
  11ms NetworkManager-dispatcher.service
  10ms linger-users.service
  10ms sleep-actions.service
  10ms kmod-static-nodes.service
  10ms cups.socket
   9ms \x2eswap-swapfile.swap
   8ms home.mount
   7ms proc-sys-fs-binfmt_misc.mount
   7ms sys-fs-fuse-connections.mount
   6ms plymouth-tpm2-totp.service
   6ms systemd-update-utmp.service
   4ms sys-kernel-config.mount
   4ms systemd-binfmt.service
   3ms pcscd.socket
   2ms podman.socket
   1ms nix-daemon.socket
 902us polkit-agent-helper.socket
 686us systemd-repart.socket
 625us systemd-bootctl.socket
 565us systemd-mute-console.socket
 541us systemd-coredump.socket
 519us systemd-ask-password.socket
 478us systemd-factory-reset.socket
 360us systemd-pcrextend.socket
 337us systemd-pcrlock.socket
 334us systemd-creds.socket
 144us systemd-udevd-varlink.socket
  42us systemd-importd.socket
  26us dbus.socket
  23us avahi-daemon.socket
  20us systemd-machined.socket
  20us systemd-rfkill.socket
  18us systemd-journald.socket
  16us systemd-oomd.socket
  15us libvirtd.socket
  13us systemd-journald-dev-log.socket
  13us systemd-journald-audit.socket
   9us systemd-hostnamed.socket
   8us systemd-udevd-control.socket
   7us libvirtd-admin.socket
   5us virtlogd.socket
   5us virtlockd.socket
   5us libvirtd-ro.socket
   4us systemd-udevd-kernel.socket

13
37
submitted 2 days ago by Remy@lemmy.today to c/linux@lemmy.ml

Hello,

I am looking for a program that can force me to stop using Linux when I need to do something else, like eating dinner or going to bed.

This time enforcement could be as simple as changing the user password and then logging me out at a certain time (of course it should also change the password back later)

It should also require a password (different from the user password) to change its settings or uninstall it, so that I can't tamper with it in a weak moment.

Is there such a program for Linux?

14
43
submitted 3 days ago by guismo@aussie.zone to c/linux@lemmy.ml

I'm considering buying a laptop from Tuxedo, but I'm in Australia and I'm not sure how bad that idea is. Does anyone have experience or recommendation? I would not buy from any american company though. Is there a risk to not go through the country, or that I would have to pay a massive tax on it?

I bought 2 lenovos before. It seems to be getting worse for Linux and Amd. My first one was awesome, the second one had so many issues and I have to use a usb wifi and blacklist the internal one, so I probably want to skip lenovo this time, even if I have to pay a lot more.

15
21
submitted 3 days ago by aim4harmony@lemmy.world to c/linux@lemmy.ml

cross-posted from: https://lemmy.world/post/50049302

Hello, everyone. 👋

I experience a persistent issue with having no sound during the MS Teams meetings. Other meeting attendees can hear me and I don't hear them, which complicates communication significantly. The volume bar in the settings is also greyed out.

Usually, I access MS Teams meetings via the links that are shared with me. I don't have a Teams / Microsoft account either. I have tried to access meetings via browsers (Brave, LibreWolf with relaxed settings, even Chrome and Edge) and teams-for-linux app.

I have tested pretty much all the possible Sound profiles and only Duplex seems to be recognized by Teams (I see Built-In Audio Analog), just it seems inactive for output sound. The pavucontrol settings seem fine. The system sounds work fine. I can listen to music etc. with the current settings. The issue seems to be isolated to MS Teams specifically.

System.: Linux Fedora 44 kde

Hardware: Lenovo Y530 laptop.

16
30
submitted 4 days ago by llii@discuss.tchncs.de to c/linux@lemmy.ml

It’s hard for me how he recognizes all the (social) issues with LLMs and still comes to the conclusion that he isn’t in part responsible for them.

17
181
submitted 5 days ago* (last edited 5 days ago) by inari@piefed.zip to c/linux@lemmy.ml
18
32

I'd like to try to get fedora to host a second headless Wayland session in the background for a remote user. I have a GPU but I want to share its render and compute, not the physical HDMI output, so I need a virtual Wayland session for the second seat.

Supposedly logind could handle the seat and udev permission issues clean enough, but headless use is still beyond me there.

I'd like a KDE Plasma environment running headless and then sunshine can just stream this session out using the war capture method. I just don't know how to start up a separate Wayland session under another linux user in the background with a plasma session drawing to an imaginary monitor.

There seem to be 2 ways of doing this.

  • wlheadless-run - a young project made to solve this particular problem
  • kwin --virtual can theoretically do this, but I'm not finding clear examples of it
19
43
submitted 5 days ago* (last edited 5 days ago) by inari@piefed.zip to c/linux@lemmy.ml
20
187
submitted 6 days ago* (last edited 6 days ago) by inari@piefed.zip to c/linux@lemmy.ml
21
234
submitted 6 days ago by Simohypers@lemmy.world to c/linux@lemmy.ml

My music setup was a pinned browser tab for years. It worked, technically. It also ate RAM doing nothing, my media keys only worked when that tab happened to be focused, and I killed the music at least once a week by closing the wrong window. There's no official YouTube Music desktop app on Linux, and most of what exists is the same web player in an Electron shell.

So I built my own. It's called Limusic. Rust and Tauri, no bundled Chromium, audio goes through libmpv.

You sign in with your actual YouTube Music account, so your playlists, likes and subscriptions are just there, and liking a song or adding it to a playlist syncs back like you'd expect.

The part I actually care about is that it's not bare bones:

  • Proper MPRIS, so media keys and your now playing widget just work
  • System tray, closing the window doesn't kill the song, plus play/pause and skip from the tray
  • Discord Rich Presence with album art and a live progress bar
  • Last.fm scrobbling, connect once and forget about it
  • Synced lyrics in a side panel, click a line to jump there
  • Listen Together, synced rooms so you and a friend hear the same thing at the same time
  • 8 themes, including Catppuccin, because obviously
  • Gapless playback, volume normalization, shuffle, repeat, autoplay radio
  • Your queue survives a restart

Free and open source, GPL. AppImage (self updating) or an rpm for Fedora, which is what I daily drive. No Flatpak or AUR yet, both are on the list. There's a Windows build too, and no macOS one yet.

Would really love for people to try it, and I'd genuinely like to hear what everyone thinks. ❤️

Site: https://simohypers.github.io/limusic/ Downloads: https://github.com/SimoHypers/limusic/releases/latest

Not affiliated with Google or YouTube, just a thing I made because I wanted it

22
50
submitted 5 days ago* (last edited 1 day ago) by ThunderComplex@lemmy.today to c/linux@lemmy.ml

Solution:
Thanks to Neuromancer49@midwest.social for bringing this up. The solution from this thread actually works: https://forum.endeavouros.com/t/a-start-job-is-running-for-dev-disk-uui-running-for-5min/80783

tl;dr: force_drivers+=" uas usb_storage xhci_hcd xhci_pci " is all dracut needed

Original post below:
Alright I'm at the end of the rope with my Linux knowledge. So I need your help.
I'm on EndeavourOS and just recently upgraded to Linux 7.1.5, all upgrades thus far have been without issue. I am dual-booting but have Linux on its own SSD, and grub handles booting into Linux or Windows.
Now, after booting into Windows and back into Linux, Linux won't start.
The error:
A start job is running for /dev/disks/by-uuid/

Let me tell you what I've already done:

  • Regenerate mkinitrd with dracut
  • Regenerate grub.cfg and verified via diff it is identical to the current one
  • On a live usb verified that the UUIDs in the grub and fstab files are correct using the KDE partition manager (they are)
  • Verify on a live usb the SSD still works (data and everything is still there)
  • Changed the grub boot option on boot to check that the UUID is not hardcoded somewhere and can be changed (this is true, inputting a garbage UUID changes the boot error to A start job is running for /dev/disks/by-uuid/garbage-uuid

One last idea I had was to drop myself into the dracut emergency shell and actually check what's actually under /dev/disks/by-uuid and lo and behold: it's actually missing the drive.

Here's whats nuts tho: grub loads the drive by UUID as well, loads the initrd, and all that works. When I regenerated the initrd with dracut I could also tell that grub was now loading the newer initrd.

WHAT THE FUCK???

Help?

At this point I REALLY don't know wtf to do. Why doesnt the initramfs detect the drive? The only useful info I can add here is that all drives listed under /dev/disks/by-uuid had that shorter UUID with no dashes like ABCD1234, whereas the UUID for the correct drive/partition is the longer type UUID like abc1234-1234-0000-defg ___

23
13
submitted 5 days ago* (last edited 5 days ago) by mfat@lemmy.ml to c/linux@lemmy.ml

A quick update on SSH Pilot, a free, opensource SSH, SFTP client I've been working on.

screenshot

A new version is out with new features, aimed at meeting all your SSH/SFTP needs in a clean, user-friendly interface.

Just double-press the Shift key and all your hosts and management tools are at your fingertips. The tools include graphical frontends for SFTP, SCP, SSH-COPY-ID, Known Hosts, Authorized Keys as well as Docker containers.

Th app also supports backups to Bitwarden/Vaultwarden and restoring on other devices.

Downloads for Linux and macOS are available at https://github.com/mfat/sshpilot#download

Flatpak users can install from Flathub.

24
74

In short, Amber is a programming language with Rust like syntax that compiles down to bash. More details here: https://amber-lang.com/

On the surface, it seems nice. Cleaner syntax, types, compile-time safety checks, etc. So you get to write in something nicer than bash but get the portability of bash.

My wonder is if there are pitfalls that make it worse than instead writing it in something like Python or even bash itself. I'd guess the generated bash code probably isn't the prettiest to look at or debug.

25
12
submitted 5 days ago* (last edited 3 days ago) by pcalau12i@lemmygrad.ml to c/linux@lemmy.ml

Let's say you have an old PC that can just barely play a game, maybe it gets 20FPS in it. Kinda playable but barely. But, you also have another really old, maybe even crappier GPU lying around. What if you could stick that GPU into your PC to actually make use of it to boost your framerate?

This is a little experiment I've been working on. Imagine that your big GPU produces 20FPS on the game you want to play at 1080p, but if you downgrade it to 720p, it produces 30fps. Now, imagine that those frames are not directly displayed to the screen, but instead sent to your even shittier GPU you added to the PC for processing.

That shittier GPU then applies algorithmic upscaling (FSR1) to upscale it from 720p to 1080p, which would then be in 30fps since it's done on a different GPU, running FSR won't affect your base framerate, and so now you're playing with 10 extra frames in 1080p. But also imagine this second GPU then uses algorithmic interpolation (MCFI) to insert an additional "fake frame" between between each "real frame," effectively doubling the framerate from 30FPS to 60FPS.

Now you'd be playing the same game in 1080p60fps which could only run in 1080p20fps before. That's the idea behind this project.

https://www.foleosoft.com/software/YolkooBoost

Luckily, 2/3rds of what I needed were already written for me by Valve. It's basically a fork of Gamescope. Gamescope only includes upscaling though (FSR1), it does not include framegen, so my fork also adds framegen. It also adds a GUI which autodetects your installed Steam games and lets you enable/disable them for FSR or framegen at the click of a button.

Note that both FSR1 upscaling and MCFI framegen are algorithmic, not AI, so they won't look as good as the latest DLSS or whatever. But that is also a boon because neither are resource intensive and could easily run on very low-end GPUs, like an RX460.

Adding a whole second GPU pipeline also introduces latency, so it's probably not the best choice for competitive games or racing games. Better for something like single-player adventure games. .

The thing is just an experiment. Maybe I'll work more on it if people think it's interesting. But I mainly built it because I had two old GPUs laying around (and RX480 and RX580 2048SP), but not two extra PCs to put them in. I put them both in the same PC and wanted to actually be able to make use of them rather than them just looking cool together. So it's mostly for my own personal use, but if other people use it maybe I'll work on it more to make it easier for others to use it.

This works with OpenGL and Vulkan. Although the compositing layer is Vulkan, so Vulkan is a requirement to run it. That means it cannot work on cards that don't support at least GCN 1.0, meaning it cannot work on anything prior to the Radeon HD 7000 series. Although, I have not tested that far back, I'm not sure what the minimum is that has the horsepower for this, I'm currently running it on a RX580 2048SP and it is massively overkill. I'd suspect a RX550 2GB would probably run it perfectly fine.

If you are indeed rendering the base frames (pre-upscale) at 720p or lower, then you only need x1 lane of PCIe bandwidth, so you don't need a fancy motherboard that supports two GPUs both at x16. Make sure the rendering GPU has x16, but the composite GPU can be in a x1 slot and the bandwidth is more than plenty enough.

I may in the future see if it's possible to take this pipeline and instead hook other things into it, maybe something more GPU intensive than FSR1 and MCFI, to make a setup like this make sense on a PC with two beefy GPUs. Maybe something actually AI-based which is free and open source. But I'd need to do more research to figure that out. This experiment at least proves, though, that dual GPU gaming on on Linux is possible, if you split the GPUs between a rendering and a compositing GPU.

Edit: I've gotten Lossless Scaling Frame Generation (LSFG) largely working. I also improved the performance of frame generation by swapping the order. Previously I was doing scaling => framegen which is slow but ties nicely into gamescope which is the project I forked. It was far more difficult but I did manage to figure out how to do framegen => scaling. If you're FSR scaling from 720p to 1080p for example, applying LSFG to the 720p image is far faster than the 1080p.

One problem I've encountered is that framegen has issues if your framerate is already near the target framerate. For example, if your game is running at 58FPS already and you want to framegen to 60FPS. There isn't enough headroom for it to interpolate frames and it causes the framegen to sometimes drop frames. It's thus recommended that if your framerate is already that high, (1) don't use framegen, or (2) cap the framerate in the game's settings to something like 50FPS, which will guarantee headroom and so you'll get a steady 60FPS output.

view more: next ›

Linux

66731 readers
1069 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 7 years ago
MODERATORS