ntop / PF_RING

High-speed packet processing framework
http://www.ntop.org
GNU Lesser General Public License v2.1
2.64k stars 351 forks source link

DKMS driver compilation on Debian 12 #915

Closed apcheamitru closed 4 months ago

apcheamitru commented 4 months ago

I'm having trouble building the pfring package on Debian 12. It looks like dkms mkdeb functionality has been removed.

Environment:

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

$ uname -r
6.1.0-18-amd64

$ dkms --version
dkms-3.0.10

$ git status
HEAD detached at 8.6.1
nothing to commit, working tree clean

$ git rev-parse HEAD
f10c22637d12d6767b8cbf898cfb1b71ddc9401d

Steps to reproduce:

$ cd PF_RING/package/debian
$ ./configure && make
configure: creating ./config.status
config.status: creating Makefile
config.status: creating debian/changelog
config.status: creating debian/files
config.status: creating debian/control
rm -rf debian/pfring
rm -rf debian/usr
rm -rf debian/lib
cd ../../kernel; ./configure; sudo make -f Makefile.dkms deb
configure: creating ./config.status
config.status: creating Makefile.dkms
config.status: creating dkms.conf
config.status: creating pfring-dkms-mkrpm.spec
config.status: creating pfring-dkms-mkdeb/debian/changelog
config.status: creating pfring-dkms-mkdeb/debian/control
dkms remove -m pfring -v 8.6.1.4271 --all
Error! The module/version combo: pfring-8.6.1.4271 is not located in the DKMS tree.
make: [Makefile.dkms:40: remove] Error 3 (ignored)
\/bin/rm -rf /usr/src/pfring-8.6.1.4271
mkdir /usr/src/pfring-8.6.1.4271
cp -r Makefile dkms.conf pf_ring.c linux/ /usr/src/pfring-8.6.1.4271
cat Makefile | sed -e "s/GIT_REV:=$/GIT_REV:=(HEAD:f10c22637d12d6767b8cbf898cfb1b71ddc9401d/" > /usr/src/pfring-8.6.1.4271/Makefile
dkms add -m pfring -v 8.6.1.4271
Creating symlink /var/lib/dkms/pfring/8.6.1.4271/source -> /usr/src/pfring-8.6.1.4271
cp -r pfring-dkms-mkdeb /usr/src/pfring-8.6.1.4271/
dkms build -m pfring -v 8.6.1.4271
Sign command: /usr/lib/linux-kbuild-6.1/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub

Building module:
Cleaning build area...
make -j4 KERNELRELEASE=6.1.0-18-amd64 BUILD_KERNEL=6.1.0-18-amd64....
Signing module /var/lib/dkms/pfring/8.6.1.4271/build/pf_ring.ko
Cleaning build area...
dkms install --force -m pfring -v 8.6.1.4271

pf_ring.ko:
Running module version sanity check.
 - Original module
   - This kernel never originally had a module by this name
 - Installation
   - Installing to /lib/modules/6.1.0-18-amd64/updates/dkms/
depmod...
dkms mkdeb -m pfring -v 8.6.1.4271 --source-only
Error! Unknown action specified: ""
Usage: /usr/sbin/dkms [action] [options]
  [action]  = { add | remove | build | install | uninstall | match | autoinstall |
                mktarball | ldtarball | status }
  [options] = [-m module] [-v module-version] [-k kernel-version] [-a arch]
              [-c dkms.conf-location] [-q] [--force] [--force-version-override] [--all]
              [--templatekernel=kernel] [--directive='cli-directive=cli-value']
              [--config=kernel-.config-location] [--archive=tarball-location]
              [--kernelsourcedir=source-location]
              [--binaries-only] [--source-only] [--verbose]
              [--no-depmod] [--modprobe-on-install] [-j number] [--version]
cd ../../drivers/intel/; ./configure; make dkms-deb
configure: creating ./config.status
config.status: creating Makefile
config.status: creating Makefile.dkms.e1000e
config.status: creating Makefile.dkms.igb
config.status: creating Makefile.dkms.ixgbe
config.status: creating Makefile.dkms.ixgbevf
config.status: creating Makefile.dkms.i40e
config.status: creating Makefile.dkms.iavf
config.status: creating Makefile.dkms.ice
config.status: creating dkms.conf.e1000e
config.status: creating dkms.conf.igb
config.status: creating dkms.conf.ixgbe
config.status: creating dkms.conf.ixgbevf
config.status: creating dkms.conf.i40e
config.status: creating dkms.conf.iavf
config.status: creating dkms.conf.ice
config.status: creating zc-dkms-mkdeb/debian/control
config.status: creating zc-dkms.mkrpm.spec
config.status: creating pfring-drivers-zc-dkms/DEBIAN/control
config.status: creating pfring-zc-rpm.spec
make[1]: Entering directory '/workspaces/pfring-dragos/pfring/PF_RING/drivers/intel'
sudo rm -rf /var/lib/dkms/*-zc  /lib/modules/`uname -r`/extra/*-zc.ko
/bin/rm -rf tmp
mkdir tmp
cp -r pfring-drivers-zc-dkms tmp
find tmp -name .git|xargs /bin/rm -rf
cd tmp; dpkg-deb -b pfring-drivers-zc-dkms .; mv *.deb ..
dpkg-deb: building package 'pfring-drivers-zc-dkms' in './pfring-drivers-zc-dkms_8.6.1-4271_all.deb'.
sudo make -f Makefile.dkms.e1000e deb
dkms remove -m e1000e-zc -v 3.8.7.4271 --all
Error! The module/version combo: e1000e-zc-3.8.7.4271 is not located in the DKMS tree.
make: [Makefile.dkms.e1000e:33: remove] Error 3 (ignored)
\/bin/rm -f /lib/modules/*/weak-updates/e1000e*ko
\/bin/rm -f /lib/modules/*/extra/e1000e*ko
\/bin/rm -rf /var/lib/dkms/e1000e-zc
\/bin/rm -fr /usr/src/e1000e-zc-3.8.7.4271
\/bin/rm -rf /usr/src/e1000e-zc-3.8.7.4271
mkdir /usr/src/e1000e-zc-3.8.7.4271
cd e1000e/e1000e-3.8.7-zc/src ; make clean; cp -r * /usr/src/e1000e-zc-3.8.7.4271
make[1]: Entering directory '/workspaces/pfring-dragos/pfring/PF_RING/drivers/intel/e1000e/e1000e-3.8.7-zc/src'
common.mk:148: Missing System.map file - depmod will not check for missing symbols
make[2]: Entering directory '/usr/src/linux-headers-6.1.0-18-common'
make[3]: Entering directory '/usr/src/linux-headers-6.1.0-18-amd64'
make[3]: Leaving directory '/usr/src/linux-headers-6.1.0-18-amd64'
make[2]: Leaving directory '/usr/src/linux-headers-6.1.0-18-common'
make[1]: Leaving directory '/workspaces/pfring-dragos/pfring/PF_RING/drivers/intel/e1000e/e1000e-3.8.7-zc/src'
cp ../../kernel/linux/pf_ring.h /usr/src/e1000e-zc-3.8.7.4271
sed -i -e 's/e1000e\.o/e1000e_zc.o/' -e 's/e1000e-/e1000e_zc-/' /usr/src/e1000e-zc-3.8.7.4271/Kbuild
mv /usr/src/e1000e-zc-3.8.7.4271/Kbuild /usr/src/e1000e-zc-3.8.7.4271/Makefile
sed -i '1iPF_RING_PATH=\/usr\/src\/pfring-8.6.1.4271' /usr/src/e1000e-zc-3.8.7.4271/Makefile
cp dkms.conf.e1000e /usr/src/e1000e-zc-3.8.7.4271/dkms.conf
dkms add -m e1000e-zc -v 3.8.7.4271
Creating symlink /var/lib/dkms/e1000e-zc/3.8.7.4271/source -> /usr/src/e1000e-zc-3.8.7.4271
cp -r zc-dkms-mkdeb /usr/src/e1000e-zc-3.8.7.4271/e1000e-zc-dkms-mkdeb
dkms build -m e1000e-zc -v 3.8.7.4271
Sign command: /usr/lib/linux-kbuild-6.1/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub

Building module:
Cleaning build area...
make -j4 KERNELRELEASE=6.1.0-18-amd64 BUILD_KERNEL=6.1.0-18-amd64......
Signing module /var/lib/dkms/e1000e-zc/3.8.7.4271/build/e1000e_zc.ko
Cleaning build area...
dkms install --force -m e1000e-zc -v 3.8.7.4271

e1000e_zc.ko:
Running module version sanity check.
 - Original module
 - Installation
   - Installing to /lib/modules/6.1.0-18-amd64/updates/dkms/
depmod...
dkms mkdeb -m e1000e-zc -v 3.8.7.4271 --source-only
Error! Unknown action specified: ""
Usage: /usr/sbin/dkms [action] [options]
  [action]  = { add | remove | build | install | uninstall | match | autoinstall |
                mktarball | ldtarball | status }
  [options] = [-m module] [-v module-version] [-k kernel-version] [-a arch]
              [-c dkms.conf-location] [-q] [--force] [--force-version-override] [--all]
              [--templatekernel=kernel] [--directive='cli-directive=cli-value']
              [--config=kernel-.config-location] [--archive=tarball-location]
              [--kernelsourcedir=source-location]
              [--binaries-only] [--source-only] [--verbose]
              [--no-depmod] [--modprobe-on-install] [-j number] [--version]
cp /var/lib/dkms/e1000e-zc/*/deb/*.deb .
cp: cannot stat '/var/lib/dkms/e1000e-zc/*/deb/*.deb': No such file or directory
make[1]: *** [Makefile:40: dkms-deb] Error 1
make[1]: Leaving directory '/workspaces/pfring-dragos/pfring/PF_RING/drivers/intel'
make: *** [Makefile:24: pre-zc] Error 2
cardigliano commented 4 months ago

@apcheamitru we are aware of this, we are using an older dkms script for the time being, not sure why they decided to remove that functionality