永发信息网

编译linux内核时 make modules有啥用?

答案:4  悬赏:0  手机版
解决时间 2021-03-28 06:13
  • 提问者网友:你挡着我发光了
  • 2021-03-27 17:04
编译linux内核时 make modules有啥用?
最佳答案
  • 五星知识达人网友:七十二街
  • 2021-03-27 17:33
下载到板子启动的内核zImage
选择(*)编译到zImage里面,开机加载
选择(M)则不会编译到zImage,编译成模块后(make modules)需要的时候,insmod module_name
make modules是编译模块,很多驱动还有功能在选的时候选成M的都是modules,不过直接make,不加任何参数,就是make all,包含make modules。不用额外加此make,但是在安装的时候make install只是安装bzimage,Systemmap。没有把modules安装好,还要额外的make modules_install,把模块放到/lib/modules文件夹一个和内核名一样的文件夹下,并且运行depmod生成模块依赖关系文件,系统启动时加载模块就是从dep里面读取信息加载模块。
全部回答
  • 1楼网友:拾荒鲤
  • 2021-03-27 20:21
不放以前的系统里放什么地方?另一台计算机里?之后你这个机器启动时自己跑到那台计算机上要数据启动完后,在自己跑回来?
initrd 是内核启动的一个虚拟的磁盘。作用是在 Linux 内核启动时,不直接进入硬盘上的 root 分区,而是进入内存里面的虚拟的 root 分区。
这个用意是当内核不能直接读取硬盘时(比如用了内核没有自带的驱动的硬盘、分区。或者 root 分区在网络上)。那么就可以用 initrd 里面的驱动来过渡进入正确的 root ,或者干脆就停在 initrd 模拟的内存盘里面。
PS:我编译内核都是 make xconfig ; make ; make modules_install ; make install
前3个不解释,最好一个其实就是吧编译好的内核复制到 /boot 里面。并且根据这个目录里面的某些特点。进行一些操作。
  • 2楼网友:胯下狙击手
  • 2021-03-27 19:22
make modules是编译模块,很多驱动还有功能在选的时候选成M的都是modules,不过直接make,不加任何参数,就是make all,包含make modules。不用额外加此make,但是在安装的时候make install只是安装bzimage,Systemmap。没有把modules安装好,还要额外的make modules_install,把模块放到/lib/modules文件夹一个和内核名一样的文件夹下,并且运行depmod生成模块依赖关系文件,系统启动时加载模块就是从dep里面读取信息加载模块。
  • 3楼网友:千夜
  • 2021-03-27 18:14
下载到板子启动的内核zImage
选择(*)编译到zImage里面,开机加载
选择(M)则不会编译到zImage,编译成模块后(make modules)需要的时候,insmod module_name
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯