2019-03-11 16:43:07 luhuaxiang 阅读数 4337
  • linux设备驱动模型-linux驱动开发第5部分

    本课程是linux驱动开发的第5个课程,主要内容是linux的设备驱动模型,包括总线、类、设备、驱动等概念,重点通过platform平台总线的工作来演示设备驱动模型的工作方法,实践环节对上个课程的LED驱动进行平台总线式改造,终目标是让大家彻底掌握linux的总线式设备驱动模型。

    4879 人正在学习 去看看 朱有鹏

有时候我们装完Centos或Ubuntu系统会发现没有网卡信息,说明网卡驱动不配置,所以我们要重新安装。

首先去服务器主板官网下载网卡驱动,注意32位和64位。

先查看网卡型号

lspci | grep -i ethernet

针对i219-v网卡的linux版本的驱动下载地址

https://downloadcenter.intel.com/zh-cn/download/15817?_ga=1.159975677.114505945.1484457019

下载完之后,通过u盘拷到安装centos的电脑里面,也只能通过u盘,移动硬盘这些工具了,因为没有联网啊

 检查依赖环境

rpm -qa | grep kernel

把安装包解压

tar -zxf  e1000e-3.4.0.2.tar.gz

切换到root用户进入解压缩后的驱动文件夹,进入里面包含一个src目录。

在src目录下,依次执行:

make             ## 编译驱动器源码
make install     ## 安装相应的驱动器程序

没有报错,进入目录/lib/modules/3.10.0-693.el7.x86_64/updates/drivers/net/ethernet/intel/e1000e下

把e1000e.ko文件拷贝到目录/lib/modules/3.10.0-693.el7.x86_64/updates/drivers/net下

cp e1000e.ko /lib/modules/3.10.0-693.el7.x86_64/updates/drivers/net

加载驱动程序

depmod -a

测试驱动程序,没报错说明正确。

modprobe e1000e

查看是否已经加载:

lsmod

重启网络服务

service network restart

网络通了!完工!!!

2017-04-14 11:53:26 JAZZSOLDIER 阅读数 16123
  • linux设备驱动模型-linux驱动开发第5部分

    本课程是linux驱动开发的第5个课程,主要内容是linux的设备驱动模型,包括总线、类、设备、驱动等概念,重点通过platform平台总线的工作来演示设备驱动模型的工作方法,实践环节对上个课程的LED驱动进行平台总线式改造,终目标是让大家彻底掌握linux的总线式设备驱动模型。

    4879 人正在学习 去看看 朱有鹏

在官方Linux内核版本中自Kernel2.6以后就默认包含了对CH340/CH341芯片的驱动支持了,但比较遗憾的是该自带驱动版本较老(由开源社区开发者提交)已不能满足使用需求了,因此我们需要用芯片官网提供的新驱动进行替换链接。

1. 首先去官网下载最新的驱动,下载链接与驱动简介,参见我的其他博客:CH340各平台下驱动

2. 驱动下载之后,将其拷贝到Linux系统中,在使用之前首先需要将老驱动删除掉,这样才能防止即使安装了新驱动老驱动仍然生效。系统的默认驱动目录为:/lib/modules/$(uname -r)/kernel/drivers,老驱动的完整路径名:/lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko,我们进入到该目录下,然后将其删除掉,如下所示:


3.解压新驱动并进行编译安装,具体流程如下图。


实际上操作起来就是四步:

root@ubuntu:/#unzip CH341SER_LINUX.ZIP
root@ubuntu:/#cd CH341SER_LINUX
root@ubuntu:/#make
root@ubuntu:/#make load

其中尤其要注意第三步 make 之后的执行过程和结果,如果没有顺利生成 ch34x.ko 那么就需要查看提示的报错原因了,然后进行相应问题的查找或者咨询 tech@wch.cn。在make load后插入 CH340 硬件,输入命令:dmesg 查看系统日志信息,如下图所示:


如果成功会出现上图所示的信息,并且产生的设备节点名称为 ttyUSB0,我们可以到 /dev 目录下进行查看,会发现设备文件 /dev/ttyUSB0,然后剩下的操作就类似于 Windows 系统操作 COM 口一样简单了,关于 Linux 下常用串口软件和使用说明可以参见我的其他博客。

如果希望每次开机之后系统可以自动加载驱动的话,也很简单只需要两步,把生成的 ch34x.ko 文件拷贝到原先老驱动的目录下,然后执行 depmod 命令就可以了,如果不够明确可以参考我的一篇博客:Linux系统开机自动加载驱动module

至此,CH340的驱动下载和安装教程就结束了,其实Linux下的所有驱动模块安装原理都与此类似,只是细节上略微有差异,如果遇到问题和疑问,欢迎给我邮件或者评论哦~:-D


2018-02-01 14:38:22 DumpDoctorWang 阅读数 2512
  • linux设备驱动模型-linux驱动开发第5部分

    本课程是linux驱动开发的第5个课程,主要内容是linux的设备驱动模型,包括总线、类、设备、驱动等概念,重点通过platform平台总线的工作来演示设备驱动模型的工作方法,实践环节对上个课程的LED驱动进行平台总线式改造,终目标是让大家彻底掌握linux的总线式设备驱动模型。

    4879 人正在学习 去看看 朱有鹏

一、问题来源

我的网卡是Tenda U1, 要在Ubuntu上做开发,官方提供的驱动始终编译不过,无奈上淘宝,搜到了一款支持Ubuntu的网卡,这才能上网,以后再也不买Tenda的产品了。

同学和我的是同款网卡,也要装驱动,这才重新开始百度,看看能不能找到解决方案。

由于网卡驱动是一类相似的问题,所以我告诉大家该怎么搜索网卡对应的驱动。

二、如何搜索网卡对应的驱动

1、首先找到你的网卡的芯片型号,我是在官方的驱动包中找到'**rtl8192eu**'这样的压缩包,从而确定网卡芯片型号;另外一种方法是,打开WIndows的设备管理器-->网络适配器:

"Realtek"是制造商,紧跟着的就是芯片型号“RTL8192eu”。不知道哪一项是无线网卡时,插拔一下就知道了。

2、找到芯片型号以后,搜索“芯片型号+linux”, 就能找到相应的解决方案。我是直接去github上搜索芯片型号,比如“RTL8192eu”,然后就能找到对应的驱动,安装过程和下面的类似。

TP-LINK的TL-WN821N Ver:5.0的芯片型号也是RTL8192eu。

二、针对Tenda U1 , 网卡芯片型号为rtl8192eu的解决方案

参考博客:Linux无线驱动安装历程

驱动下载地址:Github驱动网址

1、安装方法1

我是先看了第一篇博客,找到可github驱动网址,然后按照github上面的方法编译的网卡驱动,能用,但是网卡的灯不亮。附上命令记录:

sudo apt-get install git linux-headers-generic build-essential dkms
sudo make clean
sudo make
sudo make install
sudo modprobe -a 8192eu

8192eu是我的网卡的芯片对应的驱动名,不同的网卡可能不一样。注意看sudo make install的结果就能看到对应的名字。

然后将8192eu添加到/etc/modules。

sudo gedit /etc/modules

在弹出的编辑器里面, 新加一行8192eu

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

8192eu

退出保存,重启就可以自动加载驱动。

注意:每次更新内核之后可能需要按照上述步骤重新编译安装驱动。

2、安装方法2

进入驱动目录,输入以下命令

sudo apt-get install git linux-headers-generic build-essential dkms
sudo dkms add .
sudo dkms install rtl8192eu/1.0

这种安装方法,即使在内核更新时,也会自动重新编译驱动。

然后将8192eu添加到/etc/modules。

sudo gedit /etc/modules

在弹出的编辑器里面, 新加一行8192eu

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

8192eu

退出保存,重启就可以自动加载驱动。

2017-01-19 15:05:37 dongweizu33 阅读数 11756
  • linux设备驱动模型-linux驱动开发第5部分

    本课程是linux驱动开发的第5个课程,主要内容是linux的设备驱动模型,包括总线、类、设备、驱动等概念,重点通过platform平台总线的工作来演示设备驱动模型的工作方法,实践环节对上个课程的LED驱动进行平台总线式改造,终目标是让大家彻底掌握linux的总线式设备驱动模型。

    4879 人正在学习 去看看 朱有鹏

1、先下载最新的unixODBC源码包( http://www.unixodbc.org/unixODBC-2.3.1.tar.gz)放到/usr/local下

      解压:

tar -zxvf unixODBC-2.3.1.tar.gz
2、安装unixODBC-2.3.1.tar.gz

#cd usr/local/unixODBC-2.3.1/
#./configure --prefix=/usr/local/unixODBC-2.3.1 --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etc
#make
#make install


3、测试查看unixODBC安装情况

#odbcinst -j
unixODBC 2.3.1  
DRIVERS............: /etc/odbcinst.ini  
SYSTEM DATA SOURCES: /etc/odbc.ini  
FILE DATA SOURCES..: /etc/ODBCDataSources  
USER DATA SOURCES..: /root/.odbc.ini  
SQLULEN Size.......: 8  
SQLLEN Size........: 8  
SQLSETPOSIROW Size.: 8 

PS:安装完成后,查看unixODBC安装情况,可能会报如下错误:

#odbcinst -j
odbcinst: error while loading shared libraries: libodbcinst.so.2: cannot open shared object file: No such file or directory


解决办法:
安装共享库后要注意共享库路径设置问题, 如下:
A、如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令
ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 
缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表. 
B、如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:

# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/usr/local/lib" >> /etc/ld.so.conf
# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib
# ldconfig


C、如果共享库文件安装到了其它"非/lib或/usr/lib" 目录下,  但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径). 那可以export一个全局变量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找共享库. 
LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库. 可以设置多个搜索目录, 这些目录之间用冒号分隔开. 比如安装了一个mysql到/usr/local/mysql目录下, 其中有一大堆库文件在/usr/local/mysql/lib下面, 
则可以在.bashrc或.bash_profile或shell里加入以下语句即可:
export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH    
一般来讲这只是一种临时的解决方案, 在没有权限或临时需要的时候使用

2018-08-20 21:05:58 wf19930209 阅读数 106676
  • linux设备驱动模型-linux驱动开发第5部分

    本课程是linux驱动开发的第5个课程,主要内容是linux的设备驱动模型,包括总线、类、设备、驱动等概念,重点通过platform平台总线的工作来演示设备驱动模型的工作方法,实践环节对上个课程的LED驱动进行平台总线式改造,终目标是让大家彻底掌握linux的总线式设备驱动模型。

    4879 人正在学习 去看看 朱有鹏

Linux安装NVIDIA显卡驱动的正确姿势

可能想玩Linux系统的童鞋,往往死在安装NVIDIA显卡驱动上,所以这篇文章帮助大家以正常的方式安装NVIDIA驱动。

本文将介绍四种NVIDIA驱动安装方式。具体选择需要根据你的情况而定。

  • 使用标准Ubuntu仓库进行自动化安装
  • 使用PPA仓库进行自动化安装
  • 使用官方的NVIDIA驱动进行手动安装

什么是nouveau驱动?

nouveau,是一个自由及开放源代码显卡驱动程序,是为Nvidia的显示卡所编写,也可用于属于系统芯片的NVIDIA Tegra系列,此驱动程序是由一群独立的软件工程师所编写,Nvidia的员工也提供了少许帮助。

该项目的目标为利用逆向工程Nvidia的专有Linux驱动程序来创造一个开放源代码的驱动程序。

所以nouveau开源驱动基本上是不能正常使用的,性能极低,所以网上有很多人都在骂:干死黄仁勋!!

这里写图片描述

想了解历史的可以去看看这篇知乎,腾讯和AMD是linux的罪人吗?

好了不扯了,正式开始讲安装把!

检测NVIDIA驱动是否成功安装

  1. 使用nvidia-setting命令
nvidia-setting

终端执行这个命令会调出NVIDIA的驱动管理程序,如下:

这里写图片描述

如果出现这个界面可以看到 NVIDIA Driver Version:390.48,这就代表nvidia-setting安装正常。

  1. 使用nvidia-smi命令测试

英伟达系统管理接口(NVIDIA System Management Interface, 简称 nvidia-smi)是基于NVIDIA Management Library (NVML) 的命令行管理组件,旨在(intened to )帮助管理和监控NVIDIA GPU设备。

nvidia-smi

执行这条命令将会打印出当前系统安装的NVIDIA驱动信息,如下:

这里写图片描述

我们可以看到我们显卡的型号,我的是GTX 960M,包括显存大小都可以看见。

  1. 系统信息查看

这一步不重要,因为有时候系统信息里面显示的可能会有误,只显示集显不显示独显的情况。

比如我的就没有显示出独显,如下:

这里写图片描述

这里面不显示没有关系,可以略过。

  1. 命令行搜索集显和独显

打开终端执行以下命令:

lspci | grep VGA     # 查看集成显卡
lspci | grep NVIDIA  # 查看NVIDIA显卡

这里写图片描述

如果都能搜索到说明正常。

查看nouveau是否启动运行可以执行下面命令:

lsmod | grep nouveau

没有返回代表没有运行。

集显与独显的切换

当我们需要切换独显与集显的时候,一般就是外出的时候,想节省电量,增长待机时间。下面讲解两种切换方式。

  1. 使用nvidia-setting切换

终端执行nvidia-setting,在弹的界面中选择独显与集显:

这里写图片描述

  1. 命令行切换

NVIDIA提供了一个切换显卡的命令:

sudo prime-select nvidia # 切换nvidia显卡
sudo prime-select intel  # 切换intel显卡
sudo prime-select query  # 查看当前使用的显卡

这里写图片描述

注意: 每一次切换显卡都需要重新启动电脑才能生效

使用标准仓库进行自动化安装

在安装的发行版中,如 ubuntu, Linux Mint等,找到附加驱动管理软件,下面是Linux Mint界面:

这里写图片描述

选择推荐的驱动安装,点击应用更改,等待下载然后重启即可。

这种安装方式有如下缺点

  1. 如果你的显卡比较新可能会出现安装低版本的NVIDIA驱动而造成即可安装完成,但是并没有真正安装成功,可能会出现循环登录,关机死机等等原因。

  2. 当你更换驱动的时候可能原有的NVIDIA驱动删除不干净。

当然这种方式也是有优点的:

  1. 不需要手动禁止nouveau
  2. 操作方便

可能有的童鞋还使用过命令行的方式安装:

sudo apt-get install nvidia*

如图:

这里写图片描述

这种方式安装同样也是使用ubuntu官方源的形式安装的,你可以选择不同的驱动版本来安装,但是本质上和标准仓库进行自动化安装是一样的。

其实ubuntu自带命令行版本安装工具ubuntu-drivers,终端输入:

ubuntu-drivers devices   # 查询所有ubuntu推荐的驱动

这里写图片描述

这路我是有一个推荐安装的驱动,那就是nvidia-driver-390,明显我已经安装完成了。

然后就可以使用下面一条命令安装所有推荐的驱动程序:

sudo ubuntu-drivers autoinstall

安装完成后重启就可以了,这里要注意,这种安装方式和驱动管理器软件安装的效果是一样的,就是一个是UI版本,一个是命令行版本。

使用PPA仓库进行自动化安装

使用图形驱动程序PPA存储库允许我们安装NVIDIA beta驱动程序,这有可能会出现兼容性的问题,但是有些时候必须使用这种方式,比如显卡比较新,使用上面所讲的方式检测驱动的安装情况,如果不正常那么只能使用这种方式安装最新的NVIDIA驱动。

  1. 添加PPA到我们的系统:
sudo add-apt-repository ppa:graphics-drivers/ppa

更新系统源:

sudo apt update

此时我们就可以下载最新的NVIDIA驱动了:

安装的方式有以下三种,其实前面已经讲过,这里总结一下:

  • 附加驱动管理软件
  • sudo apt-get install nvidia-xxx
  • ubuntu-drivers方式

这三种都可以,选择一个版本安装,然后重启即可。

使用官方的NVIDIA驱动进行手动安装

这种安装方式我认为是比较野蛮的,也是最正规,最原始的的方式,当然难度最高的。你可以来挑战一下!!!!

1. 查看当前电脑的显卡型号

lshw -numeric -C display

执行完毕后我的显卡型号为 GTX 960M,如下图:

这里写图片描述

2. 下载NVIDIA官方驱动

到NVIDIA的官方驱动网站下载对应显卡的驱动程序,下载后的文件格式为run

下载好之后放到用户目录下,等下后面会用到。

3. 删除原有的NVIDIA驱动程序

如果你没有安装过,或者已经卸载,可以忽略:

sudo apt-get remove –purge nvidia*

4. bios禁用禁用secure boot,也就是设置为disable

如果没有禁用secure boot,会导致NVIDIA驱动安装失败,或者不正常。

5. 禁用nouveau

打开编辑配置文件:

sudo gedit /etc/modprobe.d/blacklist.conf

在最后一行添加:

blacklist nouveau

这一条的含义是禁用nouveau第三方驱动,之后也不需要改回来。

由于nouveau是构建在内核中的,所以要执行下面命令生效:

sudo update-initramfs -u

6. 重启

reboot

重启之后,可以查看nouveau有没有运行:

lsmod | grep nouveau  # 没输出代表禁用生效

7. 停止可视化桌面:

为了安装新的Nvidia驱动程序,我们需要停止当前的显示服务器。最简单的方法是使用telinit命令更改为运行级别3。执行以下linux命令后,显示服务器将停止,因此请确保在继续之前保存所有当前工作(如果有):

sudo telinit 3

之后会进入一个新的命令行会话,使用当前的用户名密码登录

8. 安装驱动

给驱动文件增加可执行权限:

sudo chmod a+x NVIDIA-Linux-x86_64-390.48.run

然后执行安装:

sudo sh ./NVIDIA-Linux-x86_64-390.48.run --no-opengl-files

安装完成后重启即可,记得验证是否安装成功,参考前面所讲。

–no-opengl-files 参数必须加否则会循环登录,也就是loop login

参数介绍:

  • –no-opengl-files 只安装驱动文件,不安装OpenGL文件。这个参数最重要
  • –no-x-check 安装驱动时不检查X服务
  • –no-nouveau-check 安装驱动时不检查nouveau
    后面两个参数可不加。

关于使用此方式可以参照Ubuntu 18.04安装NVIDIA(英伟达) RTX2080Ti显卡 这篇文章。

注意:

  • 安装CUDA时一定使用runfile文件,这样可以进行选择。不再选择安装驱动,以及在弹出xorg.conf时选择NO

到此NVIDIA的安装方式讲解完了。。。。

END

linux安装无线网卡驱动

博文 来自: farui_liu

linux安装驱动

阅读数 669

linux上安装网卡驱动程序

博文 来自: qq_43668159

Ubuntu Linux 显卡驱动安装

博文 来自: cicibabe
没有更多推荐了,返回首页