OpenWrt Forum Archive

Topic: davidc502 1900ac 3200acm builds

The content of this topic has been archived between 26 Feb 2018 and 7 May 2018. Unfortunately there are posts – most likely complete pages – missing.

starcms wrote:
mariano.silva wrote:

Hi everyone!!! Since the last upgrade, I'm getting this:

/usr/lib/lua/luci/controller/admin/uci.lua:8: attempt to index global 'disp' (a nil value)
stack traceback:
    /usr/lib/lua/luci/controller/admin/uci.lua:8: in function 'v'
    /usr/lib/lua/luci/dispatcher.lua:598: in function 'createtree'
    /usr/lib/lua/luci/dispatcher.lua:256: in function 'dispatch'
    /usr/lib/lua/luci/dispatcher.lua:121: in function </usr/lib/lua/luci/dispatcher.lua:120>

Any suggestions?

Yeah, I got this myself and had to reflash @david's latest build.

I'm assuming you are getting the latest version of the packages from the openwrt/lede snapshot repos?

Yes Sir, as you tought me to master Jedi! smile ... Thanks for the very detailed reply my guru ... if you ran into the same issue, and you were unable to fix it without a clean installation (not a sysupgrade, right?), then I have no chance smile

mariano.silva wrote:
starcms wrote:
mariano.silva wrote:

Hi everyone!!! Since the last upgrade, I'm getting this:

/usr/lib/lua/luci/controller/admin/uci.lua:8: attempt to index global 'disp' (a nil value)
stack traceback:
    /usr/lib/lua/luci/controller/admin/uci.lua:8: in function 'v'
    /usr/lib/lua/luci/dispatcher.lua:598: in function 'createtree'
    /usr/lib/lua/luci/dispatcher.lua:256: in function 'dispatch'
    /usr/lib/lua/luci/dispatcher.lua:121: in function </usr/lib/lua/luci/dispatcher.lua:120>

Any suggestions?

Yeah, I got this myself and had to reflash @david's latest build.

I'm assuming you are getting the latest version of the packages from the openwrt/lede snapshot repos?

Yes Sir, as you tought me to master Jedi! smile ... Thanks for the very detailed reply my guru ... if you ran into the same issue, and you were unable to fix it without a clean installation (not a sysupgrade, right?), then I have no chance smile

What I did was boot to the other partition ( I keep @david's builds on both), then flash the sysupgrade from there.

Regarding LuCI issues, just wait for the next build, as there have been several security related changes to LuCI today/yesterday that broke some of the existing functionality. Jow has already been fixing the fallout, so likely the things will work ok soon (at the next build).

https://github.com/openwrt/luci/commits/master

But that is life at the bleeding edge of master. You sometimes make a build when things are broken.
Stable 17.01 is stable.

starcms wrote:

I removed

        [ $USER == "root" ] && {
          logger -t $NAME "Warning: ${NAME} running as root!"
        } || {
          chown $USER:$GRP $PIDLOC
        }

because looking at your code, it seems impossible for it to start in any other way besides with USER == nobody.   

Regardless, could you explain the syntax for that portion and your reasoning for adding it?  It seems to be saying If USER == root, then output the warning to the log.  But how/when is the chown statement executed?  I've never seen that syntax before (the part with the chown command added on).

I left some baggage in there because if I use it the plan is to integrate with uci (read: an actual config file) allowing to specify such things as user/group to run with.  In this case there's no functionality that requires root but if a config option is provided and root is used, there should at least be a warning.

As to your other changes, remember right now this is a "custom" change.  I provided the link in case @davidc502 wants to include something in his repository to make its inclusion more official for his builds.

If you plan to modify this for an official pull request it must work for all architectures -- this package will only work on ARM as there's no platform detection and that's the only binary downloaded.  In addition, if you keep everything named "dnscrypt-proxy" you must convince the org that it's OK to break everyone's current installation (very unlikely to happen).  This is why I added the suffix -v2 -- packages can be separated, both installed simultaneously, etc etc.

Many of your changes are forcing a specific implementation method which is fine for a custom package but likely won't work if you're trying to move toward getting something pulled.

Mid-term, there is a pull request for a Go cross-compile solution in process.  Where my own package will go will likely be to compile the source and (hopefully) patched to remove some bloat.

InkblotAdmirer wrote:
starcms wrote:

I removed

        [ $USER == "root" ] && {
          logger -t $NAME "Warning: ${NAME} running as root!"
        } || {
          chown $USER:$GRP $PIDLOC
        }

because looking at your code, it seems impossible for it to start in any other way besides with USER == nobody.   

Regardless, could you explain the syntax for that portion and your reasoning for adding it?  It seems to be saying If USER == root, then output the warning to the log.  But how/when is the chown statement executed?  I've never seen that syntax before (the part with the chown command added on).

I left some baggage in there because if I use it the plan is to integrate with uci (read: an actual config file) allowing to specify such things as user/group to run with.  In this case there's no functionality that requires root but if a config option is provided and root is used, there should at least be a warning.

As to your other changes, remember right now this is a "custom" change.  I provided the link in case @davidc502 wants to include something in his repository to make its inclusion more official for his builds.

If you plan to modify this for an official pull request it must work for all architectures -- this package will only work on ARM as there's no platform detection and that's the only binary downloaded.  In addition, if you keep everything named "dnscrypt-proxy" you must convince the org that it's OK to break everyone's current installation (very unlikely to happen).  This is why I added the suffix -v2 -- packages can be separated, both installed simultaneously, etc etc.

Many of your changes are forcing a specific implementation method which is fine for a custom package but likely won't work if you're trying to move toward getting something pulled.

Mid-term, there is a pull request for a Go cross-compile solution in process.  Where my own package will go will likely be to compile the source and (hopefully) patched to remove some bloat.

Makes sense!  Thanks for the detailed explination! 

If you could answer just one more question, in the code snippit above, I've never seen that syntax before with && and then followed by another command with ||.  I understand the beginning part, but everything after and including the || I don't understand.  I'm guessing it means if user=root==true, then perform the two commands, but why not just put both commands together in the brackets after &&?  Could you explain in english what exactly it does?

Edit:. However, in regard to taking out the references to v2 in the init.d script, adblock (for example) went through a very major update a while back. As long as the final product upgrades dnscrypt-proxy v1 to v2, it wouldn't break anything. People would just have to configure the .toml (conf) file to their liking. Same thing happened with adblock.

Imo, the best way would be a commit that simply upgrades dnscrypt-proxy to the latest version...in this case v2.  That way there's no confusion over which package version to install. v1 has been depricated by the dev; seems dumb to keep it in the package repositories once v2 has been fully released for openwrt/lede.

(Last edited by starcms on 6 Apr 2018, 18:45)

InkblotAdmirer wrote:
starcms wrote:

I removed

        [ $USER == "root" ] && {
          logger -t $NAME "Warning: ${NAME} running as root!"
        } || {
          chown $USER:$GRP $PIDLOC
        }

because looking at your code, it seems impossible for it to start in any other way besides with USER == nobody.   

Regardless, could you explain the syntax for that portion and your reasoning for adding it?  It seems to be saying If USER == root, then output the warning to the log.  But how/when is the chown statement executed?  I've never seen that syntax before (the part with the chown command added on).

I left some baggage in there because if I use it the plan is to integrate with uci (read: an actual config file) allowing to specify such things as user/group to run with.  In this case there's no functionality that requires root but if a config option is provided and root is used, there should at least be a warning.

As to your other changes, remember right now this is a "custom" change.  I provided the link in case @davidc502 wants to include something in his repository to make its inclusion more official for his builds.

If you plan to modify this for an official pull request it must work for all architectures -- this package will only work on ARM as there's no platform detection and that's the only binary downloaded.  In addition, if you keep everything named "dnscrypt-proxy" you must convince the org that it's OK to break everyone's current installation (very unlikely to happen).  This is why I added the suffix -v2 -- packages can be separated, both installed simultaneously, etc etc.

Many of your changes are forcing a specific implementation method which is fine for a custom package but likely won't work if you're trying to move toward getting something pulled.

Mid-term, there is a pull request for a Go cross-compile solution in process.  Where my own package will go will likely be to compile the source and (hopefully) patched to remove some bloat.

Thanks for the insight and peek behind the curtain.

Hey everybody,

I got an WRT3200 today and have trouble setting up an working DS-Lite Connection.

When you first boot up the device, with both WAN Interfaces set to DHCP (v6 for WAN6 of course) I get an working IPv6 connection to the outside world (but no IPv4).
As soon as I install dslite (with it's deps) and activate it on WAN (not 6) I have no connection at all.

In the process log I see that dslite.sh is looping between setup and teardown of WAN6_4.

Right now I'm using my old router which does exactly the same setup (running snapshot on that other, non WRT router). Can somebody help?

(Last edited by tb on 6 Apr 2018, 19:40)

ambrosa wrote:

Every time a new firmware is releases I ask to davidc502 "PLEASE  check and fix TRANSMISSION package build"

Building is broken since months. I need it :-( And in my 1900ACS works great.

As David state, you can always use another repo for install any packages.
Here is how my sources set so I get all packages I need even if they are not presented in David's repo.
And yes, I use transmission too.

root@LINKSYS:~# cat /etc/opkg/customfeeds.conf
# add your custom package feeds here
#
# src/gz example_feed_name http://www.example.com/path/to/files
src/gz reboot_core https://downloads.lede-project.org/snapshots/packages/arm_cortex-a9_vfpv3/packages
src/gz reboot_base https://downloads.lede-project.org/snapshots/packages/arm_cortex-a9_vfpv3/base
src/gz reboot_luci https://downloads.lede-project.org/snapshots/packages/arm_cortex-a9_vfpv3/luci
#src/gz reboot_routing https://downloads.lede-project.org/snapshots/packages/arm_cortex-a9_vfpv3/routing
#src/gz reboot_telephony https://downloads.lede-project.org/snapshots/packages/arm_cortex-a9_vfpv3/telephony
src/gz reboot_packages https://downloads.lede-project.org/snapshots/packages/arm_cortex-a9_vfpv3/packages
AddRemover wrote:
ambrosa wrote:

Every time a new firmware is releases I ask to davidc502 "PLEASE  check and fix TRANSMISSION package build"

Building is broken since months. I need it :-( And in my 1900ACS works great.

As David state, you can always use another repo for install any packages.
Here is how my sources set so I get all packages I need even if they are not presented in David's repo.
And yes, I use transmission too.

root@LINKSYS:~# cat /etc/opkg/customfeeds.conf
# add your custom package feeds here
#
# src/gz example_feed_name http://www.example.com/path/to/files
src/gz reboot_core https://downloads.lede-project.org/snapshots/packages/arm_cortex-a9_vfpv3/packages
src/gz reboot_base https://downloads.lede-project.org/snapshots/packages/arm_cortex-a9_vfpv3/base
src/gz reboot_luci https://downloads.lede-project.org/snapshots/packages/arm_cortex-a9_vfpv3/luci
#src/gz reboot_routing https://downloads.lede-project.org/snapshots/packages/arm_cortex-a9_vfpv3/routing
#src/gz reboot_telephony https://downloads.lede-project.org/snapshots/packages/arm_cortex-a9_vfpv3/telephony
src/gz reboot_packages https://downloads.lede-project.org/snapshots/packages/arm_cortex-a9_vfpv3/packages

It just so happens I did some reading and came up with a solution anyway, so we should be good to go moving forward.

tb wrote:

Hey everybody,

I got an WRT3200 today and have trouble setting up an working DS-Lite Connection.

When you first boot up the device, with both WAN Interfaces set to DHCP (v6 for WAN6 of course) I get an working IPv6 connection to the outside world (but no IPv4).
As soon as I install dslite (with it's deps) and activate it on WAN (not 6) I have no connection at all.

In the process log I see that dslite.sh is looping between setup and teardown of WAN6_4.

Right now I'm using my old router which does exactly the same setup (running snapshot on that other, non WRT router). Can somebody help?

No idea what dslite is, so can't help you there, but regarding no IPv4 connectivity:

a) Have you unplugged (from power)/rebooted your cable modem or similar device since you installed openwrt/Lede on your new wrt3200acm?  This is normally necessary to clear out the old MAC address of your old router and possibly from upgrading from stock to openwrt/Lede.
b) In Lede (192.168.1.1 in your browser), on the overview page, does it show an IPv4 external IP from your ISP?

(Last edited by starcms on 6 Apr 2018, 22:43)

starcms wrote:

If you could answer just one more question, in the code snippit above, I've never seen that syntax before with && and then followed by another command with ||.  I understand the beginning part, but everything after and including the || I don't understand.  I'm guessing it means if user=root==true, then perform the two commands, but why not just put both commands together in the brackets after &&?  Could you explain in english what exactly it does?

[ test ] && { action to take if true } || { action to take if false} is one syntax in bash for if/then/else.  The section you quoted tests the user, warns if root, and if not changes permission on the file so a process running as non-root can access it.  The file is created by procd so its ownership will be root:root.

starcms wrote:

Edit:. However, in regard to taking out the references to v2 in the init.d script, adblock (for example) went through a very major update a while back. As long as the final product upgrades dnscrypt-proxy v1 to v2, it wouldn't break anything. People would just have to configure the .toml (conf) file to their liking. Same thing happened with adblock.

Imo, the best way would be a commit that simply upgrades dnscrypt-proxy to the latest version...in this case v2.  That way there's no confusion over which package version to install. v1 has been depricated by the dev; seems dumb to keep it in the package repositories once v2 has been fully released for openwrt/lede.

v2 is very different from the original in terms of configuration syntax.  If you don't believe me, make an attempt to generate a package that when upgraded from opkg will translate any dnscrypt-proxy config setup (with/without plugins enabled, with/without IP/domain blocking, etc etc) automatically into a working v2 config.  My gut feel is that it's not worth the effort -- v2 is named the same, but it's a different program.

@starcms: Thanks for getting back to me.

DS-Lite is a "transition" technique that gives you IPv4 over IPv6 -> RFC6333

To a) of course I did smile
To b) no it doesn't. It doesn't on that other working router either.

I have actually no clue how to debug dslite.sh, it just cycles through setup and teardown with an "unkown error" in between. How could I find out what fails?

InkblotAdmirer wrote:

v2 is very different from the original in terms of configuration syntax.  If you don't believe me, make an attempt to generate a package that when upgraded from opkg will translate any dnscrypt-proxy config setup (with/without plugins enabled, with/without IP/domain blocking, etc etc) automatically into a working v2 config.  My gut feel is that it's not worth the effort -- v2 is named the same, but it's a different program.

I agree, it's config file is completely, utterly different wink

My point was that when adblock v3 (I think) came out, although the config file was no where near as different, it still had to be set up from scratch. Adblock v3 was a completely different program vs v2 in so much that it had been rewritten from scratch.

The conf file was different enough that Adblock v3 wouldn't start if you uninstalled v2 first or upgraded directly to v3. One had to manually delete the conf file left over from v2 first.

And since dnscrypt-proxy v2 is so automated, and by default automatically picks it's own resolvers, the only item in the .toml file that is essential to making it work is changing the port to use the same one that was configured in v1 (if you already were previously running v1).   And especially since v1 definitely wasn't "easy" for many people to get working in the first place, it seems like a very minor inconvenience.

Btw, thanks for answering my syntax question. Learning more about coding for Linux/bash everyday smile

(Last edited by starcms on 7 Apr 2018, 10:10)

tb wrote:

@starcms: Thanks for getting back to me.

DS-Lite is a "transition" technique that gives you IPv4 over IPv6 -> RFC6333

To a) of course I did smile
To b) no it doesn't. It doesn't on that other working router either.

I have actually no clue how to debug dslite.sh, it just cycles through setup and teardown with an "unkown error" in between. How could I find out what fails?

Ok, well that explains why your IPv6 was working in the first place lol.

Did you try coping your dslite config file from your old router to the new one?  What about your /etc/config/dhcp and /etc/config/network files?

To see why it fails, try running dslite.sh in an SSH shell (./dslite.sh) and depending on the script, it may give you more information about why it's failing vs the log.

Edit: Also try disabling dnscrypt-proxy. The build for your old router, if it was purely from the snapshot branch vs @david's build, wouldn't have come with it.

(Last edited by starcms on 7 Apr 2018, 09:47)

True, I'll try that.
Though running the script itself won't work, it depends on other scripts to work (netifd_proto.sh or something, I'm not at home right now).

I tried disabling dnscrypt before, didn't help. But I'll try later!

tb wrote:

True, I'll try that.
Though running the script itself won't work, it depends on other scripts to work (netifd_proto.sh or something, I'm not at home right now).

I tried disabling dnscrypt before, didn't help. But I'll try later!

Even though the main script requires other scripts to work, as long as they're all installed, you can still run it from SSH.

Really? Maybe I don't remember it correctly, I'll try that too smile Thanks!

Well okay, running the script itself just returns
"add_protocol not found"

When I comment out the last three lines of the script it runs, without any other further information.

I tested latest official snapshot for WRT3200 and it is the same problem here. No IPv4 connection is established (not on the router, nor any client). What could be wrong? It's working on an old Linksys E4200 (but horribly slow).

Thanks for every input. Maybe I should open a new topic for that issue since it doesn't seem to be related to davids builds?

I donno... since many are steering this thread in so many directions, i feel  David's builds are set asside because so much support is on 3rd party modules. Maybe I see this thread becoming more bloated and difficult to navigate to build issues, because  of so much of the  multi threaded support going on.

Not that i am being a bully, just am i the only one feeling out of place?

You are right, I will post another thread for this issue.

I haven't read much of this thread, with over 200 pages it's way too much to "just get into", I firstly thought it might be related to this build since trunk works on another device with the same setup procedure.
Sorry for the mess, maybe a mod can delete the unnecessary posts I made in here?

Will davidc502 builds fully saturate a download 500Mbit internet (what I have)? How about future proofing for 1Gbit down? Stock firmware does that's why I'm asking. I'm assuming no Hardware NAT in open source, but does it support FastPath/SFE? How about the upcoming Flow Offloading which is hitting the 4.14 kernel?

I realize OpenWrt said on their main page there will be a "major release" for 2018 coming soon possibly with some of this stuff and fully merged with LEDE. Basically just trying to get a handle on the performance before I move off DD-WRT to try this... Thanks!

(Last edited by phinn on 7 Apr 2018, 22:18)

FYI, for those who download the latest packages from the snapshot repo, luci (and it's 17 or so accompanying packages) has been updated and fixed and is now safe to upgrade again.

Notsofast wrote:

I donno... since many are steering this thread in so many directions, i feel  David's builds are set asside because so much support is on 3rd party modules. Maybe I see this thread becoming more bloated and difficult to navigate to build issues, because  of so much of the  multi threaded support going on.

Not that i am being a bully, just am i the only one feeling out of place?

There haven't been any issues associated with @david's builds (that aren't also present in snapshot) in quite a while.  I personally would like to see some activity in the thread than it be completely dead because @david's builds are basically perfection. wink

And when there is a question pertaining specifically to @david's builds, many people including @david usually chime in immediately.

Edit: My logic is that, for example, @david includes dnscrypt-proxy in his build.  That package isn't present by default in the snapshot branch.  So discussion on it fits perfectly fine in this thread.

(Last edited by starcms on 7 Apr 2018, 23:20)

phinn wrote:

Will davidc502 builds fully saturate a download 500Mbit internet (what I have)? How about future proofing for 1Gbit down? Stock firmware does that's why I'm asking. I'm assuming no Hardware NAT in open source, but does it support FastPath/SFE? How about the upcoming Flow Offloading which is hitting the 4.14 kernel?

I realize OpenWrt said on their main page there will be a "major release" for 2018 coming soon possibly with some of this stuff and fully merged with LEDE. Basically just trying to get a handle on the performance before I move off DD-WRT to try this... Thanks!

Just try it and see.  Your router has 2 partitions.  If it doesn't meet your needs, you can just boot back to your DD-WRT partition and everything will be exactly how you left it.  Every time you flash a firmware, it flashes to the other partition -- so if you flash @david's build (openwrt/lede) while you are running DD-WRT, you will have one on each partition.

However, speeds should be extremely similar.

(Last edited by starcms on 8 Apr 2018, 00:40)

Is there a command to turn off all LEDs btw?

Sorry, posts 5401 to 5400 are missing from our archive.