{{tag>Brouillon Module}}
= Notes DKMS et construction paquet Debian netatop
DKMS
* http://blog.valouille.fr/2013/05/compiler-un-paquet-debian-dkms-pour-un-module-noyau/
* http://www.xkyle.com/building-linux-packages-for-kernel-drivers/
Netatop DKMS :
* https://aur.archlinux.org/packages/netatop-dkms/
Error! Build offailed for:
Consult the make.log in the build directory
On met le code source dans
/usr/src/netatop-0.7
On créer un fichier dkms.conf
''/usr/src/netatop-0.7/dkms.conf''
PACKAGE_NAME="netatop"
PACKAGE_VERSION="0.7"
MAKE="make"
CLEAN="make clean"
BUILT_MODULE_NAME[0]="netatop"
DEST_MODULE_LOCATION[0]="/updates"
AUTOINSTALL="yes"
REMAKE_INITRD=no
dkms add -m netatop -v 0.7
Creating symlink /var/lib/dkms/netatop/0.7/source ->
/usr/src/netatop-0.7
DKMS: add completed
dkms build -m netatop -v 0.7
Error! Build of netatop.ko failed for: 3.16.0-4-amd64 (x86_64)
Consult the make.log in the build directory
Si erreur on copie le Makefile, que l'on modifiera
cp -p Makefile Makefile.dkms
vim Makefile.dkms
''/usr/src/netatop-0.7/Makefile.dkms''
all:
./mkversion
cd module; make
cp -p ./module/netatop.ko .
clean:
cd module; make clean
On modifie me fichier dkms.conf pour que **make** prend le nouveau Makefile.dkms
''/usr/src/netatop-0.7/dkms.conf''
PACKAGE_NAME="netatop"
PACKAGE_VERSION="0.7"
MAKE="make -f Makefile.dkms"
CLEAN="make -f Makefile.dkms clean"
BUILT_MODULE_NAME[0]="netatop"
DEST_MODULE_LOCATION[0]="/updates"
AUTOINSTALL="yes"
REMAKE_INITRD=no
Puis
dkms build -m netatop -v 0.7
Construction d'un paquet Debian
dkms mkdeb -m netatop -v 0.7
cp -p /var/lib/dkms/netatop/0.7/deb/netatop-dkms_0.7_all.deb ~
Reset : On remet tous à neuf
make clean
dkms remove -m netatop -v 0.7 -k all
rm /var/lib/dkms/netatop -rf
On test
dpkg -i netatop-dkms_0.7_all.deb
DKMS: add completed.
First Installation: checking all kernels...
Building only for 3.16.0-4-amd64
Building for architecture amd64
Building initial module for 3.16.0-4-amd64
Error! Bad return status for module build on kernel: 3.16.0-4-amd64 (amd64)
Consult /var/lib/dkms/netatop/0.7/build/make.log for more information.
Voyons ça
''/var/lib/dkms/netatop/0.7/build/make.log''
DKMS make.log for netatop-0.7 for kernel 3.16.0-4-amd64 (amd64)
dimanche 8 mai 2016, 22:05:44 (UTC+0200)
./mkversion
make: execvp: ./mkversion: Permission non accordée
Makefile.dkms:2: recipe for target 'all' failed
make: *** [all] Error 127
La solution la plus simple, on ajoute un ''chmod +x'' dans le Makefile.dkms
''Makefile.dkms''
all:
chmod +x ./mkversion ./netatop.init
./mkversion
cd module; make
cp -p ./module/netatop.ko .
clean:
cd module; make clean
== Notes
Status
dkms status -m netatop
Reset : On remet tous à neuf
make clean
dkms remove -m netatop -v 0.7 -k all
rm /var/lib/dkms/netatop -rf
Module linux
rmmod netatop
modprobe netatop
depmod -a
Exemple de conf
''dkms.conf''
PACKAGE_NAME="e1000e"
PACKAGE_VERSION="3.4.2.4"
MAKE[0]="cd src/ && make KVERSION=$kernelver BUILD_KERNEL=$kernelver"
CLEAN="cd src/ && make clean"
BUILT_MODULE_NAME[0]="e1000e"
BUILT_MODULE_LOCATION[0]="src/"
DEST_MODULE_LOCATION[0]="/updates"
REMAKE_INITRD="yes"
AUTOINSTALL="yes"
Source : https://github.com/kelebek333/e1000e-dkms/blob/master/dkms.conf