sd linux 驱动,linux安装nvidia驱动
各位老铁们,大家好,今天由我来为大家分享sd linux 驱动,以及linux安装nvidia驱动的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
如何在linux中安装ixgbe驱动
Intel的10G网卡(比如,82598、 82599、 x540)由ixgbe驱动支持。现代的Linux发行版已经带有了ixgbe驱动,通过可加载模块的方式使用。然而,有些情况你希望在你机器上的自己编译安装ixgbe驱动,比如,你想要体验ixbge驱动的最新特性时。同样,内核默认自带的ixgbe驱动中的一个问题是不允许你自定义驱动的参数。如果你想要一个完全定制的ixgbe驱动(比如 RSS、多队列、中断阈值等等),你需要手动从源码编译ixgbe驱动。
这里是如何在Ubuntu、Debian或者它们的衍生版中下载安装ixgbe驱动的教程。
第一步:安装前提
安装之前,需要安装匹配的内核头文件和开发工具包。
?
1
2
$ sudo apt-get install linux-headers-$(uname-r)
$ sudo apt-get install gcc make
第二步:编译Ixgbe驱动
从最新的ixgbe驱动中下载源码。
?
1
$ wget
如下编译ixgbe驱动。
?
1
2
3
$ tar xvfvz ixgbe-3.23.2.tar.gz
$ cd ixgbe-3.23.2/src
$ make
第三步:检查Ixgbe驱动
编译之后,你会看到在ixgbe-3.23.2/src目录下创建了ixgbe.ko。这就是会加载到内核之中的ixgbe驱动。
用modinfo命令检查内核模块的信息。注意你需要指定模块文件的绝对路径(比如./ixgbe.ko或者/home/xmodulo/ixgbe/ixgbe-3.23.2/src/ixgbe.ko)。输出中会显示ixgbe内核的版本。
?
1
$ modinfo./ixgbe.ko
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
filename:/home/xmodulo/ixgbe/ixgbe-3.23.2/src/ixgbe.ko
version: 3.23.2
license: GPL
description: Intel(R) 10 Gigabit PCI Express Network Driver
author: Intel Corporation,
srcversion: 2ADA5E537923E983FA9DAE2
alias: pci:v00008086d00001560sv*sd*bc*sc*i*
alias: pci:v00008086d00001558sv*sd*bc*sc*i*
alias: pci:v00008086d0000154Asv*sd*bc*sc*i*
alias: pci:v00008086d00001557sv*sd*bc*sc*i*
alias: pci:v00008086d0000154Fsv*sd*bc*sc*i*
alias: pci:v00008086d0000154Dsv*sd*bc*sc*i*
alias: pci:v00008086d00001528sv*sd*bc*sc*i*
alias: pci:v00008086d000010F8sv*sd*bc*sc*i*
alias: pci:v00008086d0000151Csv*sd*bc*sc*i*
alias: pci:v00008086d00001529sv*sd*bc*sc*i*
alias: pci:v00008086d0000152Asv*sd*bc*sc*i*
alias: pci:v00008086d000010F9sv*sd*bc*sc*i*
alias: pci:v00008086d00001514sv*sd*bc*sc*i*
alias: pci:v00008086d00001507sv*sd*bc*sc*i*
alias: pci:v00008086d000010FBsv*sd*bc*sc*i*
alias: pci:v00008086d00001517sv*sd*bc*sc*i*
alias: pci:v00008086d000010FCsv*sd*bc*sc*i*
alias: pci:v00008086d000010F7sv*sd*bc*sc*i*
alias: pci:v00008086d00001508sv*sd*bc*sc*i*
alias: pci:v00008086d000010DBsv*sd*bc*sc*i*
alias: pci:v00008086d000010F4sv*sd*bc*sc*i*
alias: pci:v00008086d000010E1sv*sd*bc*sc*i*
alias: pci:v00008086d000010F1sv*sd*bc*sc*i*
alias: pci:v00008086d000010ECsv*sd*bc*sc*i*
alias: pci:v00008086d000010DDsv*sd*bc*sc*i*
alias: pci:v00008086d0000150Bsv*sd*bc*sc*i*
alias: pci:v00008086d000010C8sv*sd*bc*sc*i*
alias: pci:v00008086d000010C7sv*sd*bc*sc*i*
alias: pci:v00008086d000010C6sv*sd*bc*sc*i*
alias: pci:v00008086d000010B6sv*sd*bc*sc*i*
depends: ptp,dca
vermagic: 3.11.0-19-generic SMP mod_unload modversions
parm: InterruptType:Change Interrupt Mode(0=Legacy, 1=MSI, 2=MSI-X), default IntMode(deprecated)(array of int)
parm: IntMode:Change Interrupt Mode(0=Legacy, 1=MSI, 2=MSI-X), default 2(array of int)
parm: MQ:Disable or enable Multiple Queues, default 1(array of int)
parm: DCA:Disable or enable Direct Cache Access, 0=disabled, 1=descriptor only, 2=descriptor and data(array of int)
parm: RSS:Number of Receive-Side Scaling Descriptor Queues, default 0=number of cpus(array of int)
parm: VMDQ:Number of Virtual Machine Device Queues: 0/1= disable, 2-16 enable(default=8)(array of int)
parm: max_vfs:Number of Virtual Functions: 0= disable(default), 1-63= enable this many VFs(array of int)
parm: VEPA:VEPA Bridge Mode: 0= VEB(default), 1= VEPA(array of int)
parm: InterruptThrottleRate:Maximum interrupts per second, per vector,(0,1,956-488281), default 1(array of int)
parm: LLIPort:Low Latency Interrupt TCP Port(0-65535)(array of int)
parm: LLIPush:Low Latency Interrupt on TCP Push flag(0,1)(array of int)
parm: LLISize:Low Latency Interrupt on Packet Size(0-1500)(array of int)
parm: LLIEType:Low Latency Interrupt Ethernet Protocol Type(array of int)
parm: LLIVLANP:Low Latency Interrupt on VLAN priority threshold(array of int)
parm: FdirPballoc:Flow Director packet buffer allocation level:
1= 8k hash filters or 2k perfect filters
2= 16k hash filters or 4k perfect filters
3= 32k hash filters or 8k perfect filters(array of int)
parm: AtrSampleRate:Software ATR Tx packet sample rate(array of int)
parm: FCoE:Disable or enable FCoE Offload, default 1(array of int)
parm: LRO:Large Receive Offload(0,1), default 1= on(array of int)
parm: allow_unsupported_sfp:Allow unsupported and untested SFP+ modules on 82599 based adapters, default 0= Disable(array of int)
第四步:测试Ixgbe驱动
在测试新的模块之前,如果你内核中已存在旧版本ixgbe模块的话你需要先移除它。
?
1
$ sudo rmmod ixgbe
接着使用insmod命令插入新编译的ixgbe模块。确保指定一个模块的绝对路径。
?
1
$ sudo insmod./ixgbe.ko
如果上面的命令成功运行,就不会显示任何的信息。
如果你需要,你可以尝试加入额外的参数。比如,设置RSS的队列数量为16:
?
1
$ sudo insmod./ixgbe.ko RSS=16
检查/var/log/kern.log来查看ixgbe驱动是否成功激活。查看日志中的“Intel(R) 10 Gigabit PCI Express Network Driver”。ixgbe的版本信息应该和之前的modinfo的显示应该相同。
Sep 18 14:48:52 spongebob kernel: [684717.906254] Intel(R) 10 Gigabit PCI Express Network Driver- version 3.22.3
第五步:安装Ixgbe驱动
一旦你验证新的ixgbe驱动可以成功加载,最后一步是在你的系统中安装驱动。
?
1
$ sudo make install
ixgbe.ko会安装在/lib/modules//kernel/drivers/net/ethernet/intel/ixgbe下。
从这一步起,你可以用下面的modprobe命令加载ixgbe驱动了。注意你不必再指定绝对路径。
?
1
$ sudo modprobe ixgbe
如果你希望在启动时加载ixgbe驱动,你可以在/etc/modules的最后加入“ixgbe”。
为什么SD卡在Linux下/dev下的设备名叫mmcblk0p1
SD/MMC卡的设备构造差不多,MMC应该是 SD的前身,不过 MMC当时的设计比 SD小一半。
所以,SD/MMC的驱动通用,进一步的,Linux的设备节点就延续了 MMC的这个名字,后面的 blk是块设备这个英文的简写, mmcblk也就是“ mmc/sd块设备”,0就是这个 mmc/sd设备的顺序编号,p1就是第一个分区。
mmc卡与sd卡的区别:
1、mmc卡和baisd卡的长宽是一样的,SD卡略厚。
2、SD卡的触点比MMC卡多一个,是用于数字版dao权保护(DRM)的。
3、SD卡的侧边比MMC卡多一个写保护的开关。
扩展资料:
SD模式
驱动模式
SD卡有两种驱动模式:SPI模式与SDIO模式。它们所使用的接口信号是不同的。在SPI模式下,只会用到SD卡的4根信号线,即CS、DI、SCLK与DO(分别是SD卡的片选、数据输入、时钟与数据输出)。
传输模式
SD卡共支持三种传输模式:SPI模式(独立序列输入和序列输出),1位SD模式(独立指令和数据通道,独有的传输格式), 4位SD模式(使用额外的针脚以及某些重新设置的针脚。支持四位宽的并行传输)。
参考资料:百度百科-SD存储卡
linux系统中没有USB驱动怎么办
要启用 Linux USB支持,首先进入"USB support"节并启用"Support for USB"选项(对应模块为usbcore.o)。尽管这个步骤相当直观明了,但接下来的 Linux USB设置步骤则会让人感到糊涂。特别地,现在需要选择用于系统的正确 USB主控制器驱动程序。选项是"EHCI"(对应模块为ehci-hcd.o)、"UHCI"(对应模块为usb-uhci.o)、"UHCI(alternate driver)"和"OHCI"(对应模块为usb-ohci.o)。这是许多人对 Linux的 USB开始感到困惑的地方。
要理解"EHCI"及其同类是什么,首先要知道每块支持插入 USB设备的主板或 PCI卡都需要有 USB主控制器芯片组。这个特别的芯片组与插入系统的 USB设备进行相互操作,并负责处理允许 USB设备与系统其它部分通信所必需的所有低层次细节。
Linux USB驱动程序有三种不同的 USB主控制器选项是因为在主板和 PCI卡上有三种不同类型的 USB芯片。"EHCI"驱动程序设计成为实现新的高速 USB 2.0协议的芯片提供支持。"OHCI"驱动程序用来为非 PC系统上的(以及带有 SiS和 ALi芯片组的 PC主板上的)USB芯片提供支持。"UHCI"驱动程序用来为大多数其它 PC主板(包括 Intel和 Via)上的 USB实现提供支持。只需选择与希望启用的 USB支持的类型对应的"?HCI"驱动程序即可。如有疑惑,为保险起见,可以启用"EHCI"、"UHCI"(两者中任选一种,它们之间没有明显的区别)和"OHCI"。(赵明注:根据文档,EHCI已经包含了UHCI和OHCI,但目前就我个人的测试,单独加EHCI是不行的,通常我的做法是根据主板类型加载UHCI或OHCI后,再加载EHCI这样才可以支持USB2.0设备)。
启用了"USB support"和适当的"?HCI"USB主控制器驱动程序后,使 USB启动并运行只需再进行几个步骤。应该启用"Preliminary USB device filesystem",然后确保启用所有特定于将与 Linux一起使用的实际 USB外围设备的驱动程序。例如,为了启用对 USB游戏控制器的支持,我启用了"USB Human Interface Device(full HID) support"。我还启用了主"Input core support"节下的"Input core support"和"Joystick support"。
一旦用新的已启用 USB的内核重新引导后,若/proc/bus/usb下没有相应USB设备信息,应输入以下命令将 USB设备文件系统手动挂装到/proc/bus/usb:
# mount-t usbdevfs none/proc/bus/usb
为了在系统引导时自动挂装 USB设备文件系统,请将下面一行添加到/etc/fstab中的/proc挂装行之后:
none/proc/bus/usb usbdevfs defaults 0 0
模块的配置方法.
在很多时候,我们的USB设备驱动并不包含在内核中。其实我们只要根据它所需要使用的模块,逐一加载。就可以使它启作用。
首先要确保在内核编译时以模块方式选择了相应支持。这样我们就应该可以在/lib/modules/2.4.XX目录看到相应.o文件。在加载模块时,我们只需要运行modprobe xxx.o就可以了(modprobe主要加载系统已经通过depmod登记过的模块,insmod一般是针对具体.o文件进行加载)
对应USB设备下面一些模块是关键的。
usbcore.o要支持usb所需要的最基础模块usb-uhci.o(已经提过)usb-ohci.o(已经提过)uhci.o另一个uhci驱动程序,我也不知道有什么用,一般不要加载,会死机的ehci-hcd.o(已经提过 usb2.0)hid.oUSB人机界面设备,像鼠标呀、键盘呀都需要usb-storage.oUSB存储设备,U盘等用到
相关模块
ide-disk.oIDE硬盘ide-scsi.o把IDE设备模拟SCSI接口scsi_mod.oSCSI支持
注意kernel config其中一项:
Probe all LUNs on each SCSI device
最好选上,要不某些同时支持多个口的读卡器只能显示一个。若模块方式就要带参数安装或提前在/etc/modules.conf中加入以下项,来支持多个LUN。
add options scsi_mod max_scsi_luns=9
sd_mod.oSCSI硬盘sr_mod.oSCSI光盘sg.oSCSI通用支持(在某些探测U盘、SCSI探测中会用到)
常见USB设备及其配置
在Linux 2.4的内核中已经支持不下20种设备。它支持几乎所有的通用设备如键盘、鼠标、modem、打印机等,并不断地添加厂商新的设备象数码相机、MP3、网卡等。下面就是几个最常见设备的介绍和使用方法:
USB鼠标:
键盘和鼠标属于低速的输入设备,对于已经为用户认可的PS/2接口,USB键盘和USB鼠标似乎并没有太多更优越的地方。现在的大部分鼠标采用了PS/2接口,不过USB接口的鼠标也越来越多,两者相比,各有优势:一般来说,USB的鼠标接口的带宽大于PS/2鼠标,也就是说在同样的时间内,USB鼠标扫描次数就要多于PS/2鼠标,这样在定位上USB鼠标就更为精确;同时USB接口鼠标的默认采样率也比较高,达到125HZ,而PS/2接口的鼠标仅有40HZ(Windows 9x/Me)或是60HZ(Windows NT/2000)。
对于USB设备你当然必须先插入相应的USB控制器模块:usb-uhci.o或usb-ohci.o
modprobe usb-uhci
USB鼠标为了使其正常工作,您必须先插入模块usbmouse.o和mousedev.o
modprobe usbmouse
modprobe mousedev
若你把HID input layer支持和input core支持也作为模块方式安装,那么启动hid模块和input模块也是必要的。
modprobe hid
modprobe input
USB键盘:
一般的,我们现在使用的键盘大多是PS/2的,USB键盘还比较少见,但是下来的发展,键盘将向USB接口靠拢。使用USB键盘基本上没有太多的要求,只需在主板的BIOS设定对USB键盘的支持,就可以在各系统中完全无障碍的使用,而且更可以真正做到在即插即用和热插拔使用,并能提供两个USB连接埠:让您可以轻易地直接将具有USB接头的装置接在您的键盘上,而非计算机的后面。
同样你当然必须先插入相应的USB控制器模块:usb-uhci.o或usb-ohci.o
modprobe usb-uhci
然后您还必须插入键盘模块usbkbd.o,以及keybdev.o,这样usb键盘才能够正常工作。此时,运行的系统命令:
modprobe usbkbd
modprobe keybdev
同样若你把HID input layer支持和input core支持也作为模块方式安装,那么启动hid模块和input模块也是必要的。
U盘和USB读卡器:
数码存储设备现在对我们来说已经是相当普遍的了。CF卡、SD卡、Memory Stick等存储卡已经遍及我们的身边,通常,他们的读卡器都是USB接口的。另外,很多MP3、数码相机也都是USB接口和计算机进行数据传递。更我们的U盘、USB硬盘,作为移动存储设备,已经成为我们的必须装备。
在Linux下这些设备通常都是以一种叫做usb-storage的方式进行驱动。要使用他们必须加载此模块
modprobe usb-storage
当然,usbcore.o和usb-uhci.o或usb-ohci也肯定是不可缺少的。另外,若你系统中SCSI支持也是模块方式,那么下面的模块也要加载
modprobe scsi_mod
modprobe sd_mod
在加载完这些模块后,我们插入U盘或存储卡,就会发现系统中多了一个SCSI硬盘,通过正确地mount它,就可以使用了(SCSI硬盘一般为/dev/sd?,可参照文章后面的常见问题解答)。
mount/dev/sda1/mnt
Linux支持的其他USB设备。
MODEM--(比较常见)网络设备摄像头--(比较常见)例如ov511.o联机线--可以让你的两台电脑用USB线实现网络功能。usbnet.o显示器--(我没见过)游戏杆电视盒--(比较常见)手写板--(比较常见)扫描仪--(比较常见)刻录机--(比较常见)打印机--(比较常见)
注意:
上面所说的每个驱动模块,并不是都要手动加载,有很多系统会在启动或你的应用需要时自动加载的,写明这些模块,是便于你在不能够使用USB设备时,可以自行检查。只要用lsmod确保以上模块已经被系统加载,你的设备就应该可以正常工作了。当然注意有些模块已经以内核方式在kernel启动时存在了(这些模块文件在/lib/modules/2.4.XX中是找不到的)。
输入相关命令