zoukankan      html  css  js  c++  java
  • 安装驱动及其 shell基础命令

    lnsmod r8168.ko

     

    sh~~jiaoben~~~autorun~~

     

    #!/bin/sh

    # invoke insmod with all arguments we got
    # and use a pathname, as insmod doesn't look in . by default

     

    # 'uname –r'  列出当前的版本号

    TARGET_PATH=/lib/modules/`uname -r`/kernel/drivers/net
    echo
    echo "Check old driver and unload it."
    check=`lsmod | grep r8169`
    #查询当前挂载的程序是否有r8169---这是另一个版本的驱动程序

    if [ "$check" != "" ]; then
            echo "rmmod r8169"

    #移除这个版本的驱动程序
            /sbin/rmmod r8169
    fi

    check=`lsmod | grep r8168`
    if [ "$check" != "" ]; then
            echo "rmmod r8168"

    #如果已经安装,则重新安装
            /sbin/rmmod r8168
    fi

    echo "Build the module and install"
    echo "-------------------------------" >> log.txt
    #把当前时间信息输出到log.txt当中

    date 1>>log.txt

    #把编译过程的信息输出到log.txt当中,如果出错则返回1
    make all 1>>log.txt || exit 1

    #下面这3个谁帮我解释一下?
    module=`ls src/*.ko`
    module=${module#src/}
    module=${module%.ko}

    if [ "$module" == "" ]; then
        echo "No driver exists!!!"
        exit 1
    elif [ "$module" != "r8169" ]; then

    #为什么是这个?if test -e
        if test -e $TARGET_PATH/r8169.ko ; then
            echo "Backup r8169.ko"
            if test -e $TARGET_PATH/r8169.bak ; then
                i=0
                while test -e $TARGET_PATH/r8169.bak$i
                do
                    i=$(($i+1))
                done
                echo "rename r8169.ko to r8169.bak$i"
                mv $TARGET_PATH/r8169.ko $TARGET_PATH/r8169.bak$i
            else
                echo "rename r8169.ko to r8169.bak"
                mv $TARGET_PATH/r8169.ko $TARGET_PATH/r8169.bak
            fi
        fi
    fi

    echo "Depending module. Please wait."

    ##重点1
    depmod -a
    echo "load module $module"
    #重点2

    modprobe $module

    echo "Completed."
    exit 0

    ###注意

    insmod 与 modprobe 都是载入 kernel module,不过一般差别于 modprobe 能够处理 module 载入的相依问题。

    比方你要载入 a module,但是 a module 要求系统先载入 b module 时,直接用 insmod 挂入通常都会出现错误讯息,不过 modprobe 倒是能够知道先载入 b module  后才载入 a module,如此相依性就会满足。

    不过 modprobe 并不是大神,不会厉害到知道 module 之间的相依性为何,该程式是读取 /lib/modules/2.6.xx/modules.dep 档案得知相依性的。而该档案是透过 depmod 程式所建立。 

  • 相关阅读:
    caffe:mac10.12安装caffe的步骤
    查找两个链表的共同子链表
    golang:1.并发编程之互斥锁、读写锁详解
    git问题汇总
    有用的技术工具
    maven 安装本地jar包到本地maven仓库
    win7下Hadoop学习 之 Cygwin下载、安装、配置
    简单目录备份脚本
    2021年01月28日微博热搜汇总
    2021年01月26日微博热搜汇总
  • 原文地址:https://www.cnblogs.com/xianqingzh/p/1815107.html
Copyright © 2011-2022 走看看