Comments (9)
Thanks a bunch for the details. Off the top of my head, I think dkms should not be moving the original but instead rely on the depmod.d config/ordering to ensure that kmod picks the new/updated module over the pre-existing original.
If the config does not allow for the correct ordering, then moving of modules may happen.
Will try to look at this over the next week or so o/
from dkms.
Did some digging today.
First warnings are from pacman because in-tree kernel modules are removed moved when installing the DKMS modules (https://bbs.archlinux.org/viewtopic.php?id=273902). Was this a change in DKMS? I couldn't find any related commit/code... Not exactly sure why this only happens from DKMS 3.0.10 on upwards.
Second warnings are because of #297. I think the easiest "fix" for me would be to force the installation. Any way to do this from dkms.conf?
Other options are removing the modules which match the srcversion
from the build and/or from my dkms.conf. If TBS decides to patch those modules in the future though this could cause bad side effects.
The warnings in dkms status
are the result of not installing some of the DKMS modules (because the srcversion
matches).
EDIT: Did some more reading and found DEST_MODULE_LOCATION
should be set to the original location of the in-tree kernel module. Unfortunately because of commit e6c14d6 this gets ignored on Arch systems. Without that override I think we could get rid of the first pacman warnings.
from dkms.
First warnings are from pacman because in-tree kernel modules are moved ...
Moved where, by who? Can you run find ... -name xxx
and print the before/after location? AFAICT dkms should not be moving those.
On the missing version part - where did you get the tbs_6904_se module from? Cannot see it in Arch or AUR.
The version comparison is fairly fragile, so I would like to try and replicate/test any potential fixes.
from dkms.
Moved where, by who? Can you run
find ... -name xxx
and print the before/after location? AFAICT dkms should not be moving those.
dkms is moving the original modules so they can be restored when the dkms module gets removed again. I can check the exact location later when I'm back at home.
On the missing version part - where did you get the tbs_6904_se module from? Cannot see it in Arch or AUR.
The version comparison is fairly fragile, so I would like to try and replicate/test any potential fixes.
I wrote that dkms module for my specific hardware because the complete TBS driver build is taking a very long time. I can update later with specific instructions if you want.
from dkms.
Before:
$ find /usr/lib/modules -name "dvb-core.ko.zst"
/usr/lib/modules/6.6.10-arch1-1/kernel/drivers/media/dvb-core/dvb-core.ko.zst
After:
$ find /usr/lib/modules -name "dvb-core.ko.zst"
/usr/lib/modules/6.6.10-arch1-1/updates/dkms/dvb-core.ko.zst
$ find /var/lib/dkms -name "dvb-core.ko.zst"
/var/lib/dkms/tbs_6904_se/6.6/6.6.10-arch1-1/x86_64/module/dvb-core.ko.zst
/var/lib/dkms/tbs_6904_se/original_module/6.6.10-arch1-1/x86_64/dvb-core.ko.zst
from dkms.
Reproducer:
mkdir -p /usr/src/tbs_6904_se-6.6
cd /usr/src/tbs_6904_se-6.6
# create dkms.conf file
vi dkms.conf
# create .config file with modules to build
vi .config
git clone https://github.com/tbsdtv/media_build.git
git clone --depth=1 https://github.com/tbsdtv/linux_media.git -b latest ./media
dkms add tbs_6904_se/6.6
dkms build tbs_6904_se/6.6
dkms install tbs_6904_se/6.6
dkms.conf
PACKAGE_NAME="tbs-6904-se"
PACKAGE_VERSION="6.6.9"
MAKE[0]="make -C media_build dir DIR=../media KERNELRELEASE=$kernelver && cp ./.config ./media_build/v4l/ && make -C media_build KERNELRELEASE=$kernelver"
CLEAN="make -C media_build distclean"
BUILT_MODULE_NAME[0]="dvb-core"
BUILT_MODULE_LOCATION[0]="media_build/v4l"
DEST_MODULE_LOCATION[0]="/kernel/drivers/media/dvb-core"
BUILT_MODULE_NAME[1]="gx1133"
BUILT_MODULE_LOCATION[1]="media_build/v4l"
DEST_MODULE_LOCATION[1]="/updates/dkms"
BUILT_MODULE_NAME[2]="m88rs6000t"
BUILT_MODULE_LOCATION[2]="media_build/v4l"
DEST_MODULE_LOCATION[2]="/kernel/drivers/media/tuners"
BUILT_MODULE_NAME[3]="m88rs6060"
BUILT_MODULE_LOCATION[3]="media_build/v4l"
DEST_MODULE_LOCATION[3]="/updates/dkms"
BUILT_MODULE_NAME[4]="tas2101"
BUILT_MODULE_LOCATION[4]="media_build/v4l"
DEST_MODULE_LOCATION[4]="/updates/dkms"
BUILT_MODULE_NAME[5]="tbsecp3"
BUILT_MODULE_LOCATION[5]="media_build/v4l"
DEST_MODULE_LOCATION[5]="/updates/dkms"
BUILT_MODULE_NAME[6]="tuner-simple"
BUILT_MODULE_LOCATION[6]="media_build/v4l"
DEST_MODULE_LOCATION[6]="/kernel/drivers/media/tuners"
BUILT_MODULE_NAME[7]="tuner-types"
BUILT_MODULE_LOCATION[7]="media_build/v4l"
DEST_MODULE_LOCATION[7]="/kernel/drivers/media/tuners"
BUILT_MODULE_NAME[8]="v4l2-dv-timings"
BUILT_MODULE_LOCATION[8]="media_build/v4l"
DEST_MODULE_LOCATION[8]="/kernel/drivers/media/v4l2-core"
BUILT_MODULE_NAME[9]="videobuf2-common"
BUILT_MODULE_LOCATION[9]="media_build/v4l"
DEST_MODULE_LOCATION[9]="/kernel/drivers/media/common/videobuf2"
BUILT_MODULE_NAME[10]="videobuf2-dma-contig"
BUILT_MODULE_LOCATION[10]="media_build/v4l"
DEST_MODULE_LOCATION[10]="/kernel/drivers/media/common/videobuf2"
BUILT_MODULE_NAME[11]="videobuf2-dma-sg"
BUILT_MODULE_LOCATION[11]="media_build/v4l"
DEST_MODULE_LOCATION[11]="/kernel/drivers/media/common/videobuf2"
BUILT_MODULE_NAME[12]="videobuf2-dvb"
BUILT_MODULE_LOCATION[12]="media_build/v4l"
DEST_MODULE_LOCATION[12]="/kernel/drivers/media/common/videobuf2"
BUILT_MODULE_NAME[13]="videobuf2-memops"
BUILT_MODULE_LOCATION[13]="media_build/v4l"
DEST_MODULE_LOCATION[13]="/kernel/drivers/media/common/videobuf2"
BUILT_MODULE_NAME[14]="videobuf2-v4l2"
BUILT_MODULE_LOCATION[14]="media_build/v4l"
DEST_MODULE_LOCATION[14]="/kernel/drivers/media/common/videobuf2"
BUILT_MODULE_NAME[15]="videobuf2-vmalloc"
BUILT_MODULE_LOCATION[15]="media_build/v4l"
DEST_MODULE_LOCATION[15]="/kernel/drivers/media/common/videobuf2"
BUILT_MODULE_NAME[16]="videodev"
BUILT_MODULE_LOCATION[16]="media_build/v4l"
DEST_MODULE_LOCATION[16]="/kernel/drivers/media/v4l2-core"
AUTOINSTALL="yes"
.config
CONFIG_MEDIA_TUNER=m
CONFIG_MEDIA_TUNER_SIMPLE=m
CONFIG_MEDIA_TUNER_M88RS6000T=m
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
CONFIG_MEDIA_PCI_SUPPORT=y
CONFIG_VIDEO_DEV=m
CONFIG_VIDEOBUF2_DMA_SG=m
CONFIG_VIDEOBUF2_CORE=m
CONFIG_VIDEOBUF2_DMA_CONTIG=m
CONFIG_VIDEOBUF2_MEMOPS=m
CONFIG_VIDEOBUF2_V4L2=m
CONFIG_VIDEOBUF2_DVB=m
CONFIG_VIDEOBUF2_VMALLOC=m
CONFIG_DVB_CORE=m
CONFIG_DVB_GX1133=m
CONFIG_DVB_M88RS6060=m
CONFIG_DVB_TAS2101=m
CONFIG_DVB_TBSECP3=m
CONFIG_DVB_MAX_ADAPTERS=16
CONFIG_DVB_PLATFORM_DRIVERS=y
CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MISC_DEVICES=y
CONFIG_DVB_DYNAMIC_MINORS=yc
CONFIG_DVB_MMAP=y
CONFIG_MEDIA_RADIO_SUPPORT=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_VIDEO_V4L2_I2C=y
from dkms.
any news on this @evelikov?
from dkms.
I'm just churning through some dkms chores and this issue is next. It's been crazy month 😅
from dkms.
Glancing through, this has some overlap with #311. Since that one is a little more self-contained, I will address that and then we can see what's left here 🤞
from dkms.
Related Issues (20)
- key enrollment on non-EFI systems for `module.sig_enforce=1` kernel parameter HOT 3
- DKMS Does Not Sign v4l2loopback-dkms HOT 8
- common.postinst: binary-only ldtarball fails because load_tarball returns non-zero status HOT 6
- New dkms.conf directive for ignoring module build failures? HOT 1
- forcing autoinstall to rebuild all modules HOT 6
- document creation of missing signing key/certificate
- common.postinst and AUTOINSTALL="" HOT 6
- adding a BUILD_EXCLUSIVE_KERNEL... blacklist? HOT 3
- command to (re)sign currently installed modules
- dkms built modules may be compressed in a way unsupported by the kernel HOT 4
- Kernel match for BUILT_MODULE_NAME HOT 9
- Introduce a `build $module for all kernels` functionality HOT 1
- Reintroduce support for `dkms add/build/install m/v --all` HOT 1
- A typo in the readme file
- Ubuntu 22.04 VM broke HOT 6
- marking built/installed modules as rebuild-needed
- parameter validation
- 3.0.13 release isn't tagged as latest on GitHub HOT 1
- OBSOLETE_BY does not prevent building HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dkms.