标签: drivers

用户空间和内核空间有什么区别?

当内核代表用户程序(即系统调用)执行时是否使用内核空间?或者它是所有内核线程(例如调度程序)的地址空间?

如果是第一个,那么是否意味着普通用户程序的内存不能超过3GB(如果划分为3GB + 1GB)?另外,在这种情况下,内核如何使用高端内存,因为高端内存中的页面将映射到哪个虚拟内存地址,因为 1GB 的内核空间将被逻辑映射?

linux drivers kernel

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

内核驱动程序和内核模块有什么区别?

当我lspci -k使用 3.2.0-29-generic 内核在我的 Kubuntu 上做一个时,我可以看到这样的东西:

01:00.0 VGA compatible controller: NVIDIA Corporation G86 [Quadro NVS 290] (rev a1)
    Subsystem: NVIDIA Corporation Device 0492
    Kernel driver in use: nvidia
    Kernel modules: nvidia_current, nouveau, nvidiafb
Run Code Online (Sandbox Code Playgroud)

有一个内核驱动程序nvidia和内核模块nvidia_currentnouveaunvidiafb

现在我想知道内核驱动程序和内核模块之间可能有什么区别?

linux drivers kernel kernel-modules

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

将 linux 安装移动到新计算机

我知道在某些情况下,将 Windows 安装从一台计算机移动到另一台计算机(物理移动硬盘驱动器)可能会很困难,但这在 linux 上如何工作?大多数驱动程序模块不是在启动时加载的吗?所以理论上会这么麻烦吗?

显然,xorg 配置会改变,专有的 ATI 驱动程序必须重新编译(也许?)。还有比我想象的更多的吗?

假设两台电脑来自同一个时代,即都是 i7,但硬件略有不同。

更新:
感谢您的回答。这主要是为了我自己的好奇心。我的 linux 系统已启动并在工作中运行,但最终我想搬到一台可以安装双显卡的计算机上,这样我就可以运行 2 个以上的显示器。但不会很快

linux drivers migration cloning

71
推荐指数
3
解决办法
9万
查看次数

延迟将数据写入磁盘背后的理念是什么?

在 Linux 中,诸如cp或之类的命令的完成执行dd并不意味着数据已写入设备。例如,必须调用sync或调用驱动器上的“安全删除”或“弹出”功能。

这种方法背后的哲学是什么?为什么不一次写入数据?是否存在因 I/O 错误而导致写入失败的危险?

drivers kernel io unix-philosophy

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

如何在 Linux 上找到与设备关联的驱动程序(模块)?

在 Linux 上,给出:

  • 一个设备,例如/dev/sda
  • 以及它的主要和次要号码,例如8, 0

我怎么知道哪个模块/驱动程序在“驱动”它?

我可以深入研究/sys/proc发现吗?

linux drivers kernel-modules

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

内核有 main() 函数吗?

我正在学习设备驱动程序和内核编程。根据 Jonathan Corbet 的书,main()设备驱动程序中没有功能。

所以我有两个问题:

  • 为什么我们不需要main()设备驱动程序中的函数?
  • 内核本身有main()功能吗?

谁可以给我解释一下这个?

drivers linux-kernel

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

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

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

drivers kernel-modules

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

如何关闭 X Server,以避免更新 nVidia 驱动程序时出错?

我尝试更新我的 nVidia 驱动程序,但在运行驱动程序安装时出现错误。

查看错误:

  ERROR: You appear to be running an X server; please exit X before            
         installing.  For further details, please see the section INSTALLING   
         THE NVIDIA DRIVER in the README available on the Linux driver         
         download page at www.nvidia.com.
Run Code Online (Sandbox Code Playgroud)

注意:我尝试通过键入来遵循指南,init 3但仍然没有任何变化.. 如何关闭 X 服务器?

所以我可以更新驱动程序

drivers xorg nvidia error-handling

46
推荐指数
3
解决办法
32万
查看次数

ioctl()、unlocked_ioctl() 和 compat_ioctl() 有什么区别?

lxr.linux.no浏览 linux 2.6.36 源代码,我ioctl()file_operations. 相反,我发现了两个新调用:unlocked_ioctl()compat_ioctl()。是什么区别ioctl()unlocked_ioctl()compat_ioctl()

linux drivers

42
推荐指数
1
解决办法
6万
查看次数

如何将 USB 驱动程序分配给设备

这个问题有两个方面:

首先,您如何手动从 USB 设备上分离驱动程序并连接不同的驱动程序?例如,我有一个连接时自动使用 USB 存储驱动程序的设备。

USB视图输出

Vendor Id: xxxx
Product Id: xxxx
...
    Number of Interfaces: 2
    Interface Number: 0
        Name: usb-storage
        Number of Endpoints: 2
        ...
    Interface Number: 1
        Name: (none)
        Number of Endpoints: 2
        ...
Run Code Online (Sandbox Code Playgroud)

我不想使用 USB 存储驱动程序,因此在我的应用程序中,我使用该libusb库来分离 USB 存储驱动程序,然后声明该接口。然后,我可以在我的 USB 设备和我的主机 Linux 系统上运行的应用程序之间发送数据。

如何在应用程序之外手动分离驱动程序?


其次,如何自动分配驱动程序以附加到设备插件上?我目前有一个 udev 规则设置来自动设置设备权限:

SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", MODE="0666"
Run Code Online (Sandbox Code Playgroud)

我可以使用 udev 规则为 USB 设备上的特定接口分配驱动程序吗?例如,如果我希望在接口 0 上自动使用 usbnet 模块而不是 usb-storage,这在 udev 中可能吗?

drivers kernel usb udev kernel-modules

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