问题标签 [dkms]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 为内核模块创建 DKMS 包,依赖于内核头文件
背景
我开发了一个 Linux 设备驱动程序 (ASoC)。现在我想将它作为 DKMS 包发布。目标机器是带有 Raspbian 的 Raspberry Pi。
问题
我的源代码依赖于 Linux/sound/soc/codecs/
目录中的一个头文件。该文件在目标机器上不存在。
解决方法 1
我可以将所需的头文件添加到我的 DKMS 包中。但这感觉不对,因为我认为我应该使用正在构建模块的内核源代码中的头文件(例如 4.6、4.7 ...)。
解决方法 2
apt-get source ...
我可以告诉最终用户在构建模块之前下载整个内核源代码 ( )。但是仅仅因为一个头文件就安装超过 700MB 感觉也不对。该包kernel-headers-
不包含我需要的文件。
问题
有比这两种解决方法更好的解决方案吗?你有什么建议?
linux - 如何使用 DKMS 构建设备树覆盖?
我正在尝试使用 DKMS 为正在运行的内核(4.4)构建设备树覆盖。我天真的Makefile如下:
但是,我收到以下错误:
我该如何解决?没有root权限应该是可能的,对吧?
使用 DKMS 构建 dt 叠加层的标准Makefile 是什么样的?
编辑:我想我已经解决了这个问题,见下文。但是,仍然欢迎合格的答案。
linux - 什么时候需要重建 initrd(Linux 初始 ramdisk)?
背景:我正在为我的内核模块开发一个 DKMS 包。DKMS 联机帮助页包含以下句子:
REMAKE_INITRD = 该指令指定在模块安装到内核后是否应该重新制作您的 initrd。
问题:什么时候需要重新制作 initrd?在将模块安装到内核后,如何确定是否需要重新制作 initrd?
linux - 如何让 DKMS 通过正确的 ARCH 来“制作”?
我正在尝试使用 DKMS 构建模块。我的问题是我似乎无法让 DKMS 通过正确的 ARCH 来“制作”。它继续使用我的操作系统内核的架构,即 armv7l。但是没有映射
/usr/src/linux/arch/armv7l
需要往里面看
/usr/src/linux/arch/arm
我尝试将 -a arm, -k 4.4.21-v7+/arm 作为参数传递给“dkms build”,但它没有将其传递给“make”。将 BUILD_EXCLUSIVE_ARCH="arm" 添加到 /usr/src/rtl8812AU-4.3.14/dkms.conf 也没有什么区别。
sudo dkms build -m ${DRV_NAME} -v ${DRV_VERSION} -k 4.4.21-v7+/arm
此内核不需要内核准备。跳过...
构建模块:
清理构建区域....
'make'....(错误退出状态:2)
错误!内核上模块构建的错误返回状态:4.4.21-v7+ (arm)
有关更多信息,请参阅 /var/lib/dkms/rtl8812AU/4.3.14/build/make.log。猫/var/lib/dkms/rtl8812AU/4.3.14/build/make.log
DKMS make.log for rtl8812AU-4.3.14 for kernel 4.4.21-v7+ (arm)
Thu Sep 29 16:36:07 UTC 2016
make ARCH=armv7l CROSS_COMPILE= -C /lib/modules/4.4.21-v7+/build M=/var/lib/dkms/rtl8812AU/4.3.14/build modules
make[1]: Entering directory '/usr/src/linux'
Makefile:606: arch/armv7l/Makefile: No such file or directory
make[1 ]: 没有规则来制作目标'arch/armv7l/Makefile'。停止。
make[1]: 离开目录 '/usr/src/linux'
Makefile:1576: recipe for target 'modules' failed
make: [modules] Error 2
如何解决这个问题?
谢谢你
virtualbox - 无法在 ubuntu 15.10 上安装 virtualbox
我按照https://gist.github.com/PartTimeLegend/5328700操作,但出现如下错误:</p>
dmesg
发现错误:
我的 virtualbox 安装日志文件:
https://drive.google.com/open?id=0B9Z0DTPHWdIVVXk5VWQxcE5XQ2c
我搜索了很多并尝试了很多,但直到现在还没有解决方案。如果有人可以在这里帮助我会很好:) 非常感谢!
virtual-machine - VirtualBox 共享剪贴板和文件
我VirtualBox 5.2.6
使用Windows 10
. 有一个Ubuntu
虚拟机,我想从中访问主机的剪贴板和文件。我试着用
机器>设置>>通用>高级>共享剪贴板
我也试过
设备>共享剪贴板>双向
我也安装virtualbox-guest-dkms
了,但是没有效果。
c - 为 dkms 禁用 -Werror
我目前正在尝试将内核模块安装到 Ubuntu。我已将模块的源文件复制到/usr/src/applespi-0.1
.
然后,我做了
并得到
make.log:https ://pastebin.com/ySsHrgUt
我的目标是在编译此源文件时禁用 -Werror。但是,我似乎找不到带有 -Werror 标志的 Makefile。
vagrant - 使用 vagrant 时如何查看使用 virtualbox 设置的接口
我已经设置了一个默认的流浪者设置,我希望能够从主人那里找出我能从客人那里得到的信息。
对于 virtualbox 设置,会发生一些伪接口,您可以使用这些伪接口来路由和防火墙来宾传出连接。但是,当使用 vagrant 时,我注意到私有空间 eth0 的可用性,它通过主机接口进行了 NAT。使用 iproute2 搜索并查看 procfs 根本不会显示任何界面。
不久前,我发现 vbox 驱动程序绕过了从主机检查接口的所有常用方法。有没有办法从主机找到更多关于来宾接口的信息,以及我应该将哪个链作为防火墙流量的目标?
dkms - 仅为特定内核版本构建 dkms 模块
您如何定义 dkms.conf 以便仅为特定内核版本或版本范围构建 DKMS 模块?
背景:
我们正在使用的当前内核(例如 4.4)中存在有缺陷的驱动程序,但在 4.10 中已修复。我制作了包含 4.10 源代码的 dkms 包,在内核 4.4 上一切正常。但是当我们使用更高版本的内核版本(例如 4.15)更新到更高版本的操作系统版本(或 HWE 版本)时,我想避免在内核版本为 4.10 或更高版本时重建(现在可能更旧的)4.10 内核驱动程序。
这是我的基本dkms.conf
文件
我尝试BUILD_EXCLUSIVE_KERNEL
匹配4.N内核版本
预期行为 - 不会为 kernel 安装内核模块4.15.0-43-generic
。实际行为 - 正常安装
我的阅读表明替代方法可能有效(对于这个测试,我只是匹配我当前的内核版本)将编译规则更改为无操作。
如果这有什么不同,我在 Debian/Ubuntu 平台上。