Questions tagged «drivers»

设备驱动程序或软件驱动程序是允许更高级别的计算机程序与硬件设备进行交互的计算机程序。

12
延迟将数据写入磁盘的背后原理是什么?
在Linux中,命令的完成执行(例如cp或dd不代表已将数据写入设备)。例如,必须调用sync或调用驱动器上的“安全删除”或“弹出”功能。 这种方法背后的哲学是什么?为什么不立即写入数据?是否存在由于I / O错误而导致写入失败的危险?

3
用户空间和内核空间之间有什么区别?
当代表用户程序(即系统调用)执行内核时,是否使用了内核空间?还是所有内核线程(例如调度程序)的地址空间? 如果是第一个,则意味着普通用户程序不能拥有超过3GB的内存(如果划分为3GB + 1GB)?另外,在那种情况下内核如何使用高级内存,因为逻辑上将映射1GB内核空间,因此高级内存中的页面将映射到哪个虚拟内存地址?
72 linux  kernel  drivers 

6
内核驱动程序和内核模块之间有什么区别?
当我lspci -k使用3.2.0-29-通用内核在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 有一个内核驱动程序nvidia和内核模块nvidia_current,nouveau,nvidiafb。 现在我想知道内核驱动程序和内核模块之间有什么区别?

4
将linux安装移至新计算机
我知道在某些情况下,很难将Windows安装从一台计算机移动到另一台计算机(物理上移动硬盘),但是在Linux上如何工作?多数驱动程序模块不是在启动时加载的吗?因此,从理论上讲,这有那么多麻烦吗? 显然,xorg配置将发生变化,专有的ATI驱动程序也必须重新编译(也许?)。还有比我想的还要多的东西吗? 假设两台计算机来自同一时代,即两台i7,但硬件略有不同。 更新: 感谢您的回答。这主要是出于我自己的好奇心。我的linux系统已经启动并且可以运行,但是最终我想转移到一台可以插入双显卡的计算机上,以便可以运行2台以上的显示器。但很快不会

3
内核有main()函数吗?[关闭]
我正在学习设备驱动程序和内核编程。根据Jonathan Corbet的书,main()设备驱动程序中没有功能。 所以我有两个问题: 为什么我们不需要main()设备驱动程序中的功能? 内核本身是否具有main()功能? 谁可以给我解释一下这个?




7
如何关闭X Server,以避免在更新nVidia驱动程序时出错?
我试图更新nVidia驱动程序,但是运行驱动程序安装时出现错误。 看到错误: 错误:您似乎正在运行X服务器。请在之前退出X 安装。有关更多详细信息,请参见“安装”部分 Linux驱动程序上的自述文件中的NVIDIA DRIVER 请访问www.nvidia.com下载页面。 注意:我尝试通过输入内容遵循指南,init 3但是仍然没有任何改变。如何关闭X服务器? 这样我就可以更新驱动程序

1
如何将USB驱动程序分配给设备
这个问题有两个方面: 首先,如何手动从USB设备上拆下驱动程序并连接其他驱动程序?例如,我有一个设备,在连接后会自动使用USB存储驱动程序。 usbview输出 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 ... 我不想使用usb-storage驱动程序,因此在我的应用程序中,我使用libusb库来分离usb-storage驱动程序,然后声明接口。然后,我可以与USB设备和主机Linux系统上运行的应用程序之间来回发送数据。 如何在应用程序外部手动分离驱动程序? 其次,如何自动分配驱动程序以附加在设备插件上?我目前有一个udev规则设置来自动设置设备权限: SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", MODE="0666" 我可以使用udev规则将驱动程序分配给USB设备上的特定接口吗?例如,如果我希望在接口0而不是usb-storage上自动使用usbnet模块,是否可以在udev中使用?


5
是否可以在两个Linux操作系统之间进行USB到USB的数据传输?
我想在Linux(最好是Ubuntu)中创建USB到USB数据传输系统。为此,我不想使用任何外部硬件或开关(除了这根电缆)。就像将USB驱动器安装到系统上一样,但是在这种情况下,一个Linux系统将被安装在另一个系统上。我该如何创建呢? 鉴于我的内核编程经验非常基础,是否有可用的内核模块?

1
如何为USB-HID设备使用Linux内核驱动程序绑定/取消绑定接口?
第一个背景。我正在开发Logitech游戏面板设备的驱动程序。它是带有屏幕的键盘。驱动程序运行良好,但默认情况下,设备由HID处理。为了防止HID在驱动程序之前接管设备,我可以在hid-core.c中将其列入黑名单。这是可行的,但不是最佳解决方案,因为我正在与几个人一起工作,我们每个人都必须不断修补我们的HID模块,这变得很麻烦,尤其是因为它通常涉及到重建initramfs之类。 我对此问题进行了一些研究,发现了该邮件列表帖子,最终将我带到了LWN上。这描述了一种在运行时将设备绑定到特定驱动程序的机制。这似乎正是我所需要的。 所以,我尝试了。我能够将键盘与HID解除绑定。这行得通,而且按预期,我无法再键入它。但是,当我尝试将其绑定到驱动程序时,出现“错误:没有这样的设备”,操作失败。 所以我的问题是:如何在内核中将HID设备列入黑名单并提供自己的驱动程序时,如何使用内核绑定/解除绑定操作来复制会发生的情况?-就是说-取代始终需要修补hid-core.c的需要? 我们的驱动程序的源代码在这里:https : //github.com/ali1234/lg4l

3
为什么intel_idle不支持某些Intel 6系列CPU模型(Core 2,Pentium M)?
我一直在为Intel Core 2 Quad(Yorkfield)处理器调整Linux内核,我注意到以下消息dmesg: [ 0.019526] cpuidle: using governor menu [ 0.531691] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns [ 0.550918] intel_idle: does not run on family 6 model 23 [ 0.554415] tsc: Marking TSC unstable due to TSC halts in idle PowerTop仅显示用于封装和单个内核的状态C1,C2和C3: Package | CPU 0 POLL …

3
Linux中的设备驱动程序是程序/进程还是仅仅是库?
是设备驱动程序是独立运行的程序,还是仅仅是加载到内存中的库(一组函数),并且程序可以调用其功能之一(因此它不能独立运行)。 并且,如果它是一个程序,它是否具有进程ID,那么例如,我可以像终止任何其他进程一样终止设备驱动程序吗?
23 linux  drivers 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.