linux内核加载
linux下编译运行驱动
嵌入式linux下设备驱动的运行和linux x86 pc下运行设备驱动是类似的,由于手头没有嵌入式linux设备,先在vmware上的linux上学习驱动开发。
按照如下方法就可以成功编译出hello world模块驱动。
1、首先确定本机linux版本
怎么查看Linux的内核kernel版本?
'uname'是Linux/unix系统中用来查看系统信息的命令,适用于所有Linux发行版。配合使用'uname'参数可以查看当前服务器内核运行的各个状态。
#uname -a
Linux whh 3.5.0-19-generic #30-Ubuntu SMPTue Nov 13 17:49:53 UTC 2012 i686 i686 i686 GNU/Linux
只打印内核版本,以及主要和次要版本:
#uname -r
3.5.0-19-generic
要打印系统的体系架构类型,即的机器是32位还是64位,使用:
#uname -p
i686
/proc/version 文件也包含系统内核信息:
# cat /proc/version
Linux version 3.5.0-19-generic(buildd@aatxe) (gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) ) #30-UbuntuSMP Tue Nov 13 17:49:53 UTC 2012
发现自己的机器linux版本是:3.5.0-19-generic
2、下载机器内核对应linux源码
2. 如何在linux内核以静态加载方式添加usb设备
1、静态加载
1)解压内核,修改硬件架构和编译器;
将内核压缩文件linux-2.6.8.1-zzm.tar.bz2解压到/home/sxy/目录下,命令是 ,解压后得到内核源码目录文件linux-2.6.8.1-zzm,进入该目录,编辑Makefile文件,将ARCH改为arm,CROSS_CPMPILE改为arm-linux-
保存后退出。
2)配置内核;
在内核源码树目录下,输入make menuconfig命令,进入内核配置界面,进入“Load an Alternate Configuration File”选项,载入配置文件kernel_2410.cfg,保存退出,过程如下图所示:
再次输入make menuconfig命令,编辑sound选项, 将其编译进内核( * ),最后保存配置,退出。
3)编译内核;
在源码树目录下输入make zImage命令,编译完成后可以在/arch/arm/boot/目录下生成zImage镜像文件。
4)下载内核
将内核镜像文件zImage下载到开发板上,表示驱动加载成功。
3. linux 内核模块加载问题
可以下载模块安装包来安装,但是一定要注意版本完全匹配。
因为有些模块是内核运行不可或缺的,如果你调度都不编,还叫内核吗,就是这样子。
4. linux insmod内核模块加载
内核模块版本不匹配
可以试试强行加载,不一定用的了
没多大副作用,就是模块能用、不能用、勉强用但会崩溃的结果
对系统影响不大
之所以是模块,是有这个用意在里面的
5. linux启动时加载内核到内存中,那这样是不是意味着系统正常启动后就可以把内核删掉了啊(当然就没有办法
恩可以删除掉。
Linux内核可以加载到RAM中,加载的源头可以是硬盘也可以是网络上的某个节点。
如果是硬盘的话,删除掉也没有关系。网络节点的话,拔下网线也没有关系。
但是要注意,文件系统是不允许被你删除掉的。文件系统和内核是两码事。
你想解决什么具体的问题呢?
6. linux怎么加载内核
加载内核?linux系统下的grub里有配置文件menu.lst吧,里边就有启动grub时需要加载的内核。你是说开机后系统如何加载内核吗?.ko文件一般是硬件的驱动,make是针对makefile来用的,makefile配置好编译条件和相关信息,用make就可以执行makefile里的配置。一般是在用源代码安装软件的时候用的,源代码包里通过configure会生成makefile文件
7. 求详细的linux内核启动顺序,和各个模块的加载顺序,优先级等。
1. 加载 BIOS 的硬件信息不迚行自我测试,开依据讴定取得第一个可开机的装置;
2. 读取开执行第一个开机装置内 MBR 的 boot Loader (亦即是 grub, spfdisk 等程序);
3. 依据 boot loader 的讴定加载 Kernel ,Kernel 会开始侦测硬件不加载驱劢程序;
4. 在硬件驱劢成功后,Kernel 会主劢呼叨 init 程序,而 init 会取得 run-level 信息;
5. init 执行 /etc/rc.d/rc.sysinit 档案来准备软件执行的作业环境 (如网络、时区等);
6. init 执行 run-level 的各个朋务乊吪劢 (script 方弅);
7. init 执行 /etc/rc.d/rc.local 档案;
8. init 执行终端机仺真程序 mingetty 来吪劢 login 程序,最后就等待用户登入啦;
8. Linux怎么在系统启动时自动加载内核模块
写入/etc/rc.local
9. 如何让linux内核快速加载模块
把驱动的加载次序设为1,那么内核启动就有限加载这个驱动
你可以去了解一下:__define_initcall
10. linux操作系统中,加载和删除内核模块的命令是什么
加载内模块:在系统 root 用户下运行用户态模块命令装载内核模块