有125人阅读过
使用debian编译威联通的驱动
发布于2023/09/12 更新于2023/09/28
[ 教程仅保证更新时有效,请自行测试。]
[ 教程仅保证更新时有效,请自行测试。]
需要文件:
X86_64开发工具包(toolchain x86)
ARM开发工具包(toolchain arm64)
内核文件包(QTS_Kernel)
安装debian8系统
使用winscp登录debian,注意要用root账号
修改debian系统的apt源,文件路径路径/etc/apt/sources.list
内容替换为:
ctrl+P,打开ssh工具,或使用其他第三方ssh工具连接debian,使用以下命令,安装所需软件
在home文件夹创建工作目录
复制工具链和开发包到此目录,工具链一个文件,5.1的开发包是分卷打包的,有两个文件,需要同时复制进去
切换至工作目录
解码工具链,解压后目录名称GPL_QTS,文件名称中有空格,所以下面的命令中有“\ "格式化空格
解压开发包,解压后目录名称x86_64-QNAP-linux-gnu
在目录GPL_QTS/src/linux-5.10下找到文件cflag_kernel_qnap.mk,
打开此文件,里面有两行参数,
在CFLAGS_KERNEL_QNAP参数后面加上-DCONFIG_QND_FNOTIFY_MODULE,然后再复制每行参数,粘贴到同目录里makefile文件中对用的参数后面,不能换行
* CFLAGS_KERNEL_QNAP 对应 CFLAGS_KERNEL
* CFLAGS_MODULE_QNAP 对应 CFLAGS_MODULE
* 5.1在474/471行,4.2在366/363行,4.12在373/371行
* 开头的型号不重要,不需要改
* 或直接用修改好的文件覆盖:
Makefile.rar
切换到编译目录
复制配置文件,注意修改型号,型号可在/home/pcp5/GPL_QTS/kernel_cfg目录查看
选择需要编译的内容
配置编译环境,直接复制,在ssh里执行即可。
编译驱动,4核大概1分钟,-j4中4指调用几核进行编译,不加此参数默认单核编译。
编译好的驱动文件在/home/pcp5/GPL_QTS/src/linux-5.10/drivers里对应的目录里,后缀名为ko,温控传感器驱动同时需要依赖文件hwmon-vid.ko,即此文件和传感器驱动要一起用。
编译系统引导时,同时把依赖文件和驱动文件加进去就行,系统会自动按顺序先加载依赖,再加载驱动。
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
apt-get install build-essential apt-get install libncurses-dev apt-get install bison apt-get install flex apt-get install libssl-dev apt-get install libelf-dev apt-get install libncurses5-dev apt-get install bc apt-get install dialog apt-get install dpkg-dev apt-get install autocon
mkdir /home/pcp5
cd /home/pcp5
# x86 tar -xvf Cross\ Toolchain\ SDK\ \(x86\)\ 20180115.tar.gz
# arm64 tar -xvf Cross\ Toolchain\ SDK\ \(arm64\).tar.gz
cat QTS_Kernel_5.1.0.20230808.tar.gz.* | tar -zx
cd GPL_QTS/src/linux-5.10
# x86 cp ../../kernel_cfg/TS-X72/linux-5.10-x86_64.config .config
# arm64 cp ../../kernel_cfg/TS-X42/linux-5.10-arm64.config .config
make menuconfig
* 先在 Device Drivers 下,取消 Generic Target Core Mode的选
* 按空格键加选或减选,需要编译的按到[M]
* 然后save保存后再退出
目录:(连按两次esc返回上级目录,左右切换底部选项)
- 网卡:
Device Drivers/Network device support/Ethernet driver support/Realtek devices/8168
../Intel(R)...
- 温控传感器:
Device Drivers/Hardware Monitoring support/ITE IT87XX and compatibles
../Novoton NCT****
* nct系列传感器加载驱动成功,但温控数据在hwmon0目录,不在hwmon0/device的话,需要使用修正过路径的*.c文件替换源文件。
修正过的文件:nct6775.rar,文件位置:/home/pcp5/GPL_QTS/src/linux-5.10/drivers/hwmon
* 一键激活it87编译
sed -i 's/# CONFIG_SENSORS_IT87 is not set/CONFIG_SENSORS_IT87=m/' .config
* 一键激活nct6775编译
sed -i 's/# CONFIG_SENSORS_NCT6775 is not set/CONFIG_SENSORS_NCT6775=m/' .config
# x86 export PATH=$PATH:../../../x86_64-QNAP-linux-gnu/cross-tools/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../../x86_64-QNAP-linux-gnu/cross-tools/bin/lib export CROSS_COMPILE=x86_64-QNAP-linux-gnu- export ARCH=x86_64
# arm64 export PATH=$PATH:../../../aarch64-QNAP-linux-gnu/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../../aarch64-QNAP-linux-gnu/lib export CROSS_COMPILE=aarch64-QNAP-linux-gnu- export ARCH=arm64
make clean make modules -j4
只编译指定驱动,可使用M参数指定驱动目录
make modules M=./drivers/hwmon -j4
注: 如果加载编译好的温控驱动读取到的温度有误差的话,可以在对用的*.c文件进行修正:
修正值=摄氏度*1000
return sprintf(buf, "%d\n", TEMP_FROM_REG(data->temp[nr][index]));
改成
return sprintf(buf, "%d\n", TEMP_FROM_REG(data->temp[nr][index]) - 20000);
- 一般[0]
- 很赞[0]
- 没用[0]
- 垃圾[0]
- 无语[0]