There is a linux moduel of hello world. #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void){ printk(KERN_ALERT "Hello, world/n"); return 0; } static void hello_exit(void){ printk(KERN_ALERT "Good bye, cruel world/n"); } module_init(hello_init); module_exit(hello_exit); How to get parameter from command line? #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/stat.h> MODULE_LICENSE("GPL"); MODULE_AUTHOR("LM"); static short int myshort = 1; static int myint = 420; static long int mylong = 9999; static char *mystring = "blah"; /* * module_param(foo, int, 0000) * The first param is the parameters name * The second param is it's data type * The final argument is the permissions bits, * for exposing parameters in sys fs(if non-zero)at a later stage. */ module_param(myshort, short, S_IUSR | S_IWUSR | S_IRGRP | S_IWGRP); MODULE_PARAM_DESC(myshort, "A short integer"); module_param(myint, int, S_IUSR | S_IWUSR | S_IRGRP | S_IROTH); MODULE_PARAM_DESC(myint, "An integer"); module_param(mylong, long, S_IUSR); MODULE_PARAM_DESC(mylong, "A long integer"); module_param(mystring, charp, 0000); MODULE_PARAM_DESC(mystring, "A character string"); static int __init parm_init(){ printk(KERN_ALERT "/n========/n"); printk(KERN_ALERT "myshort is a short integer: %hd/n", myshort); printk(KERN_ALERT "myint is an integer: %d/n", myint); printk(KERN_ALERT "mylong is a long integer: %ld/n", mylong); printk(KERN_ALERT "mystring is a string: %s/n", mystring); return 0; } static void __exit parm_exit(){ printk(KERN_ALERT "Goodbye, world/n"); } module_init(parm_init); module_exit(parm_exit); To put the parameters from command line, use the following command. root# insmod hello-5.o mystring="bebop" mybyte=255 myintArray=-1
2008 May 6th Tuesday (五月 六日 火曜日)
最新推荐文章于 2021-03-24 17:56:44 发布