ROD TCP/IP Stack 7.04 released
Paolo Fabio Zaino (28) 1882 posts |
Hummm looking at the disassembly, yes it seems to be calling SCL functions. But it’s something that doesn’t keep running or being loaded as a module, so I am not sure it will cause problems… If you look at ! Boot . ! Run you’ll quickly see that BootVars is loaded, but then it returns and BootRun is loaded after. |
Steve Pampling (1551) 8170 posts |
I was being idle and following the flow diagram for RO4.02 (collected from the stand at the Birmingham show in pre-history I think) and just shows a little loop from BootVars to BootRun |
Paolo Fabio Zaino (28) 1882 posts |
Well in that case I guess a small portion of BootRun has to be moved in Run, but it’s really something that needs to be thought through, because, remember, ! Boot . ! Run will be executed also when trying to access !Configure. Unless one wants to change that. I have a feeling that the “RMEnsure … Error …” is there also for this reason. |
Steve Fryatt (216) 2105 posts |
That doesn’t matter, so long as that thing (those things) are happy with whatever is in ROM. You get one shot at soft-loading the SCL. When it moves from ROM to RAM, anything already registered with the ROM version remains linked to the ROM routines. That’s fine, because they’re in ROM: they don’t move, even if their module is replaced by one in RAM and so becomes dormant. The problem is if you try to replace it a second time. This time, you’re replacing a RAM copy of the module with another RAM copy, and that’s the problem: the old version doesn’t hang around to honour any stubs that were linked to it whilst it was active. The memory is freed and at some point, when it gets reallocated, interesting stuff starts to happen as soon as the affected stub routines get used. So the aim is to get in early on, before anything that isn’t well embedded into the Boot sequence tries to use the SCL1. But if things like Harinezumi or BootVars use the SCL, we can probably assume that their authors were aware of the issues involved… :-) 1 Because we don’t trust it to behave sensibly, basically. :-) |
Chris Hughes (2123) 336 posts |
Can I clear up a couple of things regarding the update to the new stack. The actual cause of the issue is a newer ‘sysctl’ has changed the way it works and the version as supplied by default requires a newer SharedCLibrary. The nightly HardDisc4 has a newer SCL 6.22 which works with the newer ‘sysctl’. The boot.Resources.System.Run in the nightly beta HardDisc4 has also been updated to cater for a newer CLib by default. For those that do not wish to update their SCL for the time being I have a little zip file with a version of the ‘sysctl’ that works with an older SCL. If this is required please let me know. (This is approved by ROD and John Balance). |
Rick Murray (539) 13840 posts |
Nothing to do with me! Boot’s Run file contains this prior to where the Harinezumi patch goes:
And that call to run System, it does this (amongst many other things):
That’s probably the best place to patch in loading a later version of CLib, although a fair question is to ask why it’s not programmatically created in order to load the versions of modules actually present (as 5.66 is quite old now). So, by the time Hari starts, CLib may have already been updated. I have a little BASIC patch as the first item of my Boot Run file. Look at the ROM CLib and look at whatever is in System (500.Modules) and if the CLib on disc is later, force load it before anything else.
Yup. All these years of annoyance because the damn thing won’t just say “not gonna”. Given how CLib works, there’s really no safe way to quit a softloaded version, it never should have allowed such a thing to happen in the first place.
Looking at the history, it seems as if the past couple of versions have been internal tweaks, like renaming something, fiddling with _kernel_kallocExtendsWS, and so on.
It’s not hard. Back in the day the magazine cover discs used to come with new CLibs frequently. The trick is to install it, then reboot. Don’t ever try to softload a softload, it will go kaboom. |
Stuart Swales (8827) 1357 posts |
The tragedy being that it is still allowed. Surely these days the absolute best place to load an updated SCL if needed is early in !Boot. And forbid applications from doing anything other than |
John Rickman (71) 646 posts |
After reading every post and considering all the suggested solutions, notwithstanding some trepidation I opted to change a line in !System
The world has not fallen apart so far, and it has cured the original problem. |
Rick Murray (539) 13840 posts |
The period comes after the “bq”. ;) |
John Rickman (71) 646 posts |
|
Steve Pampling (1551) 8170 posts |
And that call to run System, it does this (amongst many other things): Where, jumping back to a Nov 22 install, the older !System contains CLib 6.15, but recent !System updates contain CLib 6.22 (in the 500.modules)
Apparently it is, and, provided the user has updated their !System install, they have the latest CLib Edit Looking at John R’s post, that looks like 6.2x is present on his machine, but for some reason it isn’t loaded unless the RMEnsure is set high enough to exclude the non-compliant CLib versions |
Steve Pampling (1551) 8170 posts |
To paraphrase Eric Morecambe “all the characters are there, but not necessarily in the right order” :) |
Rick Murray (539) 13840 posts |
Forgivable… as unless I’ve missed something, the way to update a RISC OS 5 installation is to download harddisc4 and bugger around inside. The easy PlingSystem update is for earlier systems. The stable release is offering 6.08, it’s the nightly that offers 6.22. The stable has a file called InSituBootUpdate to update 5.24 to 5.28; but you’re on your own with updating from the nightly. Honestly, it’s less hassle to just update the ROM 1 and stuff the disc based resources. :-/
It… should. System$Path : Sys:500.,Sys:370.,Sys:360.,Sys:350.,Sys:310., [etc] 1 Update: Which is what I have just done. Took just over a minute. |
John Rickman (71) 646 posts |
Guilty as stated m’lord I copied the 6.22 Clib from the latest build to 500 and changed the one line in System.Run. I try to keep my ARMX6 as close to the RComp releases as possible and make simple changes that are easy to back out. |
Steve Pampling (1551) 8170 posts |
Normally a good way of avoiding self-inflicted problems, still fails the random developer error test though :) |
Steve Pampling (1551) 8170 posts |
Yup, back to the old school stuff: 1 After all, why would anyone want the right click to be different to the left anyway? :( |
Dave Higton (1515) 3526 posts |
More good news: I’ve just got a test app going that receives data from an IPv6-only web site using AcornSSL and BASIC. I don’t think AcornSSL needs to be modified in any way to implement a secure IPv6 client. That’s a high degree of compatibility that the new stack gives us. Even more credit and kudos to the ROD people! |
Richard Walker (2090) 431 posts |
I usually update the ROM (easy, as you say) and do the HardDisc4 image by opening the archive and copying it over my live $ directory. Always worked fine for me. I realise that if there are critical new bits in the PreDesk/Tasks areas, then they won’t be brought in (unless I wipe my Choices.Boot directory and re-boot), but I can periodically check that.
This thread and that comment just demonstrate why it all needs packaging and people just need to let it update. Don’t manually muck around in !Boot (why would you?!) and just chill out about where stuff lives on your ‘HardDisc4’. Who cares if something is in Apps or Utilities or Diversions? No-one. The path of least resistance is not to fight it. |
Paolo Fabio Zaino (28) 1882 posts |
+1 Richard, I agree |
Steve Pampling (1551) 8170 posts |
Ordinarily, not at all1 and it is normally a ROM and HD4 update job – which really ought to be automated.
1 Discounting the fiddle to make !Configure appear somewhere more logical |
John Rickman (71) 646 posts |
After two solid weeks of fighting a Mac mini to get it to do anything at all other than what it thinks is proper. I am inclined to agree. Ars longa, vita brevis, and there are better ways to use the brevis. For years I used an email tagline “Always fight the Zeitgeist”.1 1 Jim Nagel once asked for the source of the quote. I told him I did not remember; internet searches just returned hits from my email tags. |
Stuart Swales (8827) 1357 posts |
I think a lot of the reluctance of users to use PackMan stems from not knowing that this is possible. |
Rob Heaton (274) 515 posts |
Has anyone managed to get IPv6 working on the Pinebook Pro using this stack? Before I reach out to ROD or raise a bug report, I wanted to see if IPv6 works for anyone on the Pinebook Pro? |
Dave Higton (1515) 3526 posts |
I’d also like to hear what exactly are the symptoms that you’re seeing. If you type *ifconfig -a at the command line, does the command return? If so what does it say? Is there any sign of any network activity, e.g. do you have the ShareFS icon on your icon bar; can you “Show discs” from it? Do the network lights come on at either end of the link? |
Rob Heaton (274) 515 posts |
Hi Dave, Using the ROD stack on the Pinebook Pro, the network link comes up, IPv4 works perfectly, ShareFS works too. If I try to ping an IPv6 host, eg) *ping6 google.co.uk The same setup works perfectly on a Raspberry Pi, running RISC OS 5.29. (So I don’t think this is a LAN or Router issue) Output of ifconfig -a; *ifconfig -a I have also tried setting a manual IPv6, however this produces the same error as above when trying to ping an IPv6 address. |