~/kernelbuild/linux-3.14.37我想在我自己的 shell 脚本中使用该目录下另一个 Makefile 中的变量。
以下是我需要的变量:
VERSION = 3
PATCHLEVEL = 14
SUBLEVEL = 37
Run Code Online (Sandbox Code Playgroud)
问题是我不允许更改 Makefile,因此导出变量不是这里的选项。
另外,我看到有人说要有一个单独的文件,其中包含所需的所有常见变量。这很实用,但我需要将所有内容都放在我的单个 shell 脚本中。
我试图包含. ~/kernelbuild/linux-3.14.37/Makefile在我的 shell 脚本中,我认为我应该能够使用这些变量,但它给了我以下错误:
/home/jl4347/kernelbuild/linux-3.14.37/Makefile: line 1: VERSION: command not found
/home/jl4347/kernelbuild/linux-3.14.37/Makefile: line 2: PATCHLEVEL: command not found
/home/jl4347/kernelbuild/linux-3.14.37/Makefile: line 3: SUBLEVEL: command not found
/home/jl4347/kernelbuild/linux-3.14.37/Makefile: line 4: EXTRAVERSION: command not found
/home/jl4347/kernelbuild/linux-3.14.37/Makefile: line 5: NAME: command not found
/home/jl4347/kernelbuild/linux-3.14.37/Makefile: line 17: MAKEFLAGS: command not found
/home/jl4347/kernelbuild/linux-3.14.37/Makefile: line 20: unexport: command not found
/home/jl4347/kernelbuild/linux-3.14.37/Makefile: …Run Code Online (Sandbox Code Playgroud) 我有一个运行当前 64 位内核 4.8 的 Intel Z3735F(Bay Trail)平台。在 UEFI32 上。
从在线路dmesg和hwinfo我发现,这个特定的设备上的上板“的Broadcom BCM43430 WLAN卡”被连接到mmc0,其本身被连接到SDIO总线。
从dmesg我还看到,初始化系统识别卡,并尝试加载brcmfmac43430-sdio.bin到模块中brcmfmac。我从Raspberry Github获得了固件。现在它想要“NVRAM”。我尝试了同一个 repo 中的那个,没有错误,但没有 Wifi 卡。我尝试了 Windows 使用的那些(有 2 个略有不同的,都尝试了),也没有变化。
“无变化”是指没有设备出现在“ifconfig -a”中。
有一些消息dmesg:
mmc0: queuing unknown CIS tuple 0x80 (2 bytes)
mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
mmc0: queuing unknown CIS tuple 0x80 (7 bytes)
...
brcmfmac mmc0:0001:1: firmware: …Run Code Online (Sandbox Code Playgroud) 我是 Linux 新手,正在寻找完全禁止加载内核模块的解决方案。
我知道如何卸载模块,但需要在启动时加载模块之前阻止它。
我正在运行 Ubuntu 16.04 LTS 并想使用苹果键盘(有线)。不,我在使我的自定义设置永久化时遇到了一些问题。我正在使用“英语国际,AltGr 死键”布局。
键盘交换了一些键,我在/sys/module/hid_apple/parameters/文件夹中手动设置了设置
。我设置fnmode到2,iso_layout到0和swap_opt_cmd到1。在此之后,一切都按预期进行。但是重新启动后,设置恢复为默认值。每次重新启动后,我都必须手动重置所有内容。
现在我写了一个小 shell 脚本来完成它,但这不是我认为的最好方法。
如何使这些设置持久化?
我从官方 Linux 内核存储库( http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.15.tar.bz2 )安装了内核源代码,并使用一些需要的选项重新编译了它以支持移动性 IPv6。当我需要一个模块来加密某些数据时,我在已构建的其余模块中没有找到它。我需要的模块是:“echainiv”和“authenc”。
我尝试在 CentOS 7 虚拟机上安装 VirtualBox Guest Additions。
我通过安装了先决条件
sudo yum install perl gcc dkms kernel-devel kernel-headers make bzip2
Run Code Online (Sandbox Code Playgroud)
然后我“插入”Guest Additions CD 映像,Guest Additions 自动运行程序出现并运行。
但是,Guest Additions 安装出错
VirtualBox Guest Additions:未找到目标内核 3.10.0-1062.el7.x86_64 的内核标头。
为了更仔细地检查,我在虚拟机的终端 shell 中发出了以下命令:
$ ls /usr/src/kernels/
3.10.0-1062.18.1.el7.x86_64
Run Code Online (Sandbox Code Playgroud)
和
$ uname -r
3.10.0-1062.el7.x86_64
Run Code Online (Sandbox Code Playgroud)
请注意已安装标头中的附加字符18.1与内核报告的内容相比较。我想这就是 Guest Additions 安装失败的原因。
如何解决此问题并安装 Guest Additions?
更多细节:
virtual-machine centos kernel-modules virtualbox linux-headers
为什么 Linux 模块 API 不向后兼容?更新 Linux 内核后,我对找到更新的驱动程序感到沮丧。
我有一个需要专有驱动程序的无线适配器,但制造商在大约 7 年前停产了该设备。由于代码很旧并且是为 Linux 2.6.0.0 编写的,因此不能使用最新的 Linux 内核进行编译。我使用过许多 Linux 发行版,但同样的问题无处不在。尽管有一个随 Linux 内核分发的开源驱动程序,但它不起作用。有些人试图修改旧的专有代码以使其与最新的 Linux 内核兼容,但是当发布新的 Linux 内核时,使代码与之兼容需要数月时间。在此期间,发布了另一个新版本。因此,我无法升级到新的 Linux 内核;有时我什至无法升级我的发行版。
如何手动创建 Linux 内核模块依赖项?
例如,在某个时间点,模块 vboxdrv 会自动加载。但是,当发生这种情况时,我也想自动加载模块 vfat (仅作为示例)。
因此,如何创建依赖关系,当模块 1 加载时,它会触发模块 2 的自动加载?
我不需要在启动时使用 initramfs 加载模块,我只是想要 - 这么说 - 这种依赖关系,当 1 被加载时,2 也会被加载。你知道我的意思 ;-)
谢谢
我有一个内核模块,我想分发它(即打包它)。
我想分发它,以便用户不需要做任何其他事情yum/dnf install kmod-mymodule。
有什么方法可以轻松分发内核模块,以便用户只需要做yum install kmod-mymodule即可为特定机器编译模块?
如果有一个与分发无关的解决方案,我洗耳恭听!
当我这样做dpkg --get-selections或less /proc/modules我看到两个不同的列表时。我不明白每个元素之间的区别......
kernel-modules ×10
linux ×4
linux-kernel ×2
apple ×1
arch-linux ×1
centos ×1
compiling ×1
cryptography ×1
debian ×1
dpkg ×1
drivers ×1
firmware ×1
kernel ×1
keyboard ×1
make ×1
rhel ×1
rpm ×1
sdio ×1
settings ×1
shell-script ×1
ubuntu ×1
virtualbox ×1
wifi ×1