正如标题所说:
如何使用file命令(直接)读取vmlinuz版本?
使用:file /vmlinuz | grep version,
它必须这样显示4.11.0-9.1-liquorix-amd64。
我正在构建第三个工具,它依赖于Linux kernel源代码。
该工具指定Linux kernelby的发布版本uname -r,结果为:
3.10.0-862.el7.x86_64
但是,我在 下没有找到这个源代码/usr/src/,我想我应该自己安装源代码。
我使用下面的命令来安装它:
yum install kernel-source kernel-devel
好消息是我得到了源代码/usr/src/kernels,坏消息是版本是3.10.0-957.27.2.el7.x86_64,它与uname -r.
如何准确获取与指定版本一致的源代码uname -r?
提前感谢您的帮助。
我使用的是 Fedora 31,并使用网站上的 RPM 安装了 VirtualBox (VirtualBox-6.1-6.1.14_140239_fedora31-1.x86_64.rpm),这应该是最新版本。
启动它给我以下错误:
$ virtualbox
WARNING: The vboxdrv kernel module is not loaded. Either there is no module
available for the current kernel (5.8.11-100.fc31.x86_64) or it failed to
load. Please recompile the kernel module and install it by
sudo /sbin/vboxconfig
You will not be able to start VMs until this problem is fixed.
Run Code Online (Sandbox Code Playgroud)
从内核版本来看,一切似乎都很好。
$ uname -a
Linux localhost.localdomain 5.8.11-100.fc31.x86_64 #1 SMP Wed Sep 23 15:15:42 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
当我尝试启动虚拟机时,我会得到:
**Kernel driver …Run Code Online (Sandbox Code Playgroud) 我有一个 bzImage 文件和 initramfs 文件。当我运行时qemu-system-x86_64 -kernel bzImage -initrd initramfs它工作正常,但我需要一个 ISO 文件。
我如何从这些文件中制作 ISO 文件?
我在一台 64 位 CPU 的机器上运行,但我的内核显示我(当我使用 uname -m 命令时)我正在 32 位(686)上运行。如何更改内核版本以使用我机器的所有容量?
我用这里的指令编译内核,最终内核大小为 265M。我做错了什么?即使是 initrd 映像也是 50M。
我们需要在全新的笔记本电脑上安装较旧的 Linux 发行版 (Suse 10)。Suse 10 附带的内核没有用于 NIC 和驱动器控制器的足够新的驱动程序。我们已经能够找到 NIC 的源代码并构建一个可用的 NIC 内核模块,但是,我们无法在内核树之外找到驱动控制器的源代码。较新的内核可以很好地看到驱动器;控制器是英特尔 ATA_PIIX。它包含在内核中,我们拥有的硬件只是比旧的 suse 10 内核支持的版本新。
我爬遍了整个英特尔网站,寻找内核源代码之外的代码,但一直无法这样做。是否可以从较新的内核源代码树中提取代码?可以在任何地方下载吗?
编辑:(来自下面的评论)
SLED-10-SP2-x86 是操作系统。在自动化过程中安装这些系统,尝试更改过程以包括 VM(如果我们有内存)或安装不同的基本操作系统;虽然可行 - 不能在允许的时间内完成。完成流程开发、测试、UAT、登台和部署所需的时间比我们拥有的时间要长得多。旧笔记本电脑也有同样的问题,我的前任的修复是手工构建 NIC 和驱动器模块。我们只需要为这台新笔记本电脑更新这些模块
我的设备的内核包含许多其他设备和情况的文件,我的设备无法使用。内核携带所有文件,并且比我的设备文件大得多。
这是什么原因?为什么不删除不必要的文件并使用更小的内核?
我刚刚在我的笔记本中安装了 Ubuntu,但无法使用 SO 滑块更改 VGA 中连接的外部显示器的亮度。
网上查了各种资料,得出的结论是,输出设备驱动安装正确,其实这是Intel的集成显卡文件夹中的内容:
-r--r--r-- 1 root root 4096 set 13 16:45 actual_brightness
-rw-r--r-- 1 root root 4096 set 13 16:45 bl_power
-rw-r--r-- 1 root root 4096 set 13 2018 brightness
lrwxrwxrwx 1 root root 0 set 13 16:45 device -> ../../card0-eDP-1
-r--r--r-- 1 root root 4096 set 13 2018 max_brightness
drwxr-xr-x 2 root root 0 set 13 2018 power
lrwxrwxrwx 1 root root 0 set 13 2018 subsystem -> ../../../../../../../class/backlight
-r--r--r-- 1 root root 4096 set …Run Code Online (Sandbox Code Playgroud) 嗨,我正在运行 gentoo 并且执行 uname -a 会给出错误的内核版本。
tony@P_P-o ~ $ uname -a
Linux P_P-o 2.6.27-gentoo-r8 #12 SMP PREEMPT Sun Nov 8 19:46:59 PST 2009 i686 Genuine Intel(R) CPU T2060 @ 1.60GHz GenuineIntel GNU/Linux
Run Code Online (Sandbox Code Playgroud)
运行 eix gentoo-sources 显示我安装了比安装版本更高的版本:
tony@P_P-o ~ $ eix gentoo-sources
[U] sys-kernel/gentoo-sources
Available versions:
(2.6.16-r13) 2.6.16-r13!b!s
(2.6.25-r9) 2.6.25-r9!b!s
(2.6.26-r4) 2.6.26-r4!b!s
(2.6.27-r8) 2.6.27-r8!b!s
(2.6.27-r10) 2.6.27-r10!b!s
(2.6.28-r5) 2.6.28-r5!b!s
(2.6.28-r6) 2.6.28-r6!b!s
(2.6.29-r5) 2.6.29-r5!b!s
(2.6.29-r6) 2.6.29-r6!b!s
(2.6.30) ~2.6.30!b!s
(2.6.30-r3) ~2.6.30-r3!b!s
(2.6.30-r4) 2.6.30-r4!b!s
(2.6.30-r5) 2.6.30-r5!b!s
(2.6.30-r6) 2.6.30-r6!b!s
(2.6.30-r7) 2.6.30-r7!b!s
(2.6.30-r8) 2.6.30-r8!b!s
(2.6.31) ~2.6.31!b!s
(2.6.31-r1) …Run Code Online (Sandbox Code Playgroud) 所有 Linux 发行版在录音、游戏等时都存在延迟问题。但是 Windows 内核可以用于录音、游戏或任何其他操作而没有延迟。
为什么 Windows 不需要低延迟或实时内核,或者它已经是这样了?
我知道当我运行命令时
chmod +x filename
bash 将使我的文件成为可执行文件。将文件的体系结构更改为可执行文件究竟会发生什么?即内核如何知道这个文件是可执行的?
只是想锻炼我的书呆子肌肉。
如果我们查看Wikipedia中的 Microsoft Windows 版本列表,我们将看到(按发布日期顺序)Windows NT 4.0 具有发布版本NT 4.0,Windows 98 具有4.10,Windows 2000 具有NT 5.0
为什么 Windows 98NT在其发行版中没有?每个主要的 Windows 版本,如 XP、XP Pro、Vista、7、8、8.1、10 都有NT其发布版本。