On my 667MHz Sam440EP, there is 1 command in the Startup-Sequence that delays the bootup time by a significant amount of time (about 8 seconds). It's the AddNetInterface command. I found this by checking the execution time of every command in the Startup-Sequence. The other commands in the Startup-Sequence doesn't consume much time.
Here is what you need to do to remove the delay:
1) Open the file S:Startup-Sequence in a text editor
2) Find the line where the AddNetInterface command is located: C:AddNetInterface QUIET DEVS:NetInterfaces/~(#?.info)
3) Replace the line above with the one below. This will make the command run as a background process, which lets the remaining commands in the Startup-Sequence run in parallell with AddNetInterface:
Run >NIL: C:AddNetInterface QUIET DEVS:NetInterfaces/~(#?.info)
4) ...and voila! When the Workbench screen is visible, you can surf the net as usual.
After this tuning + the latest U-Boot update from ACube, it should be possible to boot with less than 30 seconds (my Sam uses 29 seconds).
@JOS This solution is well (?) known, and although OS4's developers disagree, I think it should be part of standard OS4 installation! This fix stops OS4 hanging on the boot screen for several MINUTES, when the network cable is not plugged in.
I am not aware of any problems it could cause for "normal" user software, although there are theoretical problems if you run some kind of server software (e.g. Samba server).
I have a little script which tells me in Workbench title bar when AddNetInterface has completed (or failed due to lack of a cable). I posted about it, not sure whether here or AmigaWorld.
The only problem that can arise is that your network is not ready when Workbench is fully loaded. That's why the OS4 team does not recommend this "fix". But if you as a user understand that the network may not be ready for a short while after Workbench is, this truly is a fix.
EDIT: Of course if you have network applications in your WBStartup or in user-startup then this fix may not be such a good idea to use.
If you are using modern programs that immediately try to log to the net after startup to grab the most recent information it is a bad idea to "run" that line.
I for one end up with lots of popups telling me it cannot connect, it's like nerve requesters from the nineties.
Here I ever use run on AddNetInterfaces... If some program try to access net at its stratup and not found it(like wet) simply it can access it again later and found the informations that was looking for... :P If the net wasnt ready at first startup(like because you turned on your router later) simply soft reboot :)
>It is not adviseable to "run" that line in user-startup due to cumulating problems afterwards
Why not ?
I have always had run>nil: before the AddNetInterface and never had any problems yet - apart from the non-problem of a faster boot up which is long enough at that.
Occasionally if I run YAM immediately the first download of mail may not work but most times it is ready by that stage. Even then all I do is click Get again - no problem.
A fix for such programs could be a start time delay of some sort.
That is the solution I use for AmDynDNS (Update IP address on dydns.com - on Aminet), and AmiVNC4 (VNC server - on OS4Depot).
Another option would be to put AddNetInterfaces into a script that also sets a global environment variable or opens an ARexx port, and use it as a semaphore.
In my system I use the line: "Run >NIL: C:AddNetInterface >T:Interface.log DEVS:NetInterfaces/~(#?.info)"
If I had scripts that depended on the network being "up", I would check for the existence of "T:interface.log". That would at least show that the process had finished. Even better would be to read and parse the script and check for the words "address = " or similar.
This is the first change I make every time I upgrade to a new version of OS4 on my MicroA1 since (I think it was) OS4.0 update 4. I use DHCP on my router with all my PC's and my MicroA1.
Run >NIL: C:AddNetInterface QUIET DEVS:NetInterfaces/~(#?.info)
I think maybe the OS4 team are suggesting that we should not touch the startup-sequence because it may cause issues with troubleshooting later if we forget what changes we have made.
edit to explain ...
My needs are very simple. I don't have any programs that want to access the net immediately after booting up the machine (other addinterface of course).
My User-Startup file contains a bunch of assigns and some setenv commands.
My WBStartup contains RAWBInfo, AsyncWB, DefIcons, ClickToFront, AmiDock and AISS.
When I want to use a web browser, WookieChat, SimpleMail, YAM, or AmigaExplorer, I launch the required application separately as needed after the Workbench Screen comes up.
--- redfox
Edited by redfox on 2010/1/1 18:19:49 Edited by redfox on 2010/1/1 18:20:43
First... Don't do it, it's not recommened for a reason...
Next... The 8 seconds delay is caused by your router, I do not run addnetinterfaces and my warm boot time is 9 seconds in total using dhcp. Try some other routers if you can.
if you do run it, remember NOT to add programs that might want net access to the user-startup. the best thing to do is create an S:Late-Startup script and change the end of your s:startup-sequence to this:
LoadWB Run >NIL: *>NIL: C:SoundPlayer QUIET ; for OS4.1 users Wait 10 If Exists S:Late-Startup Execute S:Late-Startup Endif EndCLI >Nil:
For example you could have:
date server pool.ntp.org port 123 >nil:
in your script to set your clock every reboot, I also run asynergyc and activate a sambafs mount on my mac even though I do not run addnetinterfaces I still use the 10 second delay just to be safe. After all there's no point booting quicker if you still have to wait the seconds you've saved to run your mail/browser programs.
Amiga user since 1985 AOS4, A-EON, IBrowse & Alinea Betatester
there's no point booting quicker if you still have to wait the seconds you've saved to run your mail/browser programs.
OWB takes longer to load than it takes Roadshow to get an IP address via DHCP... As for SimpleMail, well, if you really run it the nanosecond Workbench is ready, you can still check your old emails, while you click "Fetch".
@all The best solution would be to have an official S:Net-Startup script, which is Run >Nil: . At the top of this script it would start AddNetInterface (without Run) , and then when it had done it's job, any user network jobs would be run. Simple!
As for WbStartup programs. Now that they will be started by a program in Update 1, it should be simple to mark "Network" apps, and have it delay them until AddNetInterface has completed.
ChrisH wrote: As for WbStartup programs. Now that they will be started by a program in Update 1, it should be simple to mark "Network" apps, and have it delay them until AddNetInterface has completed.
Could you explain "started by a program"? WBStartup works fine as it is in my view. I was going to suggest adding an IconX icon for AddNetInterface to the WBStartup with priority set higher than all other WBStartup programs and no "DoNotWait". When AmiDock (or something like LimpidClock) shows up on your screen, you would know the network is ready.
The biggest question is WHY it takes so long. A DHCP server doesn't take 8 seconds to respond unless there is something wrong. Miami was able to go online in less than a second.
Also the net shutdown procedure is very slow even without any activity. I don't get that either.
Software developer for Amiga OS3 and OS4. Develops for OnyxSoft and the Amiga using E and C and occasionally C++