安装驱动及其 shell基础命令
2010-09-01 17:47
525 查看
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 程式所建立。
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 程式所建立。
相关文章推荐
- 【shell编程基础3】shell编程的组合应用之二:管道及其命令
- 1.6: linux基础命令及其软件安装
- Linux学习(二十一)Shell基础(一)认识shell、命令历史、命令补全、别名、通配符、管道符与前后台控制
- Redis 入门(配置安装+基础命令)
- RHCE课程-RH033Linux基础笔记二之安装LINUX及常用命令介绍
- Linux安装与基础命令
- Linux基础 -- shell命令
- [shell基础]——split命令
- [shell基础]——tr命令
- Shell基础命令之echo
- 常用的shell命令汇总,夯实Linux基础
- CM安装好集群之后在shell命令下执行hive 或者hbase操作遇到权限问题的解决方法
- Linux发行版的基础目录名称、命令法则及其功能规定
- docker 应用-1(安装以及基础命令)
- shell脚本---构建基础脚本和结构化命令
- Python之Fabric模块 Fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:
- Windows Server 2008 R2 Server Core常用命令及其安装
- 常用的shell命令汇总 Linux基础
- Shell 命令行接口及基础命令
- shell脚本基础3-函数及常用命令