在 Linux 中调用 fork() 之后,两个进程(一个是另一个的子进程)将共享分配的堆内存。这些分配的页面被标记为 COW(写时复制),并且将保持共享状态,直到任一进程修改它们。此时,它们被复制,但引用它们的虚拟地址指针保持不变。MMU(内存管理单元)如何区分两者呢?考虑以下:
这如何区分呢?
在尝试调试运行 Ubuntu 16.04 的新笔记本电脑(KabyLake 架构)的频繁死机时,我偶然发现了以下条目kern.log:
kernel: [ 0.041634] mce: [Hardware Error]: Machine check events logged
Run Code Online (Sandbox Code Playgroud)
从那时起我已经安装了mcelog但不知道如何处理日志。内容为/var/log/mcelog:
mcelog: Family 6 Model 8e CPU: only decoding architectural errors
Hardware event. This is not a software error.
MCE 0
CPU 0 BANK 6
MISC 3880018086 ADDR fef1cf00
TIME 1479298799 Wed Nov 16 13:19:59 2016
MCG status:
MCi status:
Error overflow
Uncorrected error
MCi_MISC register valid
MCi_ADDR register valid
Processor context corrupt
MCA: corrected filtering (some unreported …Run Code Online (Sandbox Code Playgroud) 我需要一个适用于 RHEL/CentOS 的软件点击消除抖动解决方案。我在单击鼠标时出现间歇性但频繁的双击。这个问题在 Windows 10 上不会发生,因为罗技(或微软)似乎在软件层面进行了补偿。
在 Windows 中,可以通过使用AutoHotKey 的简单脚本来解决类似的问题,例如:
LButton::
If (A_TimeSincePriorHotkey < 150) ;hyperclick
Return
Click Down
KeyWait, LButton
Click Up
Return
Run Code Online (Sandbox Code Playgroud)
或者使用Buggy-Mouse.ahk,但我一直无法找到适用于 RHEL/CentOS 的维护解决方案。AutoHotKey 有一个名为IronAHK的 Linux 端口,但它在 github 上的最后一次更新是六年前。
在避免非常快速的双击上有一个类似问题的答案,但提供的解决方案适用于 Arch Linux。
在我格式化笔记本之前,板载键盘在带有 Gnome 3 的 Debian 8 上工作得很好。现在,在使用最小的 XFCE 安装 Debian 9 后,它不再工作了,除了在 CLI 上。
我什至无法更改为 TTY,因为除恢复模式外,所有按键都不起作用。
以下是我收集的一些有关键盘设置的文件:
/etc/default/keyboard:
XKBMODEL="pc105"
XKBLAYOUT="br"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
Run Code Online (Sandbox Code Playgroud)
/usr/lib/xorg/modules/input:
mouse_drv.so synaptics_drv.so void_drv.so
Run Code Online (Sandbox Code Playgroud)
我在安装过程中安装了该软件包xserver-xorg-input-kbd,但认为这是问题所在,决定将其删除。在这两种情况下,键盘都无法在 XFCE 上使用。
不,我不使用任何会话管理器。我只是通过 systemd 和 .profile自动化了登录过程。
编辑:我安装了包 xserver-xorg-input-libinput 并且键盘开始在 XFCE 上工作。案件结案。=)
如何使用 Linux 系统上的常用实用程序将任意 PCIe 设备从 D0 状态(已通电)转换到 D3冷状态(设备无电流)?据推测,这涉及写入 sysfs 文件,但也欢迎其他可能涉及更多的方法,只要它们可以在用户空间中完成即可。这个问题基于另一个有关电源循环的问题。
我专门寻找一种与硬件无关(至少是 x86)的方法来将设备放入 D3 Cold中。
假设/sys/bus/pci/devices/*/d3cold_allowed是1.
注意:我知道 PCI 功能不能单独进入 D3状态,因此我认为更好的表述方法是“如何将特定 PCIe 设备的总线置于 L3 状态?”。
我想设置我的硬件(英特尔 HDA)支持的最大采样率和位深度。
如何知道值?
我需要这些信息,因为我想避免不必要的重采样。
我想知道为什么有些地方不认可我的USB设备的lsusb和偶然/usr/share/hwdata/usb.ids。
当我阅读文件的内容时,我可以看到硬件数据库的日期是 2015 年年中(大约比 Debian 9 “Stretch”于 2017 年 6 月发布发行版早两年)。
我运行以下命令来更新数据库:
update-usbids
Run Code Online (Sandbox Code Playgroud)
并惊讶地发现它的日期是去年三月。
怎么不自动更新?
最近遇到了一些问题,硬件转码在 Debian 9.11 上不起作用。有 E3-1275v6,有 iGPU。
我知道,对于 Ubuntu,需要安装一个“特殊”内核(linux-generic-hwe),但是 Debian 呢?目前,我使用自定义内核(xanmod)。
干杯!
如何可靠地检查机器的芯片组?我尝试在带有 linux mint 的旧华硕 K50ij 上使用“lspci”“hwinfo”“lshw”“dmidecode”命令,但输出没有提供足够精确的北桥信息。我在华硕的网站上发现它的芯片组是 Intel® Mobilny GL40 Express +ICH9M,但如果可能的话,我希望能够仅使用终端找到它。上面的命令返回了很多信息,但不是我正在寻找的信息。例如,来自 lspci 的一行输出:
Host bridge: Intel corporation Mobile 4 Series Chipset Memory Controller Hub (rev09)
Run Code Online (Sandbox Code Playgroud)
但我的输出期望是:
Intel® Mobilny GL40 Express Chipset +ICH9M
Run Code Online (Sandbox Code Playgroud)
lspci 的输出将芯片组缩小到此列表,但仍有很多可供选择:https : //ark.intel.com/content/www/us/en/ark/products/series/34468/intel-4-系列-chipsets.html
由于有关 sata 控制器的输出,我可以识别南桥:
PCI 1f.2: 0106 SATA controller (AHCI 1.0)
[Created at pci.378]
Unique ID: w7Y8.1UWGXuPHmx0
SysFS ID: /devices/pci0000:00/0000:00:1f.2
SysFS BusID: 0000:00:1f.2
Hardware Class: storage
Model: "Intel 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode]
Vendor: pci 0x8086 "Intel Corporation"
Run Code Online (Sandbox Code Playgroud)
有了这个,我可以检查它与 GL40 北桥配对的英特尔芯片组列表。但是对于一条简单的信息来说,感觉需要做很多工作,尤其是在我的其他机器上 …
hdparm -t [device]
Run Code Online (Sandbox Code Playgroud)
告诉我阅读速度。有没有办法显示写入速度?当我man hdarm | grep write得到 flag -F、-n和-r时-W,所有这些都没有提供我正在寻找的所需结果。
那么有没有一种方法可以通过一个命令来显示读写速度呢?