Miniupnp with igd2 not compatible with consoles

My current list of non-working devices on IGD2 are a PS3, a PS4, and Nvidia remote play. The Xbox was from someone else, but still valid.

My best guess is that none of these will fix their implementation in any reasonable amount of time, if ever, so for now LEDE's upnp-implementation is broken for real world applications.

I do realise it's not even directly a LEDE package, but from a users perspective it just doesn't work on LEDE.

I'll give compiling a few more tries, but I'm just a random power user, for everyone else it'll still be broken.

I was in your same situation, needing that miniupnpd package had igd1 support instead igd2. So i decided to compile my own package.

What is your router model / architecture ?

Thanks for the reply! My router is an R8000, under the target bcm53xx.

You're incorrect, my PS4 works perfectly fine with IGDv2. I'll have a look at my PS3 later.

Really? I find that very strange. What's the contents of your /var/upnp.leases file if you clear it, restart miniupnpd and then disable and enable for example Remote Play on the PS4?

miniupnpd - igdv1 - lede 17.01 Broadcom BCM47xx/53xx (ARM)

1 Like

Thanks a million. Everything works again, as soon as I installed the IGD1 version the leases list started populating with new entries.

Hi marbi, I have the same issue. I can only get Moderate NAT on two Xbox One consoles. Needless to say this has been driving me crazy and I couldn't figure out what was going on with UPNP since I would never see entries show up for the Xbox Ones. Would the package you compiled with IGD1 also work for a WRT3200ACM?

Thanks!

No, since they are not sharing same package architecture. You need to compile for your router target/architecture.

Thanks marbi, I've never complied a package before so I'll have to figure it out and learn how to do it.

miniupnpd - igdv1 - lede 17.01 WRT3200ACM

Exactly. Can't we at lease have the ability to choose which version we would like to have installed? The idea with two separate packages sounds sane to me. Second package with idg1 seems to be a valid solution.

1 Like

Again, don't be lazy and report this to your vendor. You clearly have the ability to choose version.

Marbi, thank you for the package, much appreciated. Out of curiosity, how difficult is it to compile packages?

While I have experience with Linux, I've never had to compile anything I've always just installed packages or upgraded packages.

Thanks again!

  1. Download Debian image for VMware or Virtualbox. For example from here.
  2. Be sure that all needed packages are available:
    sudo apt-get install build-essential libncurses5-dev gawk git subversion libssl-dev gettext unzip zlib1g-dev file python
  3. Make a directory and download source:
    mkdir /lede && cd /lede && git clone https://git.lede-project.org/source.git .
  4. Change to release branch, lede-17.01 in this example:
    git checkout lede-17.01
  5. Download and install additional feeds:
    ./scripts/feeds update -a && ./scripts/feeds install -a
  6. Check if you have required dependencies installed:
    make defconfig && make prereq
  7. Configure LEDE by selecting your target system and profile, and activate miniupnpd package as module:
    make menuconfig

  8. Remove igdv2 patch from patches directory of miniupnpd (for lede-17.01 only, master branch has an option to compile with igdv2)
    rm ./feeds/routing/miniupnpd/patches/106-enable_igdv2.patch
  9. Compile all stuff:
    make tools/install && make toolchain/install && make package/miniupnpd/compile
  10. Package will be available at:
    /bin/packages/YOUR_PACKAGE_ARCHITECTURE/routing
3 Likes

Thanks for the tutorial, seems pretty straightforward. I'll give it a try.

Again, thank you for your help!

Hi

I've managed to follow the rest of the compiling guide using Ubuntu 17.04[quote="marbi, post:24, topic:2016"]
make tools/install && make toolchain/install && make package/miniupnpd/compile
[/quote]

After typing the make tools/install && make toolchain/install && make package/miniupnpd/compile
I receive this error message

make -r tools/install: build failed. Please re-run make with -j1 V=s to see what's going on /lede/source/include/toplevel.mk:197: recipe for target 'tools/install' failed make: *** [tools/install] Error 1

I also ran '-j1 V=s' in the command and this is the output https://pastebin.com/igHhVhkg

Can someone shed some light on this please

Many thanks

Will

configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)

You need to run everything as a normal user instead of root, or set the flag mentioned before running configure.

Does set FORCE_UNSAFE_CONFIGURE=1 go before the other command like this?:-
set FORCE_UNSAFE_CONFIGURE=1 make tools/install && make toolchain/install && make package/miniupnpd/compile

I was having the same problem, when logged in as a standard user it would fail to compile due to permissions on the "lede" directory and all sub-directories. Even when I used SU in terminal and then used set FORCE_UNSAFE_CONFIGURE=1 it would still fail to compile. When I checked the permissions on the "lede" directory the owner was "root". What I did was change the permissions on the "lede" directory and sub-directories so the owner was the standard login. Once I did that I was able to compile the package without any errors as a standard user without using set FORCE_UNSAFE_CONFIGURE and it installed fine. Don't know if when I was configuring everything initially the permissions were applied incorrectly to the directory or if changing the owner was the best way to accomplish compiling the package but it worked.

1 Like