Download problems
GavinWraith (26) 1563 posts |
I am having problems with NetSurf (on RO 5.28 on a Rpi3B+). I have NetSurf 3.11 (Dev CI #5312). When I try to download anything from https://ci.netsurf-browser.org/builds/riscos/ |
Mike Freestone (2564) 131 posts |
What is the checksum of the download at each step? *md5 gives e94733e7c42ec284923eb2c8117707af here and netsurf 310 runs |
GavinWraith (26) 1563 posts |
Yes that is the md5 checksum for netsurf-3/10/zip that I have too. But when I doubleclick the !NetSurf that it contains I get “Application may have gone wrong” with "undefined instruction at &004C2720. I suspect it is a !SparkFS problem. Mine says: SparkFS 1.46 (06-Jul-20). I have also tried with SparkFS 1.45 and 1.44. They all unzip OK but the results are the same. |
Grahame Parish (436) 481 posts |
Should you be running from the zip file – aren’t you extracting it to a folder first? |
GavinWraith (26) 1563 posts |
Yes I am. Sorry for not being explicit enough. |
Julie Stamp (8365) 474 posts |
I noticed in another thread you said that you have Scrap on you RAM disc. Untl you drag the file somewhere NetSurf starts downloading it to Scrap, so it could be having free space on the RAM disc that matters here. |
Steffen Huber (91) 1953 posts |
NetSurf now uses Shared Libraries and SOManager? Since when? |
Rick Murray (539) 13840 posts |
As I understand it, SOManager is a bloody nuisance. It is absolutely responsible for the problems I’m having with Paint, and I have no doubt that it is also why it took me half an eternity (and sore arms) to get the strimmer started. I wouldn’t be at all surprised to find out that a certain viral issue of relevance right now is also SOManager’s fault. 🤣 |
Rick Murray (539) 13840 posts |
Okay then. I used Netsurf 3.8 to download Netsurf 3.10 which was unpacked using SparkFS 1.45. Seems to work as expected on my ARMv7 Pi2.
It’s a regular instruction in the function VP8InitIoInternal : 004C26E4 : .Vs. : 0073561C : RSBEQS R5,R3,R12,LSL R6 004C26E8 : VP8I : 49385056 : LDMMIDB R8!,{R1,R2,R4,R6,R12,R14} 004C26EC : nitI : 4974696E : LDMMIDB R4!,{R1-R3,R5,R6,R8,R11,R13,R14}^ 004C26F0 : oInt : 746E496F : STRVCBT R4,[R14],#-2415 004C26F4 : erna : 616E7265 : Undefined instruction 004C26F8 : l... : 0000006C : ANDEQ R0,R0,R12,RRX 004C26FC : ...ÿ : FF000014 : ; func: VP8InitIoInternal 004C2700 : .À á : E1A0C00D : MOV R12,R13 004C2704 : .Ú-é : E92DDA00 : STMDB R13!,{R9,R11,R12,R14,PC} 004C2708 : .°Lâ : E24CB004 : SUB R11,R12,#4 004C270C : ..]á : E15D000A : CMP R13,R10 004C2710 : Âï.» : BB03EFC2 : BLLT &005BE620 004C2714 : .ÐMâ : E24DD008 : SUB R13,R13,#8 004C2718 : .‘ á : E1A0900D : MOV R9,R13 004C271C : ..⇒å : E5890000 : STR R0,[R9,#0] 004C2720 : ..⇒å : E5891004 : STR R1,[R9,#4] 004C2724 : .0−å : E5993004 : LDR R3,[R9,#4] 004C2728 : C4 á : E1A03443 : MOV R3,R3,ASR #8 004C272C : ..Sã : E3530002 : CMP R3,#2 Prior to trying Netsurf, can you: Set Debugger$DumpOptions -file annotated Set Debugger$AnnotatedFile $._nscrash When it crashes, can you do: *Where *MemoryI PC-20 +40 to see what’s going on around the point of crash. There will also be the file Working out what’s going wrong is likely above my pay grade, but if you post the two bits here (if there’s a lot of repeated stuff at the end of the debugger dump, you can usually clip that off) somebody might spot a possible reason.
Won’t be that. It’s an undefined instruction. Things that are sensitive to high vector (in other words, bad code with uninitialised pointers) throw data aborts, not undefined instructions.
gcc watches Game Of Thrones? Yikes! More seriously – have you given your disc a pass with DiscKnight? It’s possible that things are just really messed up on the disc? The last memory checking tool that I knew of was a little program back in the RISC OS 2 days. It wouldn’t take much to put together a few simple tests in BASIC. Doesn’t matter if it runs slowly, you’re only looking for a pass or fail. If it is memory… are you overclocking? Have you tweaked the timing of anything at all? (refer to CONFIG.TXT in the DOS partition) |
David J. Ruck (33) 1635 posts |
DiscKnight only checks filing system metadata, it wont spot the contents of a file have been messed up (although very likely if it ever says multiply linked).
Underclocking I think, a Pi 1B is just too gawdamn fast for some. |
Rick Murray (539) 13840 posts |
That’s exactly it. |
GavinWraith (26) 1563 posts |
Thanks Rick for your suggestions. The Rpi3B+ is not overtclocked. It has 2Gb of microSD card holding the RO5.28 ROMS. DiscKnight reported it as good. It also has 256 Gb on HardDisc. DiscKnight reported two faults, which it has repaired and now reports it as fault free. I followed your instructions. The !RunImage file has &6C117570 (undefined instruction according to StrongED in dump mode) at &004BA724.
I wrote this very primitive BASIC RAM checker Does this mean that I have some defective RAM or have I merely not taken into account aspects of the BASIC intepreter? Defective memory (its the Rpi3 I am talking about, not just me) could explain a lot.
|
GavinWraith (26) 1563 posts |
Whether or not the above BASIC program made any sense, I am pretty sure my troubles were down to memory defects – the first time I have encountered them on a Raspberry Pi. In place of the Rpi3B+ I slotted in an older Rpi3B, redownloaded the necessaries, and everything now works. @Julie I redownloaded the appropriate files for using !GCC 4.7.4-rel5-1 and it now works properly. Thanks to everybody for their suggestions. I suspect that the memory defect occurred some while ago, when I was having problems with Messenger Pro. Are there any RAM-checking tools around? |
Martin Avison (27) 1494 posts |
The ‘Bad’ addresses &90xx are because the PROCs will change the value of END to register their names etc, so PROCwrite will overwrite them … I am suprised it did not cause big problems. The ‘Bad’ addresses &A7Fxx are probably because you have overwritten some values in the BASIC stack – you do no checks on the end on HIMEM, MEMLIMIT or the stack. The only safe areas to write in BASIC in this way are between HIMEM and MEMLIMIT. But sorry, I do not know of any other checking tools. |
Stuart Swales (8827) 1357 posts |
I’d just suggest DIM-ing a large block and checking that. You could load your NetSurf zip into a RAM disc and md5sum it from there repeatedly. Does the Pi 3B+ have higher current requirements than the Pi 3B? Are you supplying it with enough juice? |
Rick Murray (539) 13840 posts |
Do you remember what? I ask because some things (like the aforementioned multiply linked blocks) can have knock on effects that aren’t directly detectable.
Did you unsqueeze the program first? ;-) [although, in my compressed RunImage it is something like SWIPL as it’s data…?]
And the exception dump?
Well, that certainly points to the 3B+. Are you sure your power supply and cables are up to it? The 3B+ takes around 45% more power than the normal 3B; whether under load or idling. If you aren’t using it as your RISC OS machine, you could always try an alternative OS on it, to see if that misbehaves? On Raspbian or whatever it’s called now, this ought to work: sudo apt-get update sudo apt-get install memtester sudo memtester <mem> <loops> Set mem and loops accordingly. Instructions for memtester: https://linux.die.net/man/8/memtester |
GavinWraith (26) 1563 posts |
I had forgot that the 3B+ was so much thirstier. I suppose I should chuck it in the bin now. I still have two 3Bs, which are adequate for my RISC OS needs for the moment. |
David J. Ruck (33) 1635 posts |
Feel free to chuck it my way. |
Dave Higton (1515) 3526 posts |
Don’t bin it until you’ve tried it with beefier power arrangements – that means PSU and cable must both be up to the job. |
GavinWraith (26) 1563 posts |
Thanks. I am going to send it to Rick as he has more understanding of these matters than I and he has offered to probe it. On the Pi 3B, gcc 4.7.4-rel5-1 works properly too, albeit slowly. |