当前位置:  技术问答>linux和unix

简单问题,在线等待,linux启动时的参数有哪些,怎么用?

    来源: 互联网  发布时间:2014-11-19

    本文导语:  linux启动时的参数有哪些,怎么用? | vga=788设置显示分辨率。 | 转载 Linux内核编程(启动参数)  2000-08-25 23:11  发布者:netbull 阅读次数:591   6.启动参数  在以前的许多例子...

linux启动时的参数有哪些,怎么用?

|
vga=788设置显示分辨率。

|
转载

Linux内核编程(启动参数) 
2000-08-25 23:11 

发布者:netbull 阅读次数:591  


6.启动参数 
在以前的许多例子里,我们要把一些东西强制地写入内核模块,比如/proc文件名或设备主码,以至我们可以用ioctl’s处理它。这样句违背了Unix以及Linux的原则:写用户可以自由设定的灵活程序。 
在程序或者内核模块启动之前通知它一些消息是通过命令行参数做到的。在内核模块的情况下,我们没有argc和argv参数,而是有更好的东西。我们可以在内核模块里定义全局变量,insmod会给我们赋值。 
在这个内核模块中,我们定义了两个变量:str1和str2。你需要做的只是编译内核模块,然后运行str1=xxx str2=yyy。当调用init_module时,str1将指向串xxx,str2将指向串yyy。 
在2.0版对这些参数没有类型检查。如果str1和str2的第一个字符是数字,内核就会把这些变量赋为整数,而不是指向串的指针。这在实际情况中你一定要检查类型。 
另一方面,在2.2版本中,你可以使用宏MACRO_PARM告诉insmod你需要一个参数,它的名字和类型。这样解决了类型问题,并且允许内核模块接收以数字开始的串。 
ex param.c 

/* param.c 

* Receive command line parameters at module installation 
*/ 

/* Copyright (C) 1998-99 by Ori Pomerantz */ 





/* The necessary header files */ 

/* Standard in kernel modules */ 
#include /* Were doing kernel work */ 
#include /* Specifically, a module */ 

/* Deal with CONFIG_MODVERSIONS */ 
#if CONFIG_MODVERSIONS==1 
#define MODVERSIONS 
#include 
#endif 


#include /* I need NULL */ 


/* In 2.2.3 /usr/include/linux/version.h includes a 
* macro for this, but 2.0.35 doesnt - so I add it 
* here if necessary. */ 
#ifndef KERNEL_VERSION 
#define KERNEL_VERSION(a,b,c) ((a)*65536+(b)*256+(c)) 
#endif 



/* Emmanuel Papirakis: 

* Prameter names are now (2.2) handled in a macro. 
* The kernel doesnt resolve the symbol names 
* like it seems to have once did. 

* To pass parameters to a module, you have to use a macro 
* defined in include/linux/modules.h (line 176). 
* The macro takes two parameters. The parameters name and 
* its type. The type is a letter in double quotes. 
* For example, "i" should be an integer and "s" should 
* be a string. 
*/ 


char *str1, *str2; 


#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0) 
MODULE_PARM(str1, "s"); 
MODULE_PARM(str2, "s"); 
#endif 


/* Initialize the module - show the parameters */ 
int init_module() 

if (str1 == NULL || str2 == NULL) { 
printk("Next time, do insmod param str1="); 
printk("str2=n"); 
} else 
printk("Strings:%s and %sn", str1, str2); 

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0) 
printk("If you try to insmod this module twice,"); 
printk("(without rmmodingn"); 
printk("it first), you might get the wrong"); 
printk("error message:n"); 
printk("symbol for parameters str1 not found.n"); 
#endif 

return 0; 



/* Cleanup */ 
void cleanup_module() 



    
 
 

您可能感兴趣的文章:

  • 100分,等待,在线等待:防火墙问题?
  • linux下的vi中的乱码问题(急急急,在线等待!!!!!!,解决问题给高分)
  • 关于信号问题,在线等待
  • 等待回执造成的信息堵塞问题
  • linux下 SOCKET 通信问题(在线等待,急!!!)
  • FreeBSD安装问题!(在线等待)
  • 安装问题 急!!!在线等待
  • 有关liunx启动的问题?在线等待!!!
  • jsp小问题(在线等待)
  • 在线等待!cmp的问题
  • 在线等待,简单问题!
  • 关于等待某个事件的问题
  • 父进程的等待问题
  • iptables 问题 在线等待!!
  • openSuSE11远程桌面应用问题,在线等待!
  • 关于JavaBean 和标签库Tag的问题???在线等待谢谢各位老大的帮助!来者有分!!
  • 在线等待,linux,windows2000,安装问题!满分赠!
  • Linux下的JBuilder问题?(在线等待!)
  • 再线等待,我的问题:
  • 有关硬盘参数的死问题,100分! iis7站长之家
  • 问一个关于在shell中调用内置命令时参数的问题?参数从空格处被断开
  • shell参数问题 if [ x$current == x$required ]; 中参数前的x是什么意思
  • 关于参数的小问题!非常菜的问题!
  • 函数参数入栈顺序以及参数地址间隔的问题
  • 有关硬盘参数的死问题,100分!
  • 关于gcc -fno-strict-prototype 参数的问题
  • 编译参数问题,初学者的问题,请多帮忙
  • Linux0.11 内核源码 main函数的参数问题
  • 请教高手glade中的参数问题
  • corba枚举类型参数传递问题?(大笨鸟问题)
  • ### shell awk 参数问题!! --- 急啊 ----
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 有关于开发板“从nfs启动”和“从开发板本地盘启动”的问题
  • lunix下,用java在代码中启动另外一个进程遇到的问题,新启动的进程被阻塞.
  • windows7和Ubuntu10.04双系统启动问题,到了grub菜单但是无法启动windows7
  • 紧急问题:我启动一个java程序之后用ps一看,为和显示我启动了多个程序?然后我kill-9第一个pid之后,又全部没了
  • 系统启动的问题,多重系统的问题
  • 新手问题,安装完turbolinux7后启动,满屏的01不断翻滚,无法进入,但我用引导盘可以启动,一切正常,请问如何解决?
  • 新手问题,关于liux安装启动的问题。
  • rhel启动过程问题
  • LINUX和WINDOWS启动问题
  • 守护程序启动的怪问题
  • Redhat Linux 7.32 启动问题,急!
  • 大家好,求助linux启动问题,谢谢。
  • 关于启动加载的问题
  • TurboLinux8中自启动服务的问题
  • 启动portmap时有问题,各位大侠帮忙分析下哪里出了问题
  • 应用程序自启动的问题.
  • 蓝点启动问题
  • 关于linux启动问题(急)
  • 双系统启动,出问题!
  • xmlBLASTER自动启动问题
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 简单问题简单问题简单问题简单问题
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 小问题,急问题,重大问题!!!
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • 八个问题帮你快速了解Docker
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • nginx Windows版相关问题及使用说明


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3