zoukankan      html  css  js  c++  java
  • Linux内核编译

    下载源码文件

      linux官网:https://www.kernel.org/

      mainline:测试版

      stable:稳定版

    安装开发包组

      yum groupinstall "development tools"

    .config:准备文本配置文件

      借助已经编译好的内核特性,5000多个特性,个人进行选择工作量太大

      boot目录下:

        vmlinuz里存放一些最基础的文件,大部分的放在/lib/modules/

        config文件里确定了哪些文件放哪里,y表示在vmlinuz,m表示独立文件在modules文件夹里

    make menuconfig:配置内核选项   

       这步可以使用其他的方法实现:    

          make config  以命令行便利的方法去配置内核中的每个选项

          make gconfig  基于GTK环境窗口界面配置

          make xconfig  基于QT环境的窗口界面

          make defconfig  默认参数配置

          make allyesconfig  所有选项均回答yes

          make allnoconfig  所有选项均回答no

    make [-j #]
    make modules_install:安装模块
    make install :安装内核相关文件
      安装bzImage为/boot/vmlinuz-VERSION-RELEASE
      生成initramfs文件
      自动编辑grub的配置文件

    完整的编译操作过程:

      rz 将文件移动到/app

      tar  xvf   linux-4.19.8.tar.xz       解压生成linux-4.19.8文件夹

      cd linux-4.19.8         进入文件夹进行操作

      cp /boot/config-3.10.0-693.el7.x86_64   /app/linux-4.19.8/.config   将本机centos7里的config文件拷贝过来并命名为.config,利用本系统的配置进行修改,减少工作量

      yum  -y  grouplist  "development tools"

      make menuconfig            进入图形化菜单进行内核功能选择   这个命令修改的就是.config文件

      修改虚拟机CPU数量,尽量调高,编译会花费很多时间

      make -j 4       开始编译 ,并使用4个cpu核心

      make modules_install   安装模块文件,路径在本机/usr/lib/modules/4.19.8-1.0-liulinux

      make install      安装内核文件

        将会在本机的/boot目录下生成

            vmlinuz-4.19.8-1.0-liulinux

            initramfs-4.19.8-1.0-liulinux.img

            自动编辑grub配置文件  

      reboot

    编译:

      全编译:make [-j #]

      编译内核的一部分功能:

        1)、只编译某子目录中的相关代码

          cd /app/linux-4.19.8

          make PATH/

        2)、只编译特定的模块

          cd /app/linux-4.19.8

          make PATH/file.ko

          例如:只为e1000编译驱动

          make drivers/net/ethernet/intel/e1000/e1000.ko

    在已经执行过编译操作的内核源码树做重新编译,需要实现做清理操作

      make clean:清理大多数编译生成的文件,但会保留config文件等

      make mrproper:清理所有编译生成的文件,cofnig以及某些备份文件

      make distclean:mrproper、ptches以及编辑器备份文件

    卸载内核

      删除/lib/modules/目录下不需要的内核库文件
      删除/usr/src/linux/目录下不需要的内核源码
      删除/boot目录下启动的内核和内核映像文件
      更改grub的配置文件,删除不需要的内核启动列表

    练习:

    1、破解root口令,并为grub设置保护功能
    2、破坏本机grub stage1,而后在救援模式下修复之
    3、删除vmlinuz和initramfs文件后无法启动,两种方法恢复之
    4、增加新硬盘,在其上制作能单独运行kernel和bash的系统
    5、在U盘上定制linux,使其可启动系统,并具有网络功能
    6、删除/etc/fstab和/boot目录的所有文件,并恢复之
    7、编译安装kernel,启用支持ntfs文件系统功能

  • 相关阅读:
    打印九九乘法表
    PAT (Basic Level) Practice (中文) 1091 N-自守数 (15分)
    PAT (Basic Level) Practice (中文)1090 危险品装箱 (25分) (单身狗进阶版 使用map+ vector+数组标记)
    PAT (Basic Level) Practice (中文) 1088 三人行 (20分)
    PAT (Basic Level) Practice (中文) 1087 有多少不同的值 (20分)
    PAT (Basic Level) Practice (中文)1086 就不告诉你 (15分)
    PAT (Basic Level) Practice (中文) 1085 PAT单位排行 (25分) (map搜索+set排序+并列进行排行)
    PAT (Basic Level) Practice (中文) 1083 是否存在相等的差 (20分)
    PAT (Basic Level) Practice (中文) 1082 射击比赛 (20分)
    PAT (Basic Level) Practice (中文) 1081 检查密码 (15分)
  • 原文地址:https://www.cnblogs.com/tony3154/p/10091036.html
Copyright © 2011-2022 走看看