How to choose the best Linux hardware for PC Building?
  • jrgd jrgd 4d ago 100%

    What hardware, audio interface, and sound server is in use for your 5.1 Surround setup?

    1
  • How to choose the best Linux hardware for PC Building?
  • jrgd jrgd 4d ago 100%

    I am under the presumption that the current state of the Intel Arc Alchemist GPUs will likely remain about the same under Mesa even if support is dropped today by Intel. Am I mistaken in the amount of continued driver effort Intel has been putting in for the Mesa GPU drivers?

    Obviously if this is true, one should probably remain wary of upcoming Battlemage GPUs.

    3
  • How to choose the best Linux hardware for PC Building?
  • jrgd jrgd 4d ago 100%

    A key list of compatible/incompatible components to look for:

    • GPU
    • Network Interfaces (Ethernet and Wi-Fi)
    • Audio Interfaces (not that much of an issue anymore)
    • Disks
    • Motherboards
    • CPU (excluding x86 ecosystem)
    • Peripherals

    The explanations for this are pretty long, but are meant to be fairly exhaustive in order to catch most if any pitfalls one could possibly encounter.

    GPU:

    A big one is the choice between AMD, Intel, and NVidia. I am going to leave out Intel for compute as I know little about the state it is in. For desktop and gaming usage, go with AMD or Intel. NVidia is better than it used to be, but still lags behind in proper Wayland support and the lack of in-tree kernel drivers still makes it more cumbersome to install and update on many distros whereas using an AMD or Intel GPU is fairly effortless.

    For compute, NVidia is still the optimal choice for Blender, Resolve, and LLM. Though that isn't to say that modern AMD cards don't work with these tasks. For Blender and Davinci Resolve, you can get them to use RDNA+ AMD cards through ROCm + HIP, without requiring the proprietary AMD drivers. For resolve especially, there is some serious setup involved, but is made easier through this flatpak for resolve and this flatpak for rocm runtime. ML tasks depend on the software used. For instance, Pytorch has alternate versions that can make use of ROCm instead of CUDA. Tools depending on Pytorch will often have you change the Pytorch source or you may have to manually patch in the ROCm Pytorch for the tool to work correctly on an AMD card.

    Additionally, I don't have performance benchmarks, but I would have to guess all of these tasks aren't as performant if compared to closely equivalent NVidia hardware currently.

    Network Interfaces:

    One section of hardware I don't see brought up much is NICs (including the ones on the motherboard). Not all NICs play as nicely as others. Typically I will recommend getting Ethernet and Wireless network interfaces from Intel and Qualcomm over others like Realtek, Broadcom, Ralink/Mediatek. Many Realtek and Mediatek NICs are hit-or-miss and a majority of Broadcom NICs I have seen are just garbage. I have not tested AMD+Mediatek's collaboration Wi-Fi cards so I can't say how well they work.

    Bluetooth also generally sits into this category as well. Bluetooth provided by a reputable PCIe/M.2 wireless card is often much more reliable than most of the Realtek, Broadcom, Mediatek USB dongles.

    Audio Interfaces:

    This one isn't as much of a problem as it used to be. For a lot of cards that worked but had many quirks using PulseAudio (a wide variety of Realtek on-board chipsets mainly), they tend to work just fine with Pipewire. For external audio interfaces: if it is compliant to spec, it likely works just fine. Avoid those that require proprietary drivers to function.

    Disks:

    Hard drives and SSDs are mostly fine. I would personally avoid general cheap-quality SSDs and those manufactured by Samsung. A lot of various SATA drives have various issues, though I haven't seen many new products from reputable companies actually releasing with broken behavior as documented by the kernel. If you wish to take a detailed look of devices the kernel has restricted broken functionality on, here is the list.

    Additionally, drives may be one component beside the motherboard where you might actually see firmware updates for the product. Many vendors only release EXE files for Windows to update device firmware, but many nicer vendors actually publish to the LVFS. You can search if a vendor/device is supplied firmware here.

    Motherboards:

    In particular, motherboards are included mainly because they have audio chipsets and network interfaces soldered and/or socketed to them. Like disks, motherboards may or may not have firmware updates available in LVFS. However, most motherboard manufacturers allow for updating the BIOS via USB stick. Some laptops I have seen only publish EXE files to do so. For most desktop boards however, one should be able to always update the motherboard BIOS fine from a Linux PC.

    Some motherboards have quirky Secure Boot behavior that denies them being able to work on a Linux machine. Additionally some boards (mostly on laptops again) have either broken or adjustable power state modes. Those with adjustable allow for switching between Windows and standard-compliant modes.

    Besides getting a Framework laptop 'Chromebook edition', I don't think there is much you will find for modern boards supporting coreboot or libreboot.

    CPUs:

    For your use case, this doesn't really matter. Pretty much every modern x86 CPU will work fine on Linux. One only has to hunt for device support if you are running on ARM or RiscV. Not every kernel supports every ARM or RiscV CPU or SoC.

    Peripherals:

    Obviously one of the biggest factors for many new users switching to Linux is their existing peripherals that require proprietary software on Windows missing functionality or not working on Linux. Some peripherals have been reverse engineered to work on Linux (see Piper, ckb-next, OpenRazer, StreamController, OpenRGB).

    Some peripherals like printers may just not work on Linux or may even work better than they ever did on Windows. For problematic printers, there is a helpful megalist on ArchWiki.

    For any other peripherals, it's best to just do a quick search to see if anyone else has used it and if problems have occurred.

    26
  • Greetings all! I have been working on getting a new network setup. The current test host (A server running OpenSUSE Leap 15.6 w/ Wicked) is able to get routes and obtain an address via DHCP from the router of the network (running OPNSense 24.7.6), but is unable to resolve routes and obtain an address via the local DHCPv6 server. Admittedly, I am not great with IPv6 doubled with the ISP for this network granting a statically-defined /128 address for the router and manually-delegated /64 address blocks. The OPNSense configuration has a /64 address block assigned as its address space for the LAN interface. The configuration has the ISC DHCPv6 server allocating address range 2602:xxxx:xxxx:xxxx::8888:0 - 2602:xxxx:xxxx:xxxx::8888:ffff. The radvd server is set to managed, set with an automatic source address, set to advertise the default gateway, set to use the dhcpv6 dns configuration, and set with no additional routes advertised. As noted, the OpenSUSE machine is unable to get any routes beyond link-local via ipv6 nor is it able to automatically be assigned an ipv6 address from the DHCPv6 server. I have done some diagnostics, but have been unable to determine any conclusive issue. Starting ip route and address checks: `ip -6 addr` ``` 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000 inet6 fe80::xxxx:xxxx:xxxx:a4ee/64 scope link proto kernel_ll [OpenSUSE Leap 15.6 Server link-local address] valid_lft forever preferred_lft forever ``` `ip -6 route` ``` fe80::/64 dev eth0 proto kernel metric 256 pref medium ``` The eth0 interface noted is using a standard configuration as provided by Wicked (BOOTPROTO=dhcp, STARTMODE=auto, ZONE=public). Testing dhcpv6 address acquisition by hand results in nothing: `wicked test dhcp6 -m auto eth0` ``` wicked: eth0: Request to acquire DHCPv6 lease with UUID <$uuid-a> in mode auto ``` However, testing in forced managed mode does get results from the DHCPv6 server: `wicked test dhcp6 -m managed eth0` ``` wicked: eth0: Request to acquire DHCPv6 lease with UUID <$uuid-b> in mode managed INTERFACE='eth0' TYPE='dhcp' FAMILY='ipv6' UUID='<$uuid-b>' IPADDR='2602:xxxx:xxxx:xxxx::8888:807/128' [theoretical bound address on LAN] PREFIXLEN='128' DNSSERVERS='2602:xxxx:xxxx:xxxx::1' [LAN address of router] DNSSEARCH='<$domain>' ACQUIRED='1729020515' CLIENTID='<$clientid>' SERVERID='<$serverid>' SERVERADDR='fe80::xxxx:xxxx:xxxx:a4ee' [OpenSUSE Leap 15.6 Server link-local address] ``` So unless I am mistaken at this point, this likely means that something is going wrong with the Router Advertisements for the system to not automatically try get assigned an ipv6 address. Checking a router advertisement broadcast to the OpenSUSE server, I am not seeing anything out of the ordinary: `radvdump` ``` # # radvd configuration generated by radvdump 2.17 # based on Router Advertisement from fe80::xxxx:xxxx:xxxx:4eb4 [router link-local on LAN] # received by interface eth0 # interface eth0 { AdvSendAdvert on; # Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump AdvManagedFlag on; AdvOtherConfigFlag on; AdvReachableTime 0; AdvRetransTimer 0; AdvCurHopLimit 64; AdvDefaultLifetime 1800; AdvHomeAgentFlag off; AdvDefaultPreference medium; AdvLinkMTU 1500; AdvSourceLLAddress on; prefix 2602:xxxx:xxxx:xxxx::/64 [public /64 address block manually delegated as LAN] { AdvValidLifetime 86400; AdvPreferredLifetime 14400; AdvOnLink on; AdvAutonomous off; AdvRouterAddr off; }; # End of prefix definition RDNSS 2602:xxxx:xxxx:xxxx::1 [LAN address of router] { AdvRDNSSLifetime 600; }; # End of RDNSS definition DNSSL <$domain> { AdvDNSSLLifetime 600; }; # End of DNSSL definition }; # End of interface definition ``` `sysctl -a | grep eth0.accept_ra` ``` net.ipv6.conf.eth0.accept_ra = 1 net.ipv6.conf.eth0.accept_ra_defrtr = 1 net.ipv6.conf.eth0.accept_ra_from_local = 0 net.ipv6.conf.eth0.accept_ra_min_hop_limit = 1 net.ipv6.conf.eth0.accept_ra_mtu = 1 net.ipv6.conf.eth0.accept_ra_pinfo = 1 net.ipv6.conf.eth0.accept_ra_rt_info_max_plen = 0 net.ipv6.conf.eth0.accept_ra_rt_info_min_plen = 0 net.ipv6.conf.eth0.accept_ra_rtr_pref = 1 ``` Am I missing something with why Wicked doesn't actually get a proper route to the LAN nor an address via IPv6? To recap: IPv4 works, this is the only device connected to the network thus far, IPv6 configuration appears (to me at least) correct for the router advertisements and DHCPv6 config. **EDIT:** Found the source of the problem. The OPNSense configuration is in fact correct for what I want to do. The issue is on the OpenSUSE machine. I forgot about a funny little Linux kernel networking quirk regarding ipv6 forwarding. In OpenSUSE, enabling forwarding for IPv6 from the installer keeps `net.ipv6.conf.*.accept_ra` set to 1. However, setting `net.ipv6.conf.*.forwarding` to 1 will disable accepting routes from RA, and in my case of expecting automatic IPv6 configuration from DHCPv6 without forcing managed mode on the Linux server. Unless I feel like bypassing some functionality provided by the router, one needs to set `net.ipv6.conf.*.accept_ra` to 2 for all affected network interfaces. This enforces accepting routes *with* forwarding enabled. This in turn for my case also allows for DHCPv6 resolution to function without forcing or bypassing it from the OpenSUSE machine. I can only assume the reason this isn't just default if applied from the installer is that fully-manual static IP addressing is expected rather than wanting to use DHCP reservations for assigning addresses. So in short: All is good with the OPNSense configuration. I needed to change the sysctl flag `net.ipv6.conf.eth0.accept_ra = 1` to `net.ipv6.conf.eth0.accept_ra = 2`, in order to forcefully accept RA routes and normal DHCPv6 address assignment on my ethernet interface. This is necessary because I need forwarding over IPv6 for the affected machine.

    19
    1
    Only AntiX Boots Normally on Acer Aspire 3 A315-23?
  • jrgd jrgd 6d ago 100%

    Reading through the link chain, it seems the Western Digital drives being shipped in those laptops really should have never made it into consumers' hands.

    The kernel argument nvme_core.default_ps_max_latency_us=5500 is being used to restrict the power state latency in order to keep the drive out of its lowest power state (because of course yet another cheaply-made device has terrible power state management).

    While most distros generally expect NVMe drive to not completely cease functioning while at idle (as should be expected really), AntiX is likely keeping the drive above its minimal power state. Whether this is intentional, unintentional, or from a lack of general power state management provided by the distro isn't something I know. It would require some digging in the source tree for the distro most likely to find if there are any deliberate restrictions to power saving, especially regarding NVMe.

    2
  • Troubleshooting battery issues.
  • jrgd jrgd 7d ago 100%

    A couple things to check using a quick bash script:

    #!/usr/bin/env bash
    
    cd /sys/class/power_supply/BAT*/
    echo "Charge cycles: $(cat cycle_count)"
    printf '%s\0' 'Health: ' &
    bc <<< "scale=3; ($(cat charge_full) / $(cat charge_full_design)) * 100"
    

    That should print out the wear cycles the battery has endured and its reported capacity over design capacity. If your battery has less than 1000 cycles and the health reported from the battery is less than 80%, it might be best to contact Framework for warranty replacement as the battery is likely defective.

    6
  • looking to buy the a1 mini no ams
  • jrgd jrgd 1w ago 100%

    Just note that with Bambu printers about past data collection practices and their in general mid to atrocious after-sales support. If this doesn't deter you, then go ahead and get one.

    I do a lot of my functional parts in ABS, ASA though printing such material may be difficult on an open-air machine. The two obvious choices will generally be PLA or PETG. PLA is one of the most common printed materials, and is fairly balanced in material strength. PETG parts are more likely to permanently deform heavily before fully snapping, as well as they have a but more temperature resistance than PLA. Additionally most PETG plastics hold up decently well to UV, often making them more suitable for parts that need to be outdoors.

    PLA takes not much consideration on surface to print, as most printers come with a smooth PEI build sheet by default. It will however need more cooling than printing with PETG at equivalent speeds. If you use a PEI sheet for PETG, make sure it is textured. You will destroy a smooth sheet if it doesn't have some kind of release coating to lower its adhesive properties to PETG.

    There is no guarantee for spools of filament to actually arrive dry, so a filament dryer isn't a bad idea. I don't have any particular recommendations for a good filament dryer. I have a Filadryer S2 from Sunlu, but am not impressed by it.

    10
  • Almost nine gigabytes in size: Windows update 24H2 creates an undeletable cache file
  • jrgd jrgd 1w ago 94%

    For multi-monitor: use Wayland. For 2.5Gbps Ethernet NICs, they never work properly on any system in regard to performance, but I presume you are referencing the subpar Realtek NICs not connecting? Depending on the distro, you likely won't have the driver and/or firmware package preinstalled to make it work.

    17
  • Terrible performance compared to windows on Arch with non-steam games on proton.
  • jrgd jrgd 1w ago 100%

    As I understand it, this driver isn't ready for personal use unless you don't care about the contents of your btrfs partitions mounted on Windows.

    2
  • Is there anything i can do with this laptop?
  • jrgd jrgd 2w ago 100%

    I know ArchLinuxArm (a fork of the ArchLinux project) supports the Hisense C11. It does seem to be a fairly involved procesd, and (potentially?) requires using external media rather than the onboard eMMC storage to boot a Linux system.

    Your particular Chromebook contains the same SoC (Rockchip RK3288) as an Asus C201, which Debian has an install guide for. Once again, a fairly involved process and this one may not be guaranteed to work if the C11 has some quirks not present in the C201.

    9
  • Suggest a Replacement Music Player
  • jrgd jrgd 2w ago 100%

    Just took a couple minutes to install and setup the fork to try it out. Turns out there is a flatpak on Flathub under the id dog.unix.cantata.Cantata that looks to be maintained directly by nullobsi. I'll have to see where rough edges show up, but this fork looks good thus far. A full port from Qt5 -> Qt6 isn't a trivial amount of effort, so mad respect to everyone working on this ported version.

    3
  • Greetings, For several years, I have used the wonderful [Cantata](https://github.com/CDrummond/cantata) as a frontend to [MPD](https://musicpd.org). Sadly, the frontend stopped receiving updates in 2022 and has started to some problems with age. While I continue to use Cantata for as long as I can, I have been looking around at other music players. However, I haven't seen anything that aims to implement some of the nice things from Cantata. In short, a few things I have been looking for in a player: - suitable for playing single songs, albums, full artists, custom mixes, or playlists (no hyperfocus) - can either set a custom artist sort tag (albumartist, composer, etc.) or properly handle semicolons (or some other separator char) in tags - semicolon tag split in general would be nice for genre handling - powerful active queue handling (move; shuffle and sort by song, album, artist; remove duplicates; consume on play; etc) - online lyrics search from multiple providers Additionally, some nice-to-haves that Cantata handles: - CD ripping - export library to portable device (with compatibility) Anyone have a favorite that can handle at least the shortlist of functionality I come to expect? I don't expect specifically a frontend for MPD, but I would prefer a player that doesn't struggle to handle a library with 10^4^ magnitude library size.

    23
    12
    Australia’s 3G Shutdown - Telcos to Block Working 4G/5G Phones!
  • jrgd jrgd 3w ago 100%

    It was indeed carrier locked, which was why I used it as trade-in value for a phone rather just selling it and later buying a newer phone.

    1
  • Australia’s 3G Shutdown - Telcos to Block Working 4G/5G Phones!
  • jrgd jrgd 3w ago 100%

    In my case, AT&T sent me a Galaxy Note 9 to replace my Google Pixel XL, which I ended up never using and just used as trade-in value to get a Pixel 5a.

    1
  • [SOLVED] Silent Hunter 3 & Living Silent Hunter 3 Supermod - Steam proton + JSGME question
  • jrgd jrgd 1mo ago 100%

    The easiest ways to run custom executables for Proton titles is either going to be SteamTinkerLaunch or my shim script.

    7
  • [SOLVED] Segfaults, segfaults everywhere
  • jrgd jrgd 1mo ago 100%

    The potential common cause points toward the GPU drivers (note of games in Proton, libgtk4 segfaults, and libnvidia-glcore segfaults). What nvidia driver version is in use. A quick search found a rough match to shown symptoms, but is recent and matches the hardware (NVidia Polaris desktop). Perhaps the driver version in use exhibits a similar showing of a regression for such GPUs?

    3
  • I like both, but usually prefer Ubuntu
  • jrgd jrgd 1mo ago 100%

    The question that I have to ask: what category of CLI apps (or even some examples) exist that are too complex to maintain a few versions simultaneously as native packages but are not complex enough to just use an OCI container for them instead?

    5
  • godot
    Godot 1mo ago
    Jump
    Where I can find updated guides?
  • jrgd jrgd 1mo ago 100%

    Godot maintains a fairly comprehensive documentation that can even be fully downloaded.

    23
  • linux
    Linux 1mo ago
    Jump
    Self-hosted Flatpak Repositories
  • jrgd jrgd 1mo ago 100%

    The flatpak documentation has a semi-relevant page on setting up a flatpak repo utilizing gitlab pages and gitlab's CI runners on a pipeline. Obviously, you'd need to substitute Gitlab Pages for a webserver of your choice and to port the CI logic over to Gitea Actions (ensuring your Gitea instance is setup for it).

    A flatpak repo itself is little more than a web server with a related GPG key for checking the signatures of assembled packages. The docs recommend setting up the CI pipeline to run less on-commit to the package repos and more on the lines of checking for available updates on interval, though I imagine other scenarios in a fully-controlled environment such as a selfhosted one might offer some flexibility.

    2
  • linux
    Linux 2mo ago
    Jump
    [Answered] Any open source host solution for private users?
  • jrgd jrgd 2mo ago 100%

    As I am teaching myself right now maintainable selfhost setups using popular apps (admittedly with Kubernetes vs something minimal in functionality like Docker Desktop), there is a lot of complexity involved in getting these services both functional and maintainable while also having to consider the security implications of various setups.

    While I agree the concept of self-host is a good thing to advocate, I think the complexity and difficulty involved not just to do it, but to do it right is going to be a straight cliff of a learning curve for those not already technically inclined in databases, networking, and filesystems/block storage.

    Honestly, taking the burden of being IT for a reasonable subscription cost for your efforts is a better way to go, especially if the setup allows for expanding your offerings to other members in a localized community.

    4
  • linux
    Linux 2mo ago
    Jump
    How to Install DaVinci Resolve in Linux Mint
  • jrgd jrgd 2mo ago 100%

    Wouldn't this still be the superior solution? The article doesn't mention the setup for using ROCm for cards running on amdgpu.

    3
  • gitlab.com

    cross-posted from: https://lemm.ee/post/38676431 > A while back I ended up getting tired of making hacks to get custom binaries to launch in Steam for Windows titles. Primarily for modding, I would find a way to simply launch custom EXE files through Steam to ensure the modding tools and the game were contained neatly in the same prefix. My first ventures with this were Skyrim and Fallout: New Vegas. With these titles, I overrode the gamebryo/creation engine launcher EXE with Mod Organizer 2 (renamed to be the launcher). While this worked, the solution doesn't work for other games without a secondary launcher that is targeted through Steam. > > I eventually came to the conclusion that one can override launch targets entirely in Steam, and that tools like SteamTinkerLaunch could take advantage of this. However, STL certainly does *a lot* and honestly, that is way more than I really desired just to launch games with a custom EXE. Thus I made a shell script that essentially allows for the user to write in their own custom target and have it launch right through Steam. > > The usage for this is simple. Just copy the 'shim' file into the game directory, override the Steam launch arguments to include "`./shim %command%`", and all is good. Furthermore, environment variables (such as DRI_PRIME=1), additional launch wrappers (gamemoderun), and game launch arguments (-novid for Source Engine titles) all work. If one needed a combination of all of this, it would look something like "`DRI_PRIME=1 gamemoderun ./shim %command% -novid`". > > The way target editing currently works is on first launch the shim file grabs the default game target and writes it as the contents of 'target', another file in the game directory. From there, one can simply edit the target location in the file and shim will launch the custom executable. > > So far, I have used this to get things like RaftModLoader and BeamMP working (mod loader for Raft and multiplayer for BeamNG.Drive respectively). I see no issue with this being able to also work for Bethesda titles and others that need custom executables. As I understand as well, the actual game install directories on a Steam Deck with SteamOS are mutable, and with a bit of tinkering through desktop mode should help get a seamless experience for launching modded Steam games for Deck users as well. > > I hope someone finds as much use and utility that I have for getting a lot of modding tools for Windows games working without needing to mangle the prefix using protontricks in some cases or install the absolute multi-tool that is SteamTinkerLaunch.

    89
    13
    gitlab.com

    A while back I ended up getting tired of making hacks to get custom binaries to launch in Steam for Windows titles. Primarily for modding, I would find a way to simply launch custom EXE files through Steam to ensure the modding tools and the game were contained neatly in the same prefix. My first ventures with this were Skyrim and Fallout: New Vegas. With these titles, I overrode the gamebryo/creation engine launcher EXE with Mod Organizer 2 (renamed to be the launcher). While this worked, the solution doesn't work for other games without a secondary launcher that is targeted through Steam. I eventually came to the conclusion that one can override launch targets entirely in Steam, and that tools like SteamTinkerLaunch could take advantage of this. However, STL certainly does *a lot* and honestly, that is way more than I really desired just to launch games with a custom EXE. Thus I made a shell script that essentially allows for the user to write in their own custom target and have it launch right through Steam. The usage for this is simple. Just copy the 'shim' file into the game directory, override the Steam launch arguments to include "`./shim %command%`", and all is good. Furthermore, environment variables (such as DRI_PRIME=1), additional launch wrappers (gamemoderun), and game launch arguments (-novid for Source Engine titles) all work. If one needed a combination of all of this, it would look something like "`DRI_PRIME=1 gamemoderun ./shim %command% -novid`". The way target editing currently works is on first launch the shim file grabs the default game target and writes it as the contents of 'target', another file in the game directory. From there, one can simply edit the target location in the file and shim will launch the custom executable. So far, I have used this to get things like RaftModLoader and BeamMP working (mod loader for Raft and multiplayer for BeamNG.Drive respectively). I see no issue with this being able to also work for Bethesda titles and others that need custom executables. As I understand as well, the actual game install directories on a Steam Deck with SteamOS are mutable, and with a bit of tinkering through desktop mode should help get a seamless experience for launching modded Steam games for Deck users as well. I hope someone finds as much use and utility that I have for getting a lot of modding tools for Windows games working without needing to mangle the prefix using protontricks in some cases or install the absolute multi-tool that is SteamTinkerLaunch.

    153
    3