Digi Neo Driver on FC6

Hi,

I wish to install the Digi Neo driver (dgnc-1.3) under Fedora Core 6 (FC6) with kernel 2.6.19-1.2895.fc6.

When i start :

# rpmbuild --rebuild --define DISTRO=FEDORA 40002369_E.src.rpm

I have this error :

[...]
+ make all
(cd driver; make all)
make[1]: entrant dans le répertoire « /usr/src/redhat/BUILD/dgnc-1.3/driver »
make -C /usr/src/linux-2.6.19-1.2895.fc6 SUBDIRS=$PWD modules MYPWD=/usr/src/redhat/BUILD/dgnc-1.3/driver
make[2]: entrant dans le répertoire « /usr/src/kernels/2.6.19-1.2895.fc6-i686 »
  CC [M]  /usr/src/redhat/BUILD/dgnc-1.3/driver/dgnc_cls.o
  CC [M]  /usr/src/redhat/BUILD/dgnc-1.3/driver/dgnc_driver.o
[b]/usr/src/redhat/BUILD/dgnc-1.3/driver/dgnc_driver.c:37:26: erreur: linux/config.h : Aucun fichier ou répertoire de ce type[/b]
/usr/src/redhat/BUILD/dgnc-1.3/driver/dgnc_driver.c: In function ‘dgnc_finalize_board_init’:
/usr/src/redhat/BUILD/dgnc-1.3/driver/dgnc_driver.c:765: attention : passing argument 2 of ‘request_irq’ from incompatible pointer type
make[3]: *** [/usr/src/redhat/BUILD/dgnc-1.3/driver/dgnc_driver.o] Erreur 1
make[2]: *** [_module_/usr/src/redhat/BUILD/dgnc-1.3/driver] Erreur 2
make[2]: quittant le répertoire « /usr/src/kernels/2.6.19-1.2895.fc6-i686 »
make[1]: *** [build] Erreur 2
make[1]: quittant le répertoire « /usr/src/redhat/BUILD/dgnc-1.3/driver »

make: *** [build] Erreur 2
erreur: Mauvais status de sortie pour /var/tmp/rpm-tmp.19056 (%build)

Erreur de construction de RPM:
    Mauvais status de sortie pour /var/tmp/rpm-tmp.19056 (%build)

I have download the beta dgnc-1.3-13.src.rpm driver. When i launch this command :

# rpmbuild --rebuild --define DISTRO=FEDORA dgnc-1.3-13.src.rpm

The rpmbuild is correctly done, but the insmod return this error :

# /etc/rc.d/init.d/dgnc start
[b]Loading dgnc driver ...insmod: error inserting '/lib/modules/2.6.19-1.2895.fc6/misc/dgnc.ko': -1 Invalid module format[/b]

Any suggestions ?

Best regards,

Message was edited by: orx57

For information :

# modinfo /lib/modules/2.6.19-1.2895.fc6/misc/dgnc.ko
filename:       /lib/modules/2.6.19-1.2895.fc6/misc/dgnc.ko
description:    Driver for the Digi International Neo and Classic PCI based product line
author:         Digi International, http://www.digi.com
license:        GPL
srcversion:     822D5A156E5C7E326E8E785
alias:          pci:v0000114Fd000000F3sv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000F2sv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000F1sv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000F0sv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000CEsv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000CDsv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000CCsv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000CBsv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000CAsv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000C9sv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000C8sv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000B1sv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000B0sv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000D1sv*sd*bc*sc*i*
alias:          pci:v0000114Fd00000029sv*sd*bc*sc*i*
alias:          pci:v0000114Fd000000D0sv*sd*bc*sc*i*
alias:          pci:v0000114Fd00000028sv*sd*bc*sc*i*
depends:
vermagic:       2.6.19-1.2895.fc6 SMP mod_unload 686 REGPARM 4KSTACKS
parm:           debug: Driver debugging level (int)
parm:           rawreadok:Bypass flip buffers on input (int)
parm:           trcbuf_size: Debugging trace buffer size. (int)


# rpm -qa | grep kernel
kernel-devel-2.6.19-1.2895.fc6
kernel-2.6.19-1.2895.fc6
kernel-headers-2.6.19-1.2895.fc6


# uname -a
Linux  2.6.19-1.2895.fc6 #1 SMP Wed Jan 10 18:32:37 EST 2007 i686 i686 i386 GNU/Linux

The command dmesg return :

# dmesg
[...]
dgnc: version magic '2.6.19-1.2895.fc6 SMP mod_unload 686 REGPARM 4KSTACKS ' should be '2.6.19-1.2895.fc6 SMP mod_unload 586 REGPARM 4KSTACKS '

Best regards,

Message was edited by: orx57

There is a version mismatch between loaded kernel and kernel source :

# yum list installed | grep kernel
kernel.[b]i586[/b]                              2.6.19-1.2895.fc6      installed
kernel-devel.[b]i686[/b]                        2.6.19-1.2895.fc6      installed
kernel-headers.i386                      2.6.19-1.2895.fc6      installed

I go to install the good version of kernel source (i586 and not i686).

Thank you,

It’s working fine :slight_smile:

@+

At the boot process, i have this udev errors (16 times):

udevd-event[#####] run_program: exec of program '/usr/sbin/dgnc_udev' failed

The dgnc driver is loaded.
It is necessary to remove the driver and reload it, with commands below, to create correctly the tty devices and make all work fine.

# service dgnc stop
# service dgnc start

:frowning:

Any suggestions ?

Message was edited by: orx57

Sounds like a problem in the UDEV rules file (/etc/udev/rules.d/). You may want to look over or send the file to make sure the syntax looks correct.

Thank you for your answer.

ls -l /etc/udev/rules.d/10-dgnc.rules

-rw-r–r-- 1 root root 223 fév 12 13:56 /etc/udev/rules.d/10-dgnc.rules

cat /etc/udev/rules.d/10-dgnc.rules

Build our custom tty names on these events…

KERNEL==“tty_dgnc*”, PROGRAM=“/usr/sbin/dgnc_udev %k”, NAME=“%c”, OPTIONS+=“last_rule”
KERNEL==“pr_dgnc*”, PROGRAM=“/usr/sbin/dgnc_udev %k”, NAME=“%c”, OPTIONS+=“last_rule”

ls -l /usr/sbin/dgnc_udev
-rwx------ 1 root root 1769 fév 12 13:56 /usr/sbin/dgnc_udev

I have tried with permissions -rwxr-xr-x on /usr/sbin/dgnc_udev file with no luck.

Best regards,

It sounds like the script works after the system is up and running and only fails when the system is booting.

If this is correct, is it possible that /usr/sbin/* doesn’t exist yet at bootup (i.e. different disk/non-main partition)?

That might explain why the “exec” fails at boot, but works when everything is up and running.

Check your “df” output to view your partition settings.

Also, you may want to check the version of udev (udevinfo -V) and run “udevmonitor” during the driver load and send the output.

It’s a good way…

df -h

Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/mapper/rootvg-rootlv
2,0G 341M 1,6G 19% /
/dev/hda1 122M 16M 100M 14% /boot
tmpfs 248M 0 248M 0% /dev/shm
/dev/mapper/rootvg-homelv
7,8G 195M 7,2G 3% /home
/dev/mapper/rootvg-optlv
992M 34M 908M 4% /opt
/dev/mapper/rootvg-tmplv
992M 34M 907M 4% /tmp
/dev/mapper/rootvg-usrlv
3,9G 2,4G 1,4G 65% /usr
/dev/mapper/rootvg-varlv
7,8G 259M 7,1G 4% /var
/dev/mapper/rootvg-rsnapshotslv
1008M 66M 892M 7% /.snapshots
/dev/mapper/rootvg-usr2lv
1008M 34M 924M 4% /usr2

udevinfo -V

udevinfo, version 095

And the output of udevmonitor command during driver unload and load operation :

udevmonitor

udevmonitor prints the received event from the kernel [UEVENT]
and the event which udev sends out after rule processing [UDEV]

UEVENT[1171561222.167050] add@/module/dgnc
UEVENT[1171561222.168445] add@/class/dgnc_mgmt/dgnc_mgmt
UDEV [1171561222.169394] add@/class/dgnc_mgmt/dgnc_mgmt
UEVENT[1171561222.180170] add@/bus/pci/drivers/dgnc
UEVENT[1171561222.182116] add@/class/tty/tty_dgnc_0_0
UEVENT[1171561222.193986] add@/class/tty/pr_dgnc_0_0
UEVENT[1171561222.205914] add@/class/tty/tty_dgnc_0_1
UEVENT[1171561222.217904] add@/class/tty/pr_dgnc_0_1
UEVENT[1171561222.229968] add@/class/tty/tty_dgnc_0_2
UEVENT[1171561222.241855] add@/class/tty/pr_dgnc_0_2
UEVENT[1171561222.254522] add@/class/tty/tty_dgnc_0_3
UEVENT[1171561222.266575] add@/class/tty/pr_dgnc_0_3
UEVENT[1171561222.278941] add@/class/tty/tty_dgnc_0_4
UEVENT[1171561222.291002] add@/class/tty/pr_dgnc_0_4
UEVENT[1171561222.302922] add@/class/tty/tty_dgnc_0_5
UEVENT[1171561222.314757] add@/class/tty/pr_dgnc_0_5
UEVENT[1171561222.326743] add@/class/tty/tty_dgnc_0_6
UEVENT[1171561222.338884] add@/class/tty/pr_dgnc_0_6
UEVENT[1171561222.351012] add@/class/tty/tty_dgnc_0_7
UEVENT[1171561222.363028] add@/class/tty/pr_dgnc_0_7
UEVENT[1171561222.376547] add@/class/tty/tty_dgnc_1_0
UEVENT[1171561222.388693] add@/class/tty/pr_dgnc_1_0
UEVENT[1171561222.400643] add@/class/tty/tty_dgnc_1_1
UEVENT[1171561222.412525] add@/class/tty/pr_dgnc_1_1
UEVENT[1171561222.424386] add@/class/tty/tty_dgnc_1_2
UEVENT[1171561222.436254] add@/class/tty/pr_dgnc_1_2
UEVENT[1171561222.448149] add@/class/tty/tty_dgnc_1_3
UEVENT[1171561222.460601] add@/class/tty/pr_dgnc_1_3
UEVENT[1171561222.473391] add@/class/tty/tty_dgnc_1_4
UEVENT[1171561222.485424] add@/class/tty/pr_dgnc_1_4
UEVENT[1171561222.497530] add@/class/tty/tty_dgnc_1_5
UEVENT[1171561222.509472] add@/class/tty/pr_dgnc_1_5
UEVENT[1171561222.521451] add@/class/tty/tty_dgnc_1_6
UEVENT[1171561222.533338] add@/class/tty/pr_dgnc_1_6
UEVENT[1171561222.543212] add@/class/tty/tty_dgnc_1_7
UEVENT[1171561222.547203] add@/class/tty/pr_dgnc_1_7
UEVENT[1171561228.770456] remove@/class/dgnc_mgmt/dgnc_mgmt
UEVENT[1171561228.771003] remove@/class/dgnc_mgmt
UEVENT[1171561228.771277] remove@/class/tty/tty_dgnc_0_0
UEVENT[1171561228.771693] remove@/class/tty/tty_dgnc_0_1
UEVENT[1171561228.772131] remove@/class/tty/tty_dgnc_0_2
UEVENT[1171561228.772550] remove@/class/tty/tty_dgnc_0_3
UEVENT[1171561228.773018] remove@/class/tty/tty_dgnc_0_4
UEVENT[1171561228.773445] remove@/class/tty/tty_dgnc_0_5
UEVENT[1171561228.773899] remove@/class/tty/tty_dgnc_0_6
UEVENT[1171561228.774317] remove@/class/tty/tty_dgnc_0_7
UEVENT[1171561228.774784] remove@/class/tty/pr_dgnc_0_0
UEVENT[1171561228.775207] remove@/class/tty/pr_dgnc_0_1
UEVENT[1171561228.775650] remove@/class/tty/pr_dgnc_0_2
UEVENT[1171561228.776084] remove@/class/tty/pr_dgnc_0_3
UEVENT[1171561228.779308] remove@/class/tty/pr_dgnc_0_4
UEVENT[1171561228.780767] remove@/class/tty/pr_dgnc_0_5
UEVENT[1171561228.780883] remove@/class/tty/pr_dgnc_0_6
UEVENT[1171561228.780963] remove@/class/tty/pr_dgnc_0_7
UEVENT[1171561228.781089] remove@/class/tty/tty_dgnc_1_0
UEVENT[1171561228.781200] remove@/class/tty/tty_dgnc_1_1
UEVENT[1171561228.781281] remove@/class/tty/tty_dgnc_1_2
UEVENT[1171561228.781377] remove@/class/tty/tty_dgnc_1_3
UEVENT[1171561228.781461] remove@/class/tty/tty_dgnc_1_4
UEVENT[1171561228.781568] remove@/class/tty/tty_dgnc_1_5
UEVENT[1171561228.781648] remove@/class/tty/tty_dgnc_1_6
UEVENT[1171561228.781746] remove@/class/tty/tty_dgnc_1_7
UEVENT[1171561228.781828] remove@/class/tty/pr_dgnc_1_0
UEVENT[1171561228.781920] remove@/class/tty/pr_dgnc_1_1
UEVENT[1171561228.781998] remove@/class/tty/pr_dgnc_1_2
UEVENT[1171561228.782090] remove@/class/tty/pr_dgnc_1_3
UEVENT[1171561228.782167] remove@/class/tty/pr_dgnc_1_4
UEVENT[1171561228.782245] remove@/class/tty/pr_dgnc_1_5
UEVENT[1171561228.782339] remove@/class/tty/pr_dgnc_1_6
UEVENT[1171561228.782432] remove@/class/tty/pr_dgnc_1_7
UEVENT[1171561228.782529] remove@/bus/pci/drivers/dgnc
UEVENT[1171561228.782687] remove@/module/dgnc
UDEV [1171561228.786202] remove@/class/dgnc_mgmt/dgnc_mgmt
UDEV [1171561228.789646] remove@/class/tty/tty_dgnc_0_0
UDEV [1171561228.793090] remove@/class/tty/tty_dgnc_0_1
UDEV [1171561228.796454] remove@/class/tty/tty_dgnc_0_2
UDEV [1171561228.798147] remove@/class/tty/tty_dgnc_0_3
UDEV [1171561228.798703] remove@/class/tty/tty_dgnc_0_4
UDEV [1171561228.799218] remove@/class/tty/tty_dgnc_0_5
UDEV [1171561228.802542] remove@/class/tty/tty_dgnc_0_6
UDEV [1171561228.806001] remove@/class/tty/tty_dgnc_0_7
UDEV [1171561228.809349] remove@/class/tty/pr_dgnc_0_0
UDEV [1171561228.812745] remove@/class/tty/pr_dgnc_0_1
UDEV [1171561228.816112] remove@/class/tty/pr_dgnc_0_2
UDEV [1171561228.819512] remove@/class/tty/pr_dgnc_0_3
UDEV [1171561228.829191] remove@/class/tty/pr_dgnc_0_4
UDEV [1171561228.832631] remove@/class/dgnc_mgmt
UDEV [1171561228.835895] remove@/class/tty/pr_dgnc_0_5
UDEV [1171561228.839299] remove@/class/tty/pr_dgnc_0_6
UDEV [1171561228.842693] remove@/class/tty/pr_dgnc_0_7
UDEV [1171561228.846103] remove@/class/tty/tty_dgnc_1_0
UDEV [1171561228.849474] remove@/class/tty/tty_dgnc_1_1
UDEV [1171561228.852909] remove@/class/tty/tty_dgnc_1_2
UDEV [1171561228.858595] remove@/class/tty/tty_dgnc_1_3
UDEV [1171561228.862073] remove@/class/tty/tty_dgnc_1_4
UDEV [1171561228.865430] remove@/class/tty/tty_dgnc_1_5
UDEV [1171561228.868853] remove@/class/tty/tty_dgnc_1_6
UDEV [1171561228.872260] remove@/class/tty/tty_dgnc_1_7
UDEV [1171561228.875673] remove@/class/tty/pr_dgnc_1_0
UDEV [1171561228.879040] remove@/class/tty/pr_dgnc_1_1
UDEV [1171561228.882465] remove@/class/tty/pr_dgnc_1_2
UDEV [1171561228.883047] remove@/class/tty/pr_dgnc_1_3
UDEV [1171561228.889169] remove@/class/tty/pr_dgnc_1_4
UDEV [1171561228.889755] remove@/class/tty/pr_dgnc_1_5
UDEV [1171561228.893316] remove@/class/tty/pr_dgnc_1_6
UDEV [1171561228.896858] remove@/class/tty/pr_dgnc_1_7

Tomorrow, I going to test to move dgnc_udev script to / or /sbin,…

Thank you !
(and sorry for my english :wink:

Hi,

I have moved /usr/sbin/dgnc_udev script to /sbin. Now, at the boot, there is no errors from udev. :slight_smile: Thanks!

But… :wink:

After the boot, i have devices like /dev/tty_dgnc_0_0 (and dgnc driver is loaded), but not /dev/ttyn1a ?! This devices appears only after a unload/reload of driver throught the ‘service’ command… and tty_dgnc_#_# disappears.

Is it normal??

Did you also edit the dgnc “rules” script to point to /sbin/ instead of /usr/sbin?

Yes, of course :wink:

Any suggestions ? :frowning:

Unfortunately, I don’t.

Since, this distribution/driver have not been tested (pre-release), I recommend contacting Digi Tech. Support directly and open a case to pursue this further.

Ok. Thanks a lot for your help!

@+