Here's my situation. I have an Asus router that allows me to connect an external drive to it and then it can function as a UPnP media server. Back when I was on Windows It worked perfectly. It always sat in the sidebar of the file explorer and I could just drag and drop files to and from it, download stuff directly onto it or play movies just by double clicking them

I moved to a Fedora-based distro (Nobara) a few months ago and have been unable to access the server the same way. I know it works, because if I open VLC I can access it under "Universal Plug'n'Play" and see my movies, but for the life of me I can't get it to show up in Dolphin or any other file explorer I've tried. I've resorted to turning on FTP on the router and mounting the drive with rclone, which somewhat works for my use case, but it's slow and occasionally just refuses to connect because sessions don't seem to get closed properly and I get a "Too many connections" error.

My google-fu appears to have failed me, because I have genuinely found nothing, besides just using Kodi or VLC. I also found a few threats from like a decade ago complaining about the UPnP support on KDE, but I would have expected things to have improved since then. Is what I'm trying to achieve here just not possible?

all 8 comments

sorted by: hot top controversial new old
[–] 6 points 6 months ago (1 child)

Not a solution to your exact problem, but when you are connected to a remote server via Dolphin you can right click anywhere in the file view and select "Add to places" (exact wording might be different) to create a shortcut.

That way I have easy access to several different drives. Webdav for my Nextcloud server, sshfs for most of the Linux machines in the house. And when we still had Windows PCs I'd access those via Samba. FTP is possible as well.

But yeah, UPNP is not aa universal as one might hope. Every time I try it with something it's buggy even on devices that supposedly support it fully. So I usually end up creating alternative access methods, like you did.

  • source
  • hideshow 1 child comment
  • [–] 5 points 6 months ago (3 children)

    I searched for "upnp fuse" and found a project called "djmount". The code is ancient (last updated 20 years ago), but it may still work (AUR package uploaded in 2023).

    If if it indeed works, then you can just mount your shares, and access them system-wide, from any file manager or utility.

  • source
  • hideshow 3 child comments
  • [–] [S] 2 points 6 months ago (2 children)

    Yeah, I found it too at one point. Ancient is an understatement lol. I gave up trying to make it work after a few hours. It's honestly crazy that nobody has made another utility like it

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 6 months ago (1 child)

    If the AUR package works and nobody commented otherwise you might want to take another look, esp. at the PKGBUILD which can help you build it on other distros, too.

    Or just install it from your distro's repos?

    How old is your router?

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 6 months ago

    @klisurovi4@midwest.social

    I tested building from the source repo the AUR PKGBUILD uses. Vendored libupnp needed -Wno-incompatible-pointer-types to build with modern GCC. Otherwise, the build succeeded without a problem (see the end of this comment).

    I also tested the executable itself, and it seems to work too, although the tool doesn't expose an option to pick the device to listen to, which may not work for users with multiple active network interfaces, if the wrong one is picked.

    Here is the executable if you don't mind running binaries from a random person on the internet 😉. libfuse.so.2 should be the only non-system dependency.


    git clone https://github.com/amiri82/djmount
    cd djmount
    # apply the diff below, then
    ./bootstrap
    ./configure
    make
    # the executable should be at djmount/djmount
    
     libupnp/configure.ac | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/libupnp/configure.ac b/libupnp/configure.ac
    index 8c073e7..889ed9f 100644
    ***
    a/libupnp/configure.ac
    +++ b/libupnp/configure.ac
    @@ -56,7 +56,7 @@ RT_BOOL_ARG_ENABLE([tools], [yes], [helper APIs in upnptools.h])
     #
     # Checks for programs
     #
    -CFLAGS="-fcommon"
    +CFLAGS="-fcommon -Wno-incompatible-pointer-types"
     AC_PROG_CC
     AM_PROG_CC_C_O
     AM_PROG_AR
    
  • source
  • parent
  • [–] 5 points 6 months ago* (1 child)

    My google-fu appears to have failed me, because I have genuinely found nothing

    This is strange. My search for "fedora upnp" returns plenty of possibilities. "linux upnp filesystem integration" as well.

    Apparently simple service discovery protocol is another important keyword.

    I don't use this myself...

  • source
  • hideshow 1 child comment
  • [–] [S] 3 points 6 months ago

    I guess I didn't really phrase myself correctly. I found a bunch of stuff but nothing that really helps. Most of the threads were either ancient or not related to my use case. I found one promising utility (djmount) but it was last updated like 2005 and I had no luck getting it to run on my pc.

    That being said, I didn't think of searching for service discovery protocols

  • source
  • parent