这个问题以前曾被问过,但没有得到解答。
我正在尝试启动未压缩的 RTEMS ELF 文件
> qemu-system-x86_64 -kernel ./rtems-elf.exe
Run Code Online (Sandbox Code Playgroud)
结果是
qemu-system-x86_64: Error loading uncompressed kernel without PVH ELF Note
Run Code Online (Sandbox Code Playgroud)
我已经为 rtems RTOS 构建了许多内核,但是,为了进行完整性检查,我尝试从 rtems 启动一个示例,因此理想情况下代码应该没有问题。我还尝试启动未压缩的 Linux 内核(实时和常规),但出现了相同的错误。
一些有用的信息:
> file rtems-elf.exe
hello.exe: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, with debug_info, not stripped
Run Code Online (Sandbox Code Playgroud)
> qemu-system-x86_64 --version
QEMU emulator version 4.0.0
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers
Run Code Online (Sandbox Code Playgroud)
主机 - Arch linux x86_64
其他一些尝试:
这个例子是一个带有 PREEMPT_RT linux 补丁的实时 linux 内核,我有 bzImage,但我只是测试了 qemu 启动非压缩内核的能力
> file …Run Code Online (Sandbox Code Playgroud) 如何在 Ubuntu 的 GRUB -bootloader 上关闭图形,以便您可以访问和查看终端?
我有一个使用了 5 年的 Nvidia 显卡,它不再与 Linux 内核 2..18 或 2..14 兼容。问题是在更新内核后开始的。
我试图通过进入 GRUB 加载程序的恢复模式来解决这个问题。
一切正常,除了我什么也看不到发生了什么。我可以登录,设置我的密码,然后定期启动 Apache 服务器,这样我就可以看到我的网站服务。
但是,我希望至少看到字母。我对图形不感兴趣。
以下命令的目的是什么?
sudo echo t > /proc/sysrq-trigger
Run Code Online (Sandbox Code Playgroud)
我运行了它,但在 dmesg 中看不到魔术键及其输出的区别。Trigger 提示我 sysrq 的数据库参与了这个过程。
熵池 /dev/random 是否与 /dev/urandom 使用相同?
我想要
mknod /dev/random 1 9
Run Code Online (Sandbox Code Playgroud)
为了替换慢随机,我认为当前的熵足够随机,如果 urandom 基于相同的熵,并且所有成功的随机数都是基于该熵生成的,我认为不会有任何漏洞。
我想获取已安装内核的列表(按安装日期的降序排列)。
关于如何做到这一点有什么想法吗?我使用的是 Fedora 20
在我上次启动后,yum update我的测试盒已kernel-3.10.0-327.13.1安装。在安装时,dracut 生成了initramfs-3.10.0-327.13.1.el7.x86_64.img,但initramfs-0-rescue-7da0bd6ff130413b99bf0b6a1bde637e.img留下了旧的kernel-3.10.0-327. 如何在安装了新内核和新内核模块(如 zfs)的情况下生成新的救援 initramfs 映像?
我目前正在构建一个压力测试工具,因此我需要大量的线程。我已经完成了所有设置以提高限制,但最后一个设置,系统范围的上限/proc/sys/kernel/threads-max,我似乎无法更改。
我试过
sysctl -w kernel.threads-max=200000
Run Code Online (Sandbox Code Playgroud)
使用nano或手动编辑echo
echo 200000 > /proc/sys/kernel/threads-max
Run Code Online (Sandbox Code Playgroud)
编辑/etc/sysctl.conf和运行
sysctl -f
Run Code Online (Sandbox Code Playgroud)
如果我将它们作为 运行sudo,则不会显示错误(甚至显示新值),但是再次检查时,该值也没有更改。尝试使用 编辑值时gedit,它会吐出一个
无效的论点”
无论我尝试什么价值,即使是最初的价值。我更改pid_max值没有问题。
我真的不知道为什么它拒绝我的编辑,而且我找不到任何有类似问题的人,所以如果有人能解释发生了什么,我将不胜感激。
所有 Linux 都应该带有vmlinuz“ /”和“ /boot/”。但是,我的系统没有它:
% ls -l /vmlinuz* /initrd* /boot/vmlinuz*
ls: cannot access '/vmlinuz*': No such file or directory
ls: cannot access '/initrd*': No such file or directory
ls: cannot access '/boot/vmlinuz*': No such file or directory
Run Code Online (Sandbox Code Playgroud)
怎么才能把三个都找回来呢?
我试过,
apt-get install --reinstall linux-image-generic linux-headers-generic
update-initramfs -u
Run Code Online (Sandbox Code Playgroud)
根据我读过的文章,这应该已经解决了问题,因为实际的软件包也会重新安装:
% apt-get install --reinstall linux-image-generic linux-headers-generic
Preparing to unpack .../linux-headers-generic_4.15.0.20.23_amd64.deb ...
Unpacking linux-headers-generic (4.15.0.20.23) over (4.15.0.20.23) ...
Preparing to unpack .../linux-image-generic_4.15.0.20.23_amd64.deb ...
Unpacking linux-image-generic (4.15.0.20.23) over (4.15.0.20.23) ... …Run Code Online (Sandbox Code Playgroud) lsmod-command 显示奇数模块。命令“modprobe -a hid_microsoft”没有显示任何内容。它是什么?
$ modinfo hid_microsoft
filename: /lib/modules/2.6.28-15-generic/kernel/drivers/hid/hid-microsoft.ko
license: GPL
srcversion: 3FE2E2F2EE89174E885204A
alias: hid:b0005v0000045Ep00000701
alias: hid:b0003v0000045Ep0000009D
alias: hid:b0003v0000045Ep00000713
alias: hid:b0003v0000045Ep000000F9
alias: hid:b0003v0000045Ep000000DB
alias: hid:b0003v0000045Ep0000003B
depends:
vermagic: 2.6.28-15-generic SMP mod_unload modversions 586
Run Code Online (Sandbox Code Playgroud) 我的意思是,在具有“n”个 cpu 的多核系统中,每个 cpu 都会安装自己的 linux 内核,还是所有 cpu 都有相同内核映像的副本?
关于多核的另一个问题是内核跟踪。由于跟踪在内核级别工作,那么我应该单独为每个 cpu 执行跟踪还是可以将所有 cpu 放在一起作为一个整体执行内核跟踪?