My company are trying to setup Digi Portserver TS 16 on an airgapped customer network, with two debian12, bookworm admin-stations. So we have to compile and install the driver on those machines, but so far the installation is unsuccessful, our compilation attempts fails with the error showed in the end of this post.
Is there any alternatives ways of installation, a precompiled apt-repo, or any other advice or pointers that can help us compiling the driver?
Best Regards,
Jostein
Output from debuild/compilation-process:
root@~/work/dgrp-1.9.41# debuild -b -uc -us
dpkg-buildpackage -us -uc -ui -b
dpkg-buildpackage: info: source package dgrp
dpkg-buildpackage: info: source version 1.9.41-1
dpkg-buildpackage: info: source distribution UNRELEASED
dpkg-buildpackage: info: source changed by Peter Berger peter.berger@digi.com
dpkg-source --before-build .
dpkg-buildpackage: info: host architecture amd64
debian/rules clean
dh clean
dh_auto_clean
make -j4 distclean
make[1]: Entering directory ‘/root/work/dgrp-1.9.41’
(cd driver/build; make clean)
make[2]: Entering directory ‘/root/work/dgrp-1.9.41/driver/2.6.27’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f *.o
rm -f .ko
rm -f dgrp.mod.c
rm -f ..cmd
rm -rf .tmp_versions
rm -f *.i *.s
rm -rf *.symvers
rm -rf modules.order
rm -rf Module.markers
make[2]: Leaving directory ‘/root/work/dgrp-1.9.41/driver/2.6.27’
(cd ditty; make clean)
make[2]: Entering directory ‘/root/work/dgrp-1.9.41/ditty’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f *.o ditty
make[2]: Leaving directory ‘/root/work/dgrp-1.9.41/ditty’
(cd daemon; make clean)
make[2]: Entering directory ‘/root/work/dgrp-1.9.41/daemon’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f *.o drpd
rm -fr openssl-1.1.1d
make[2]: Leaving directory ‘/root/work/dgrp-1.9.41/daemon’
(cd config; make clean)
make[2]: Entering directory ‘/root/work/dgrp-1.9.41/config’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f dgrp_mk_spec dgrp_gui
make[2]: Leaving directory ‘/root/work/dgrp-1.9.41/config’
(cd dgipserv; make -f Makefile.linux clean)
make[2]: Entering directory ‘/root/work/dgrp-1.9.41/dgipserv’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f *.o dgipserv
make[2]: Leaving directory ‘/root/work/dgrp-1.9.41/dgipserv’
(cd dgelreset; make -f Makefile.linux clean)
make[2]: Entering directory ‘/root/work/dgrp-1.9.41/dgelreset’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f *.o dgelreset
make[2]: Leaving directory ‘/root/work/dgrp-1.9.41/dgelreset’
(cd dinc; make clean)
make[2]: Entering directory ‘/root/work/dgrp-1.9.41/dinc’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f *.o dinc
make[2]: Leaving directory ‘/root/work/dgrp-1.9.41/dinc’
(cd dparp; make clobber)
make[2]: Entering directory ‘/root/work/dgrp-1.9.41/dparp’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -rf .o os/.o help_files.c
rm -rf dparp dparp-sparc dparp-i386
make[2]: Leaving directory ‘/root/work/dgrp-1.9.41/dparp’
rm -f config.cache config.log config.status
rm -f driver/build/Makefile driver/build/Makefile.in
rm -f driver/build
rm -f ditty/Makefile
rm -f daemon/Makefile config/Makefile
rm -f init/Makefile
rm -f commoninc/config.h
rm -f Makefile
rm -rf autom4te.cache
make[1]: Leaving directory ‘/root/work/dgrp-1.9.41’
dh_clean
debian/rules build
dh build
debian/rules override_dh_update_autotools_config
make[1]: Entering directory ‘/root/work/dgrp-1.9.41’
make[1]: ‘override_dh_update_autotools_config’ is up to date.
make[1]: Leaving directory ‘/root/work/dgrp-1.9.41’
debian/rules override_dh_auto_configure
make[1]: Entering directory ‘/root/work/dgrp-1.9.41’
./configure
checking for Digi Driver package version… 1.9-41 built on 10/5/2022
checking for awk… /usr/bin/awk
checking for arch… /usr/bin/arch
checking for cat… /usr/bin/cat
checking for cd… /bin/cd
checking for chkconfig… /sbin/chkconfig
checking for chmod… /usr/bin/chmod
checking for chown… /usr/bin/chown
checking for cp… /usr/bin/cp
checking for depmod… /usr/sbin/depmod
checking for echo… /usr/bin/echo
checking for fuser… /usr/bin/fuser
checking for grep… /usr/bin/grep
checking for init… /usr/sbin/init
checking for insmod… /usr/sbin/insmod
checking for kill… /usr/bin/kill
checking for ln… /usr/bin/ln
checking for ls… /usr/bin/ls
checking for lsmod… /usr/sbin/lsmod
checking for make… /usr/bin/make
checking for mkdir… /usr/bin/mkdir
checking for mknod… /usr/bin/mknod
checking for more… /usr/bin/more
checking for mv… /usr/bin/mv
checking for ps… /usr/bin/ps
checking for rm… /usr/bin/rm
checking for rmdir… /usr/bin/rmdir
checking for rmmod… /usr/sbin/rmmod
checking for sed… /usr/bin/sed
checking for sleep… /usr/bin/sleep
checking for stty… /usr/bin/stty
checking for tar… /usr/bin/tar
checking for tr… /usr/bin/tr
checking for touch… /usr/bin/touch
checking for true… /usr/bin/true
checking for udevadm… /usr/bin/udevadm
checking for udevcontrol… Not Found
checking for udevd… Not Found
checking for udevinfo… Not Found
checking for uname… /usr/bin/uname
checking for platform type… x86_64
checking for gcc… gcc
checking for gcc version… >= 3.2 (12.2.0)
checking for gcc… gcc
checking whether the C compiler works… yes
checking for C compiler default output file name… a.out
checking for suffix of executables…
checking whether we are cross compiling… no
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking for current kernel version… 6.1.0-13-amd64 → 6.1.0-13-64 → 6.1.0
checking for kernel headers… “/lib/modules/6.1.0-13-amd64/build”
checking extra version of kernel… 0
checking if running kernel was compiled for SMP… Yes
checking what type of build we will do… osrel: 6.1.0-13-amd64
osversion: 6
ospatchlevel: 1
ossublevel: 0
KBUILD.
checking for modules directory… “/lib/modules/6.1.0-13-amd64”
checking OpenSSL header version… 300000b0 (OpenSSL 3.0.11 19 Sep 2023)
checking OpenSSL library version… 300000b0 (OpenSSL 3.0.11 19 Sep 2023)
checking whether OpenSSL’s headers match the library… yes
checking whether your OpenSSL version is current enough… yes
configure: checking for tgetent…
configure: checking for libncurses…
checking if Distro specified… None
checking if New TTY Locking was specified… No - Defaulting to a value of “No”
checking if New TTY Buffering was specified… No - Defaulting to a value of “No”
checking if UDEV checking is overridden… No
checking if UDEV exists… No
configure: creating ./config.status
config.status: creating Makefile
config.status: creating driver/build/Makefile
config.status: creating daemon/Makefile
config.status: creating ditty/Makefile
config.status: creating config/Makefile
config.status: creating dparp/os/Makefile.Linux
config.status: creating dgipserv/Makefile.linux
config.status: creating dgelreset/Makefile.linux
config.status: creating init/dgrp_udev
config.status: creating init/Makefile
config.status: creating commoninc/config.h
config.status: executing default commands
make[1]: Leaving directory ‘/root/work/dgrp-1.9.41’
dh_auto_build
make -j4
make[1]: Entering directory ‘/root/work/dgrp-1.9.41’
(cd driver/build; make all)
make[2]: Entering directory ‘/root/work/dgrp-1.9.41/driver/2.6.27’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
make -C /lib/modules/6.1.0-13-amd64/build M=$PWD modules MYPWD=/root/work/dgrp-1.9.41/driver/2.6.27 MYMANDIR=/usr/share/man
make[3]: Entering directory ‘/usr/src/linux-headers-6.1.0-13-amd64’
CC [M] /root/work/dgrp-1.9.41/driver/build/dgrp_common.o
CC [M] /root/work/dgrp-1.9.41/driver/build/dgrp_dpa_ops.o
CC [M] /root/work/dgrp-1.9.41/driver/build/dgrp_driver.o
CC [M] /root/work/dgrp-1.9.41/driver/build/dgrp_mon_ops.o
CC [M] /root/work/dgrp-1.9.41/driver/build/dgrp_net_ops.o
/root/work/dgrp-1.9.41/driver/build/dgrp_net_ops.c: In function ‘dgrp_input’:
/root/work/dgrp-1.9.41/driver/build/dgrp_net_ops.c:536:24: error: ‘struct tty_struct’ has no member named ‘magic’
536 | if (!tty || tty->magic != TTY_MAGIC) {
| ^~
/root/work/dgrp-1.9.41/driver/build/dgrp_net_ops.c:536:35: error: ‘TTY_MAGIC’ undeclared (first use in this function); did you mean ‘TTY_MAJOR’?
536 | if (!tty || tty->magic != TTY_MAGIC) {
| ^~~~~~~~~
| TTY_MAJOR
/root/work/dgrp-1.9.41/driver/build/dgrp_net_ops.c:536:35: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [/usr/src/linux-headers-6.1.0-13-common/scripts/Makefile.build:255: /root/work/dgrp-1.9.41/driver/build/dgrp_net_ops.o] Error 1
make[3]: *** [/usr/src/linux-headers-6.1.0-13-common/Makefile:2039: /root/work/dgrp-1.9.41/driver/build] Error 2
make[3]: Leaving directory ‘/usr/src/linux-headers-6.1.0-13-amd64’
make[2]: *** [Makefile:78: build] Error 2
make[2]: Leaving directory ‘/root/work/dgrp-1.9.41/driver/2.6.27’
make[1]: *** [Makefile:59: build] Error 2
make[1]: Leaving directory ‘/root/work/dgrp-1.9.41’
dh_auto_build: error: make -j4 returned exit code 2
make: *** [debian/rules:17: build] Error 25
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
debuild: fatal error at line 1182:
dpkg-buildpackage -us -uc -ui -b failed
root@:~/work/dgrp-1.9.41#
I made a fresh RockyLinux (similar to Red Hat 9 Enterprise) Installation in a virtual machine and installed the driver there, without any issues, both GUI and CLI behaved as expected.
I have a tingeling sucipion that there are some missing library, etc on my debian installation(s).
I created a clean virtual machine with debian 11, and made a similar attempt there, with the following result (diffrent error than in Debian12 / Bookworm):
[root@debtemplate-11-clean:~/dgrp-1.9.41#] debuild -b -uc -us
dpkg-buildpackage -us -uc -ui -b
dpkg-buildpackage: info: source package dgrp
dpkg-buildpackage: info: source version 1.9.41-1
dpkg-buildpackage: info: source distribution UNRELEASED
dpkg-buildpackage: info: source changed by Peter Berger [peter.berger@digi.com]
dpkg-source --before-build .
dpkg-buildpackage: info: host architecture amd64
debian/rules clean
dh clean
dh_auto_clean
make -j4 distclean
make[1]: Entering directory ‘/root/dgrp-1.9.41’
(cd driver/build; make clean)
make[2]: Entering directory ‘/root/dgrp-1.9.41/driver/2.6.27’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f *.o
rm -f .ko
rm -f dgrp.mod.c
rm -f ..cmd
rm -rf .tmp_versions
rm -f *.i *.s
rm -rf *.symvers
rm -rf modules.order
rm -rf Module.markers
make[2]: Leaving directory ‘/root/dgrp-1.9.41/driver/2.6.27’
(cd ditty; make clean)
make[2]: Entering directory ‘/root/dgrp-1.9.41/ditty’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f *.o ditty
make[2]: Leaving directory ‘/root/dgrp-1.9.41/ditty’
(cd daemon; make clean)
make[2]: Entering directory ‘/root/dgrp-1.9.41/daemon’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f *.o drpd
rm -fr openssl-1.1.1d
make[2]: Leaving directory ‘/root/dgrp-1.9.41/daemon’
(cd config; make clean)
make[2]: Entering directory ‘/root/dgrp-1.9.41/config’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f dgrp_mk_spec dgrp_gui
make[2]: Leaving directory ‘/root/dgrp-1.9.41/config’
(cd dgipserv; make -f Makefile.linux clean)
make[2]: Entering directory ‘/root/dgrp-1.9.41/dgipserv’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f *.o dgipserv
make[2]: Leaving directory ‘/root/dgrp-1.9.41/dgipserv’
(cd dgelreset; make -f Makefile.linux clean)
make[2]: Entering directory ‘/root/dgrp-1.9.41/dgelreset’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f *.o dgelreset
make[2]: Leaving directory ‘/root/dgrp-1.9.41/dgelreset’
(cd dinc; make clean)
make[2]: Entering directory ‘/root/dgrp-1.9.41/dinc’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -f *.o dinc
make[2]: Leaving directory ‘/root/dgrp-1.9.41/dinc’
(cd dparp; make clobber)
make[2]: Entering directory ‘/root/dgrp-1.9.41/dparp’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
rm -rf .o os/.o help_files.c
rm -rf dparp dparp-sparc dparp-i386
make[2]: Leaving directory ‘/root/dgrp-1.9.41/dparp’
rm -f config.cache config.log config.status
rm -f driver/build/Makefile driver/build/Makefile.in
rm -f driver/build
rm -f ditty/Makefile
rm -f daemon/Makefile config/Makefile
rm -f init/Makefile
rm -f commoninc/config.h
rm -f Makefile
rm -rf autom4te.cache
make[1]: Leaving directory ‘/root/dgrp-1.9.41’
dh_clean
debian/rules build
dh build
debian/rules override_dh_update_autotools_config
make[1]: Entering directory ‘/root/dgrp-1.9.41’
make[1]: ‘override_dh_update_autotools_config’ is up to date.
make[1]: Leaving directory ‘/root/dgrp-1.9.41’
debian/rules override_dh_auto_configure
make[1]: Entering directory ‘/root/dgrp-1.9.41’
./configure
checking for Digi Driver package version… 1.9-41 built on 10/5/2022
checking for awk… /usr/bin/awk
checking for arch… /usr/bin/arch
checking for cat… /usr/bin/cat
checking for cd… /bin/cd
checking for chkconfig… /sbin/chkconfig
checking for chmod… /usr/bin/chmod
checking for chown… /usr/bin/chown
checking for cp… /usr/bin/cp
checking for depmod… /usr/sbin/depmod
checking for echo… /usr/bin/echo
checking for fuser… /usr/bin/fuser
checking for grep… /usr/bin/grep
checking for init… /usr/sbin/init
checking for insmod… /usr/sbin/insmod
checking for kill… /usr/bin/kill
checking for ln… /usr/bin/ln
checking for ls… /usr/bin/ls
checking for lsmod… /usr/sbin/lsmod
checking for make… /usr/bin/make
checking for mkdir… /usr/bin/mkdir
checking for mknod… /usr/bin/mknod
checking for more… /usr/bin/more
checking for mv… /usr/bin/mv
checking for ps… /usr/bin/ps
checking for rm… /usr/bin/rm
checking for rmdir… /usr/bin/rmdir
checking for rmmod… /usr/sbin/rmmod
checking for sed… /usr/bin/sed
checking for sleep… /usr/bin/sleep
checking for stty… /usr/bin/stty
checking for tar… /usr/bin/tar
checking for tr… /usr/bin/tr
checking for touch… /usr/bin/touch
checking for true… /usr/bin/true
checking for udevadm… /usr/bin/udevadm
checking for udevcontrol… Not Found
checking for udevd… Not Found
checking for udevinfo… Not Found
checking for uname… /usr/bin/uname
checking for platform type… x86_64
checking for gcc… gcc
checking for gcc version… >= 3.2 (10.2.1)
checking for gcc… gcc
checking whether the C compiler works… yes
checking for C compiler default output file name… a.out
checking for suffix of executables…
checking whether we are cross compiling… no
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking for current kernel version… 5.10.0-26-amd64 → 5.10.0-26-64 → 5.10.0
checking for kernel headers… “/lib/modules/5.10.0-26-amd64/build”
checking extra version of kernel… 0
checking if running kernel was compiled for SMP… Yes
checking what type of build we will do… osrel: 5.10.0-26-amd64
osversion: 5
ospatchlevel: 10
ossublevel: 0
KBUILD.
checking for modules directory… “/lib/modules/5.10.0-26-amd64”
checking OpenSSL header version… 1010117f (OpenSSL 1.1.1w 11 Sep 2023)
checking OpenSSL library version… 1010117f (OpenSSL 1.1.1w 11 Sep 2023)
checking whether OpenSSL’s headers match the library… yes
checking whether your OpenSSL version is current enough… yes
configure: checking for tgetent…
configure: checking for libncurses…
checking if Distro specified… None
checking if New TTY Locking was specified… No - Defaulting to a value of “No”
checking if New TTY Buffering was specified… No - Defaulting to a value of “No”
checking if UDEV checking is overridden… No
checking if UDEV exists… No
configure: creating ./config.status
config.status: creating Makefile
config.status: creating driver/build/Makefile
config.status: creating daemon/Makefile
config.status: creating ditty/Makefile
config.status: creating config/Makefile
config.status: creating dparp/os/Makefile.Linux
config.status: creating dgipserv/Makefile.linux
config.status: creating dgelreset/Makefile.linux
config.status: creating init/dgrp_udev
config.status: creating init/Makefile
config.status: creating commoninc/config.h
config.status: executing default commands
make[1]: Leaving directory ‘/root/dgrp-1.9.41’
dh_auto_build
make -j4
make[1]: Entering directory ‘/root/dgrp-1.9.41’
(cd driver/build; make all)
make[2]: Entering directory ‘/root/dgrp-1.9.41/driver/2.6.27’
make[2]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
make -C /lib/modules/5.10.0-26-amd64/build M=$PWD modules MYPWD=/root/dgrp-1.9.41/driver/2.6.27 MYMANDIR=/usr/share/man
make[3]: Entering directory ‘/usr/src/linux-headers-5.10.0-26-amd64’
CC [M] /root/dgrp-1.9.41/driver/build/dgrp_common.o
CC [M] /root/dgrp-1.9.41/driver/build/dgrp_dpa_ops.o
CC [M] /root/dgrp-1.9.41/driver/build/dgrp_driver.o
CC [M] /root/dgrp-1.9.41/driver/build/dgrp_mon_ops.o
CC [M] /root/dgrp-1.9.41/driver/build/dgrp_net_ops.o
CC [M] /root/dgrp-1.9.41/driver/build/dgrp_ports_ops.o
CC [M] /root/dgrp-1.9.41/driver/build/dgrp_proc.o
CC [M] /root/dgrp-1.9.41/driver/build/dgrp_specproc.o
CC [M] /root/dgrp-1.9.41/driver/build/dgrp_tty.o
/root/dgrp-1.9.41/driver/build/dgrp_tty.c: In function ‘dgrp_tty_ioctl’:
/root/dgrp-1.9.41/driver/build/dgrp_tty.c:3410:8: error: implicit declaration of function ‘tty_check_change’ [-Werror=implicit-function-declaration]
3410 | rc = tty_check_change(tty);
| ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[5]: *** [/usr/src/linux-headers-5.10.0-26-common/scripts/Makefile.build:291: /root/dgrp-1.9.41/driver/build/dgrp_tty.o] Error 1
make[4]: *** [/usr/src/linux-headers-5.10.0-26-common/Makefile:1856: /root/dgrp-1.9.41/driver/build] Error 2
make[3]: *** [/usr/src/linux-headers-5.10.0-26-common/Makefile:192: __sub-make] Error 2
make[3]: Leaving directory ‘/usr/src/linux-headers-5.10.0-26-amd64’
make[2]: *** [Makefile:78: build] Error 2
make[2]: Leaving directory ‘/root/dgrp-1.9.41/driver/2.6.27’
make[1]: *** [Makefile:59: build] Error 2
make[1]: Leaving directory ‘/root/dgrp-1.9.41’
dh_auto_build: error: make -j4 returned exit code 2
make: *** [debian/rules:17: build] Error 25
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
debuild: fatal error at line 1182:
dpkg-buildpackage -us -uc -ui -b failed
I also edited the source code (on our Debian 11 attempt), and removed all references to the “tty_check_change” function complaining in our failed attempt, and then we was able to compile the driver, but did not test it, since we don’t know the consequences.
Last update (attempt to install the RealPort-driver in Fedora 39):
This build-attempt Seems to fail, with a simmilar output as Debian 12. Both fedora 39 and Debian 12 is running the 6.x-kernel, so it might be some incompatibilty issue there.
Why Debian 11 fails to build, while Rocky Linux 9 succedes, does not seem to be an kernel issue, since Rocky Linux are running a newer Kernel, than Debian 11 (5.14 vs 5.10).
[root@localhost-live ~]# rpmbuild --rebuild --define DISTRO=FEDORA
40002086_AB.src.rpm .cache/ .ssh/
[root@localhost-live ~]# rpmbuild --rebuild --define DISTRO=FEDORA 40002086_AB.src.rpm
warning: Macro %DISTRO needs whitespace before body
warning: Macro %DISTRO needs whitespace before body
Installing 40002086_AB.src.rpm
warning: user dave does not exist - using root
warning: group dave does not exist - using root
warning: user dave does not exist - using root
warning: group dave does not exist - using root
warning: source_date_epoch_from_changelog set but %changelog is missing
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.HHQblM
/usr/bin/sed --in-place=.backup ‘1{$!N;$!N};$!N;s/int x = 1;\nint y = 0;\nint z;\nint nan;/volatile int x = 1; volatile int y = 0; volatile int z, nan;/;P;D’ ./configure
./configure --build=x86_64-redhat-linux --host=x86_64-redhat-linux --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --runstatedir=/run --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info DISTRO=FEDORA
configure: WARNING: unrecognized options: --disable-dependency-tracking
checking for Digi Driver package version… 1.9-41 built on 10/5/2022
checking for awk… /usr/bin/awk
checking for arch… /usr/bin/arch
checking for cat… /usr/bin/cat
checking for cd… /usr/bin/cd
checking for chkconfig… /usr/sbin/chkconfig
checking for chmod… /usr/bin/chmod
checking for chown… /usr/bin/chown
checking for cp… /usr/bin/cp
checking for depmod… /usr/sbin/depmod
checking for echo… /usr/bin/echo
checking for fuser… /usr/sbin/fuser
checking for grep… /usr/bin/grep
checking for init… /usr/sbin/init
checking for insmod… /usr/sbin/insmod
checking for kill… /usr/bin/kill
checking for ln… /usr/bin/ln
checking for ls… /usr/bin/ls
checking for lsmod… /usr/sbin/lsmod
checking for make… /usr/bin/make
checking for mkdir… /usr/bin/mkdir
checking for mknod… /usr/bin/mknod
checking for more… /usr/bin/more
checking for mv… /usr/bin/mv
checking for ps… /usr/bin/ps
checking for rm… /usr/bin/rm
checking for rmdir… /usr/bin/rmdir
checking for rmmod… /usr/sbin/rmmod
checking for sed… /usr/bin/sed
checking for sleep… /usr/bin/sleep
checking for stty… /usr/bin/stty
checking for tar… /usr/bin/tar
checking for tr… /usr/bin/tr
checking for touch… /usr/bin/touch
checking for true… /usr/bin/true
checking for udevadm… /usr/sbin/udevadm
checking for udevcontrol… Not Found
checking for udevd… Not Found
checking for udevinfo… Not Found
checking for uname… /usr/bin/uname
checking for platform type… x86_64
checking for gcc… gcc
checking for gcc version… >= 3.2 (13.2.1)
checking for x86_64-redhat-linux-gcc… gcc
checking whether the C compiler works… yes
checking for C compiler default output file name… a.out
checking for suffix of executables…
checking whether we are cross compiling… no
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking for current kernel version… 6.5.10-300.fc39.x86_64 → 6.5.10-300.39.86_64 → 6.5.10
checking for kernel headers… “/lib/modules/6.5.10-300.fc39.x86_64/build”
checking extra version of kernel… -300.fc39.x86_64
checking if running kernel was compiled for SMP… Yes
checking what type of build we will do… osrel: 6.5.10-300.fc39.x86_64
osversion: 6
ospatchlevel: 5
ossublevel: 10
KBUILD.
checking for modules directory… “/lib/modules/6.5.10-300.fc39.x86_64”
checking OpenSSL header version… 30100010 (OpenSSL 3.1.1 30 May 2023)
checking OpenSSL library version… 30100010 (OpenSSL 3.1.1 30 May 2023)
checking whether OpenSSL’s headers match the library… yes
checking whether your OpenSSL version is current enough… yes
configure: checking for tgetent…
configure: checking for libncurses…
checking if Distro specified… FEDORA
checking if New TTY Locking was specified… No - Defaulting to a value of “No”
checking if New TTY Buffering was specified… No - Defaulting to a value of “No”
checking if UDEV checking is overridden… No
checking if UDEV exists… No
configure: creating ./config.status
config.status: creating Makefile
config.status: creating driver/build/Makefile
config.status: creating daemon/Makefile
config.status: creating ditty/Makefile
config.status: creating config/Makefile
config.status: creating dparp/os/Makefile.Linux
config.status: creating dgipserv/Makefile.linux
config.status: creating dgelreset/Makefile.linux
config.status: creating init/dgrp_udev
config.status: creating init/Makefile
config.status: creating commoninc/config.h
config.status: executing default commands
configure: WARNING: unrecognized options: --disable-dependency-tracking
make all
(cd driver/build; make all)
make[1]: Entering directory ‘/root/rpmbuild/BUILD/dgrp-1.9/driver/2.6.27’
make -C /lib/modules/6.5.10-300.fc39.x86_64/build M=$PWD modules MYPWD=/root/rpmbuild/BUILD/dgrp-1.9/driver/2.6.27 MYMANDIR=/usr/share/man
make[2]: Entering directory ‘/usr/src/kernels/6.5.10-300.fc39.x86_64’
warning: the compiler differs from the one used to build the kernel
The kernel was built by: gcc (GCC) 13.2.1 20230918 (Red Hat 13.2.1-3)
You are using: gcc (GCC) 13.2.1 20231011 (Red Hat 13.2.1-4)
CC [M] /root/rpmbuild/BUILD/dgrp-1.9/driver/build/dgrp_common.o
CC [M] /root/rpmbuild/BUILD/dgrp-1.9/driver/build/dgrp_dpa_ops.o
CC [M] /root/rpmbuild/BUILD/dgrp-1.9/driver/build/dgrp_driver.o
CC [M] /root/rpmbuild/BUILD/dgrp-1.9/driver/build/dgrp_mon_ops.o
CC [M] /root/rpmbuild/BUILD/dgrp-1.9/driver/build/dgrp_net_ops.o
/root/rpmbuild/BUILD/dgrp-1.9/driver/build/dgrp_net_ops.c: In function ‘dgrp_input’:
/root/rpmbuild/BUILD/dgrp-1.9/driver/build/dgrp_net_ops.c:536:24: error: ‘struct tty_struct’ has no member named ‘magic’
536 | if (!tty || tty->magic != TTY_MAGIC) {
| ^~
/root/rpmbuild/BUILD/dgrp-1.9/driver/build/dgrp_net_ops.c:536:35: error: ‘TTY_MAGIC’ undeclared (first use in this function); did you mean ‘TTY_MAJOR’?
536 | if (!tty || tty->magic != TTY_MAGIC) {
| ^~~~~~~~~
| TTY_MAJOR
/root/rpmbuild/BUILD/dgrp-1.9/driver/build/dgrp_net_ops.c:536:35: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [scripts/Makefile.build:243: /root/rpmbuild/BUILD/dgrp-1.9/driver/build/dgrp_net_ops.o] Error 1
make[3]: *** [/usr/src/kernels/6.5.10-300.fc39.x86_64/Makefile:2046: /root/rpmbuild/BUILD/dgrp-1.9/driver/build] Error 2
make[2]: *** [Makefile:246: __sub-make] Error 2
make[2]: Leaving directory ‘/usr/src/kernels/6.5.10-300.fc39.x86_64’
make[1]: *** [Makefile:78: build] Error 2
make[1]: Leaving directory ‘/root/rpmbuild/BUILD/dgrp-1.9/driver/2.6.27’
make: *** [Makefile:59: build] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.AEhqFn (%build)
RPM build warnings:
Macro %DISTRO needs whitespace before body
Macro %DISTRO needs whitespace before body
user dave does not exist - using root
group dave does not exist - using root
user dave does not exist - using root
group dave does not exist - using root
source_date_epoch_from_changelog set but %changelog is missing
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.AEhqFn (%build)
[root@localhost-live ~]#
I’m getting the same errors on both Debian11 and 12. I installed on ubuntu 3 or 4 years ago without any issues but unable to get anything to install on Debian.
I build a new VM running Debian10, updated the kernels and headers, and then installed the RealPort drivers without issue. After setting them up and testing to verify they worked, I then updated they system to Debian11, tested, and then again updated to Debian12. So far everything works as it should. Very long way to get there but I actually spent less time doing that then trying to get the drivers to just install on 11 or 12. I know this isn’t a fix but maybe it’s a solution that will work for you as well.
Interesting, but did you recompile the package/driver or did the old module just work on the new kernel?
Which kernel did you compile drivers for ?
If this procedure works, it is doable just to make a package for debian12, and install that one, and update it when a new kernel or driver are released.
We are able to achieve most things with a workaround with the socat-utility and tcp-connections, but would prefer a working driver.
My first time through I don’t remember for certain, my computer I was working on rebooted and all my notes on the process were in an unsaved notepad. I did not recompile the package after upgrading to 11 or 12, it just worked. With that said, something happened on my VM and the vdisk.img got corrupt and I had to start over and the process hasn’t been as smooth. I got it working again on debian 10, this time I didn’t upgrade any kernel, I just used whatever it installed with, and I installed the headers. The package loaded right up, I used the Debian Source package. 40002086_AB_debiansourcepkg.tgz
I configured everything and tested and it worked, so I moved on to upgrading to Deb 11. After upgrading this time it no longer worked. When I try to start the daemon I get an error. “ERROR: module dgrp not loaded.”
As far as I know I didn’t do anything different this time around. Last time I didn’t even have to restart the daemon after upgrading, it just continued to startup on it’s own.