Skip to content

Commit

Permalink
网卡驱动
Browse files Browse the repository at this point in the history
  • Loading branch information
storyxc committed Feb 19, 2024
1 parent 206bc7a commit 1bd9630
Showing 1 changed file with 107 additions and 2 deletions.
109 changes: 107 additions & 2 deletions docs/linux/env/Ubuntu-server.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# Ubuntu-server



## 关闭欢迎提示

` chmod -x /etc/update-motd.d/*`
Expand Down Expand Up @@ -37,3 +35,110 @@ partprobe #重新读取分区表并更新分区信息
resize2fs /dev/sdXX #调整文件系统的大小
```

## 内核模块加载

> 最近打算给home server换一块瑞昱的2.5G网卡(8125b芯片),所以想提前安装下网卡驱动,执行官网那个autorun.sh脚本前也没仔细看,
> 结果脚本直接把原来的8169网卡驱动卸载了,导致机器直接失联。还好脚本里有备份,所以只需要恢复回去就行了。
> ```shell
> #!/bin/sh
> # SPDX-License-Identifier: GPL-2.0-only
>
> # invoke insmod with all arguments we got
> # and use a pathname, as insmod doesn't look in . by default
>
> TARGET_PATH=$(find /lib/modules/$(uname -r)/kernel/drivers/net/ethernet -name realtek -type d)
> if [ "$TARGET_PATH" = "" ]; then
> TARGET_PATH=$(find /lib/modules/$(uname -r)/kernel/drivers/net -name realtek -type d)
> fi
> if [ "$TARGET_PATH" = "" ]; then
> TARGET_PATH=/lib/modules/$(uname -r)/kernel/drivers/net
> fi
> echo
> echo "Check old driver and unload it."
> check=`lsmod | grep r8169`
> if [ "$check" != "" ]; then
> echo "rmmod r8169"
> /sbin/rmmod r8169
> fi
>
> check=`lsmod | grep r8125`
> if [ "$check" != "" ]; then
> echo "rmmod r8125"
> /sbin/rmmod r8125
> fi
>
> echo "Build the module and install"
> echo "-------------------------------" >> log.txt
> date 1>>log.txt
> make $@ all 1>>log.txt || exit 1
> 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 $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 "DEPMOD $(uname -r)"
> depmod `uname -r`
> echo "load module $module"
> modprobe $module
>
> is_update_initramfs=n
> distrib_list="ubuntu debian"
>
> if [ -r /etc/debian_version ]; then
> is_update_initramfs=y
> elif [ -r /etc/lsb-release ]; then
> for distrib in $distrib_list
> do
> /bin/grep -i "$distrib" /etc/lsb-release 2>&1 /dev/null && \
> is_update_initramfs=y && break
> done
> fi
>
> if [ "$is_update_initramfs" = "y" ]; then
> if which update-initramfs >/dev/null ; then
> echo "Updating initramfs. Please wait."
> update-initramfs -u -k $(uname -r)
> else
> echo "update-initramfs: command not found"
> exit 1
> fi
> fi
>
> echo "Completed."
> exit 0
> ```
```shell
# 进入网卡驱动目录
cd /lib/modules/$(uname -r)//kernel/drivers/net/ethernet/realtek
# 恢复备份
mv r8169.bak r8169.ko
# 加载模块
insmod r8169.ko
# 验证是否加载
lsmod | grep r8169
# 更新模块依赖关系
depmod `uname -r`
# 更新initramfs
update-initramfs -u -k $(uname -r)
```

0 comments on commit 1bd9630

Please sign in to comment.