概述
上一节,我们讲述了Linux驱动开发的基本的模块代码编写和手动执行模块加载的操作, 这一节,我们讲述嵌入式设备上使用Sysvint引导方式下如何开机自动加载模块的步骤。感兴趣的同学看下使用systemd引导方式的开启自动加载模块的步骤
操作步骤
1、拷贝编译好的内核模块
将上一节编译好的内核模块helloworld.ko文件,放置到文件系统lib/modules/5.10.170-rt83目录下,如下所示:
注: 这里只是一个演示操作,由于文件是脱离内核源码树开发的,放置的位置不规范,下一节,我们讲述如何将驱动代码加入linux源码树进行编译部署。
2、编写开始初始化脚本
编写开机初始化脚本S10modules文件,添加加载helloworld文件的命令,如下所示:
#!/bin/shcase "$1" instart)printf "Starting load kernel modules: "modprobe helloworld;;stop);;*)echo "Usage: $0 {start|stop}"exit 1;;
esac
exit 0
3、将开机脚本拷贝到etc/init.d目录下,如下所示:
4、启动验证
执行完上述步骤后,启动linux系统,在系统初始化过程中,可以看到helloworld模块的输出信息:
总结
本文主要讲述了如何在嵌入式arm Linux系统中sysvinit引导方式的开机自动加载驱动模块的步骤。
工程链接
https://gitee.com/yanl1229/Taurus_Linux.git