`

LINUX设备安装方法

阅读更多
我在LINUX安装新硬件设备过程中,经常无从下手,不知该如何去安装一个新的硬件设备,如声卡、网卡、磁带机等。在这方面的学习过程中,觉得网上这些资料不错,所以贴上供大家学习参考。

-------------------------------------------------------------------------------------------------------------

一、LINUX硬件设备的安装
 
  以现在LINUX内核的飞速更新,支持的硬件越来越多,硬件设备在安装过程中有以下几种情况发生:
   首先看硬件是否被系统默认内核支持。
   情况一:如果内核不支持硬件设备,只得自已重新编译内核来支持硬件设备;
   情况二:如果内核支持硬件,系统在安装的时候有没有被系统认出并安装好,还是系统没识别需要自已动手加载模块,或是安装第三方软件、驱动来配置.

   碰到自己的硬件设备没有被安装, 一般可试试以下方法配置:

  1、一般常用设备,在安装时,如果系统可以准确认出硬件是什么和它的型号,应该可以当时就安装好,一些朋友有时出现安装时设备被认出并安装或是第一次启动时硬件可以使用,而后来却不能正常使用的话,多半是硬件的相关模块或是相关服务没有在系统启动时被加载,最长见的错误是有关声卡在alsa和sound 服务没有启动的情况下, 声卡是发不出声的。
  2、系统安装时没有被正确识别的硬件。在搞清楚硬件的型号后,可以在系统相关模块目录下找找(一般是/lib/moudule目录下),是否有相关硬件模块,
如果找到, 可以用insmod files(insmod files.o)或是modpro files (modpro files.o)加载相关模块,然后再用lsmod看看相关内核是否被正确加载。正确加载的话,硬件应该就可以用了,有一些特殊的硬件可能要指定相关资源,如ISA的网卡,就需要在modpro加上参数写上相关io或是irq后, 硬件才会被识别.
  3、默认内核不支持的硬件。 在默认内核不支持的情况下, 可查阅一下当前内核的硬件支持列表,如果你的硬件在列表中有,可能是默认内核没有把它编入模块,可能需要编译新的内核模块,以支持硬件。如果你是第一次编译内核的话,建议一定要找一份相关内核选项的详细说明和编译操作指南照着做,对于单个的硬件模块支持,你可以看看这个链接, 它避免了编译内核长时间的等待http://www-900.ibm.com/developerWorks/cn//l-tip-prompt/tip13/index.shtml
  你的硬件不被内核所支持,这是最麻烦的, 意见是:
      a>看看硬件的厂家网站,看是否提供相应设备for linux版本的驱动;
      b>找一找相关通用的驱动,很多不同厂家的设备都是用同一开发商的芯片, 所以能找到此芯片的驱动, 你应该也就差不多成功了,很典型的例子就是软猫;
      c>实在是找不到的话, 没办法了, 只有求救了,要不然, 换设备也行啊.

二、扫描硬件指令篇
 
  1、kudzu检测新硬件
  2、硬件浏览指令lspci ,它是用来列举和查看所有的 PCI 设备 

---------------------------------
以下是在IBM找到几篇好的有关硬件设备安装配置的好文章,给大家参考:
  安装版常见问题(FAQ)http://www.linuxforum.net/doc/installFAQ-uio.html
  为你的Linux快速编译所需要的模块http://www-900.ibm.com/developerWorks/cn/linux/l-tip-prompt/tip13/index.shtml
  如何在Linux下实现设备的配置(上)http://www-900.ibm.com/developerWorks/cn/linux/hardware/auto-config/part1/index.shtml
  如何在Linux下实现设备的配置(下)http://www-900.ibm.com/developerWorks/cn/linux/hardware/auto-config/part2/index.shtml
  如何在LINUX下实现硬件的自动检测(上)http://www-900.ibm.com/developerWorks/cn/linux/hardware/auto-detecting/part1/index.shtml
  如何在LINUX下实现硬件的自动检测(下)http://www-900.ibm.com/developerWorks/cn/linux/hardware/auto-detecting/part2/index.shtml
  在RH7.2中装上VIA的AC97的板载声卡http://www.linuxbyte.net/ShowArt.php3?ID=3340
  

三、为什么需要编译内核和管理内核

    硬件是需要内核支持才行,有些硬件的支持没有被编入内核,这也需要我们重编内核;内核的包含的不仅仅是设备的驱动,还有其它的内容,比如网络协议的支持,防火墙的支持... ... 比如iptables的实现,有些功能是需要内核支持的,如果内核与iptables相关的内容没有被编入,iptables 相关的功能就无法实现;

四、管理内核模块的相关命令
1、lsmod 列加以挂载的内核模块;

   lsmod 是列出目前系统中已加载的模块的名称及大小等;另我们还可以查看 /proc/modules ,我们一样可以知道系统已经加载的模块;

[root@localhost beinan]# lsmod

2、modinfo 查看模块信息;

    modinfo 可以查看模块的信息,通过查看模块信息来判定这个模块的用途;

    [root@localhost beinan]# modinfo 模块名

    举例:

    [root@localhost beinan]# modinfo ne2k-pci
    filename: /lib/modules/2.6.11-1.1369_FC4/kernel/drivers/net/ne2k-pci.ko
    author: Donald Becker / Paul Gortmaker
    description: PCI NE2000 clone driver
    license: GPL
    parmtype: debug:int
    parmtype: options:array of int
    parmtype: full_duplex:array of int
    parm: debug:debug level (1-2)
    parm: options:Bit 5: full duplex
    parm: full_duplex:full duplex setting(s) (1)
    vermagic: 2.6.11-1.1369_FC4 686 REGPARM 4KSTACKS gcc-4.0
    depends: 8390
    alias: pci:v000010ECd00008029sv*sd*bc*sc*i*
    alias: pci:v00001050d00000940sv*sd*bc*sc*i*
    alias: pci:v000011F6d00001401sv*sd*bc*sc*i*
    alias: pci:v00008E2Ed00003000sv*sd*bc*sc*i*
    alias: pci:v00004A14d00005000sv*sd*bc*sc*i*
    alias: pci:v00001106d00000926sv*sd*bc*sc*i*
    alias: pci:v000010BDd00000E34sv*sd*bc*sc*i*
    alias: pci:v00001050d00005A5Asv*sd*bc*sc*i*
    alias: pci:v000012C3d00000058sv*sd*bc*sc*i*
    alias: pci:v000012C3d00005598sv*sd*bc*sc*i*
    alias: pci:v00008C4Ad00001980sv*sd*bc*sc*i*
    srcversion: 6ACE95F441CD26DF9DC31C2

    上面的例子是我们查看 ne2k-pci 这个模块的信息,通过查看,我们知道ne2k-pci 模块是8029网卡(PCI NE2000 clone driver)的驱动;模块是位于 /lib/modules/2.6.11-1.1369_FC4/kernel/drivers/net/ 中ne2k-pci.ko

    我们现在常用的网卡也有8139的,8139网卡所用的驱动是 8139too ;查查看?

    [root@localhost beinan]# modinfo 8139too

    我们再查查vfat 和ntfs 的模块信息;

    [root@localhost beinan]# modinfo vfat
    [root@localhost beinan]# modinfo ntfs

    自己尝试一下;

    注意: 模块名是不能带有后缀的,我们通过modprobe -l 所看到的模块,都是带有.ko 或.o后缀;

3、modprobe 挂载新模块以及新模块相依赖的模块

    modprobe 我们常用的功能就是挂载模块,在挂载某个内核模块的同时,这个模块所依赖的模块也被同时挂载;当然modprobe 也有列出内核所有模块,还有移除模块的功能;下在我们举个例子说一说咱们常用的功能和参数;

    modprobe [-v] [-V] [-C config-file] [-n] [-i] [-q] [-o ] [parameters...]
    modprobe -r [-n] [-i] [-v] ...
    modprobe -l -t [ -a ...]

    上面是modprobe 的用法,具体更为详细的帮助,我们可以查看 man modprobe ;

    [root@localhost beinan]# modprobe -c

    modprobe -c 可以查看modules 的配置文件,比如模块的别名是什么等;

    [root@localhost beinan]# modprobe -l

    modprobe -l 是列出内核中所有的模块,包括已挂载和未挂载的;通过modprobe -l ,我们能查看到我们所需要的模块,然后根据我们的需要来挂载;其实modprobe -l 读取的模块列表就位于 /lib/modules/'uname -r' 目录中;其中uname -r 是内核的版本;

    [root@localhost beinan]# uname -r
    2.6.11-1.1369_FC4
    [root@localhost beinan]# ls /lib/modules/2.6.11-1.1369_FC4/

    通过上面的命令,自己试试看?

    [root@localhost beinan]# modprobe 模块名 注:挂载一个模块;

    举例:

    [root@localhost beinan]# modprobe ne2k-pci 注:挂载 ne2k-pci 模块;
    [root@localhost beinan]# modprobe vfat 注:挂载vfat 模块
    [root@localhost beinan]# modprobe ntfs 注:挂载ntfs 模块
    [root@localhost beinan]# lsmod 注:列出已挂载模块, 我们会看到ne2k-pci ,vfat ,ntfs的模块 ;

    注意: 模块名是不能带有后缀的,我们通过modprobe -l 所看到的模块,都是带有.ko 或.o后缀;

    [root@localhost beinan]# modprobe -r 模块名 注:移除已加载的模块,和rmmod 功能相同;

    注意: 模块名是不能带有后缀的,我们通过modprobe -l 所看到的模块,都是带有.ko 或.o后缀;

    [root@localhost beinan]# modprobe -r 模块名

    举例:

    [root@localhost beinan]# modprobe -r ne2k-pci

    就说这么多吧,更为详细的还是用 man modprobe 来查看和尝试;

4、rmmod 移除已挂载模块;

    命令格式:

    rmmod 模块名

    注意: 模块名是不能带有后缀的,我们通过modprobe -l 所看到的模块,都是带有.ko 或.o后缀;

    举例:

    [root@localhost beinan]# rmmod vfat 注:移除已挂载的模块vfat

5、depmod 创建模块依赖关系的列表

    这个模块管理工具是创建模块依赖关系的列表,有几个参数我们注意一下就行了,目前的Linux 发行版所用的内核是2.6x版本,是自动解决依赖关系,所以这个命令知道就行了;模块之前也有依赖关系,比如我们想驱动USB 移动硬盘,目前有两种驱动,一种是udev ,在内核中有,但目前不太稳定;另一种办法是用usb-storage驱动,而usb-storage 依赖的模块是scsi 模块,所以我们要用usb-storage 的模块,也得把scsi 编译安装;

    再举个例子:sata的硬盘,在Linux中的设备表示的是/dev/sd* ,比如 /dev/sda,/dev/sdb 等... 系统要驱动 sata硬盘,则需要把sata在内核中选中,或编译成模块,或内置于内核之中,在此同时,还需要在内核中选中ide ,scsi 的支持等;

    depmod 工具的洋文原意:depmod — program to generate modules.dep and map files.(我译的:为modules.dep 文件或映射文件创建依赖关系)

    [root@localhost beinan]# depmod -a 注:为所有列在/etc/modprobe.conf 或/etc/modules.conf 中的所有模块创建依赖关系,并且写入到modules.dep文件;
    [root@localhost beinan]# depmod -e 注:列出已挂载但不可用的模块;
    [root@localhost beinan]# depmod -n 注:列出所有模块的依赖关系,但仅仅是输出出来 (Write the dependency file on stdout only)

   注:modules.dep 位于 /lib/modules/内核版本目录

    比如 Fedora Core 4.0 中,系统默认的内核:

    [root@localhost beinan]# ls /lib/modules/2.6.11-1.1369_FC4/modules.dep
    /lib/modules/2.6.11-1.1369_FC4/modules.dep

6、insmod 挂载模块;

    insmod 这个工具,和modprobe 有点类似,但功能上没有modprobe 强,modprobe 在挂载模块是不用指定模块文件的路径,也不用带文件的后缀.o或.ko ;而insmod 需要的是模块的所在目录的绝对路径,并且一定要带有模块文件名后缀的(modulefile.o 或modulesfile.ko );

    对于这个工具,我们只是介绍一下, 并不推荐使用。因为模块有依赖关系,对于新手来说,可能不知道这个模块依赖和哪个模块依赖;

    举例:

    [root@localhost beinan]# insmod /lib/modules/2.6.111.1369_FC4/kernel/drivers/net/tg3.ko

    我们要到 /lib/modules/内核版本 uname -r 的命令输出/kernel/drivers 中找相对应的模块才行,要有绝对路径,而且必须要用到文件名的全称,不能把文件名的后缀省略;

四、与内核模块加载相关的配置文件;

    1、模块的配置文件 modules.conf 或 modprobe.conf

    内核模块的开机自动挂载模块一般是位于一个配置文件,一般的Linux发行版本都有 /etc/modules.conf 或 /etc/modprobe.conf 。比如Fedora Core 4.0 内核模块开机自动加载文件是 /etc/modprobe.conf ;在这个文件中,一般是写入模块的加载命令或模块的别名的定义等;比如我们在modules.conf 中可能会发行类似的一行 ;

    alias eth0 8139too
分享到:
评论

相关推荐

    Linux Mrtg监控主机流量的安装方法

    Linux Mrtg监控主机流量的安装方法

    Linux系统上安装和配置网络设备的方法

    从linux诞生的那一天起,就注定了它的网络功能空前地强大。所以在linux系统中如何配置网络,使其高效,安全的工作就显得...文中从网络设备的安装,网络服务的设置和网络安全性三个方面介绍了linux系统中网络的设置。

    华为智能设备安装Linux、Ubuntu、CentOs的流程方法。

    华为智能设备安装Linux、Ubuntu、CentOs的流程方法。 PDF手册,共162页。

    论文研究-基于Linux内核的USB设备安装管理与实现.pdf

    针对目前桌面Linux操作系统中USB存储设备管理不完善的问题,提出了在内核中实现USB设备的自动安装机制,该方法将设备安装的手动操作转移到了内核中自动实现,避免了用户通过命令手动安装的操作,实现了Linux下USB...

    如何在Linux上安装IBM设备驱动

    如何在Linux上安装IBM设备驱动 在LINUX 上安装IBM 设备驱动,有二个方法: 1. 直接下载已经生成好的: 2. 如果是新的内核, 3.如果在#rpmbuild --rebuild lin_tape-1.xx.0-1.src.rpm.bin 时报出错误,如 4. 安装输出

    Linux中的jdk8以及安装教程.zip

    安装方法:(安装方法资源里面的安装方法放错了,对不起。我现在贴出来) 1.版本:jdk8 2.适用环境:Linux 3.解压命令:tar-zxvf jdk-版本编号-linux-x64.tar.gz 4.在Linux中配置环境变量: 先 sudo vi /etc/profile...

    linux实验.rar

    了解Linux其他版本(红旗Linux或Slackware Linux)的安装方法。 二、实验内容 在实验室计算机上安装Red Hat Linux 9.0操作系统。 三、实验环境 1. 实验工具:Red Hat Linux 9.0(或Linux、Slackware Linux)安装...

    行业分类-设备装置-一种龙芯平台Linux操作系统网络安装方法.zip

    行业分类-设备装置-一种龙芯平台Linux操作系统网络安装方法.zip

    Linux安装教程详细步骤解析,如何做到快速安装.docx

    制作Linux安装盘的方法有很多种,常用的有U盘和光盘。对于U盘制作,您可以使用一些免费的制作工具,例如Rufus、Etcher等。对于光盘制作,您需要使用光盘刻录软件,例如Nero、ImgBurn等。在制作过程中,请确保您的U盘...

    如何制作Linux系统的安装光盘

    本文介绍了可以使用两种方法制作Linux安装磁盘。在M$-DOS下,可以使用专门为其开发的rawrite命令,将boot.img映像文件传输到软盘上;在linux下可以用命令dd,但不要把软驱设备mount入系统。

    LINUX安装与配置简明手册

    本书详细介绍如何在个人电脑上安装配置Caldera和Red Hat两种发行版本的Linux操作系统,并能帮助用户解决安装和配置过程中出现的各种问题。本书既能指导你进行基本的安装步骤,也能指导你定制独具特色的Linux 操作...

    Linux中文手册

    36.Linux下即插即用设备的安装 37.大硬盘安装Linux 38.FTP程式完全使用说明 39.Wordperfect安装指南 40.PPP设置心得 42.Sybase ASE安全“着陆”Linux 43.Apache user's guide 44.Emacs教程中文版 45.Squid...

    linux系统教程

    第二章 Linux设备管理和引导流程 9 2.1 Linux文本编辑器 9 2.2 Linux下安装配置网卡 12 2.2.1 Linux下支持的网络设备 12 2.2.2 以太网网卡 13 2.3 配置显卡 13 2.4 Linux下使用外设 13 2.4.1 文件系统类型、设备名、...

    安装 SUSE Linux Enterprise Server --服务器版

    1.5 不同的安装方法. . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 安装过程7 2.1 从本地可交换驱动器引导. . . . . . . . . . . . . . . . . . . . . . 7 2.2 通过网络安装. . . . . . . . . . . . . . ...

    kali linux安装教程步骤描述与说明.docx

    kali linux安装教程 Kali Linux安装过程中可能遇到的一些常见问题包括: ISO镜像验证问题: 镜像下载不完整或损坏,导致无法正常启动安装程序。解决方法是重新下载官方发布的ISO镜像,并通过MD5或SHA256校验工具...

    Linux服务器配置与管理:Linux磁盘接口及设备命名.pptx

    熟悉:Linux磁盘分区表示方法 【能力目标】 认识磁盘各类接口,能为磁盘分区命名。 【思政目标】 磁盘命名及操作程序来不得半点马虎,培养学生精益求精的工匠精神。 1.1 磁盘的功能及规划管理 1. 什么是磁盘? 1)...

    嵌入式设计及linux驱动开发指南——基于ARM9处理器.pdf

    第7章 Linux设备驱动程序开发 7.1 设备驱动概述 7.1.1 设备驱动和文件系统的关系 7.1.2 设备类型分类 7.1.3 内核空间和用户空间.. 7.2 设备驱动基础 7.2.1 设备驱动中关键数据结构 7.2.2 字符设备驱动开发 ...

    linux安装与配置简明手册

    本书详细介绍如何在个人电脑上安装配置Caldera和Red Hat两种发行版本的Linux操作系统,并能帮助用户解决安装和配置过程中出现的各种问题。本书既能指导你进行基本的安装步骤,也能指导你定制独具特色的Linux 操作...

    U盘装linux系统

    LinuxLive USB Creator是一款可以将Linux操作系统安装到U盘、SD卡等移动设备上的U盘装linux系统工具。该软件简便,界面美观,是一款非常不错的工具。想装Linux系统的用户可以下载使用的。  LinuxLive USB Creator...

    全面剿杀Linux病毒的方法

    不要随便安装来历不明的各种设备驱动程序; 不要在重要的服务器上运行一些来历不明的可执行程序或脚本; 尽量安装防毒软件,并定期升级病毒代码库; 对于连接到 Internet 的 Linux 服务器,要定期检测 Linux 病毒,...

Global site tag (gtag.js) - Google Analytics