〇、linux常用命令
《Linux入门与基础》课程教案_小王小王指定辉煌的博客-CSDN博客_linux入门与基础教案
linux常用命令笔记(二)_小王小王指定辉煌的博客-CSDN博客
一、下载源码
查看系统版本号
uname -r
uname -a
cat /proc/version
或`/lib/modules/`下文件夹的名字(但是可能有多个)。
下载源码(旧版本链接如下):
http://old.kali.org/kali/pool/main/l/linux/
二、安装源码
sudo dpkg -i <package_name.deb>
安装的源码位置
/usr/src/
解压对应的package_name.tar.xz
xz -d package_name.tar.xz
tar -zxvf package_name.tar
进入目录
cd /usr/src/linux-source-5.10
ls
三、编译mt76文件夹驱动
进入目录,已有的驱动源码如下:
cd drivers/net/wireless/
cd mediatek/mt76
打开并编辑Makefile,末尾处添加:
vim Makefile
# 末尾处 Add 如下:
# 在Makefile的最后添加以下命令
# 如果你是在运行平台上编译的,你可以直接用下面这一行,来动态的找到平台的Linux版本编译模块所需的目录
# KERNEL_DIR = /lib/modules/`uname -r`/build
KERNEL_DIR = /lib/modules/5.13.0-40-generic/build
MODULEDIR := $(shell pwd)
modules:
make -C $(KERNEL_DIR) M=$(MODULEDIR) modules
# 原文链接:https://blog.csdn.net/LITTENg/article/details/124617311
无权限保存则先执行:
sudo chmod 777 *
编译可能需要的包:(可选项)
apt-get install Autoconf
开始编译:
sudo make
如下:
得到kernel object:
mt76.ko mt76-usb.ko mt76x02-lib.ko mt76x02-usb.ko
四、编译mt76x2
同样:
先 vim Makefile,
末尾添加内容,
再sudo make
编译过程如图:
五、若报include的错:
这里用其他驱动举例:
1. 找到该缺失的文件位置,可能会在上一级目录,下一级目录,兄弟目录,兄弟include目录,libxx目录中。实在找不到,退到父文件夹,右键,在当前文件夹里搜索。
2. 根据报错信息提示路径,找到报错文件使用mousepad打开
3. 计算出要被include的文件关于出错文件libcxgb_cm.h的相对位置,并修改
include<>里面一般是库文件,include ""是相对路径下的文件
故修改前后如下:
需要chmod再保存。
4. sudo make重现编译
(此错误估计和gcc有关,可能出现多处include错误,尚未寻找定义include<>位置的比较好的修改方法,目前是改源码的include,亲测可以解决。)
六:安装驱动
1. 直接安装目标驱动报错如下:
sudo insmod *.ko
sudo insmod mt76x2u.ko
原因是缺少依赖模块
2. 查找依赖模块
3.依次查找依赖并安装,最终以正确顺序安装即可
sudo modprobe mac80211
sudo modprobe cfg80211
sudo insmod mt76.ko
cd mt76x2
sudo insmod mt76x02-lib
sudo insmod mt76x2-common
sudo insmod mt76-usb
sudo insmod mt76x02-usb
sudo modprobe usbcore
sudo insmod mt76x2u.ko
mac80211
cfg80211
mt76.ko
mt76x02-lib
mt76x2-common
mt76-usb
mt76x02-usb
usbcore
mt76x2u.ko