linux模块加载原理(linux模块加)-冯金伟博客园

linux操作系统中,加载和删除内核模块的命令是什么?

modprobe命令 Linux命令:modprobe 。 功能说明:自动处理可载入模块。 语  法:modprobe 。 补充说明:modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。 内容

1、modprobe 命令是根据depmod -a的输出/lib/modules/version/modules.dep来加载全部的所需要模块。

2、删除模块的命令是:modprobe -r filename。

3、系统启动后,正常工作的模块都在/proc/modules文件中列出。使用lsmod命令也可显示相同内容。

4、在内核中有一个“Automatic kernel module loading”功能被编译到了内核中。当用户尝试打开某类型的文件时,内核会根据需要尝试加载相应的模块。/etc/modules.conf或 /etc/modprobe.conf文件是一个自动处理内核模块的控制文件。 modprobe命令主要用于在Linux 2.6内核中加载和删除Linux内核模块。通过此命令用户可以轻松地加载和删除Linux内核模块,同时使用此命令加载Linux内核模块时,Linux内核会自动解决内核模块之间的依赖关系,将相互依赖的模块自动加载,如下所示: 1) 加载RAID1阵列级别模块: # modprobe raid1 2) 显示已加载的RAID1阵列级别模块: # lsmod |grep raid1 raid1 25153 0 3) 删除RAID1阵列级别模块: # modprobe -r raid1 4) 显示RAID1阵列级别模块: # lsmod |grep raid1 modprobe命令在加载模块时会自动解决依赖的模块。当加载的模块需依赖另一个模块时,系统会自动将此模块加载。而当用户使用insmod命令加载模块时,则不会自动解决相对应的依赖模块。 modprobe命令中的”-r”参数表示删除指定模块,”-c”参数表示显示/etc/modprobe.conf配置文件的参数,”-C”参数表示指定内核配置文件,”-f”表示覆盖,”-l”表示显示模块的绝对路径。 # modprobe -l|grep raid /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid0.ko /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid456.ko /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid1.ko /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid10.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/aacraid/aacraid.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mbox.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mm.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_sas.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/raid_class.ko 以上命令表示显示系统中所有的编译模块,并过滤包含有raid字符串的模块。

如何获知linux是否支持内核模块动态加载?

希望能帮到你, 用EXPORT_SYMBOL_GPL 声明一下。

向delay()都有标准函数,不需要自己写。

linuxubuntu显卡驱动安装方法?

在ubuntu下安显卡驱动

第一步:首先检查显卡驱动是否安装好,运行

glxinfo|head,如果显示”directrendering:Yes”,则已安装。如果没有的话自然是到nvidia官网站根据显卡型号下载对应的驱动,放在个人主目录。

第二步:删除原来的驱动包,运行:sudoapt-get–puregeremovenvidia-glxnvidia-glx-new,然后删除/lib/linux-restricted-modules/2.6.31-14-generic/(由于系统可能更新过,后面的数字可能不一样按“TAB”键就可以)文件夹下面带有NVIDIA字样的内容,这里是内核自带的驱动,再检查一下这两个文件是否存在,/etc/init.d/nvidia-glx和/etc/init.d/nvidia-kernel,如果存在,删除掉。

第三步:安装编译环境

sudoapt-getinstallbuild-essentialpkg-configxserver-xorg-devlinux-headers-`uname-r`

第四步:备份,运行以下命令

sudocp/etc/default/linux-restrcted-modules-common/etc/default/linux-common/etc/default/linux-restricted-modules-common.backup

sudocp/etc/X11/xorg.conf/etc/X11/xorg.conf.backup

第五步:用以下的命令禁止系统使用默认的驱动

sudogedit/etc/default/linux-restricted-modules-common

在最后的双引号中添加nvnvidia_new

第六步:按Ctrl+Alt+F1,登陆后停止GDM进程:sudo/etc/init.d/gdmstop,然后进入准备好的驱动所在目录(用ls命令确认文件在不在)

sudoshNVIDIA-linux-x86-173.14.22-pkg1.run

在安装过程中,如果提示有旧驱动,询问是否删除,选择YEs;如果提示缺少某模块(modules),询问是否上网下载,选No;如果提示将要修改Xorg.conf,询问是否允许,选Yes;接下来就是等待安装完成

之后回到终端重启GDM

sudo/etc/init.d/gdmstart

python使用paramiko模块ssh远程linux服务器,linux服务器已经使用公钥认证免密码登陆,请问怎么写?

1. 可密码、公私钥认证,实现sftp文件上传下载

2. 脚本见:https://github.com/kute/purepythontest/blob/master/test/netease/scripts/sftp_downloader.py

3. 使用:

a. 显示命令行帮助:python sftp_downloader.py -h

b. 运行:python sftp_downloader.py -u zhangsan -p password -pk my-openssh-private-key -sf my-server-list-file-path -srcf the-file-name-to-be-download -dd the-file-dir-to-save –vote

c. 可把 b中的命名设置成alias(windows平台我用的Cmder终端,可设置alias),使用就简单了

4. 脚本说明:

a. argparse模块 使用接收命令行参数,然后分别设置 –vote –tie –follow来区分要下载不同类型的服务器日志与传不同的日志路径

b. easylog模块,自己封装的日志模块

c. gevent,对文件中的多个服务器地址使用协程 来加快下载

d. paramiko模块,核心使用,ssh连接认证

e. 只封装了下载,上传、执行服务器命令等可以自己再扩展

d. 当前只是为了满足方便使用,有很多地方可以调和纠错,指正。