我的嵌入式主板上发生了以下内核恐慌。
我使用的是 3.10 内核。
我正在分析内核恐慌的原因。
内核恐慌消息显示PID(735).
Feb 22 19:40:28 TEST kenel: CPU: 0 `PID: 735` Comm: cat Not tainted 3.10.73 #2
Feb 22 19:40:28 TEST kernel: Process cat `(pid: 735`, stack limit = 0xee46c238)
Run Code Online (Sandbox Code Playgroud)
PID 是否意味着内核恐慌的杀手?
以下是我的完整内核恐慌消息。
内核恐慌似乎是一个非常难相处的朋友......:(
Feb 22 19:40:28 TEST kernel: Unable to handle kernel NULL pointer dereference at virtual address 0000000c
Feb 22 19:40:28 TEST kernel: pgd = c0004000
Feb 22 19:40:28 TEST kernel: [0000000c] *pgd=00000000
Feb 22 19:40:28 TEST kernel: Internal error: Oops: 17 …Run Code Online (Sandbox Code Playgroud) 我正在阅读 Salzman 的 Linux 内核模块编程指南,我想知道文件 linux/kernel.h 所在的位置。我找不到它find。或者更确切地说,我发现的文件中没有任何printk优先级宏。
在阅读这篇关于英特尔CPU 管理器的Kubernetes 博客文章时,它提到您可以通过将CPUs allocated on the socket near to the bus which connects to an external device.
跨套接字流量是什么意思,它会导致什么问题?这些是我的猜测:
$ make menuconfig
Run Code Online (Sandbox Code Playgroud)
Makefile:128: *** 主目录不能包含空格或冒号。停止。
我收到此错误消息。为什么?
我正在尝试验证为我的 Ubuntu 选择 Docker 容器映像文件时,我需要在它们之间匹配什么?
在 Lubuntu 上,一个 CentOS 容器说它是 CentOS,由
$ sudo docker run centos bash -c "cat /etc/*-release "
CentOS Linux release 7.6.1810 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.6.1810 (Core)
CentOS Linux release 7.6.1810 (Core)
Run Code Online (Sandbox Code Playgroud)
但也说它与主机是相同的 Ubuntu:
$ sudo docker run centos bash -c "cat /proc/version"
Linux version 4.15.0-46-generic (buildd@lgw01-amd64-038) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #49-Ubuntu SMP Wed …Run Code Online (Sandbox Code Playgroud) 我遇到了这个问题:
并基于答案和对答案的评论:
内核内存映射包括所有物理内存的直接映射,因此内存中的所有内容都出现在那里;它还包括内核、模块等的单独映射,因此包含内核的物理地址至少出现在两个不同的映射中
这是真的?我找不到任何来源或参考资料,为什么它会包含整个物理内存的映射,然后又具有内核模块的单独映射?那不是多余的吗?
有人可以简单地解释一下 64 位 Linux 进程的虚拟内存的内核部分是什么吗?并请提供答案的来源!因为我在任何书籍或论文中都找不到与此相关的任何内容。
我读到 Linux 有一个 O(1) 调度程序,但这并没有告诉我上下文切换实际上需要多长时间。有人有一些当前的数字吗?
我知道这取决于很多因素,例如 CPU 类型、频率、DRAM 连接性、缓存等等,但我很高兴知道以毫秒、微秒、纳秒为单位的数量级或所需的处理器周期的粗略数量。抢占一个进程,决定运行下一个进程并实际启动它。
我正在使用 docker 映像并尝试查看安装了哪些软件包。具体是哪些内核包。
执行此命令我得到以下内核包
rpm -qa kernel*
kernel-devel-2.6.32-754.6.3.el6.i686
kernel-headers-2.6.32-754.17.1.el6.centos.plus.i686
Run Code Online (Sandbox Code Playgroud)
但它丢失了...我如何找到验证特定内核正在运行。
kernel-2.6.32-754.3.5.el6.i686.rpm
Run Code Online (Sandbox Code Playgroud)
据我了解,docker 镜像使用本机操作系统内核来执行命令。但我试图确认这是 kernel-2.6.32-754.3.5.el6.i686.rpm。文档状态正在运行。
谢谢
按照这些说明,我下载并解压了内核。 https://priyachalakkal.wordpress.com/2013/01/19/verifying-digital-signature-using-gpg/
然后我尝试验证签名,但出现意外错误。这不是记录基本方法的网站所描述的成功或失败场景之一。
我需要提供一个命令行标志来告诉它在哪里寻找公钥吗?
~# gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 79BE3E4300411886
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 79BE3E4300411886: public key "Linus Torvalds <torvalds@kernel.org>" imported
gpg: Total number processed: 1
gpg: imported: 1
~# gpg --verify linux-5.6.9.tar.sign
gpg: assuming signed data in 'linux-5.6.9.tar'
gpg: Signature made Fri 01 May 2020 11:51:56 PM PDT
gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
gpg: Can't check signature: No public key
Run Code Online (Sandbox Code Playgroud)
更新1:根据@StephenKitt的回答,我尝试获取第一条消息中指示的密钥(为了让它找到用户ID,我必须指定密钥服务器),但结果不是预期的:
~# gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 647F28654894E3BD457199BE38DBBDC86092693E
gpg: key 38DBBDC86092693E: public key "Greg Kroah-Hartman <gregkh@linuxfoundation.org>" imported …Run Code Online (Sandbox Code Playgroud) 我不是电工,所以我不知道如何问这个问题,我是否需要参考电压,或瓦特,或其他东西。用 Lamens 的话来说,我想知道目前通过充电适配器向我的笔记本电脑输送了多少电量。
我想知道这一点的原因是因为有时我的笔记本电脑内部电池正在充电,而有时它在插入时正在放电。我想知道任一时刻的值是多少,并发现这是否是我可以做的事情调整内核,以修复可能与此相关的任何问题。
谢谢。