Questions tagged «drivers»

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

1
如何(真正)在Linux中禁用NCQ
我在VHDL中实现了自己的串行ATA主机总线适配器(HBA),并将其编程到FPGA上。FPGA是可以用任何数字电路编程的芯片。它还配备了串行收发器,可为SATA或PCIe生成高速信号。 该SATA控制器支持SATA 6 Gb / s线速,并使用ATA-8 DMA-IN / OUT命令在设备之间最多传输32 MiB数据块。经验证,该设计可在最高速度下工作(例如,三星SSD 840 Pro-> 550 MiB / s以上)。 在对多个SSD和HDD设备进行了一些测试之后,我购买了一个新的Seagate 6 TB存档HDD(ST6000AS0002)。该HDD的读取性能高达190 MiB / s,但写入性能却只有30到40 MiB / s! 因此,我更深入地研究并测量了传输的帧(是的,在FPGA设计中是可能的)。据我所知,Seagate HDD已准备好一次接收传输的前32 MiB。传输速度最高为580 MiB / s。之后,HDD将剩余字节停顿800毫秒以上!然后,HDD准备接收下一个32 MiB,并再次停顿800 ms。1 GiB传输总共需要30秒钟以上,大约等于35 MiB / s。 我假设此HDD具有32 MiB写高速缓存,该高速缓存在突发周期之间刷新。小于32 MiB的数据传输不会显示此行为。 我的控制器使用DMA-IN和DMA-OUT命令来传输数据。我没有使用QUEUED-DMA-IN和QUEUED-DMA-OUT命令,它们由具有NCQ功能的AHCI控制器使用。在FPGA平台上添加AHCI和NCQ非常复杂,我的应用层不需要。 我想在我的Linux PC上重现这种情况,但是Linux AHCI驱动程序默认情况下启用了NCQ。我需要禁用NCQ,因此我找到了描述如何禁用NCQ的网站,但是它不起作用。 Linux PC的写入性能仍然达到190 MiB / s。 > …
13 linux  kernel  drivers  sata 

3
麦克风-Linux上的静态背景噪音抑制
我的声卡是Realtek ALC892。在Windows 7上,我使用官方的Realtek驱动程序,在Linux上,我使用PulseAudio(在Ubuntu 13.10上)。在Windows和Linux上,当我启用+ 30db麦克风增强功能(由于我的麦克风很安静而需要)时,我会感到非常烦人且响亮的背景噪音(我也确认了两个系统都使用Audacity进行背景噪音处理)。 但是,Windows Realtek驱动程序具有有效的噪音抑制选项(启用它后,Audacity不会显示背景噪音,而且我的耳朵也会确认没有背景噪音)。 我的问题是如何在ALSA / PulseAudio中启用背景噪声抑制?是否可以安装任何模块,或者可以在配置文件中启用它的设置? 我找不到解决方案,这是阻止我完全切换到Linux的唯一方法-由于我经常使用麦克风讲话,因此在Windows上,Realtek软件会完全消除背景噪音,而PulseAudio不会将其消除。表示在Linux上录制的声音非常糟糕。 我知道我可以买到更好的声卡和麦克风,但是正如我所说,Windows Realtek驱动程序可以实时消除软件级别的噪音(例如,在使用TeamSpeak3 / Steam /任何voip程序通话时,不会产生噪音),所以我希望有这样的选择在Linux上也是如此。 这也出现在Ask Ask Ubuntu上,已经在这里得到了解答。



2
如何找出正在使用的X11驱动程序系统?
如何找出正在使用的X11驱动程序系统? 对我来说,芯片openchrome是最好的驱动程序,但是我怀疑系统没有在使用它。我只需要至少2D加速。 我该如何检查? 这是我从中发现的cat /var/log/Xorg.7.log | grep driver: [ 54.147] X.Org XInput driver : 12.3 [ 55.167] (==) Matched openchrome as autoconfigured driver 0 [ 55.167] (==) Matched vesa as autoconfigured driver 1 [ 55.167] (==) Matched fbdev as autoconfigured driver 2 [ 55.167] (==) Assigned the driver to the …
12 ubuntu  drivers  x11  graphics 

1
驱动程序r8169和r8168有什么区别?
Realtek提供了基于内核树中的r8169驱动程序的r8168驱动程序源代码,如果我相信它们的源代码: /* * This driver is modified from r8169.c in Linux kernel 2.6.18 */ 两者均为GPL许可,因此可以交换源代码而没有任何法律问题。这就是为什么我觉得Realtek维护一个没有变更日志或文档的独立驱动程序很奇怪。 最终用户有什么区别?推荐哪个驱动程序?

2
在Linux中使用许多监视器(4+)
我希望能够运行4台以上的显示器(也许是6台),这与Displayport卡现在兼容的东西非常令人困惑。现在我有一个只有2个HDMI输出的ATI卡。我看到的问题是ATI驱动程序说它不支持4个以上的显示器。因此,看来他们的宽容度卡可能比它的价值更麻烦。 无论如何,我还是更喜欢nvidia,他们似乎总是有非常好的linux驱动程序。但是我看不到他们提供的卡具有4个以上的端口。我见过的大多数高端卡都有2个HDMI,1个DVI和1个Displayport。我是否误认为这些卡仅限于4个显示器? 那司机呢?如果我得到双nvidia卡并连接起来,比如说每张卡上有2个HDMI端口+ DVI端口,那么xorg / nvidia驱动程序会发挥出色吗?我可以设置不同分辨率的显示器吗?(我现在有2个1920x1080和1920x1200屏幕)? x windows呢?您可以为6个屏幕设置xinerama吗?还是使其能够拖动x窗口? 更新:看来ati驱动程序最近已经走了很长一段路,并且官方支持Linux的Eyefinity。我想我要去买ATI 5870,然后看看我会在哪里弄乱它。 Update2: 我订购了5870,我会让你们知道它的运行情况。不过,目前我只有几个显示器可以玩。
12 xorg  drivers  monitors 

1
为什么使用内核模式设置,而不是特权分离?
刚开始使用Linux时,内核模式设置有些痛苦,但是现在有了它真是太棒了。我的意思是,X是否不需要以root身份运行?高分辨率硬件加速控制台?酷的东西。 问题是,许多UNIX平台都没有任何形式的模式设置内核驱动程序。因此,依赖KMS的硬件现在大多限于Linux。 我的问题:为什么实际上在内核中实现呢? 如果需要硬件访问来设置屏幕分辨率,为什么不使用单独的特权守护程序或小的setuid二进制文件?这样可以保持分离特权代码并让显示服务器以受限用户身份运行的优势。同时摆脱了特殊的驱动程序要求,并使跨UNIX支持更加容易。对?还是我在这里错过了重要的事情?
12 kernel  xorg  drivers 

3
mptscsih:ioc0:任务中止:成功(rv = 2002)导致30秒冻结
我的软件RAID6的I / O通常会冻结30秒左右,然后一切恢复正常。 冻结结束后,将其放入syslog: Mar 14 18:43:57 server kernel: [35649.816060] sd 5:0:23:0: [sdy] CDB: Read(10): 28 00 6c 52 68 58 00 04 00 00 Mar 14 18:43:58 server kernel: [35651.149020] mptbase: ioc0: LogInfo(0x31140000): Originator={PL}, Code={IO Executed}, SubCode(0x0000) cb_idx mptscsih_io_done Mar 14 18:43:58 server kernel: [35651.151962] mptscsih: ioc0: task abort: …

5
防止USB外置硬盘进入休眠状态
有谁知道是否有一种优雅的方式告诉外部USB驱动器在一段时间不活动后不停止旋转?我见过基于cron的解决方案,该解决方案每分钟都会写入一个文件,但是没有什么闻起来像unixey一样优雅。我必须发出一个hdparm或scsi命令(通过OpenBSD中的sd驱动程序访问usb驱动器),以告诉该驱动器不休眠。恐怕这可能是机箱控制器内置的功能,因此除了将驱动器从机箱中取出并直接放入机器中之外,没有什么可以改变的,但是我想我会问,机缘巧合。 理想情况下,我正在寻找OpenBSD解决方案,但我知道还有其他问题/问题,因此将考虑使用任何解决方案作为答案。


2
了解网络摄像头的Linux设备驱动程序
据我所知,设备驱动程序是SW的一部分,能够与连接到计算机的特定类型的设备进行通信。 对于USB网络摄像头,负责的驱动程序是UVC,它支持任何兼容UVC的设备。这意味着可以使OS或其他计算机程序访问硬件功能,而无需知道所使用硬件的确切细节。 因此,我通过运行以下命令安装了UVC Linux设备驱动程序: opkg install kernel-module-uvcvideo 网络摄像头已被Linux内核识别:dev/video0。但是,由于缺少V4L2 API,我仍然无法使用FFmpeg执行视频流。我通过配置内核安装了V4L2。 我的查询是: UVC驱动程序和V4L2如何链接在一起? V4L2 API的目的是什么? 如果我没有首先安装UVC,它将与V4L2一起安装吗? LinuxTV是指:uvcvideo驱动程序实现仅遵守V4L2 API。这意味着UVC是V4L2 API的一部分吗?
11 linux  drivers  camera  v4l 

3
libusb如何访问内核内容?
据我了解: 一般来说,驱动程序在内核空间中运行,可以从用户空间中调用。 只有内核空间中的代码才能调用usb低级对象/ ioctl libusb 是一个库,因此它将在用户空间中编译并运行 那么如何libusb实现低级USB?
10 usb  drivers 

2
捕获来自事件设备的键输入并对其进行映射(未映射切换的触摸板键)
我有安装了Ubuntu 13.10的Lenovo IdeaPad Yoga 13。设备在键盘(F5)上具有“切换触摸板”按钮。键盘的F*按钮是反向的(要得到F5,我需要按Fn+ F5,F5实际上是切换键)。 我发现按钮实际上是由位于的键盘(而不是像某些设备的TouchPad)读取的/dev/input/event3。因此,使用sudo input-events 3我能够确定该按钮发送了扫描代码190: 输出sudo lsinput: /dev/input/event3 bustype : BUS_I8042 vendor : 0x1 product : 0x1 version : 43907 name : "AT Translated Set 2 keyboard" phys : "isa0060/serio0/input0" bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP 输出sudo input-events 3: 23:13:03.849392: EV_MSC MSC_SCAN 190 23:13:03.849392: …
10 kernel  drivers  input  events 

1
某个设备文件背后的驱动程序是什么?
给定一个设备文件,例如/dev/sdb,可以确定它背后的驱动程序吗? 具体来说,我想确定存储设备正在使用什么驱动程序。fdisk -l列出2个设备:/dev/sda和/dev/sdb。一个是SATA硬盘驱动器,另一个是USB大容量存储设备-实际上是SD卡。 如何通过编程确定哪个是哪个? 我正在写一个软件,我想保护初学者免于淘汰其硬盘驱动器,同时允许他们淘汰其SD卡。

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.