what is linux param
linux param refers to the "module_param" function, which is used to pass command line parameters; programming in user mode can pass command line parameters through the "main()" parameter, while writing a kernel module Pass parameters through "module_param()".
#The operating environment of this tutorial: linux5.9.8 system, Dell G3 computer.
What is linux param?
Usage of module_param in linux driver
Starting from the main function
When we write programs in user mode, we all like to use the if parameter of the main function to pass data to the program
#include <stlib.h> #include <stdio.h> int main(int argc,char **argv) { exit(0); }</stdio.h></stlib.h>
where argc is the number of parameters passed into the program, argv is the parameter passed in, and the first parameter argv[0] is the name of the current file including the path, so the actual number of parameters passed into the program is argc-1.
Passing parameters into the kernel module
There is no main function in the kernel module, so passing parameters into the module can be achieved through the module_param macro definition:
// 原型 #define module_param(name, type, perm) \ module_param_named(name, name, type, perm)
name: Incoming parameter name
type: Incoming parameter type, including byte, short, ushort, int, uint, long, ulong, charp, bool, invbool
perm: This is The access permissions to resources in sysfs will be discussed in detail below. The following permission types are mainly defined in uapi/linux/stat.h
#define S_IRWXU 00700 // 用户读写可执行权限 #define S_IRUSR 00400 // 用户读权限 #define S_IWUSR 00200 // 用户写权限 #define S_IXUSR 00100 // 用户可执行权限 #define S_IRWXG 00070 // 用户组读写可执行权限 #define S_IRGRP 00040 // 用户组读权限 #define S_IWGRP 00020 // 用户组写权限 #define S_IXGRP 00010 // 用户组可执行权限 #define S_IRWXO 00007 // 其他人可读写执行权限 #define S_IROTH 00004 // 其他人可读权限 #define S_IWOTH 00002 // 其他人可写权限 #define S_IXOTH 00001 // 其他人可执行权限
Module code writing:
#include <linux> int num = 100; module_param(num,int,S_IRUSR); static int __init param_init(void) { printk("[%s] num = %d\r\n",__FUNCTION__,num); return 0; } static void __exit param_exit(void) { printk("[%s] num = %d\r\n",__FUNCTION__,num) } module_init(param_init); module_exit(param_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Chen");</linux>
Makefile file:
ifneq ($(KERNELRELEASE),) obj-m:=param.o else KERNEL_DIR:=/lib/modules/$(shell uname -r)/build CURRENT_DIR:=$(shell pwd) ccflags-y:=-std=gnu99 -Wno-declaration-after-statement all: $(MAKE) -C $(KERNEL_DIR) M=$(CURRENT_DIR) modules clean: $(MAKE) -C $(KERNEL_DIR) M=$(CURRENT_DIR) clean endif
Compile the program, install the module, and then dmesg
After the module is installed, a folder corresponding to the module name will be generated in the /sys/module folder, and enter the folder
Enter the folder, there will be num from the previous program in the parameters folder inside the folder
It can be seen from the picture that the kernel will generate corresponding files in the file system for users to access, and the perm in the module_param macro definition in the module sets the user's read-only permission, so the num file permissions correspond to it.
Of course, you can also set writable permissions to change the value of the input parameter. After the change, the parameter in the kernel module will change but there will be no information prompt.
Related recommendations: "Linux Video Tutorial"
The above is the detailed content of what is linux param. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











The five basic components of the Linux system are: 1. Kernel, 2. System library, 3. System utilities, 4. Graphical user interface, 5. Applications. The kernel manages hardware resources, the system library provides precompiled functions, system utilities are used for system management, the GUI provides visual interaction, and applications use these components to implement functions.

VS Code One-step/Next step shortcut key usage: One-step (backward): Windows/Linux: Ctrl ←; macOS: Cmd ←Next step (forward): Windows/Linux: Ctrl →; macOS: Cmd →

To view the Git repository address, perform the following steps: 1. Open the command line and navigate to the repository directory; 2. Run the "git remote -v" command; 3. View the repository name in the output and its corresponding address.

Although Notepad cannot run Java code directly, it can be achieved by using other tools: using the command line compiler (javac) to generate a bytecode file (filename.class). Use the Java interpreter (java) to interpret bytecode, execute the code, and output the result.

There are six ways to run code in Sublime: through hotkeys, menus, build systems, command lines, set default build systems, and custom build commands, and run individual files/projects by right-clicking on projects/files. The build system availability depends on the installation of Sublime Text.

The main uses of Linux include: 1. Server operating system, 2. Embedded system, 3. Desktop operating system, 4. Development and testing environment. Linux excels in these areas, providing stability, security and efficient development tools.

To install Laravel, follow these steps in sequence: Install Composer (for macOS/Linux and Windows) Install Laravel Installer Create a new project Start Service Access Application (URL: http://127.0.0.1:8000) Set up the database connection (if required)

Installing Git software includes the following steps: Download the installation package and run the installation package to verify the installation configuration Git installation Git Bash (Windows only)
