Wow great stuff Quinn, I really appreciate
you informative replay. Also note I appreciate all those that wrote a response
to my inquiry even if I did not acknowledge each and ever one.
In your answer you where saying, “(if
you depend on the network, you should declare that),”.
How would I go about ‘declaring’ that I depend on ‘NetWork’?
I know in my starupparameters.plist I had a ‘Requires’ ‘Network’
string but in 10.4 I do not see the ‘NetWork’ item under
/system/library/startupitems, as it was in 10.3.
Thanks
Carl
-----Original Message-----
From: darwin-kernel-bounces+csmith=email@hidden
[mailto:darwin-kernel-bounces+csmith=email@hidden] On Behalf Of Quinn
Sent: Monday, November 28, 2005 5:59 AM
To: email@hidden
Subject: Re: How to tell when all
kexts are loaded
At 18:30 -0500 25/11/05, Carl Smith wrote:
I have a carbon app that is
dependent on an NKE that I install at startup time. I had all this working fine
for 10.3 but now that I am getting the bugs out for 10.4 I find that 10.4 takes
a longer time to load all the kexts and what every else the OS needs to get
started.
Obviously you need to fix the root cause of this
problem (that is, have your client apps wait for your KEXT to load).
However, you probably also want to investigate why your KEXT is taking longer
to load. My guess is that you're loading your KEXT from a startup
item. If so, you should know that, starting with 10.4, all startup items
are assumed to have a dependency on "Network". Thus, your
startup item won't run until the network is up and running. This can take
a while, especially when using DHCP.
The reason for this lies in backward
compatibility. In 10.4 we changed how the system boots, such much of the
boot is managed by launchd on an "on demand" basis. A variety
of third party startup items depended on "Network" implicitly: that
is, they depend on service X, which in turn depends on
"Network". This worked fine prior to 10.4, but in 10.4 service
X no longer depends on "Network", so the third party startup item
would run before the network was up. This is a bug in the third party
startup item (if you depend on the network, you should declare that), but it
was a common problem so we decided on a general case workaround.
If you want to avoid this implicit dependency, load
via launchd.
--
Quinn "The
Eskimo!"
<http://www.apple.com/developer/>
Apple Developer Technical Support * Networking, Communications, Hardware