Module 让dvb_hdhomerun与debian合作

Module 让dvb_hdhomerun与debian合作,module,linux-kernel,kernel-module,Module,Linux Kernel,Kernel Module,我试图让一个硅尘网络DVB接收器与我的debian机器一起工作 我的debian正在运行: uname -a: Linux myMachine 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1+deb7u1 x86_64 GNU/Linux lsb_release -a Distributor ID: Debian Description: Debian GNU/Linux 7.1 (wheezy) Release: 7.1 Codename:

我试图让一个硅尘网络DVB接收器与我的debian机器一起工作

我的debian正在运行:

uname -a:
Linux myMachine 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1+deb7u1 x86_64 GNU/Linux

lsb_release -a
Distributor ID: Debian
Description:    Debian GNU/Linux 7.1 (wheezy)
Release:        7.1
Codename:       wheezy
我尝试了很多,但我最近的尝试如下

apt-get source linux-headers-3.2.0-4-amd64
# I got a folder named linux-3.2.46
cd linux-3.2.46
# vim Makefile, changed SUBLEVEL to 0, and EXTRAVERSION to '-4-amd64'
cp /boot/config-3.2.0-4-amd64 .config
make oldconfig
cp /usr/src/linux-3.2.46/Module.symvers .
make prepare scripts
cd ../dvb_hdhomerun-0.0.15/kernel
vim Makefile, changed KERNEL_DIR to the linux-3.2.46 dir.
make # works fine
make install # works fine.
我可以构建模块,但是当我尝试用modprobe加载它时,我得到了以下错误

ERROR: could not insert 'dvb_hdhomerun': Exec format error
德梅斯格说

[252722.865357] dvb_hdhomerun_core: disagrees about version of symbol module_layout
modinfo dvb_hdhomerun说:

filename:       /lib/modules/3.2.0-4-amd64/extra/dvb_hdhomerun.ko
version:        0.0.15
license:        GPL
description:    HDHomeRun Driver
author:         Villy Thomsen
version:        0.0.15
license:        GPL
description:    HDHomeRun driver
author:         Villy Thomsen
version:        0.0.15
license:        GPL
description:    HDHomeRun Driver Core Module
author:         Villy Thomsen
srcversion:     94B767B76E32F22F26FE6A2
depends:        dvb-core,dvb_hdhomerun_core
vermagic:       3.2.0-4-amd64 SMP mod_unload modversions
parm:           adapter_nr:DVB adapter numbers (array of short)
modinfo dvb_hdhomerun_core表示:

filename:       /lib/modules/3.2.0-4-amd64/extra/dvb_hdhomerun_core.ko
version:        0.0.15
license:        GPL
description:    HDHomeRun Driver Core Module
author:         Villy Thomsen
srcversion:     B9DACADA733D0C535EAC3E3
depends:
vermagic:       3.2.0-4-amd64 SMP mod_unload modversions
parm:           hdhomerun_debug_mask:Mask for debug output
 (int)
有什么想法吗?

找到了一个脚本,解决了我的问题

我所做的是

apt-get install linux-source-3.2
unpacked the tar.bz2 file
used that dir as KERNEL_DIR in dvbhdhomerun-0.0.15/kernel/Makefile
used /lib/modules/3.2.0-4-amd64/build/.config as .config file in linux-source-3.2 dir.
used /lib/modules/3.2.0-4-amd64/build/Module.symvers as Module.symvers file in linux-source-3.2 dir.
make KERNEL_VERSION=3.2.0-4-amd64 when compiling the module

这似乎有效:)

而公认的答案确实有效。这并不理想,因为你最终会:

  • 非托管软件
  • 糟糕的初始化脚本
  • 没有系统的支持
  • 不支持内核升级
因为我正在重新安装我的家庭服务器,所以我决定修复dkms dpkg的问题

Repo拥有构建修复上述问题的debian包的源代码

像最初的作者一样,我不提供二进制软件包,但是创建它们非常容易。只需按照本文的前两部分进行操作