summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey V. Lobanov <sergey@lobanov.in>2024-05-28 21:46:28 +0200
committerSergey V. Lobanov <sergey@lobanov.in>2024-06-02 14:30:48 +0200
commitd9fc4be48641bc7116e4dacbdb5e3115c3181a89 (patch)
tree13b80f8df13d56702bfa3ea94ee5a37c5e1992f7
parentbf7b43e7d10d2a5719438a27cb8a3400ce52e06e (diff)
downloadaccel-ppp-d9fc4be48641bc7116e4dacbdb5e3115c3181a89.tar.gz
accel-ppp-d9fc4be48641bc7116e4dacbdb5e3115c3181a89.zip
build: add dkms support for ipoe and vlan_mon drivers, ci optimizations
Signed-off-by: Sergey V. Lobanov <sergey@lobanov.in>
-rw-r--r--.github/workflows/build-and-run.yml112
-rw-r--r--.github/workflows/run-tests.yml86
-rw-r--r--cmake/cpack.cmake1
-rw-r--r--drivers/dkms/ipoe/README.md10
-rw-r--r--drivers/dkms/ipoe/debian/accel-ppp-ipoe-dkms.dkms5
-rw-r--r--drivers/dkms/ipoe/debian/changelog5
-rw-r--r--drivers/dkms/ipoe/debian/compat1
-rw-r--r--drivers/dkms/ipoe/debian/control11
-rwxr-xr-xdrivers/dkms/ipoe/debian/rules18
l---------drivers/dkms/ipoe/src1
-rw-r--r--drivers/dkms/vlan_mon/README.md10
-rw-r--r--drivers/dkms/vlan_mon/debian/accel-ppp-vlan-mon-dkms.dkms5
-rw-r--r--drivers/dkms/vlan_mon/debian/changelog5
-rw-r--r--drivers/dkms/vlan_mon/debian/compat1
-rw-r--r--drivers/dkms/vlan_mon/debian/control11
-rwxr-xr-xdrivers/dkms/vlan_mon/debian/rules18
l---------drivers/dkms/vlan_mon/src1
-rw-r--r--drivers/ipoe/ipoe.c1
-rw-r--r--drivers/vlan_mon/vlan_mon.c1
19 files changed, 218 insertions, 85 deletions
diff --git a/.github/workflows/build-and-run.yml b/.github/workflows/build-and-run.yml
index d788eda3..df0a5511 100644
--- a/.github/workflows/build-and-run.yml
+++ b/.github/workflows/build-and-run.yml
@@ -28,15 +28,17 @@ jobs:
- name: Set common vars
run: |
echo UNAME_R=`uname -r` >> $GITHUB_ENV
- echo UNAME_M=`uname -m` >> $GITHUB_ENV;
+ echo UNAME_M=`uname -m` >> $GITHUB_ENV
+ echo NEEDRESTART_SUSPEND=1 >> $GITHUB_ENV
+ echo DEBIAN_FRONTEND=noninteractive >> $GITHUB_ENV
+ echo DEBCONF_NONINTERACTIVE_SEEN=true >> $GITHUB_ENV
- name: Install build tools
run: >
- sudo apt update &&
- NEEDRESTART_SUSPEND=1 DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true sudo -E apt -y install
+ sudo apt update && sudo -E apt -y install
git build-essential cmake gcc linux-headers-`uname -r`
libpcre3-dev libssl-dev liblua5.1-0-dev kmod
- name: Check out repository code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
- name: mkdir build
@@ -61,7 +63,7 @@ jobs:
accel-ppp_`git describe --tags --long | sed 's/^v//' | sed 's/-/+/' | sed 's/-/~/'`-1+${{ matrix.pkg-distro }}_`uname -m`.deb
- name: Install debian package
working-directory: ./build
- run: NEEDRESTART_SUSPEND=1 sudo -E apt -y install ./accel-ppp*.deb
+ run: sudo -E apt -y install ./accel-ppp*.deb
- name: Copy default config
run: sudo cp /etc/accel-ppp.conf.dist /etc/accel-ppp.conf
- name: Start accel-ppp
@@ -70,12 +72,6 @@ jobs:
run: sudo systemctl status accel-ppp
- name: Check accel-ppp stat
run: accel-cmd show stat
- - name: Upload .deb package as artifact
- uses: actions/upload-artifact@v4
- with:
- name: deb-package-${{ matrix.distro }}-${{ env.UNAME_M }}-${{ env.UNAME_R }}
- path: build/accel-ppp_*.deb
- if-no-files-found: error
# Debian based distros
Build-in-Container-Debian:
@@ -91,9 +87,9 @@ jobs:
"debian:trixie",
"ubuntu:20.04",
"ubuntu:22.04",
- "ubuntu:24.04"
+ "ubuntu:24.04",
]
- runs-on: ubuntu-24.04
+ runs-on: ubuntu-latest
container:
image: ${{ matrix.distro }}
steps:
@@ -114,20 +110,25 @@ jobs:
echo DISTRO=$DISTRO >> $GITHUB_ENV;
echo CPACK_TYPE=$CPACK_TYPE >> $GITHUB_ENV;
echo UNAME_M=`uname -m` >> $GITHUB_ENV;
+ echo NEEDRESTART_SUSPEND=1 >> $GITHUB_ENV;
+ echo DEBIAN_FRONTEND=noninteractive >> $GITHUB_ENV;
+ echo DEBCONF_NONINTERACTIVE_SEEN=true >> $GITHUB_ENV;
cat $GITHUB_ENV
- name: Install build tools
run: >
apt update && apt -y upgrade && apt -y dist-upgrade &&
- NEEDRESTART_SUSPEND=1 DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt -y install git build-essential cmake gcc
+ apt -y install git build-essential cmake gcc
linux-headers-${{ env.HEADERS_SUFFIX }}
- libpcre3-dev libssl-dev liblua5.1-0-dev kmod
+ libpcre3-dev libssl-dev liblua5.1-0-dev kmod dkms debhelper devscripts
+ - name: Install additional build tools (using apt) (for some OS)
+ run: apt -y install dh-dkms || exit 0
- name: Get kernel name from headers
run: >
echo KERNEL_NAME=`ls -1 /usr/src/ | grep 'linux-headers.*${{ env.HEADERS_SUFFIX }}' |
sed 's/linux-headers-//'` >> $GITHUB_ENV;
cat $GITHUB_ENV
- name: Check out repository code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
- name: mkdir build
@@ -137,7 +138,7 @@ jobs:
- name: cmake
working-directory: ./build
run: >
- cmake -DBUILD_IPOE_DRIVER=TRUE -DBUILD_VLAN_MON_DRIVER=TRUE -DCMAKE_INSTALL_PREFIX=/usr
+ cmake -DBUILD_IPOE_DRIVER=FALSE -DBUILD_VLAN_MON_DRIVER=FALSE -DCMAKE_INSTALL_PREFIX=/usr
-DKDIR=/usr/src/linux-headers-${{ env.KERNEL_NAME }}
-DMODULES_KDIR=${{ env.KERNEL_NAME }}
-DLUA=TRUE -DSHAPER=FALSE -DRADIUS=TRUE
@@ -145,7 +146,7 @@ jobs:
- name: make
working-directory: ./build
run: make
- - name: Generate debian package
+ - name: Generate debian package (without drivers)
working-directory: ./build
run: cpack -G DEB
- name: Rename accel-ppp deb package
@@ -153,6 +154,22 @@ jobs:
run: >
mv -v accel-ppp.deb
accel-ppp_`git describe --tags --long | sed 's/^v//' | sed 's/-/+/' | sed 's/-/~/'`-1+${{ env.DISTRO }}_${{ env.UNAME_M }}.deb
+ - name: build dkms package for ipoe
+ working-directory: ./drivers/dkms/ipoe
+ run: |
+ cp -f ../../../build/version.h src/
+ debuild -us -uc -tc -b
+ - name: build dkms package for vlan_mon
+ working-directory: ./drivers/dkms/vlan_mon
+ run: |
+ cp -f ../../../build/version.h src/
+ debuild -us -uc -tc -b
+ - name: install ipoe and vlan_mon via dkms
+ working-directory: ./drivers/dkms
+ run: apt -y install ./*.deb
+ - name: install ipoe and vlan_mon via dkms
+ working-directory: ./drivers/dkms
+ run: apt -y install ./*.deb
- name: Install debian package
working-directory: ./build
run: apt -y install ./accel-ppp*.deb
@@ -162,60 +179,18 @@ jobs:
run: sleep 1
- name: Check accel-ppp stat
run: accel-cmd show stat
- - name: Upload .deb package as artifact
+ - name: Upload accel-ppp .deb package as artifact
uses: actions/upload-artifact@v4
with:
- name: deb-package-${{ env.DISTRO }}-${{ env.UNAME_M }}-${{ env.KERNEL_NAME }}
+ name: deb-accel-ppp-${{ env.DISTRO }}-${{ env.UNAME_M }}
path: build/accel-ppp_*.deb
if-no-files-found: error
-
- Build-in-Container-Mainline:
- if: ${{ false }} # disable for now
- runs-on: ubuntu-latest
- container:
- image: ubuntu:devel
- steps:
- - name: Install build tools
- run: >
- apt update && apt -y upgrade && apt -y dist-upgrade &&
- DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt -y install git build-essential cmake gcc
- linux-headers-generic libpcre3-dev libssl-dev liblua5.1-0-dev kmod software-properties-common
- pkexec dbus linux-base &&
- add-apt-repository -y ppa:cappelikan/ppa && apt update &&
- service dbus start &&
- apt -y install mainline &&
- mainline --include-rc install-latest &&
- apt -y purge linux-headers-generic && apt -y autoremove
- - name: Get kernel name from headers
- run: >
- echo KERNEL_NAME=`ls -1 /usr/src/ | grep 'linux-headers.*generic' |
- sed 's/linux-headers-//'` >> $GITHUB_ENV;
- cat $GITHUB_ENV
- - name: Check out repository code
- uses: actions/checkout@v3
+ - name: Upload driver .deb packages as artifact
+ uses: actions/upload-artifact@v4
with:
- fetch-depth: 0
- - name: mkdir build
- run: mkdir build
- - name: Disable git security warnings
- run: git config --global --add safe.directory '*'
- - name: cmake
- working-directory: ./build
- run: >
- cmake -DBUILD_IPOE_DRIVER=TRUE -DBUILD_VLAN_MON_DRIVER=TRUE -DCMAKE_INSTALL_PREFIX=/usr
- -DCMAKE_INSTALL_SYSCONFDIR=/etc
- -DKDIR=/usr/src/linux-headers-${{ env.KERNEL_NAME }}
- -DMODULES_KDIR=${{ env.KERNEL_NAME }}
- -DLUA=TRUE -DSHAPER=FALSE -DRADIUS=TRUE ..
- - name: make and install
- working-directory: ./build
- run: make && make install
- - name: Start accel-ppp with default config
- run: accel-pppd -d -c /etc/accel-ppp.conf.dist
- - name: Sleep for 1 sec
- run: sleep 1
- - name: Check accel-ppp stat
- run: accel-cmd show stat
+ name: deb-accel-ppp-drivers-dkms-${{ env.DISTRO }}
+ path: drivers/dkms/accel-ppp*.deb
+ if-no-files-found: error
Build-in-Container-Alpine:
runs-on: ubuntu-24.04
@@ -226,7 +201,7 @@ jobs:
run: >
apk update && apk add --no-cache git cmake make g++ pcre-dev libressl-dev linux-headers libucontext-dev lua5.1-dev
- name: Check out repository code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
- name: mkdir build
@@ -250,4 +225,3 @@ jobs:
run: sleep 1
- name: Check accel-ppp stat
run: accel-cmd show stat
- \ No newline at end of file
diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml
index 303dfd0a..1e98e8a1 100644
--- a/.github/workflows/run-tests.yml
+++ b/.github/workflows/run-tests.yml
@@ -10,7 +10,7 @@ on:
jobs:
Test-in-Qemu:
#if: ${{ false }} # disable for now
- runs-on: ubuntu-24.04
+ runs-on: ubuntu-latest
name: Test in Qemu (${{ matrix.distro }})
strategy:
fail-fast: false
@@ -57,10 +57,15 @@ jobs:
with:
fetch-depth: 0
path: "accel-ppp"
+ - name: Set common vars
+ run: |
+ echo NEEDRESTART_SUSPEND=1 >> $GITHUB_ENV
+ echo DEBIAN_FRONTEND=noninteractive >> $GITHUB_ENV
+ echo DEBCONF_NONINTERACTIVE_SEEN=true >> $GITHUB_ENV
- name: Install qemu and required tools
run: >
sudo apt update &&
- NEEDRESTART_SUSPEND=1 DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true sudo -E apt -y install qemu-system-x86 qemu-utils cloud-image-utils cpu-checker cloud-image-utils wget openssh-client screen
+ sudo -E apt -y install qemu-system-x86 qemu-utils cloud-image-utils cpu-checker cloud-image-utils wget openssh-client screen
- name: Check kvm support (fail is ok)
run: sudo kvm-ok || exit 0
- name: Prepare cloud-init image disk
@@ -96,9 +101,9 @@ jobs:
wget -nv ${{ matrix.image }} -O img/image
qemu-img resize -f ${{ matrix.format }} img/`ls -1 img` +2G
- name: Run target OS first time (for cloud-init actions)
- run: sudo qemu-system-x86_64 -m 4096 -nographic -drive format=${{ matrix.format }},file=img/`ls -1 img` -drive format=raw,file=init.img
+ run: sudo qemu-system-x86_64 -m 3072 -nographic -drive format=${{ matrix.format }},file=img/`ls -1 img` -drive format=raw,file=init.img
- name: Run target OS
- run: sudo screen -dmS qemu qemu-system-x86_64 -net nic -net user,hostfwd=tcp::2222-:22 -m 4096 -nographic -drive format=${{ matrix.format }},file=img/`ls -1 img`
+ run: sudo screen -dmS qemu qemu-system-x86_64 -net nic -net user,hostfwd=tcp::2222-:22 -m 3072 -nographic -drive format=${{ matrix.format }},file=img/`ls -1 img`
- name: Check that target OS is running
run: |
sleep 1
@@ -124,8 +129,11 @@ jobs:
git build-essential cmake gcc linux-headers-\`uname -r\`
libpcre3-dev libssl-dev liblua5.1-0-dev kmod python3-pip
libxml2-dev libxslt1-dev zlib1g-dev
+ dkms kmod debhelper devscripts
iproute2 ppp pppoe isc-dhcp-client timelimit &&
(sudo pip3 install pytest pytest-dependency || sudo pip3 install --break-system-packages pytest pytest-dependency)"
+ - name: Install additional build tools (using apt) (for some OS)
+ run: ssh -i ssh-key -p2222 user@localhost "sudo -E apt -y install dh-dkms || exit 0"
- name: Copy source code to target OS
run: |
tar -Jcf accel-ppp.tar.xz accel-ppp
@@ -135,11 +143,28 @@ jobs:
run: >
ssh -i ssh-key -p2222 user@localhost "cd accel-ppp &&
mkdir build && cd build &&
- cmake -DBUILD_IPOE_DRIVER=TRUE -DBUILD_VLAN_MON_DRIVER=TRUE -DCMAKE_INSTALL_PREFIX=/usr
+ cmake -DBUILD_IPOE_DRIVER=FALSE -DBUILD_VLAN_MON_DRIVER=FALSE -DCMAKE_INSTALL_PREFIX=/usr
-DKDIR=/usr/src/linux-headers-\`uname -r\`
-DLUA=TRUE -DSHAPER=TRUE -DRADIUS=TRUE .. &&
make && sudo make install"
+ - name: build dkms package for ipoe
+ run: >
+ ssh -i ssh-key -p2222 user@localhost "cd accel-ppp/drivers/dkms/ipoe &&
+ cp -f ../../../build/version.h src/ &&
+ debuild -us -uc -tc -b"
+
+ - name: build dkms package for vlan_mon
+ run: >
+ ssh -i ssh-key -p2222 user@localhost "cd accel-ppp/drivers/dkms/vlan_mon &&
+ cp -f ../../../build/version.h src/ &&
+ debuild -us -uc -tc -b"
+
+ - name: install ipoe and vlan_mon via dkms
+ run: >
+ ssh -i ssh-key -p2222 user@localhost "cd accel-ppp/drivers/dkms &&
+ sudo -E apt -y install ./*.deb"
+
- name: Run tests (not related to ipoe and vlan_mon drivers)
timeout-minutes: 5
run: >
@@ -154,7 +179,7 @@ jobs:
- name: Insert ipoe kernel module
run: >
ssh -i ssh-key -p2222 user@localhost "cd accel-ppp &&
- sudo insmod build/drivers/ipoe/driver/ipoe.ko &&
+ sudo modprobe ipoe &&
lsmod | grep ipoe "
- name: Run tests (not related to vlan_mon drivers)
@@ -172,7 +197,7 @@ jobs:
- name: Insert vlan_mon kernel module
run: >
ssh -i ssh-key -p2222 user@localhost "cd accel-ppp &&
- sudo insmod build/drivers/vlan_mon/driver/vlan_mon.ko &&
+ sudo modprobe vlan_mon &&
lsmod | grep vlan_mon"
- name: Run tests (all)
@@ -197,13 +222,21 @@ jobs:
runs-on: ${{ matrix.distro }}
steps:
+ - name: Set common vars
+ run: |
+ echo NEEDRESTART_SUSPEND=1 >> $GITHUB_ENV
+ echo DEBIAN_FRONTEND=noninteractive >> $GITHUB_ENV
+ echo DEBCONF_NONINTERACTIVE_SEEN=true >> $GITHUB_ENV
- name: Install build tools (using apt)
run: >
sudo apt update &&
- NEEDRESTART_SUSPEND=1 DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true sudo -E apt -y install
+ sudo -E apt -y install
git build-essential cmake gcc linux-headers-`uname -r`
libpcre3-dev libssl-dev liblua5.1-0-dev kmod python3-pip
- iproute2 ppp pppoe isc-dhcp-client
+ iproute2 ppp pppoe isc-dhcp-client dkms debhelper devscripts
+
+ - name: Install additional build tools (using apt) (for some OS)
+ run: sudo -E apt -y install dh-dkms || exit 0
- name: Install testing tools (using pip)
run: >
@@ -217,22 +250,38 @@ jobs:
- name: mkdir build
run: mkdir build
- - name: cmake
+ - name: cmake (without drivers)
working-directory: ./build
run: >
- cmake -DBUILD_IPOE_DRIVER=TRUE -DBUILD_VLAN_MON_DRIVER=TRUE -DCMAKE_INSTALL_PREFIX=/usr
+ cmake -DBUILD_IPOE_DRIVER=FALSE -DBUILD_VLAN_MON_DRIVER=FALSE -DCMAKE_INSTALL_PREFIX=/usr
-DKDIR=/usr/src/linux-headers-`uname -r`
-DLUA=TRUE -DSHAPER=TRUE -DRADIUS=TRUE ..
- - name: make && make install
+ - name: make && make install (without drivers)
working-directory: ./build
run: make && sudo make install
+ - name: build dkms package for ipoe
+ working-directory: ./drivers/dkms/ipoe
+ run: |
+ cp -f ../../../build/version.h src/
+ debuild -us -uc -tc -b
+
+ - name: build dkms package for vlan_mon
+ working-directory: ./drivers/dkms/vlan_mon
+ run: |
+ cp -f ../../../build/version.h src/
+ debuild -us -uc -tc -b
+
+ - name: install ipoe and vlan_mon via dkms
+ working-directory: ./drivers/dkms
+ run: sudo -E apt -y install ./*.deb
+
- name: Insert and check kernel modules (ipoe and vlan-mon)
# if: ${{ false }}
run: |
- sudo insmod build/drivers/vlan_mon/driver/vlan_mon.ko
- sudo insmod build/drivers/ipoe/driver/ipoe.ko
+ sudo modprobe vlan_mon
+ sudo modprobe ipoe
lsmod | grep ipoe
lsmod | grep vlan_mon
@@ -246,14 +295,19 @@ jobs:
strategy:
fail-fast: false
matrix:
- distro: ["ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04"]
+ distro: ["ubuntu-24.04"]
runs-on: ${{ matrix.distro }}
steps:
+ - name: Set common vars
+ run: |
+ echo NEEDRESTART_SUSPEND=1 >> $GITHUB_ENV
+ echo DEBIAN_FRONTEND=noninteractive >> $GITHUB_ENV
+ echo DEBCONF_NONINTERACTIVE_SEEN=true >> $GITHUB_ENV
- name: Install build tools (using apt)
run: >
sudo apt update &&
- NEEDRESTART_SUSPEND=1 DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true sudo -E apt -y install
+ sudo -E apt -y install
git build-essential cmake gcc linux-headers-`uname -r`
libpcre3-dev libssl-dev liblua5.1-0-dev kmod python3-pip
iproute2 ppp pppoe isc-dhcp-client
diff --git a/cmake/cpack.cmake b/cmake/cpack.cmake
index 3dfc2750..0cc6b886 100644
--- a/cmake/cpack.cmake
+++ b/cmake/cpack.cmake
@@ -11,6 +11,7 @@ endif()
list(GET VERSION_LIST 0 CPACK_PACKAGE_VERSION_MAJOR)
list(GET VERSION_LIST 1 CPACK_PACKAGE_VERSION_MINOR)
list(GET VERSION_LIST 2 CPACK_PACKAGE_VERSION_PATCH)
+SET(CPACK_PACKAGE_VERSION_PATCH "${CPACK_PACKAGE_VERSION_PATCH}~${CPACK_TYPE}")
SET(CPACK_PACKAGE_NAME "accel-ppp")
SET(CPACK_PACKAGE_CONTACT "Dmitry Kozlov <xeb@mail.ru>")
diff --git a/drivers/dkms/ipoe/README.md b/drivers/dkms/ipoe/README.md
new file mode 100644
index 00000000..6b582e2a
--- /dev/null
+++ b/drivers/dkms/ipoe/README.md
@@ -0,0 +1,10 @@
+## Building Debian DKMS pacakge
+
+Install deb packages: dkms, debhelper and devscripts. For Debian >= 12 and Ubuntu >=24.04 it is also required to install dh-dkms package.
+
+Build accel-ppp without drivers, then from this level directory, execute:
+
+```
+cp ../../../build/version.h src/
+debuild -us -uc -tc -b
+```
diff --git a/drivers/dkms/ipoe/debian/accel-ppp-ipoe-dkms.dkms b/drivers/dkms/ipoe/debian/accel-ppp-ipoe-dkms.dkms
new file mode 100644
index 00000000..47543fe5
--- /dev/null
+++ b/drivers/dkms/ipoe/debian/accel-ppp-ipoe-dkms.dkms
@@ -0,0 +1,5 @@
+PACKAGE_NAME="accel-ppp-ipoe"
+PACKAGE_VERSION="#MODULE_VERSION"
+AUTOINSTALL=yes
+BUILT_MODULE_NAME="ipoe"
+DEST_MODULE_LOCATION="/updates/dkms"
diff --git a/drivers/dkms/ipoe/debian/changelog b/drivers/dkms/ipoe/debian/changelog
new file mode 100644
index 00000000..6c003b46
--- /dev/null
+++ b/drivers/dkms/ipoe/debian/changelog
@@ -0,0 +1,5 @@
+accel-ppp-ipoe-dkms (1.13.0) unstable; urgency=low
+
+ * First ipoe dkms package
+
+ -- Sergey V. Lobanov <sergey@lobanov.in> Wed, 29 May 2024 11:30:13 +0200
diff --git a/drivers/dkms/ipoe/debian/compat b/drivers/dkms/ipoe/debian/compat
new file mode 100644
index 00000000..f599e28b
--- /dev/null
+++ b/drivers/dkms/ipoe/debian/compat
@@ -0,0 +1 @@
+10
diff --git a/drivers/dkms/ipoe/debian/control b/drivers/dkms/ipoe/debian/control
new file mode 100644
index 00000000..def5d0ab
--- /dev/null
+++ b/drivers/dkms/ipoe/debian/control
@@ -0,0 +1,11 @@
+Source: accel-ppp-ipoe-dkms
+Maintainer: Dmitry Kozlov <xeb@mail.ru>
+Build-Depends: debhelper (>= 10), dkms
+Homepage: https://www.accel-ppp.io/
+
+Package: accel-ppp-ipoe-dkms
+Architecture: all
+Priority: optional
+Section: kernel
+Depends: dkms (>= 1.95), linux-headers-686-pae | linux-headers-amd64 | linux-headers-generic | linux-headers, ${misc:Depends}
+Description: DKMS source for the accel-ppp-ipoe driver
diff --git a/drivers/dkms/ipoe/debian/rules b/drivers/dkms/ipoe/debian/rules
new file mode 100755
index 00000000..704a41a8
--- /dev/null
+++ b/drivers/dkms/ipoe/debian/rules
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+
+include /usr/share/dpkg/pkg-info.mk
+
+%:
+ dh $@ --with dkms
+
+override_dh_install:
+ dh_install src/* usr/src/accel-ppp-ipoe-$(DEB_VERSION_UPSTREAM)/
+
+override_dh_dkms:
+ dh_dkms -V $(DEB_VERSION_UPSTREAM)
+
+override_dh_auto_configure:
+override_dh_auto_build:
+override_dh_auto_test:
+override_dh_auto_install:
+override_dh_auto_clean:
diff --git a/drivers/dkms/ipoe/src b/drivers/dkms/ipoe/src
new file mode 120000
index 00000000..7df6b81b
--- /dev/null
+++ b/drivers/dkms/ipoe/src
@@ -0,0 +1 @@
+../../ipoe \ No newline at end of file
diff --git a/drivers/dkms/vlan_mon/README.md b/drivers/dkms/vlan_mon/README.md
new file mode 100644
index 00000000..6b582e2a
--- /dev/null
+++ b/drivers/dkms/vlan_mon/README.md
@@ -0,0 +1,10 @@
+## Building Debian DKMS pacakge
+
+Install deb packages: dkms, debhelper and devscripts. For Debian >= 12 and Ubuntu >=24.04 it is also required to install dh-dkms package.
+
+Build accel-ppp without drivers, then from this level directory, execute:
+
+```
+cp ../../../build/version.h src/
+debuild -us -uc -tc -b
+```
diff --git a/drivers/dkms/vlan_mon/debian/accel-ppp-vlan-mon-dkms.dkms b/drivers/dkms/vlan_mon/debian/accel-ppp-vlan-mon-dkms.dkms
new file mode 100644
index 00000000..c3ce430b
--- /dev/null
+++ b/drivers/dkms/vlan_mon/debian/accel-ppp-vlan-mon-dkms.dkms
@@ -0,0 +1,5 @@
+PACKAGE_NAME="accel-ppp-vlan-mon"
+PACKAGE_VERSION="#MODULE_VERSION#"
+AUTOINSTALL=yes
+BUILT_MODULE_NAME="vlan_mon"
+DEST_MODULE_LOCATION="/updates/dkms"
diff --git a/drivers/dkms/vlan_mon/debian/changelog b/drivers/dkms/vlan_mon/debian/changelog
new file mode 100644
index 00000000..ee4f7505
--- /dev/null
+++ b/drivers/dkms/vlan_mon/debian/changelog
@@ -0,0 +1,5 @@
+accel-ppp-vlan-mon-dkms (1.13.0) unstable; urgency=low
+
+ * First vlan_mon dkms package
+
+ -- Sergey V. Lobanov <sergey@lobanov.in> Wed, 29 May 2024 11:30:13 +0200
diff --git a/drivers/dkms/vlan_mon/debian/compat b/drivers/dkms/vlan_mon/debian/compat
new file mode 100644
index 00000000..f599e28b
--- /dev/null
+++ b/drivers/dkms/vlan_mon/debian/compat
@@ -0,0 +1 @@
+10
diff --git a/drivers/dkms/vlan_mon/debian/control b/drivers/dkms/vlan_mon/debian/control
new file mode 100644
index 00000000..32795370
--- /dev/null
+++ b/drivers/dkms/vlan_mon/debian/control
@@ -0,0 +1,11 @@
+Source: accel-ppp-vlan-mon-dkms
+Maintainer: Dmitry Kozlov <xeb@mail.ru>
+Build-Depends: debhelper (>= 10), dkms
+Homepage: https://www.accel-ppp.io/
+
+Package: accel-ppp-vlan-mon-dkms
+Architecture: all
+Priority: optional
+Section: kernel
+Depends: dkms (>= 1.95), linux-headers-686-pae | linux-headers-amd64 | linux-headers-generic | linux-headers, ${misc:Depends}
+Description: DKMS source for the accel-ppp-vlan-mon driver
diff --git a/drivers/dkms/vlan_mon/debian/rules b/drivers/dkms/vlan_mon/debian/rules
new file mode 100755
index 00000000..e02f6770
--- /dev/null
+++ b/drivers/dkms/vlan_mon/debian/rules
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+
+include /usr/share/dpkg/pkg-info.mk
+
+%:
+ dh $@ --with dkms
+
+override_dh_install:
+ dh_install src/* usr/src/accel-ppp-vlan-mon-$(DEB_VERSION_UPSTREAM)/
+
+override_dh_dkms:
+ dh_dkms -V $(DEB_VERSION_UPSTREAM)
+
+override_dh_auto_configure:
+override_dh_auto_build:
+override_dh_auto_test:
+override_dh_auto_install:
+override_dh_auto_clean:
diff --git a/drivers/dkms/vlan_mon/src b/drivers/dkms/vlan_mon/src
new file mode 120000
index 00000000..727f1d5c
--- /dev/null
+++ b/drivers/dkms/vlan_mon/src
@@ -0,0 +1 @@
+../../vlan_mon \ No newline at end of file
diff --git a/drivers/ipoe/ipoe.c b/drivers/ipoe/ipoe.c
index fa7dec3f..252792cc 100644
--- a/drivers/ipoe/ipoe.c
+++ b/drivers/ipoe/ipoe.c
@@ -2016,3 +2016,4 @@ static void __exit ipoe_fini(void)
module_init(ipoe_init);
module_exit(ipoe_fini);
MODULE_LICENSE("GPL");
+MODULE_VERSION(ACCEL_PPP_VERSION);
diff --git a/drivers/vlan_mon/vlan_mon.c b/drivers/vlan_mon/vlan_mon.c
index d5f42c91..6e8c5ea5 100644
--- a/drivers/vlan_mon/vlan_mon.c
+++ b/drivers/vlan_mon/vlan_mon.c
@@ -822,6 +822,7 @@ static void __exit vlan_mon_fini(void)
module_init(vlan_mon_init);
module_exit(vlan_mon_fini);
MODULE_LICENSE("GPL");
+MODULE_VERSION(ACCEL_PPP_VERSION);
module_param(autoclean, int, 0);
//MODULE_PARAM_DESC(autoclean, "automaticaly remove created vlan interfaces on restart");