标签: kernel

'i8042.nomux=1' 内核选项在 Ubuntu 启动期间有什么作用?

我有一台带有多用途触摸板的笔记本电脑。我的触摸板在任何 Linux 发行版中都无法使用,例如 Ubuntu、Fedora、openSUSE、Linux Mint、Knoppix、Puppy、Slitaz 等等。我尝试了很多东西,但没有任何效果。一年多来,我一直在努力使用 Synaptics 驱动程序,但它也不起作用。

然后在某处我读到了i8042.nomux内核选项。所以我用以下选项启动了 Ubuntu:

i8042.nomux=1 i8042.reset
Run Code Online (Sandbox Code Playgroud)

这使我的触摸板适用于 Ubuntu 及其衍生产品(如 Linux Mint)的所有变体。

我很想知道这些选项。如果我确切地知道它的作用,我将能够在所有 linux 发行版中使用我的触摸板,因为此选项仅适用于 Ubuntu。

linux ubuntu kernel touchpad

27
推荐指数
1
解决办法
5万
查看次数

getrusage 系统调用:什么是“最大驻留集大小”

man getrusage 2

ru_maxrss (since Linux 2.6.32)
              This is the maximum resident set size used (in kilobytes). For RUSAGE_CHILDREN, this is the resident set size of the largest
              child, not the maximum resident set size of the process tree.
Run Code Online (Sandbox Code Playgroud)

那么这个数字究竟是什么意思呢?

kernel memory system-calls

27
推荐指数
1
解决办法
2万
查看次数

确定 Linux 内核恐慌的原因

我正在运行 Ubuntu 12.04 衍生版 (amd64),最近我遇到了非常奇怪的问题。出乎意料的是,X 似乎会完全冻结一段时间(1-3 分钟?),然后系统将重新启动。该系统已超频,但在 Windows 中经过验证非常稳定,这让我相信我遇到了内核恐慌或我的模块之一出现问题。即使在 Linux 中,我也可以运行 LINPACK 并且不会看到崩溃,尽管在 CPU 上施加了可笑的负载。崩溃似乎是随机发生的,即使机器闲置时也是如此。

如何调试导致系统崩溃的原因?

我预感它可能是专有的 NVIDIA 驱动程序,我一直还原到驱动程序的稳定版本 304 版本,但我仍然遇到崩溃。

任何人都可以引导我完成崩溃后的良好调试过程吗?我很乐意启动拇指驱动器并发布我所有的崩溃后配置文件,我只是不确定它们会是什么。我怎样才能找出是什么导致了我的系统崩溃?

这是一堆日志,通常是罪魁祸首。

.xsession 错误http : //pastebin.com/EEDtVkVm

/var/log/Xorg.0.loghttp://pastebin.com/ftsG5VAn

/var/log/kern.loghttp://pastebin.com/Hsy7jcHZ

在/ var / log / syslog的http://pastebin.com/9Fkp3FMz

我什至似乎根本找不到坠机记录。

触发崩溃并不是那么简单,当 GPU 试图一次绘制多个东西时,它似乎会发生。如果我全屏播放 YouTube 视频并让它重复一段时间或滚动浏览大量 GIF 并弹出 Skype 通知,有时它会崩溃。在这个问题上完全摸不着头脑。

CPU 超频到 4.8GHz,但它完全稳定,并且在昨天的 LINPACK 运行和 9 小时的 Prime95 中幸存下来,没有发生一次崩溃。

更新

我已经为我的内核版本 3.2.0-35安装了kdumpcrashlinux-crashdump,以及内核调试符号。当我apport-unpack在崩溃的内核文件上运行,然后crashVmCore故障转储上运行时,我看到的是:

      KERNEL: /usr/lib/debug/boot/vmlinux-3.2.0-35-generic
    DUMPFILE: …
Run Code Online (Sandbox Code Playgroud)

kernel kernel-panic kernel-modules crash

27
推荐指数
2
解决办法
14万
查看次数

27
推荐指数
2
解决办法
2473
查看次数

Linux 上 USB3 外部存储的连接问题(UAS 驱动程序问题)

在 Ubuntu 15.10 上,当我想使用 NTFS 文件系统格式化通过 USB3 连接的外部 4TO 磁盘(在 StarTech USB/eSATA 硬盘底座上)时,我有很多I/O 错误,并且格式化失败。

我在最新的 live CD 上尝试了 GParted v 0.19 和 GParted,但遇到gparted-live-0.23.0-1-i586.iso了同样的问题。

之后,在 Ubuntu 15.10 和相同的 USB3 连接上使用 GParted,我尝试格式化为ext4,没有问题。这真的很奇怪。

因为不知道mkfs.ext4GParted用来格式化磁盘的工具是不是对磁盘进行了像(或不像)这样的测试mkntfs,所以首先假设问题出在新磁盘上。也许这个新磁盘引起了问题。所以我尝试e2fsck -c在这个硬盘上运行。在 Ubuntu 15.10 上,e2fsck -c冻结在 0.45%,我不知道为什么。

因此,在同一台 PC 上使用另一个版本的 Ubuntu (15.04),我尝试使用 StarTech HDD 扩展坞的 eSATA 连接来连接同一个 4TO 磁盘。这一次,e2fsck -c运行正确。

几个小时后,您可以看到结果:

sudo e2fsck -c /dev/sdc1
e2fsck 1.42.12 (29-Aug-2014)
ColdCase : récupération du journal
Vérification …
Run Code Online (Sandbox Code Playgroud)

drivers kernel usb external-hdd e2fsck

27
推荐指数
3
解决办法
4万
查看次数

我是否需要 root(管理员)权限才能运行用户空间“perf”工具?(在 Linux 内核中启用了 perf 事件)

我是否需要以perf系统管理员(root)身份运行用户空间工具,还是可以以普通用户身份运行它(或至少一些子命令)?

linux kernel not-root-user perf-event

26
推荐指数
1
解决办法
2万
查看次数

CFS 的 CPU 使用率高?

我问了之前的一个问题,试图找出将应用程序从 RHEL 5 迁移到 RHEL 6 时 CPU 使用率增加的原因。我为此所做的分析似乎表明它是由内核中的 CFS 引起的。我编写了一个测试应用程序来尝试验证是否是这种情况(原始测试应用程序已删除以适应大小限制,但在git repo 中仍然可用

我在 RHEL 5 上使用以下命令编译它:

cc test_select_work.c -O2 -DSLEEP_TYPE=0 -Wall -Wextra -lm -lpthread -o test_select_work
Run Code Online (Sandbox Code Playgroud)

然后我调整了参数,直到戴尔 Precision m6500 上每次迭代的执行时间约为 1 毫秒。

我在 RHEL 5 上得到以下结果:

./test_select_work 1000 10000 300 4
time_per_iteration: min: 911.5 us avg: 913.7 us max: 917.1 us stddev: 2.4 us
./test_select_work 1000 10000 300 8
time_per_iteration: min: 1802.6 us avg: 1803.9 us max: 1809.1 us stddev: 2.1 us
./test_select_work 1000 …
Run Code Online (Sandbox Code Playgroud)

cpu scheduling kernel linux-kernel

26
推荐指数
1
解决办法
4014
查看次数

如何从 Linux 内核中保留一块内存?

我有一个设备需要一块专门为它保留的内存块,而没有操作系统的干预。有什么方法可以告诉 BIOS 或操作系统保留一块内存,并且不能使用它?

我在 openSUSE 机器上使用这个设备。

linux kernel memory hardware

26
推荐指数
3
解决办法
5万
查看次数

这是 Linux 分页的行为方式吗?

当我的 Linux 系统接近分页时(即,在我的情况下,16GB ram 几乎已满,16GB 交换完全空),如果新进程 X 尝试分配一些内存,系统将完全锁定。也就是说,直到不成比例的页面数量(与 X 的内存分配请求的总大小和速率)被换出。请注意,不仅 gui 变得完全没有响应,而且甚至像 sshd 这样的基本服务也完全被阻止。

这是我用来以更“科学”的方式触发这种行为的两段代码(诚然粗糙)。第一个从命令行获取两个数字 x,y 并继续分配和初始化多个 y 字节块,直到分配的总字节数超过 x 为止。然后无限期地睡觉。这将用于使系统处于寻呼的边缘。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>

int main(int argc, char** argv) {
   long int max = -1;
   int mb = 0;
   long int size = 0;
   long int total = 0;
   char* buffer;

   if(argc > 1)
     {
       max = atol(argv[1]);
       size = atol(argv[2]);
     }
   printf("Max: %lu bytes\n", max);
   while((buffer=malloc(size)) != NULL && total < max) {
       memset(buffer, …
Run Code Online (Sandbox Code Playgroud)

kernel swap virtual-memory

26
推荐指数
1
解决办法
937
查看次数

内核源代码树包含什么?这与 Linux 内核头文件有关吗?

在书籍中,我通常会阅读对 Linux 源代码树的引用/usr/src/linux以及通常的子目录集 ( arch, block, crypto, ...)。

我期待这棵树包含组成内核的二进制文件。在我的系统(Ubuntu 10.04)中...

  1. 对于我拥有的不同内核(使用自动软件下载,而不是手动安装),我在这个位置找到了每个内核的两个子目录,如下所示:

    /usr/src/linux-headers-2.6.32-22
    /usr/src/linux-headers-2.6.32-22-generic
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在子目录中,我期望二进制文件等。但是,我检查了相当数量的树,这里的最后一个子目录似乎总是有一个Makefile(在阅读它时,它听起来通常更像是一个配置文件而不是安装文件),偶尔还有一些孤立的其他文件(大部分Kconfig)。

我的问题可能很幼稚,但我有点困惑。是 (2) 我应该在内核源代码树中看到的内容;为什么我明确提到“标题”?我需要linux-generic-headers为其他一些软件安装一段时间,但不确定这是否相关。我意识到makefiles有很好的理由(例如,在/driver子目录中安装模块),但是(几乎)只有makefiles?

source ubuntu kernel

25
推荐指数
1
解决办法
2万
查看次数