Network: Problem with autostart of driver

Hi everyone!

I’m having some problem with the autostarting of my driver, I’ve created
the attached files in /etc/system/enum/devices resp
/etc/system/enum/include.
Everything works fine and the driver is started, but I get this error at
bootup:
“netmanager error: Could not open socket: Address family not supported
by protocol family”

As I said the driver is started fine, but it won’t get it’s IP address
etc, if I run netmanager -ren0 after I logged in, everything works.

Any ideas on how to fix this would be appriciated!

/Johan Björk

I ran into the same problem. The trouble is that netmanager is run at the
end of the “net” file (because of the dependencies within), and enum-devices
processes the files in the order in which they occur in the directory (not
sorted order).

There are a couple of solutions:

  1. Add the entries from your two files to /etc/system/enum/devices/net,
    somewhere well above the end where netmanager is loaded.

  2. Force the files to be in the directory in the correct order, e.g.:
    cd /etc/system/enum/devices
    mv pci-vendors.broadcom net.broadcom net /root
    cd /root
    mv pci-vendors.broadcom net.broadcom net /etc/system/enum/devices
    This way, your Broadcom files will load before the “net” files, so when
    netmanager runs, your driver will already be loaded.
    (Note: this solution is very ugly and, while it may work for a q&d test,
    it’s probably not a good idea for a real, production system since it would
    never occur to anyone that the placement of files in the directory is
    critical!)

  3. Put your Broadcom files into /etc/system/enum/include, just because it
    happens to be processed first (by /etc/system/enum/common) before the
    “devices” files. Alternatively, you could modify /etc/system/enum/common to
    include your Broadcom files in some directory before searching
    /etc/system/enum/devices.

By the way, the provision in rc.devices to load an “oem” directory, doesn’t
solve the problem because it runs enum-devices with the oem directory
specified after the default directory. Unfortunate.

Perhaps the QNX gurus have a more elegant solution…

Good luck,

lew


“Johan Björk” <phearbear@home.se> wrote in message
news:btqip7$vf$1@inn.qnx.com

Hi everyone!

I’m having some problem with the autostarting of my driver, I’ve created
the attached files in /etc/system/enum/devices resp
/etc/system/enum/include.
Everything works fine and the driver is started, but I get this error at
bootup:
“netmanager error: Could not open socket: Address family not supported
by protocol family”

As I said the driver is started fine, but it won’t get it’s IP address
etc, if I run netmanager -ren0 after I logged in, everything works.

Any ideas on how to fix this would be appriciated!

/Johan Björk





Definitions for Broadcom 4400 PCI Vendor

all
set(PCI_VEND_BROADCOM,14e4)





#Broadcom 440X
device(pci, ven=$(PCI_VEND_BROADCOM), dev=4401)
tag(devn)
append(legacy, “,nonet”)
requires($(IONET_CMD),)
uniq(netnum, devn-en, 0)
mount(-Tio-net “-opci=$(index)” /lib/dll/devn-bcm4400.so,
“/dev/io-net/en$(netnum)”)
use(symbolic=netmgr)

Hi!

Thanks alot for this information!
Helps alot, atleast for my own testing.
I can just wish it’ll be fixed in 6.3.
Which leads me to: Can some QSS guy comment on this, will it be fixed in
6.3?

/Johan Björk

“Lewis Donzis” <lew@perftech.com> skrev i meddelandet
news:bumfhb$7bg$1@inn.qnx.com

I ran into the same problem. The trouble is that netmanager is run at the
end of the “net” file (because of the dependencies within), and
enum-devices
processes the files in the order in which they occur in the directory (not
sorted order).

There are a couple of solutions:

  1. Add the entries from your two files to /etc/system/enum/devices/net,
    somewhere well above the end where netmanager is loaded.

  2. Force the files to be in the directory in the correct order, e.g.:
    cd /etc/system/enum/devices
    mv pci-vendors.broadcom net.broadcom net /root
    cd /root
    mv pci-vendors.broadcom net.broadcom net /etc/system/enum/devices
    This way, your Broadcom files will load before the “net” files, so when
    netmanager runs, your driver will already be loaded.
    (Note: this solution is very ugly and, while it may work for a q&d test,
    it’s probably not a good idea for a real, production system since it would
    never occur to anyone that the placement of files in the directory is
    critical!)

  3. Put your Broadcom files into /etc/system/enum/include, just because it
    happens to be processed first (by /etc/system/enum/common) before the
    “devices” files. Alternatively, you could modify /etc/system/enum/common
    to
    include your Broadcom files in some directory before searching
    /etc/system/enum/devices.

By the way, the provision in rc.devices to load an “oem” directory,
doesn’t
solve the problem because it runs enum-devices with the oem directory
specified after the default directory. Unfortunate.

Perhaps the QNX gurus have a more elegant solution…

Good luck,

lew


“Johan Björk” <> phearbear@home.se> > wrote in message
news:btqip7$vf$> 1@inn.qnx.com> …
Hi everyone!

I’m having some problem with the autostarting of my driver, I’ve created
the attached files in /etc/system/enum/devices resp
/etc/system/enum/include.
Everything works fine and the driver is started, but I get this error at
bootup:
“netmanager error: Could not open socket: Address family not supported
by protocol family”

As I said the driver is started fine, but it won’t get it’s IP address
etc, if I run netmanager -ren0 after I logged in, everything works.

Any ideas on how to fix this would be appriciated!

/Johan Björk



\


\

Definitions for Broadcom 4400 PCI Vendor

all
set(PCI_VEND_BROADCOM,14e4)



\



#Broadcom 440X
device(pci, ven=$(PCI_VEND_BROADCOM), dev=4401)
tag(devn)
append(legacy, “,nonet”)
requires($(IONET_CMD),)
uniq(netnum, devn-en, 0)
mount(-Tio-net “-opci=$(index)” /lib/dll/devn-bcm4400.so,
“/dev/io-net/en$(netnum)”)
use(symbolic=netmgr)