

My GF has an iphone, and on KDE I can just connect it via USB and it’s visible in the file manager.
There’s also this.
My GF has an iphone, and on KDE I can just connect it via USB and it’s visible in the file manager.
There’s also this.
Because Linux is a monolithic kernel. What that means, essentially, is that it contains all the drivers and everything else, unlike windows which uses a microkernel. The advantages of a monolithic kernel are, for instance, that you don’t need to install drivers manually, and you don’t have to depend on potentially malicious websites to host those drivers. Additionally, if any kernel ABI changes for one reason or the other, say there is a refactor to fix a vulnerability, whoever does the refactor would also refactor the driver code because that is in the kernel, and the kernel won’t compile if there’s an error in the drivers. This way, the driver is always updated, and you don’t have a situation where you have really old drivers that no longer work.
The disadvantage of a monolithic kernel is that there’s a lot more code that you have to take care of, and the kernel has a lot more responsibilities as opposed to a microkernel.
Yeah but GTK
Virt-manager is a GUI for libvirt, which can use several hypervisors, including KVM/QEMU, and it works great.
There’s several other clients for libvirt, including GNOME Boxes, Cockpit (web based), and virsh (CLI).
You just go into Settings > System > Developer options > Linux development environment, and enable it.
I updated to LineageOS 22.2 yesterday. It has the option, I enabled it and it works. I’m on a Pixel 8, tho. Might have something to do with it.
What are you referring to?
Sorry, my bad, I forgot that the setup script isn’t part of the default repo and is something I added in my own fork. But yeah, if there’s no systemd, it’s no use.
I can whip up a quick script that should work, I’ll test it out on my own hardware, and post it here for you sometime tomorrow.
You should definitely try with the systemd-gadgets I linked earlier. It makes all the configuration really easy, you just need to enable the relevant services, so in your case usbgadget-func-uvc.service
and gadget-start.service
. You also need to copy them beforehand to /etc/systemd/system
, including gadget-init.service
, and you need to copy gadget
to /etc/default/gadget
, and the scripts gadget-start.sh
and gadget-init.sh
to /etc/systemd/scripts
. Edit /etc/default/gadget
to edit the configs and names of the gadget, and then start gadget-start.service
. No need to enable gadget-init.service
, it’s called as a dependency from other services.
There’s an install script in the repo that you can use as well, setup.sh
, and a PKGBUILD so you can create an Arch package. After installing with either method, just change /etc/default/gadget
, enable the uvc and gadget start services, and then just start the gadget start service.
Hey, if you ever create that, give me a shoutout, I’d love to see it.
No, unfortunately not :/
That’s just the “name” of the configuration, for instance in my USB ethernet gadget I use both c.1 and c.2 as config names, and not a.1.
Yeah, it’s a bit weird that it works like that. I’ll be honest, in the last three or four years that I’ve been tinkering with USB gadgets, I’ve never noticed that those symlinks you create should be broken until you mentioned it. I just kinda took it for granted that it works (probably because I never had issues with this part of the process).
I’ve got some experience with Linux USB gadgets, and can confirm that the docs definitely aren’t wrong, as I’ve used them myself to write gadgets using the same symlink commands that the docs mention and that OP used here.
I’ve got a working USB ethernet gadget and MTP gadget for the Steam Deck that make the same link that should be broken, and here’s a repo that implements every USB gadget with almost every gadget making the same symlink, one directory up from where OP does it. I’ve tested all the gadgets from that repo and they all work, and because they work, I’ve forked the repo here for future use in the above mentioned Steam Deck plugin.
I can pretty confidently say that it’s not a broken symlink. I’m not 100% sure why this doesn’t work for OP, but I think it’s most likely an issue with not loading the correct driver for the UVC function.
No, this is ConfigFS, the linux kernel’s special filesystem for configuring kernel stuff, and for some reason that I don’t really know, it doesn’t matter if the symlink is relative or not. The kernel documentation even creates a relative symlink from the same directory as OP did here.
Hmm, not sure then. It seems correct to me. Check out this repo, it has systemd services for all the USB gadgets, you can run uvc very easily with this: https://github.com/BigfootACA/systemd-gadget
I can write specific instructions how to get this working later today, if you’ll need them.
Normally, you’d be right, but this special filesystem doesn’t care about that. I’ve done similar with different gadgets so many times, always with relativr symlinks, sometimes directly from the root of the special filesystem, sometimes from the gadgets own subdirectory, and it just works.
Hey, you need to also modprobe usb_f_uvc
at the beggining, right after modprobe libcomposite
My GF has an iphone, and on KDE I can just connect it via USB and it’s visible in the file manager.
There’s also this.