安裝驅動及其 shell基礎命令

來源:互聯網
上載者:User

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 程式所建立。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.