我有一台带有多用途触摸板的笔记本电脑。我的触摸板在任何 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。
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)
那么这个数字究竟是什么意思呢?
我正在运行 Ubuntu 12.04 衍生版 (amd64),最近我遇到了非常奇怪的问题。出乎意料的是,X 似乎会完全冻结一段时间(1-3 分钟?),然后系统将重新启动。该系统已超频,但在 Windows 中经过验证非常稳定,这让我相信我遇到了内核恐慌或我的模块之一出现问题。即使在 Linux 中,我也可以运行 LINPACK 并且不会看到崩溃,尽管在 CPU 上施加了可笑的负载。崩溃似乎是随机发生的,即使机器闲置时也是如此。
如何调试导致系统崩溃的原因?
我预感它可能是专有的 NVIDIA 驱动程序,我一直还原到驱动程序的稳定版本 304 版本,但我仍然遇到崩溃。
任何人都可以引导我完成崩溃后的良好调试过程吗?我很乐意启动拇指驱动器并发布我所有的崩溃后配置文件,我只是不确定它们会是什么。我怎样才能找出是什么导致了我的系统崩溃?
这是一堆日志,通常是罪魁祸首。
.xsession 错误:http : //pastebin.com/EEDtVkVm
/var/log/Xorg.0.log:http://pastebin.com/ftsG5VAn
/var/log/kern.log:http://pastebin.com/Hsy7jcHZ
在/ var / log / syslog的:http://pastebin.com/9Fkp3FMz
我什至似乎根本找不到坠机记录。
触发崩溃并不是那么简单,当 GPU 试图一次绘制多个东西时,它似乎会发生。如果我全屏播放 YouTube 视频并让它重复一段时间或滚动浏览大量 GIF 并弹出 Skype 通知,有时它会崩溃。在这个问题上完全摸不着头脑。
CPU 超频到 4.8GHz,但它完全稳定,并且在昨天的 LINPACK 运行和 9 小时的 Prime95 中幸存下来,没有发生一次崩溃。
我已经为我的内核版本 3.2.0-35安装了kdump、crash和linux-crashdump,以及内核调试符号。当我apport-unpack在崩溃的内核文件上运行,然后crash在VmCore故障转储上运行时,我看到的是:
KERNEL: /usr/lib/debug/boot/vmlinux-3.2.0-35-generic
DUMPFILE: …Run Code Online (Sandbox Code Playgroud) 在 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) 我是否需要以perf系统管理员(root)身份运行用户空间工具,还是可以以普通用户身份运行它(或至少一些子命令)?
我问了之前的一个问题,试图找出将应用程序从 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) 我有一个设备需要一块专门为它保留的内存块,而没有操作系统的干预。有什么方法可以告诉 BIOS 或操作系统保留一块内存,并且不能使用它?
我在 openSUSE 机器上使用这个设备。
当我的 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) 在书籍中,我通常会阅读对 Linux 源代码树的引用/usr/src/linux以及通常的子目录集 ( arch, block, crypto, ...)。
我期待这棵树包含组成内核的二进制文件。在我的系统(Ubuntu 10.04)中...
对于我拥有的不同内核(使用自动软件下载,而不是手动安装),我在这个位置找到了每个内核的两个子目录,如下所示:
/usr/src/linux-headers-2.6.32-22
/usr/src/linux-headers-2.6.32-22-generic
Run Code Online (Sandbox Code Playgroud)在子目录中,我期望二进制文件等。但是,我检查了相当数量的树,这里的最后一个子目录似乎总是有一个Makefile(在阅读它时,它听起来通常更像是一个配置文件而不是安装文件),偶尔还有一些孤立的其他文件(大部分Kconfig)。
我的问题可能很幼稚,但我有点困惑。是 (2) 我应该在内核源代码树中看到的内容;为什么我明确提到“标题”?我需要linux-generic-headers为其他一些软件安装一段时间,但不确定这是否相关。我意识到makefiles有很好的理由(例如,在/driver子目录中安装模块),但是(几乎)只有makefiles?
kernel ×10
linux ×3
memory ×2
ubuntu ×2
cpu ×1
crash ×1
drivers ×1
e2fsck ×1
external-hdd ×1
hardware ×1
init ×1
kernel-panic ×1
linux-kernel ×1
perf-event ×1
process ×1
scheduling ×1
source ×1
swap ×1
system-calls ×1
touchpad ×1
usb ×1