小编The*_*eer的帖子

找出哪些模块与 USB 设备相关联?

您能否推荐一种方法来确定 USB 设备正在使用哪个驱动程序。某种 USB 等效lspci -k命令。

drivers kernel-modules

47
推荐指数
2
解决办法
8万
查看次数

获取 USB 设备的功耗

有没有办法检查 USB 设备需要多少电量?

为什么我需要这个?

我需要将 LTE U 盘连接到我的 Raspberry Pi,但不知道它需要多少功率。我们在 Windows 上很容易得到它,但还没有找到在 Linux 上做到这一点的方法。

linux usb power-management lte

41
推荐指数
4
解决办法
5万
查看次数

/dev 和 /sys/class 之间的区别?

设备表示 in/dev和 one in 有/sys/class什么区别?

一个比另一个更受欢迎吗?是否有一个提供而另一个不提供的东西?

linux udev devices sysfs

39
推荐指数
1
解决办法
3万
查看次数

ls 忽略符号链接的目录内容

我有一个目录,我想在其中列出所有内容(文件和子目录)而不显示符号链接。我在 Linux 上使用 GNU 实用程序。该ls版本是8.13。

例子:

完整目录列表:

~/test$ ls -Gg
total 12
drwxrwxr-x 2 4096 Jul  9 10:29 dir1
drwxrwxr-x 2 4096 Jul  9 10:29 dir2
drwxrwxr-x 2 4096 Jul  9 10:29 dir3
-rw-rw-r-- 1    0 Jul  9 10:29 file1
-rw-rw-r-- 1    0 Jul  9 10:29 file2
lrwxrwxrwx 1    5 Jul  9 10:29 link1 -> link1
lrwxrwxrwx 1    5 Jul  9 10:30 link2 -> link2
Run Code Online (Sandbox Code Playgroud)

我想得到什么

~/test$ ls -somthing (or bash hack)
total 12
dir1 dir2 dir3 file1 …
Run Code Online (Sandbox Code Playgroud)

ls symlink recursive

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

如果不是编程语言中的实现,“系统调用”是什么意思?

我想了解术语“系统调用”。我熟悉系统调用用于从用户空间应用程序获取内核服务。

我需要澄清的部分是“系统调用”和“系统调用的 C 实现”之间的区别。

这是一个让我困惑的引用:

在类 Unix 系统上,该 API 通常是 C 库 (libc) 实现的一部分,例如 glibc,它为系统调用提供包装函数,通常与它们调用的系统调用命名相同

什么是“他们调用的系统调用”?他们的来源在哪里?我可以将它们直接包含在我的代码中吗?

一般意义上的“系统调用”是否只是 POSIX 定义的接口,但要实际查看实现,可以检查 C 源代码并在其中查看实际用户空间与内核通信的实际情况?

背景说明:我试图了解是否每个 c 函数最终都与来自/dev.

c kernel system-calls posix

17
推荐指数
3
解决办法
6061
查看次数

从 menuconfig 的角度比较两个内核配置文件?

我有一种情况,我有两个内核配置文件(对于相同的内核源)。它们都具有我需要的一部分功能(一方面,USB 工作正常,另一方面,第二个 I2C)。

我知道,从 menuconfig 的角度来看,这两个配置文件之间的差异仅包括几个选定的选项。(但不知道是哪个)

然而,当手动比较配置文件(在两个 .config 文件之间融合)时,差异并不容易识别。我尝试手动合并它们但没有成功。我相信我最终会成功,但相信如果以它们出现在 menuconfig 中的方式比较文件,这个过程可能会更轻松。

这可以实现吗,如果可以,如何实现?

kernel make configuration linux-kernel

17
推荐指数
4
解决办法
1万
查看次数

init 进程可以是 Linux 中的 shell 脚本吗?

我正在阅读有关设置自定义 initramfs教程,其中指出:

唯一缺少的是 /init,它是 initramfs 根目录中的可执行文件,一旦加载内核就会执行。因为 sys-apps/busybox 包含一个功能齐全的 shell,这意味着您可以将 /init 二进制文件编写为一个简单的 shell 脚本(而不是使它成为一个必须编译的用汇编程序或 C 编写的复杂应用程序)。

并给出了一个以 init 开头的 shell 脚本示例 #!/bin/busybox sh

到目前为止,我的印象是 init 是启动的主进程,所有其他用户空间进程最终都是 init 的子进程。但是,在给定的示例中,第一个进程实际上是bin/busybox/ sh从中产生后来的 init 的。

这是正确的解释吗?例如,如果我当时有一个可用的解释器,我可以将 init 编写为 Python 脚本等吗?

linux init-script init

16
推荐指数
2
解决办法
8130
查看次数

参与内核邮件列表

我知道这个问题关于规则有点前卫。我会问它,因为这是可能从中受益最多的社区,而且 Stack Exchange 界面更适合新手。


  • 如何订阅 Linux 内核或特定内核子系统的邮件列表?

  • 如何发布到邮件列表?

  • 回复回复我帖子的人的正确方法是什么?

  • 是否有特定的电子邮件客户端会导致与邮件列表交互出现问题?

linux email linux-kernel

16
推荐指数
1
解决办法
4316
查看次数

检查 /dev/log

/dev/log是系统日志记录的默认条目。在 systemd 实现(这种情况下)的情况下,它是任何/run/systemd/journal/dev-log. 它曾经是由 syslog 守护进程处理的 unix socket 的接收端。

~$ echo "hello" > /dev/log 
bash: /dev/log: No such device or address
~$ fuser /dev/log
~$ ls -la /dev/log 
lrwxrwxrwx 1 root root 28 Aug 23 07:13 /dev/log -> /run/systemd/journal/dev-log
Run Code Online (Sandbox Code Playgroud)

当您尝试写入时弹出的错误的澄清是什么,为什么没有一个进程保存该文件(从fuser /dev/log空输出?

日志记录在系统上正常工作。

~$ logger test
~$ journalctl --since=-1m
-- Logs begin at Thu 2018-05-24 04:23:46 CEST, end at Thu 2018-08-23 13:07:25 CEST. --
Aug 23 13:07:24 alan-N551JM alan[12962]: test
Run Code Online (Sandbox Code Playgroud)

使用评论建议进行扩展

~$ sudo fuser /dev/log 
/run/systemd/journal/dev-log: …
Run Code Online (Sandbox Code Playgroud)

linux syslog systemd systemd-journald

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

当进程派生时,它的虚拟内存或常驻内存是否被复制?

在 Linux 中创建新进程的标准方法是复制父进程的内存占用,并成为子进程的环境,直到execv被调用。

我们在谈论什么内存占用,虚拟的(进程请求的)还是常驻的(实际使用的)?

动机:我有一个交换空间有限的设备和一个虚拟内存占用和常驻内存占用差异很大的应用程序。由于内存不足,应用程序无法分叉,并想看看尝试减少虚拟占用空间是否会有所帮助。

linux memory fork linux-kernel

12
推荐指数
3
解决办法
5301
查看次数