Linux操作系统内核启动参数详细解析
Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。
如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。
Linux的内核参数是以空格分开的一个字符串列表,通常具有如下形式:
name[=value_1][,value_2]...[,value_10]
“name”是关键字,内核用它来识别应该把“关键字”后面的值传递给谁,也就是如何处理这个值,是传递给处理例程还是作为环境变量或者抛给“init”。值的个数限制为10,你可以通过再次使用该关键字使用超过10个的参数。
首先,内核检查关键字是不是 `root=',`nfsroot=', `nfsaddrs=', `ro', `rw', `debug'或 `init',然后内核在bootsetups数组里搜索于该关键字相关联的已注册的处理函数,如果找到相关的已注册的处理函数,则调用这些函数并把关键 字后面的值作为参数传递给这些函数。比如你在启动时设置参数name=a,b,c,d,内核搜索bootsetups数组,如果发现“name”已注册, 则调用“name”的设置函数如name_setup(),并把a,b,c,d传递给name_setup()执行。
所有型如“name=value”参数,如果没有被上面所述的设置函数接收,将被解释为系统启动后的环境变量,比如“TERM=vt100”就会被作为一个启动时参数。
所有没有被内核设置函数接收也没又被设置成环境变量的参数都将留给init进程处理,比如“single”。
常用的设备无关启动时参数。
1、init=...
设置内核执行的初始化进程名,如果该项没有设置,内核会按顺序尝试/etc/init,
/bin/init,/sbin/init, /bin/sh,如果所有的都没找到,内核会抛出 kernel panic:的错误。
2、nfsaddrs=...
设置从网络启动时NFS的启动地址,已字符串的形式给出。
3、nfsroot=...
设置网络启动时的NFS根名字,如果该字符串不是以 "/"、","、"."开始,默认指向“/tftp-boot”。
以上2、3在无盘站中很有用处。
4、no387
该选项仅当定义了CONFIG_BUGi386时才能用,某些i387协处理器芯片使用32位的保护模式时会有BUG,比如一些浮点运算,使用这个参数可以让内核忽略387协处理器。
5、no-
相关文档:
http://blog.csdn.net/linucos/archive/2010/01/22/5223615.aspx
Linux
移植开发
准备工作:
准备
交叉编译工具链:这里我们选择DENX软件工程提供的ELDK交叉编译环境,参考地址:http://ftp.denx.de/pub/eldk/4.2/
,
我们使用其中的一套工具。准备工作步骤如下:
1. 建立工作文件夹NewMsg2410,并建立子目录sources ......
转自:http://blog.csdn.net/panyuequn/archive/2009/12/07/4958454.aspx
版权声明:本文版权所属 Tx7do@上海半丁,可以随意复制传播,但是表把版权给扔啦=。=
操作系统系统:Ubuntu6,g++
软件版本:cppunit-1.10.2.tar.gz
(1)获得源码:
到cppunit.sourceforge.net上下载源代码。将其复制到到l ......
在win主机上用ipconfig查看VMnet8的IP地址,
一般是192.168.X.1/255.255.255.0,
此时VMnet8的设置应该是自动获取IP,现在改成静态IP,并把此IP直接填入VMnet8里,不设网关。
同时在VM网络设置里的NAT项中查看VMnet8,一般是192.168.X.2/255.255.255.0
这个地址就是VMnet8,NAT的网关
现在在LINUX下把网卡I ......
Linux内核版本有两种:稳定版和开发版.稳定的内核具有工业级的强度,可以广泛地应用和部署.新的稳定内核相对于较旧的只是修正一些bug或加入一些新的驱动程序.而开发版内核由于要试验各种解决方案,所以变化很快.这两种版本是相互关联,相互循环的.
Linux内核的命名机制:
num.nu ......