Wiresalmon
Doug Webb (190) 1180 posts |
My 2B seems Ok with both stacks.
Same with the older version here with the ROD stack on my ARMX6. I’d like to use WireSalmon to trying and provide feedback to ROOL on why the latest EtherUSB module, that allows AX 88179A based Ethernet adaptors to work, causes issues when trying to push files via ShareFS when used on my PineBookPro and older Pinebook. Small files work. NFS and LanManFS work as well so as ShareFS uses UDP this may also give a pointer. If you need any testing then let me know and a copy of the updated module would be good to use with the ROOL stack, PineBookPro and EtherUSB 0.42 (30-Sep-23) module. |
Colin Ferris (399) 1814 posts |
Is there explanation of how Wiresamon works? Does it trap the Internet SWIs? |
Dave Higton (1515) 3525 posts |
I don’t know of any documentation of how it works, but a man of your calibre should be able to work it out – especially if we work together and share our findings. I can see code that takes over SWIs and I can see it enumerating all DCI4 devices, so I would guess that it takes a copy of incoming data before passing control back to them. |
Colin (478) 2433 posts |
It looks like it just entercepts the swi calls used to transfer mbufs. It may be the problem with wiresalmon is the network structures it uses may be different on the new stack. I understand that a new mbuf manager has been written for example. Without some documentation or the sources for the new stack you’d be guessing what to change. |
Colin (478) 2433 posts |
Is it related to the sharefswindow issue. The new stack is unlikely to solve this. The new stack could make the network speed differential between a slow and fast devices even greater. My Pi4 reads/writes a 20MB file over lanmanfs ad 50/30MB/s and my armx6 20/8MB/s. I use a sharefswindow of 4 without problems. |
Doug Webb (190) 1180 posts |
Doesn’t appear to be as altering the ShareFSWindow value doesn’t improve things when trying to push larger files. It is the same on either stack. The caveat on NFS and LanManFS working is that they are slower, again not related to a stack, when using the 10/100/1000 Asix 88179A adaptor. Using a browser seems OK so internet traffic does not appear to be effected.. To get this adaptor to work, which is CDC capable, I need either Thomas Millius’s EtherUSB 0.43 or ROOL’s beta EtherUSB 0.42 (30-Sep-23) module. If I use a 10/100 Ethernet adaptor ASIX AX 88772B device then it works. One strange thing is that the AX88772B device draws 200mA but the other device only draws 100mA. I have tried using a powered hub in between but that doesn’t cure the issue. On the PineBookPro the AX88179A will only set up networking in the left hand USB3 port and not the right hand USB2 one but on the older PineBook , which both ports are USB2, then it works in either one. I am led to believe that the USB3 port on the PineBookPro uses XHCI. If I set up a Pi Zero version 1 and use either the ROOL or Thomas’s EtherUSB module, with the AX88179A device, then it works and I can push files on ShareFS , use NFS, LanManFS and browse the internet. So I would like to capture some network stream information and send that to ROOL so we can try and pin down what is happening and hence try and fix the potential issue. Sorry for clogging in up this thread, which is about WireSalmon, with all the above but a copy that will work would be most useful in my opinion to resolving this and other issues irrespective of which stack or which modules are being used. |
Colin (478) 2433 posts |
On the pi4 there is only an xhci driver which must handle both usb2 and 3 devices – though it hates my usb3 hubs in usb2 mode. Does the pinebook have an ehci and xhci driver? I suspect the xhci driver is handling all ports. Is everyone with issues with the new internet stack also using usb internet? |
Colin Ferris (399) 1814 posts |
My memory is probably playing up – but didn’t Gerf do a replacement MBuff module years ago? |
Rick Murray (539) 13840 posts |
Isn’t that the default on most ARM boards? A USB port from the SoC goes to an integrated USB hub with Ethernet… |
Colin (478) 2433 posts |
My Pi4 and armx6 don’t use usb ethernet so may explain why I’m not having problems |
Doug Webb (190) 1180 posts |
The PBPro has XHCI for the USB3 port and EHCI for the USB2. The older PineBook only has EHCI for both USB2 capable ports. As I made clear the issues are not related to one specific network stack ROD or ROOL as in my case it happens on both the only common factors are AX88179A device, EtherUSB 0.43/0.42 (30-Sep-23) and the PineBooks. Any way I’ll not clog this thread up any more and I’ll await a version of WireSalmon I can use. I’m happy to test it to help diagnose my specific issue as it doesn’t matter if I have the ROOL stack working to trigger it. |
Dave Higton (1515) 3525 posts |
Looking at the module’s code, I see that it reinitialises all network drivers, by calling Service_EnumerateNetworkDrivers, then issuing SWI XOS_Module 3 on each. Realising that I could try this out with one line of BASIC, I tried SWI OS_Module, 3, “EtherUSB” on the old stack and the ROD stack. The old stack still works afterwards; the ROD stack instantly stops and all the ShareFS drives disappear. These are the same symptoms I get from running the Wiresalmon module. Report to ROD’s bug tracker is done. |
Colin Ferris (399) 1814 posts |
Is the USB__Ethernet If you double click on the module does it still work? |
Dave Higton (1515) 3525 posts |
You can try it yourself; the stimulus is a one-liner – or a double-click on the Wiresalmon module. I’ll get back to you when I’ve found where the module lives. |
Dave Higton (1515) 3525 posts |
If you mean the response to *modules, no, it’s still there at position 126. RmReinit EtherUSB or double-clicking the EtherUSB module doesn’t make the ShareFS drives come back. RmKill EtherUSB followed by double-clicking the EtherUSB module file results in EtherUSB as now the last module in the list (position 176), but still no ShareFS drives. It’s not just ShareFS; *ping The lights are on at both ends of the link, but clearly no-one’s home. |
Rick Murray (539) 13840 posts |
That’s the state the machine is in when it boots. I think you’ll have to go through all the ifconfig stuff to get it set up again. |
Dave Higton (1515) 3525 posts |
John Ballance has discovered a “missfeature”, a differing response to OS_Module 3, in the new stack. I feel confident that we can expect some more steps forward soon. This all reminds me that, although I used to think of engineering as a solo endeavour, the greatest satisfactions in engineering projects in my life have been as part of a team. It’s a bit like a jigsaw puzzle where everyone has some of the pieces, but the full picture doesn’t emerge until everyone gets together and cooperates. |
Dave Higton (1515) 3525 posts |
I have an Obey file called “Restart”. I started to go through, issuing lines from it in a TaskWindow. It only took two lines to get it going again: *ifconfig ej0 inet6 autoconf *ifconfig -e ej0 RasPi3B netmask 255.255.255.0 and all the ShareFS drives came back on issuing the second. I don’t know whether the first made any difference. |
Steve Pampling (1551) 8170 posts |
Dave – DHCP or manually assigned IP |
Rick Murray (539) 13840 posts |
Oh, that’s what it’s called now? ;)
Sadly my group-work is with people who’d never cut it in anything that could even loosely be described as “engineering”.
We also know that programmers are the absolute worst to test their own software. This is where moms come in, because, come on, when’s the last time you hardened your date entry routines to disallow the 30th of February? ;)
I doubt it. Does anything on RISC OS use IPv6 yet?
The “RasPi3B” is the address of the machine. I don’t know if it’s in Hosts or a DNS lookup or what, but it’ll eventually resolve to an IP address. Mine is hardwired: |
Steve Fryatt (216) 2105 posts |
Is this available to download from anywhere? I seem to recall its absence being one of the problems with trying to rebuild the Sunfish GUI (the other being the ‘interesting’ compiler setup, although I don’t remember the details now). |
Steve Pampling (1551) 8170 posts |
You’re applying IP and subnet mask simultaneously, Dave appears to be applying the mask later. For both cases, when is the default gateway applied? |
Dave Higton (1515) 3525 posts |
I didn’t (re-)apply the default gateway – it’s irrelevant to ShareFS as all the other stations are on the LAN. The exercise was simply to find if OS_Module 3 completely broke the driver, or merely made it forget its configuration. My machines are, as far as possible, set to manual addresses with all entries in the Hosts file. John Ballance has found that OS_Module 3 makes the new EtherUSB forget its IP address; this was not the case for the old one. Also, presumably, not the case for any earlier driver, as that would mean that Wiresalmon would stop them working. |
Dave Higton (1515) 3525 posts |
Re. RTK library:
You can get it from https://github.com/caliston/RTK/ The last commit was IIRC 17 years or so ago. There is a general problem with libraries: they get abandoned. I can’t recommend using an obsolete, unsupported library generated by one person – but it’s of course your decision, not mine. The front ends for Sunfish and Moonfish are not hugely complex, so I’d give consideration to creating new front ends in Toolbox. |
Sprow (202) 1158 posts |
I find the lack of delineation between the network and data link layers, disturbing. Ethernet drivers don’t have IP addresses. |