570
文章
·
27876
阅读
570
文章
·
27876
阅读

有125人阅读过 使用debian编译威联通的驱动
发布于2023/09/12 更新于2023/09/28
[ 教程仅保证更新时有效,请自行测试。]

需要文件:

debian系统包

X86_64开发工具包(toolchain x86)

ARM开发工具包(toolchain arm64)

内核文件包(QTS_Kernel)

image.png

  1. 安装debian8系统

  2. 使用winscp登录debian,注意要用root账号

  3. 修改debian系统的apt源,文件路径路径/etc/apt/sources.list

    image.png

    内容替换为:

  4. 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
  5. ctrl+P,打开ssh工具,或使用其他第三方ssh工具连接debian,使用以下命令,安装所需软件

  6. 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
  7. 在home文件夹创建工作目录

  8. mkdir /home/pcp5
  9. 复制工具链和开发包到此目录,工具链一个文件,5.1的开发包是分卷打包的,有两个文件,需要同时复制进去

    image.png

  10. 切换至工作目录

  11. cd /home/pcp5
  12. 解码工具链,解压后目录名称GPL_QTS,文件名称中有空格,所以下面的命令中有“\ "格式化空格

  13. # x86
    tar -xvf Cross\ Toolchain\ SDK\ \(x86\)\ 20180115.tar.gz
    # arm64
    tar -xvf Cross\ Toolchain\ SDK\ \(arm64\).tar.gz
  14. 解压开发包,解压后目录名称x86_64-QNAP-linux-gnu

  15. cat QTS_Kernel_5.1.0.20230808.tar.gz.* | tar -zx
  16. 在目录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

    image.png

    image.png

  17. 切换到编译目录

  18. cd GPL_QTS/src/linux-5.10
  19. 复制配置文件,注意修改型号,型号可在/home/pcp5/GPL_QTS/kernel_cfg目录查看

  20. # 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

    image.png

  21. 选择需要编译的内容

  22. 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

    image.png


    image.png

    image.png

    image.png

    image.png

    image.png

    image.png

    image.png

    * 一键激活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
  23. 配置编译环境,直接复制,在ssh里执行即可。

  24. # 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
  25. 编译驱动,4核大概1分钟,-j4中4指调用几核进行编译,不加此参数默认单核编译。

  26. make clean
    make modules -j4

    只编译指定驱动,可使用M参数指定驱动目录

    make modules M=./drivers/hwmon -j4

    image.png

  27. 编译好的驱动文件在/home/pcp5/GPL_QTS/src/linux-5.10/drivers里对应的目录里,后缀名为ko,温控传感器驱动同时需要依赖文件hwmon-vid.ko,即此文件和传感器驱动要一起用。

    image.png

  28. 编译系统引导时,同时把依赖文件和驱动文件加进去就行,系统会自动按顺序先加载依赖,再加载驱动。


注: 如果加载编译好的温控驱动读取到的温度有误差的话,可以在对用的*.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);

image.png

文章对你有帮助吗?
  • 一般[0]
  • 很赞[0]
  • 没用[0]
  • 垃圾[0]
  • 无语[0]

继续阅读:

扫一扫,手机浏览手机访问本站