What's new

wsdd2 from Entware collides with Asuswrt-Merlin 384.12

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

JACK-THINK

Occasional Visitor
I installed wsdd2 from Entware on my RT-AC68U with Asuswrt-Merlin 384.12. And I noticed that wsdd2 was also imported into Asuswrt-Merlin 384.12. I disabled everything about samba and wsdd2. Here's the output of command ps. (Attachment ps_state.txt)

Here is the output of
Code:
netstat -nlp
. (Attachment netstat_state.txt)



Then, I run
Code:
/opt/bin/wsdd2 -W
and got errors below

opt_bin_wsdd2.png


Here is the output of
Code:
netstat -nlp
. (Attachment netstat_state_with_opt_bin_wsdd2.txt)



Then, I run
Code:
killall wsdd2
and
Code:
/usr/sbin/wsdd2 -d
, no error appeared.

Here is the output of
Code:
netstat -nlp
. (Attachment netstat_state_with_usr_sbin_wsdd2.txt)



I can hardly find any differences between the outputs. I really don't why wsdd2 from Entware isn't able to run properly on Asuswrt-Merlin 384.12, although it runs perfectly on Asuswrt-Merlin 384.11_2 and Asuswrt 384_45717.


Comparison between
Code:
/opt/bin/wsdd2
from Entware and
Code:
/usr/sbin/wsdd2
from Asuswrt-Merlin 384.12 is shown below.

wsdd2_error.png



How to make
Code:
/opt/bin/wsdd2
from Entware run properly? Is there any solution? Thanks a lot.


In order to make things more clearly, I make a piece of video here.
 

Attachments

  • ps_state.txt
    3.9 KB · Views: 320
  • netstat_state_with_opt_bin_wsdd2.txt
    4.8 KB · Views: 3,798
  • netstat_state.txt
    4.3 KB · Views: 440
  • netstat_state_with_usr_sbin_wsdd2.txt
    5 KB · Views: 395
Last edited:
I installed wsdd2 from Entware on my RT-AC68U with Asuswrt-Merlin 384.12. And I noticed that wsdd2 was also imported into Asuswrt-Merlin 384.12. I disabled everything about samba and wsdd2. Here's the output of command ps. (Attachment ps_state.txt)

Here is the output of
Code:
netstat -nlp
. (Attachment netstat_state.txt)



Then, I run
Code:
/opt/bin/wsdd2 -W
and got errors below

opt_bin_wsdd2.png


Here is the output of
Code:
netstat -nlp
. (Attachment netstat_state_with_opt_bin_wsdd2.txt)



Then, I run
Code:
killall wsdd2
and
Code:
/usr/sbin/wsdd2 -d
, no error appeared.

Here is the output of
Code:
netstat -nlp
. (Attachment netstat_state_with_usr_sbin_wsdd2.txt)



I can hardly find any differences between the outputs. I really don't why wsdd2 from Entware isn't able to run properly on Asuswrt-Merlin 384.12, although it runs perfectly on Asuswrt-Merlin 384.11_2 and Asuswrt 384_45717.


Comparison between
Code:
/opt/bin/wsdd2
from Entware and
Code:
/usr/sbin/wsdd2
from Asuswrt-Merlin 384.12 is shown below.

wsdd2_error.png



How to make
Code:
/opt/bin/wsdd2
from Entware run properly? Is there any solution? Thanks a lot.
Because the Firmware now Natively supports Wsdd2 and before it didn't. I am sure the Wsdd2 feature that has now been added to the router isn't designed to run along side the one from entware. I do not believe the process is getting completely killed if this is what is happening.
 
Because the Firmware now Natively supports Wsdd2 and before it didn't. I am sure the Wsdd2 feature that has now been added to the router isn't designed to run along side the one from entware. I do not believe the process is getting completely killed if this is what is happening.

I'm sure that there is no process such as wsdd2, smbd, or nmbd before I invoke /opt/bin/wsdd2 -W and get the error, at least I can't find them in the output of ps.

what's more, after I invoke killall wsdd2, I still get error when I invoke /opt/bin/wsdd2 -W. On contrary, if I invoke killall wsdd2 first and then invoke /usr/sbin/wsdd2 -d, no error will come up.
 
could be a premissions issue where it is denying access or the bind address remained bound at the other location.
 
could be a premissions issue where it is denying access or the bind address remained bound at the other location.

I don't know how to check it and how to solve it. Can you offer some plans or test methods? I think perhaps the developers of Asuswrt-Merlin made some tricks in order to preclude anything that can stop /usr/sbin/wsdd2 from starting.
 
Sorry, I don't understand why you want to run the Entware version of wsdd2 when there's now one built into the firmware. Why not just uninstall the Entware version and be happy? What am I missing here?
 
Sorry, I don't understand why you want to run the Entware version of wsdd2 when there's now one built into the firmware. Why not just uninstall the Entware version and be happy? What am I missing here?

Reason 1
I developed a system SCRIPTS-BOOTLOADER-FOR-ASUS-ROUTER(https://github.com/JACK-THINK/SCRIPTS-BOOTLOADER-FOR-ASUS-ROUTER) which can be deployed on both Asuswrt and Asuswrt Merlin. In this system, there is a samba4 addon. Since there is no wsdd2 in Asuswrt, wsdd2 from Entware is the only option for Asuswrt. As result, if wsdd2 from Entware can't run properly in Asuswrt Merlin, I have to do extra work to make my system fully compliant with Asuswrt Merlin.

Reason 2
This issue is really weird. I really want to know what makes things like this.
 
I am not familiar with the code of Asuswrt-Merlin. But I don't think it is good to confine users to wsdd2 provided by Asuswrt-Merlin. People have right to use wsdd2 from Entware. What's more, if wsdd2 in Entware gets updated, People will have to expect that Asuswrt-Merlin update wsdd2, since they can't use wsdd2 from Entware. It's really unfair. @RMerlin and @themiron

Yet, you seem to think it is fair to tell the developer what to include in his code though? :)

Of course, RMerlin will keep wsdd2 updated as he is the one that included it in his fork of Asuswrt.

I think you need to find a way to make it work with Asuswrt-Merlin or you need to go back to stock Asus firmware where it seems your code works. ;)

Nobody is confining you. Maybe you can compile a custom version of 384.12_0 without wsdd2 included?
 
1. I have already created some code to circumvent this problem.

2. I don't think it's unfair to developers, since developers have duties to solve problems themselves. I mean it's unfair to users of Entware, as Asuswrt and Asuswrt-Merlin both support Entware. I think at least developer of Merlin should state explicitly what it doesn't support.

1. So has RMerlin, for his wider user base. :)
2. I don't see how this is unfair? Nobody is forcing you to use this firmware. You can ask questions to clarify things, but you seem to be demanding a little too much, IMO. :)
 
2. I don't think it's unfair to developers, since developers have duties to solve problems themselves. I mean it's unfair to users of Entware, as Asuswrt and Asuswrt-Merlin both support Entware. I think at least developer of Merlin should state explicitly what it doesn't support.
You are making a huge assumption here that Merlin has deliberately done something that stops the Entware version from working properly. Frankly that is insulting. It is clear from the fixes we linked to that he encountered the same problem with his implementation of wsdd2 that the Entware version has.

You say that Merlin should explicitly state what he doesn't support. This is ridiculous. Merlin has no control over the Entware packages and has no reason to test every single one of them against every release of his firmware. If there's a compatibility issue take it up with the Entware developers.
 
This is good to know, awesome job elegantly pointing these out @ColinTaylor and @dave14305

@RMerlin and @themiron modified wsdd2 to limit its bondings, bindings, etc. to specific interfaces. Perhaps the Entware version is too "aggressive" in this regard.

https://github.com/RMerl/asuswrt-merlin.ng/search?q=wsdd2&type=Commits
 
You are making a huge assumption here that Merlin has deliberately done something that stops the Entware version from working properly. Frankly that is insulting. It is clear from the fixes we linked to that he encountered the same problem with his implementation of wsdd2 that the Entware version has.

You say that Merlin should explicitly state what he doesn't support. This is ridiculous. Merlin has no control over the Entware packages and has no reason to test every single one of them against every release of his firmware. If there's a compatibility issue take it up with the Entware developers.

I didn't mean to insult anyone. Please don't interpret it in this way. If any words really hurt anybody, I will retract them. I just so curious about why wsdd2 from Entware can run perfectly on Asuswrt-Merlin 384.11_2 and Asuswrt 384_45717 but not on Asuswrt-Merlin 384.12. And on Asuswrt-Merlin 384.12, only wsdd2 from Asuswrt-Merlin can run. Apparently, there must be something added or modified in Asuswrt-Merlin 384.12 specifically blocking wsdd2 from Entware. My aim is only to find a way to make wsdd2 from Entware run on Asuswrt-Merlin 384.12 properly.
 
Reason 1
I developed a system SCRIPTS-BOOTLOADER-FOR-ASUS-ROUTER(https://github.com/JACK-THINK/SCRIPTS-BOOTLOADER-FOR-ASUS-ROUTER) which can be deployed on both Asuswrt and Asuswrt Merlin. In this system, there is a samba4 addon. Since there is no wsdd2 in Asuswrt, wsdd2 from Entware is the only option for Asuswrt. As result, if wsdd2 from Entware can't run properly in Asuswrt Merlin, I have to do extra work to make my system fully compliant with Asuswrt Merlin.

Reason 2
This issue is really weird. I really want to know what makes things like this.
so how well does the asuswrt router handle the entware edition of samba 4 in your script? And does the main script run in another language or could someone who was only fluent in english/german run the script without any problem?
 
I didn't mean to insult anyone. Please don't interpret it in this way. If any words really hurt anybody, I will retract them. I just so curious about why wsdd2 from Entware can run perfectly on Asuswrt-Merlin 384.11_2 and Asuswrt 384_45717 but not on Asuswrt-Merlin 384.12. And on Asuswrt-Merlin 384.12, only wsdd2 from Asuswrt-Merlin can run. Apparently, there must be something added or modified in Asuswrt-Merlin 384.12 specifically blocking wsdd2 from Entware. My aim is only to find a way to make wsdd2 from Entware run on Asuswrt-Merlin 384.12 properly.
It was the changes made that @ColinTaylor and @dave14305 pointed to, these changes were made to the 384.12 while it was in alpha phase.
 
so how well does the asuswrt router handle the entware edition of samba 4 in your script? And does the main script run in another language or could someone who was only fluent in english/german run the script without any problem?

Samba 4 runs perfectly on my system deployed on both Asuswrt and Asuswrt Merlin. For security reasons, My samba addon only supports SMB2 and above. SMB1 has been disable, which means, I just use smbd (samba server), wsdd2 (for Windows discovery) and avahi (for MacOS and iOS discovery) to run samba service.

Anybody who understand shell script will understand my samba addon by reading the codes here (https://github.com/JACK-THINK/SCRIP...OUTER/tree/master/script_bootloader/usr/samba)

All the codes of my system are written in shell with both Chinese and English comments. It's very easy to read and modified.

You can execute only one line below to deploy my system on both Asuswrt and Asuswrt Merlin with a blank USB flash drive attached to your router.
Code:
cd /tmp && wget -O /tmp/install_online --no-check-certificate "https://raw.githubusercontent.com/JACK-THINK/SCRIPTS-BOOTLOADER-FOR-ASUS-ROUTER/master/script_bootloader/bin/install_online" && chmod 777 /tmp/install_online && /tmp/install_online
 

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top