我看到/lib/modules/我有7个与过时内核版本相关的目录,我可以完全删除它们吗?它不会做任何改变或损害我的系统吗?
$ ls /lib/modules
5.4.0-26-generic 5.4.0-31-generic 5.4.0-37-generic 5.4.0-40-generic
5.4.0-29-generic 5.4.0-33-generic 5.4.0-39-generic 5.4.0-42-generic
$ uname -r
5.4.0-42-generic # remove all directories without this kernel directory
Run Code Online (Sandbox Code Playgroud) 我尝试在运行 CentOS 的 VM 来宾中安装 VirtualBox Guest Additions 模块,但是当其他一切正常时,我收到此错误消息:
构建主 Guest Additions 模块失败
由于我对 CentOS 和 VirtualBox 非常陌生,因此我不知道要解决这个问题,也无法在互联网上找到任何解决方案(我发现的唯一帖子对我没有帮助)。
这是日志:
/usr/src/vboxguest-4.1.14/vboxguest/build_in_tmp: line 55: make : command not found 为访客添加创建用户。为来宾添加内核模块创建 udev 规则
compiling centos kernel-modules software-installation virtualbox
根据lsmod命令的手册页显示“当前加载了哪些内核模块”。
我编写了一个脚本,用于modinfo显示实际使用的内核对象 (.ko) 文件:
#!/bin/sh
for i in `lsmod | awk '{print $1}' | sed -n '1!p'`; do
echo "###############################$i###############################"
echo ""
modinfo $i
echo ""
echo ""
done
Run Code Online (Sandbox Code Playgroud)
现在我发现modinfo nvidia显示以下输出:
ERROR: modinfo: could not find module nvidia
大家对此有什么解释吗?
在不拔掉键盘的情况下,我想从终端禁用它;我希望可以使用rmmod它来完成,但根据我当前加载的模块,它看起来不可能。
有没有人有任何想法?
我正在尝试将 TL-WN725N 用作 Fedora 20 的 USB WiFi 适配器。
我遵循了这些说明,适配器运行良好,甚至在过去几周内进行了两次更新。
然后我yum update今天做了一个,在我重新启动计算机之前它仍然可以正常工作。我试图重新加载模块并得到insmod: ERROR: could not insert module 8188eu.ko: Invalid module format.
我发现的是,我的内核和模块中的内核头文件不再相同,我必须更新内核,所以我这样做并得到了
sudo yum install kernel-headers
Loaded plugins: langpacks, refresh-packagekit
Package kernel-headers-3.17.3-200.fc20.x86_64 already installed and latest version
Nothing to do
Run Code Online (Sandbox Code Playgroud)
现在我对如何让模块正确加载有点困惑。有人知道吗?
我只是想了解modinfo描述内核模块的输出。例如,在 module 的情况下i915,输出如下所示:
$ modinfo i915
filename: /lib/modules/4.2.0-1-amd64/kernel/drivers/gpu/drm/i915/i915.ko
license: GPL and additional rights
description: Intel Graphics
author: Intel Corporation
[...]
firmware: i915/skl_dmc_ver1.bin
alias: pci:v00008086d00005A84sv*sd*bc03sc*i*
[...]
depends: drm_kms_helper,drm,video,button,i2c-algo-bit
intree: Y
vermagic: 4.2.0-1-amd64 SMP mod_unload modversions
parm: modeset:Use kernel modesetting [KMS] (0=DRM_I915_KMS from .config, 1=on, -1=force vga console preference [default]) (int)
[...]
Run Code Online (Sandbox Code Playgroud)
我能够理解一些领域,但我不知道以下是什么意思:
firmwarealiasintreevermagic有谁知道如何解释它们?
我的视频卡时不时崩溃。这很烦人,但我忍受它——通常我只是用 重新启动图形sudo systemctl restart lightdm.service,或者如果需要重新启动整个系统。
在这种特殊情况下,systemctl呼叫挂起,我不想重新启动,因为我在机器上有一个长时间运行的工作。
崩溃登录dmesg为
[944520.212254] Call Trace:
[944520.212256] [<ffffffff818384d5>] schedule+0x35/0x80
[944520.212257] [<ffffffff8183b625>] schedule_timeout+0x1b5/0x270
[944520.212280] [<ffffffffc0235244>] ? dce_v6_0_program_watermarks+0x514/0x720 [amdgpu]
[944520.212282] [<ffffffffc0196d2c>] kcl_fence_default_wait+0x1cc/0x260 [amdkcl]
[944520.212287] [<ffffffff815b4f50>] ? fence_free+0x20/0x20
Run Code Online (Sandbox Code Playgroud)
显然amdgpu模块崩溃了。我想重新启动它,所以我尝试了
sudo modprobe -r amdgpu
modprobe: FATAL: Module amdgpu is in use.
Run Code Online (Sandbox Code Playgroud)
当我试图找出谁在使用amdgpu我时
lsmod | grep amdgpu
amdgpu 2129920 7
amdttm 102400 1 amdgpu
amdkcl 32768 1 amdgpu
i2c_algo_bit 16384 1 amdgpu
drm_kms_helper 155648 1 amdgpu
drm 364544 10 …Run Code Online (Sandbox Code Playgroud) video kernel-modules graphics proprietary-drivers amd-graphics
我用“pacman -Syu”更新了archlinux,然后当我重新启动时,系统无法启动。这是报告:
Warning: /lib/modules/4.11.9-1-ARCH/modules.devname not found - ignoring
version 232
Error: device 'UUID=b5a9a977-e9a7-4d3d-96a9-dcf9c3a9010d' not found. Skipping fsck.
Error: can't find UUID=b5a9a977-e9a7-4d3d-96a9-dcf9c3a9010d
You are now being dropped into a emergency shell.
Can't access tty: job control turned off
Run Code Online (Sandbox Code Playgroud)
在那个外壳中,我的键盘不起作用。
我正在尝试使用 archlinux 的 livecd:安装分区并使用 chroot。我在“/etc/fstab”中检查了根分区的 uuid。这是我的 fstab:
# /dev/sda2 UUID=b5a9a977-e9a7-4d3d-96a9-dcf8c3a9010d / ext4 rw,relatime,data=ordered 0 1
# /dev/sda1 UUID=FBA9-977B /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2
# /dev/sda4 UUID=a43b8426-c93a-4f32-99c8-9dd5cf645373 /home ext4 rw,relatime,data=ordered 0 2
# /dev/sda3 UUID=9eec735e-3157-4e0e-a5c6-ef3a7c674201 none swap defaults 0
Run Code Online (Sandbox Code Playgroud)
这是“lsblk -f”的结果
NAME FSTYPE …Run Code Online (Sandbox Code Playgroud) 我在我的DE10-Nano 板上运行的 Debian 上使用这个 USB wifi 设备。
从产品细节来看,这似乎使用了RT2800USB驱动程序中包含的RT5370芯片组。我在内核中启用了它,如下面的屏幕截图所示:
但是,除非我也使用以下命令安装固件,否则 wifi 设备不起作用:
sudo apt install firmware-ralink
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 固件与驱动程序有什么关系?wifi设备不应该已经有必要的固件吗?这里到底发生了什么?
我是内核驱动程序和设备的新手,所以试图了解这里发生的魔力。我的理解是,要使用设备,我只需要确保相关驱动程序要么编译到内核中,要么作为以后可以加载的模块使用。
这是我运行时的 dmesg 输出ifup wlan0。固件文件rt2870.bin由软件包提供firmware-ralink。
[ 78.302351] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'
[ 78.311413] ieee80211 phy0: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.36
[ 80.175252] wlan0: authenticate with 30:23:03:41:73:67
[ 80.206023] wlan0: send auth to 30:23:03:41:73:67 (try 1/3)
[ 80.220665] wlan0: authenticated
[ 80.232966] wlan0: associate with …Run Code Online (Sandbox Code Playgroud) kernel-modules ×10
kernel ×3
linux ×3
linux-kernel ×2
amd-graphics ×1
arch-linux ×1
boot ×1
centos ×1
compiling ×1
debian ×1
directory ×1
fhs ×1
graphics ×1
keyboard ×1
upgrade ×1
video ×1
virtualbox ×1