Linux

50370 readers
1266 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 5 years ago
MODERATORS
26
180
submitted 3 days ago* (last edited 3 days ago) by that_leaflet@lemmy.world to c/linux@lemmy.ml
 
 

As an update to everyone following, I had a meeting today with the Flatpak SIG and Fedora Project Leader, which was a very good conversation. We discussed the issues, how we got here, and what next steps are. For anyone not interested in the specific details, the OBS Project is no longer requesting a removal of IP or rebrand of the OBS Studio application provided by Fedora Flatpaks. This issue should be used for tracking of the other specific, technical issues, that the Fedora Flatpak does still have, which I will address below. From our perspective, there were two key points that we feel are the most important to address:

  • The issue with the Qt runtime having regression
  • The issue of not knowing where to report bugs for what is a downstream package

For the first bullet, this should be resolved with the update to the latest runtime, which includes Qt 6.8.2 that has the fixes for those regressions in it. For the second, this is obviously a much larger issue to tackle, especially for a project as large as Fedora. We had some very good discussion on how this might be accomplished in the medium-long term, but don't consider it a blocker at this point. We plan to stay engaged and offer our perspective as an upstream project. In addition to those two previously blocking issues, we discussed a handful of other problems with the Fedora Flatpak. I'll keep the details high level in the interest of brevity on this update:

  • OBS Studio running on Mesa LLLVM pipe instead of with hardware acceleration (i.e. the GPU)
  • X11 Fallback leading to OBS crashing
  • VLC Plugin not behaving as expected in the sandbox, needs testing
  • Shipping of third-party plugins in the Fedora Flatpak

The discussion was positive and they are actively working to resolve those issues as well, which should hopefully only affect a small number of users. I would like to give a final thank you to Yaakov and the FPL for taking the time to talk to us today.

27
 
 

I mainly use trillium and want to import my notes. Unsure how to do it without windows. Even with windows the instructions seem unclear

Edit: Here’s what I did: I got my partner’s windows computer and put my onenote notebook on it via file transfer. Then I made folders for every notebook and subnotebook. Finally I would through each section and exported it as a docx. Then I found an app on fedora that can convert docx to anything, and I chose markdown. Then imported these into Trilium. I could have exported each note but that would have taken 10x as long and the section export feature makes clear new notes.

Final comment: importing markdown into Trilium took one second. For formatting sake, I tried to import html as well and it crash the app.

28
80
submitted 3 days ago* (last edited 3 days ago) by dengtav@lemmy.ml to c/linux@lemmy.ml
 
 

Another "Differences in Linux" question :)

I often wonder, what exactly is the difference between this services?

I understand, that:

  • github.com is a company, where as gitlab and forgejo are (softwares)?
  • They all "manage/wrap/interface with" git?

Questions:

  • what software does github.com use?
  • whats the difference between them (pros/cons)?
  • what about self-hosting? Possibilities/Preferences?

As always, thanks beforehand :)

29
 
 

Over the past few months, and especially since the last holiday season, many exciting things have happened in Mobian: new devices are (about to be) officially supported, many new and improved packages have made their way into both Debian and Mobian, and we’re getting ready for our next stable release!

30
 
 

Delve into the wondrous labyrinth of sparkling images that is the Debian build output.

31
 
 

At the risk of jinxing myself I just wanted to share how happy I am with my latest installation.

For over a year my Dell XPS has run Ubuntu. It's been, by far, the worst experience I've ever had with any computer and my very first computer had only 256 MB of RAM! Among the long list of issues I've had we're freezing, unresponsive keyboard and touchpad, glitchy video, multicolor flashing screens, piss poor battery life, piss poor Wi-Fi stability, failure to properly suspend or hibernate, and battery levels suddenly going from 40% to 5%. I figured either Dell put some kind of poison pill into there laptop so you'd spring for one of their Linux preinstalled laptops or I just got a lemon (I did have to get the mobo replaced within a month of buying it).

I've been in the process of getting all of my personal files off of it and getting ready to reinstall Windows and sell it, but I figured it was worth one last shot with a new installation. My desktop has been running Bazzite and I've been really happy with it so I thought I'd try another spin-off (Bluefin, because my laptop isn't well suited for gaming). Installation took a few tries but it's been about 72 hours and I haven't noticed any major issues! Battery life and Wi-Fi still seem a bit sad but I suppose that's the hardware.

So anyway, I just wanted to say that one Linux OS can be wildly different from another in user experience. If you have the patience, go ahead and try out something new if you're just not feeling the OS that you're on. It could make a world of difference!

32
 
 

I have 4 old hard drives that I pulled from an old Drobo that needs to be trashed. I bought a Mediasonic 4-bay RAID enclosure that I thought would be a good upgrade, but knew going into that the drives may not work because the manual for the new enclosure specifically says to use new drives to avoid problems. The exact product is this Mediasonic one.

I don't care about the existing data on these drives, and that was originally what I thought was meant by "avoiding problems". So I tried just putting the drives in to no avail. They don't show up as drives in the file explorer. They don't show up in "Disks".

I also have an external hard drive dock - the 15 year old version of this one which does let me mount the drives and see them in Disks.

I have tried running "wipefs -a" and I've tried formatting them in Disks with no filesystem specified. I've also run parted on them, but anything I try in parted gives me the error "unrecognised disk label".

If I can't reuse these old drives then the enclosure is of less use to me than I had hoped as I don't intend to buy new drives any time soon.

Is there anything else I can try to reset these drives to a state where they'll act like new drives that have never been used before?

Update: The "tricks" haven't worked so I'm doing the full disk write using dd. It'll be a while before I have 2 disks prepped to try.

33
 
 

So I'm working on a server from home.

I do a cat /sys/class/net/eth0/operstate and it says unknown despite the interface being obviously up, since I'm SSH'ing into the box.

I try to explicitely set the interface up to force the status to say up with ip link set eth0 up. No joy, still unknown.

Hmm... maybe I should bring it down and back up.

So I do ip link set eth0 down and... I drive 15 miles to work to do the corresponding ip link set eth0 up

50 years using Unix and I'm still doing this... 😥

34
 
 

I was wondering about the possibility of using the following setup with write-caching

btrfs
    bcache
        fast
            mdadm (RAID-1)
                ssd_1
                ssd_2
        slow
            mdadm (RAID-5)
                hdd_1
                hdd_2
                hdd_3
                hdd_4

Is this viable / reasonable? The arch wiki mentions the possibility of data loss when using write-caching when the SSD fails, but shouldn't the SSD RAID array prevent that? It also mentions "bcache and BTRFS could leave you with a corrupted file system" is this still true? The wiki page mentions that it's unclear if this is still an issue.

Someone also left the following comment on the discussions page regarding BTRFS in 2023:

The issues with btrfs + bcache were fixed 10 years ago. The btrfs wiki no longer mentions historic gotchas for kernels older than 4.14. I think we should remove this warning. Any objections?

35
 
 

After trying out Cosmic, Gnome,KDE Plasma, and Hyprland, I feel like plasma is the most usable for me coming from Windows. It solves the gripes I had about lack of customizability while still starting me off with a familiar homebar. I will be going back and forth with gnome for a while.

I really like gnome and the sliding desktops, and all the extensions seem to make it very customizable as well, but not directly like plasma, instead you mix and match (or make) extensions to get the look you want. (correct me if im wrong, I used it for a day)

Hyprland seems very nice for multitasking but the keyboard focus of the presets ive tried doesn't really appeal to me, I like being able to just use my mouse sometimes.

Cosmic, is definitely an alpha and im interested to see what it becomes, wont be using it now.

36
 
 

Arch is aimed at people who know their shit so they can build their own distro based on how they imagine their distro to be. It is not a good distro for beginners and non power users, no matter how often you try to make your own repository, and how many GUI installers you make for it. There's a good reason why there is no GUI installer in arch (aside from being able to load it into ram). That being that to use Arch, you need to have a basic understanding of the terminal. It is in no way hard to boot arch and type in archinstall. However, if you don't even know how to do that, your experience in whatever distro, no matter how arch based it is or not, will only last until you have a dependency error or some utter and total Arch bullshit® happens on your system and you have to run to the forums because you don't understand how a wiki works.

You want a bleeding edge distro? Use goddamn Opensuse Tumbleweed for all I care, it is on par with arch, and it has none of the arch stuff.

You have this one package that is only available on arch repos? Use goddamn flatpak and stop crying about flatpak being bloated, you probably don't even know what bloat means if you can't set up arch. And no, it dosent run worse. Those 0,0001 seconds don't matter.

You really want arch so you can be cool? Read the goddamn 50 page install guide and set it up, then we'll talk about those arch forks.

(Also, most arch forks that don't use arch repos break the aur, so you don't even have the one thing you want from arch)

37
890
submitted 5 days ago* (last edited 5 days ago) by Lettuceeatlettuce@lemmy.ml to c/linux@lemmy.ml
 
 

My company's buyout has been completed, and their IT team is in the final stages of gutting our old systems and moving us on to all their infra.

Sadly, this means all my Linux and FOSS implementations I've worked on for the last year are getting shut down and ripped out this week. (They're all 100% Microsoft and proprietary junk at the new company)

I know it's dumb to feel sad about computers and software getting shut down, but it feels sucky to see all my hours of hard work getting trashed without a second thought.

That's the nature of a corpo takeover though. Just wanted to let off some steam to some folks here who I know would understand.

FOSS forever! ✊

Edit: Thanks, everybody so much for the kind words and advice!

38
39
40
 
 

I was scared off by linux for a while since everything seemed so complicated, but after the initial setup for things it seems to be superior. I thought it would only be for the lock screen but it works for anything, its so nice.

Face unlock just works on my computer for logging in, so having to setitup was part of what kept me on windows. After setting it up with howdy in 30 minutes (I didn't realize I had to add the lines to the files for each login pam thing initially), the implementation is superior to windows, it literally works everywhere without issue and no reentry, feels like using my iphone face id.

I was getting so tired of typing in my password that I was going to find a way to turn it off, this works as well as turning it off since its instant, but is obv more secure since its face unlock.

41
 
 

Context:

Reproducible builds ensure software can be rebuilt in an identical, bit-for-bit manner anywhere at any time using the same tools. This means that someone rebuilding the software from the same source code will get exactly the same results.

Why is this important? Because it’s a crucial aspect for supply-chain security.

Source: https://news.opensuse.org/2025/02/18/rbos-project-hits-milestone/

42
 
 

(Solved) This will be used in CLI mode to do some tiny programming and text file note-taking. Having WiFi would be nice. The price has got to be CHEAP. ARM is ok.

OP decided to kill windows on the Timberborn machine and go with Debian.

43
44
45
 
 

Hector Martin (Marcan42) was the lead developer of Asahi Linux, until he recently resigned. He had a Mastodon page where he would talk about AL development and hardware stuff, as well as frustrations dealing with kernel maintainers to upstream things like Rust stuff (long before the beef that went down this month).

Marcan has made it clear he needs a break, but I really wish he at least kept his Mastodon page up, perhaps in read-only. I'll admit, I liked his posts so much I looked at it daily. I had a bookmark keyword in Firefox: I'd type tr in the URL bar to go to https://social.treehouse.systems/@marcan.

46
 
 

Here's an outline of the goal of my setup:

Guest VM 0(in NAT): 192.168.101.100:80 --> Host: 192.168.86.73:8080

Guest VM 1(in NAT): 192.168.101.85:8096 --> Host: 192.168.86.73:8081

Guest 1&0: 192.168.101.100:22 --> Host: 192.168.86.73:2222

I want to forward jellyfin from a vm to a host. Unfortunately, jellyfin doesn't let me do that. Everything is alma linux.

When going to 192.168.86.73:808(0,1) in a browser, I receive unable to connect, and when I wget it, I get Connecting to 192.168.86.73:8080... failed: No route to host.

However, I can ssh into the vms from ports 2222 and 2223. This is different from my last issue where I couldn't access any ports at all, ssh or web.

I set up a hook in /etc/libvirt/hooks/qemu according to this guide, which works for ssh but doesn't work for Jellyfin. I know jellyfin is working, because from my host machine I can run wget 192.168.101.100 and it returns the jellyfin home. I also know nginx isn't the issue for the same reason.

Here is my specific hook file:

#!/bin/bash

if [ "${1}" = "Jellyfin" ]; then

   # Update the following variables to fit your setup
   # Remember to change virbr0 to virbr1 if needed.
   GUEST_IP=192.168.101.100
   GUEST_PORT=22
   HOST_PORT=2222
   GUEST_PORT2=8096
   HOST_PORT2=8081

   if [ "${2}" = "stopped" ] || [ "${2}" = "reconnect" ]; then
    /sbin/iptables -D FORWARD -o virbr1 -p tcp -d $GUEST_IP --dport $GUEST_PORT -j ACCEPT
    /sbin/iptables -t nat -D PREROUTING -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
    /sbin/iptables -D FORWARD -o virbr1 -p tcp -d $GUEST_IP --dport $GUEST_PORT2 -j ACCEPT
    /sbin/iptables -t nat -D PREROUTING -p tcp --dport $HOST_PORT2 -j DNAT --to $GUEST_IP:$GUEST_PORT2
   fi
   if [ "${2}" = "start" ] || [ "${2}" = "reconnect" ]; then
    /sbin/iptables -I FORWARD -o virbr1 -p tcp -d $GUEST_IP --dport $GUEST_PORT -j ACCEPT
    /sbin/iptables -t nat -I PREROUTING -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
    /sbin/iptables -I FORWARD -o virbr1 -p tcp -d $GUEST_IP --dport $GUEST_PORT2 -j ACCEPT
    /sbin/iptables -t nat -I PREROUTING -p tcp --dport $HOST_PORT2 -j DNAT --to $GUEST_IP:$GUEST_PORT2
   fi
elif [ "${1}" = "Nginx" ]; then

   # Update the following variables to fit your setup
   # Remember to change virbr0 to virbr1 if needed.
   GUEST_IP=192.168.101.85
   GUEST_PORT=22
   HOST_PORT=2223
   GUEST_PORT2=80
   HOST_PORT2=8081

   if [ "${2}" = "stopped" ] || [ "${2}" = "reconnect" ]; then
    /sbin/iptables -D FORWARD -o virbr1 -p tcp -d $GUEST_IP --dport $GUEST_PORT -j ACCEPT
    /sbin/iptables -t nat -D PREROUTING -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
    /sbin/iptables -D FORWARD -o virbr1 -p tcp -d $GUEST_IP --dport $GUEST_PORT2 -j ACCEPT
    /sbin/iptables -t nat -D PREROUTING -p tcp --dport $HOST_PORT2 -j DNAT --to $GUEST_IP:$GUEST_PORT2
   fi
   if [ "${2}" = "start" ] || [ "${2}" = "reconnect" ]; then
    /sbin/iptables -I FORWARD -o virbr1 -p tcp -d $GUEST_IP --dport $GUEST_PORT -j ACCEPT
    /sbin/iptables -t nat -I PREROUTING -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
    /sbin/iptables -I FORWARD -o virbr1 -p tcp -d $GUEST_IP --dport $GUEST_PORT2 -j ACCEPT
    /sbin/iptables -t nat -I PREROUTING -p tcp --dport $HOST_PORT2 -j DNAT --to $GUEST_IP:$GUEST_PORT2
   fi
fi

Here is the result of iptables -nvL:

Chain INPUT (policy ACCEPT 82683 packets, 6162K bytes)
 pkts bytes target     prot opt in     out     source               destination         
82710 6165K LIBVIRT_INP  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   16   960 ACCEPT     tcp  --  *      virbr1  0.0.0.0/0            192.168.101.100      tcp dpt:8096
  153 13152 ACCEPT     tcp  --  *      virbr1  0.0.0.0/0            192.168.101.100      tcp dpt:22
  569  219K DOCKER-USER  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
  569  219K DOCKER-ISOLATION-STAGE-1  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0           
   44 32161 ACCEPT     all  --  *      br-8ac694360d19  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 DOCKER     all  --  *      br-8ac694360d19  0.0.0.0/0            0.0.0.0/0           
   45  4419 ACCEPT     all  --  br-8ac694360d19 !br-8ac694360d19  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  br-8ac694360d19 br-8ac694360d19  0.0.0.0/0            0.0.0.0/0           
  480  183K LIBVIRT_FWX  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
  480  183K LIBVIRT_FWI  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
  301 28065 LIBVIRT_FWO  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 100K packets, 12M bytes)
 pkts bytes target     prot opt in     out     source               destination         
 100K   12M LIBVIRT_OUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain DOCKER (2 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  !br-8ac694360d19 br-8ac694360d19  0.0.0.0/0            172.18.0.5           tcp dpt:2283

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0           
   45  4419 DOCKER-ISOLATION-STAGE-2  all  --  br-8ac694360d19 !br-8ac694360d19  0.0.0.0/0            0.0.0.0/0           
  569  219K RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-ISOLATION-STAGE-2 (2 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 DROP       all  --  *      br-8ac694360d19  0.0.0.0/0            0.0.0.0/0           
   45  4419 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-USER (1 references)
 pkts bytes target     prot opt in     out     source               destination         
  569  219K RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain LIBVIRT_FWI (1 references)
 pkts bytes target     prot opt in     out     source               destination         
  179  154K ACCEPT     all  --  *      virbr1  0.0.0.0/0            192.168.101.0/24     ctstate RELATED,ESTABLISHED
    0     0 REJECT     all  --  *      virbr1  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 ACCEPT     all  --  *      virbr0  0.0.0.0/0            192.168.122.0/24     ctstate RELATED,ESTABLISHED
    0     0 REJECT     all  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain LIBVIRT_FWO (1 references)
 pkts bytes target     prot opt in     out     source               destination         
  301 28065 ACCEPT     all  --  virbr1 *       192.168.101.0/24     0.0.0.0/0           
    0     0 REJECT     all  --  virbr1 *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 ACCEPT     all  --  virbr0 *       192.168.122.0/24     0.0.0.0/0           
    0     0 REJECT     all  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain LIBVIRT_FWX (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  virbr1 virbr1  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  virbr0 virbr0  0.0.0.0/0            0.0.0.0/0           

Chain LIBVIRT_INP (1 references)
 pkts bytes target     prot opt in     out     source               destination         
   24  2082 ACCEPT     udp  --  virbr1 *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
    0     0 ACCEPT     tcp  --  virbr1 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53
    3   966 ACCEPT     udp  --  virbr1 *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
    0     0 ACCEPT     tcp  --  virbr1 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:67
    0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
    0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53
    0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
    0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:67

Chain LIBVIRT_OUT (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  *      virbr1  0.0.0.0/0            0.0.0.0/0            udp dpt:53
    0     0 ACCEPT     tcp  --  *      virbr1  0.0.0.0/0            0.0.0.0/0            tcp dpt:53
    3   987 ACCEPT     udp  --  *      virbr1  0.0.0.0/0            0.0.0.0/0            udp dpt:68
    0     0 ACCEPT     tcp  --  *      virbr1  0.0.0.0/0            0.0.0.0/0            tcp dpt:68
    0     0 ACCEPT     udp  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            udp dpt:53
    0     0 ACCEPT     tcp  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            tcp dpt:53
    0     0 ACCEPT     udp  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            udp dpt:68
    0     0 ACCEPT     tcp  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            tcp dpt:68

and iptables --list-rules

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N DOCKER
-N DOCKER-ISOLATION-STAGE-1
-N DOCKER-ISOLATION-STAGE-2
-N DOCKER-USER
-N LIBVIRT_FWI
-N LIBVIRT_FWO
-N LIBVIRT_FWX
-N LIBVIRT_INP
-N LIBVIRT_OUT
-A INPUT -j LIBVIRT_INP
-A FORWARD -d 192.168.101.100/32 -o virbr1 -p tcp -m tcp --dport 8096 -j ACCEPT
-A FORWARD -d 192.168.101.100/32 -o virbr1 -p tcp -m tcp --dport 22 -j ACCEPT
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A FORWARD -o br-8ac694360d19 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o br-8ac694360d19 -j DOCKER
-A FORWARD -i br-8ac694360d19 ! -o br-8ac694360d19 -j ACCEPT
-A FORWARD -i br-8ac694360d19 -o br-8ac694360d19 -j ACCEPT
-A FORWARD -j LIBVIRT_FWX
-A FORWARD -j LIBVIRT_FWI
-A FORWARD -j LIBVIRT_FWO
-A OUTPUT -j LIBVIRT_OUT
-A DOCKER -d 172.18.0.5/32 ! -i br-8ac694360d19 -o br-8ac694360d19 -p tcp -m tcp --dport 2283 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i br-8ac694360d19 ! -o br-8ac694360d19 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-8ac694360d19 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
-A LIBVIRT_FWI -d 192.168.101.0/24 -o virbr1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A LIBVIRT_FWI -o virbr1 -j REJECT --reject-with icmp-port-unreachable
-A LIBVIRT_FWI -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A LIBVIRT_FWI -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A LIBVIRT_FWO -s 192.168.101.0/24 -i virbr1 -j ACCEPT
-A LIBVIRT_FWO -i virbr1 -j REJECT --reject-with icmp-port-unreachable
-A LIBVIRT_FWO -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A LIBVIRT_FWO -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A LIBVIRT_FWX -i virbr1 -o virbr1 -j ACCEPT
-A LIBVIRT_FWX -i virbr0 -o virbr0 -j ACCEPT
-A LIBVIRT_INP -i virbr1 -p udp -m udp --dport 53 -j ACCEPT
-A LIBVIRT_INP -i virbr1 -p tcp -m tcp --dport 53 -j ACCEPT
-A LIBVIRT_INP -i virbr1 -p udp -m udp --dport 67 -j ACCEPT
-A LIBVIRT_INP -i virbr1 -p tcp -m tcp --dport 67 -j ACCEPT
-A LIBVIRT_INP -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A LIBVIRT_INP -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A LIBVIRT_INP -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A LIBVIRT_INP -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A LIBVIRT_OUT -o virbr1 -p udp -m udp --dport 53 -j ACCEPT
-A LIBVIRT_OUT -o virbr1 -p tcp -m tcp --dport 53 -j ACCEPT
-A LIBVIRT_OUT -o virbr1 -p udp -m udp --dport 68 -j ACCEPT
-A LIBVIRT_OUT -o virbr1 -p tcp -m tcp --dport 68 -j ACCEPT
-A LIBVIRT_OUT -o virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A LIBVIRT_OUT -o virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A LIBVIRT_OUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT
-A LIBVIRT_OUT -o virbr0 -p tcp -m tcp --dport 68 -j ACCEPT

Keep in mind I have docker running so some rules may not be relevant.

sysctl net.ipv4.ip_forward returns net.ipv4.ip_forward = 1

I've set the firewall backend of libvirt to iptables in /etc/libvirt/network.conf:

firewall_backend = "iptables"

Trying to solve this issue originally, I switched from Rocky to Fedora, but on my rocky and alma install this worked fine both times.

Thank you so much for the continued support with my issues!

47
 
 

I upgraded my trusty old GTX1060 to a RX7600XT. Everything works as it should except for blender. It doesn't find the GPU as a rendering device.

Since the driver manager states "No drivers needed" and when running glxinfo | grep "OpenGL version" in the terminal, it outputs OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.2.8-1ubuntu1~24.04.1 I figured I had all important drivers installed.

I don't know why blender won't find the GPU. Do you have any advice for a newbie?

sys specsLinux Mint 22 Cinnamon Linux Kernel 6.8.0-53-generic CPU Ryzen 7 5800x GPU RX7600XT MoBo MSI B550A-Pro RAM 16 GB @3600mHz

Solution: Didn't have ROCm installed. For anyone with the same issue, here is a link to the guide I used. I don't know if these were necessary for the solution, but here are the amd drivers, just in case ;)

48
49
 
 

Hi all, using Pop!os on my main machine and have Windows on my work PC. I use a KVM switch to go between them.

This works pretty well for the most part but one thing that's annoying is when the KVM is set to the Windows PC, and I turn on my main PC, it will turn on, but it won't output to any monitor after I switch to it.

When the KVM is switched to the main PC before booting, it boots and displays to my 3 monitors without issue.

I assume this is due to my main PC trying to find an output and if it can't find one, just boot without, I just don't know how to change that behavior and searching online for documentation or similar issues hasn't gotten me any results unfortunately.

I'm using Wayland as well if that makes a difference. AMD 7700 XT GPU.

It seems this would be managed by systemd?I'm still learning the more in depth technical bits with Linux so please correct me if I'm wrong. I'm all about trying to learn.

50
12
submitted 4 days ago* (last edited 3 days ago) by towelie@lemm.ee to c/linux@lemmy.ml
 
 

Hi all. Today I was messing around with making custom icons in Debian 12 and I was having a heck of a time. I finally figured it out and wanted to share my solution. Below is a .sh script that will automate creating and replacing existing icons.

How it works

The script takes a path to an .svg file as an input argument. It then searches the /usr/share/icons/hicolor folder's subdirectories for .pngs of a matching name, notes their resolutions, and utilizes InkScape to convert the .svg to .pngs and replace the icons.

To utilize, save the script below as an .sh file and provide it an input .svg as follows:

sudo ./icons.sh /home/USERNAME/icon.svg

(note: your input .svg file must match the name of the existing icon you are trying to replace. Check the folder path below to determine the correct name)

Script

#!/bin/bash

# Define the base directory where icons are located
BASE_DIR="/usr/share/icons/hicolor"

# Ensure the script is run as root to modify files in /usr/share/icons/hicolor
if [ "$(id -u)" -ne 0 ]; then
    echo "This script must be run with root privileges to access the icons folder."
    exit 1
fi

# Check if Inkscape is installed
if ! command -v inkscape &> /dev/null; then
    echo "Inkscape is not installed. Please install it and try again. (sudo apt install inkscape)"
    exit 1
fi

# Input SVG file filepath
INPUT_SVG="$1"
if [ -z "$INPUT_SVG" ]; then
    echo "Usage: $0 /path/to/input.svg"
    exit 1
fi

# Validate that the input SVG file exists
if [ ! -f "$INPUT_SVG" ]; then
    echo "Input SVG file does not exist."
    exit 1
fi

# Loop through all resolution folders (resolutions like 16x16, 32x32, etc.) in the /usr/share/icons/hicolor folder
for resolution_dir in "$BASE_DIR"/*x*; do
    # Check if the resolution folder contains an 'apps' subfolder
    if [ -d "$resolution_dir/apps" ]; then
        echo "Found apps folder in $resolution_dir"

        # Extract the resolution size (e.g., 16x16)
        resolution=$(basename "$resolution_dir")

        # Get the name of the input SVG file (without the .svg extension)
        base_name=$(basename "$INPUT_SVG" .svg)

        # Define the target PNG file path in the current resolution folder
        target_png="$resolution_dir/apps/$base_name.png"

        # Check if the resolution folder already contains a PNG file to replace
        if [ -f "$target_png" ]; then
            echo "Found existing $target_png. Replacing it."

            # Use Inkscape to convert the SVG to PNG at the correct resolution
            inkscape "$INPUT_SVG" --export-type=png --export-filename="$target_png" --export-width="${resolution%x*}" --export-height="${resolution#*x}"

            # Confirm creation
            if [ -f "$target_png" ]; then
                echo "Successfully created $target_png"
            else
                echo "Failed to create $target_png"
            fi
        else
            echo "No existing $target_png found. Skipping this resolution."
        fi
    else
        echo "No 'apps' folder found in $resolution_dir. Skipping."
    fi
done

echo "Icon update process complete!"
view more: ‹ prev next ›