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

    内核编译前准备工作: 

    1. 准备好开发环境

       

       Server Platform Development

       Development Tools

    yum groupinstall Development Tools ; yum groupinstall Server Platform Development

    2.获取目标主机硬件设备相关信息

        cpu:

    cat /proc/cpuinfo        #查看cpu信息
     x86info
    yum install x86info    #需安装后使用
    lscpu

         pci:

    lspci                    #显示所有pci设备信息
        -v               #显示详细的信息
        -vv              #显示更详细的信息
    lsusb                   #显示usb设备信息
        -v                #同lspci
        -vv
    lsblk                    #显示块设备信息
        -a                #显示所有

        全部的硬件设备:

        # hal-device

    3.获取内核源码

    # wget  -r).tar.xz

    4.安装图形依赖包

    # yum install ncurses ncurses-devel

    5.安装虚拟屏幕

    # yum install screen

    简单依据模板文件的内核编译过程

    # tar xf linux-3.10.67.tar.xz -C /usr/src
            #将下载好的内核解压至/usr/src目录中
    # cd /usr/src
            #编译命令使用相对路径,所以要cd至该目录下
    # ln -sv linux-3.10.67 linux
            #创建内核链接文件,此处的linux为链接名
    # cd linux
            #编译命令使用相对路径,所以要cd至该目录下
    # cp /boot/config-$(uname -r) ./.config
            #复制/boot目录下config模板至当前目录下
    # make menuconfig
            #以文本窗口配置内核选项,在此处开启或关闭内核或模块
    # screen
            #开启虚拟屏幕,因编译不确定性,且时间较长,所以开启它吧
    # make -j #
            #编译内核,#为以几个核心进行编译
    # make modules_install
            #安装内核模块
    # make install
            #安装内核
    # init6
            #重启后进入grub可选择内核进入系统了哦

    常见报错信息

    drivers/tty/serial/built-in.o: final close failed: No space left on device
    make[3]: *** [drivers/tty/serial/built-in.o] Error 1
    make[2]: *** [drivers/tty/serial] Error 2
    make[1]: *** [drivers/tty] Error 2
    make: *** [drivers] Error 2

    此类报错为磁盘空间不足,解决方案为扩展磁盘容量,或将/usr挂载至独立分区

    ERROR: modinfo: could not find module vmware_balloon

    此类报错为在虚拟机安装时产生,无须理会

     

    编译扩展

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

    # cd /usr/src/linux        #编译命令使用相对路径,所以要cd至该目录下
    # make dir/                #dir为你需要编译的某目录

    2.只编译一个特定的模块

    # cd /usr/src/linux        
    # make dir/file.ko         #指定某目录下具体的模块,以.ko结尾

    3.编译的目标平台与当前平台不相同

    # make ARCH=平台名字

    4.要获取特定目标平台的使用帮助

    # make ARCH=平台名字 help

    5.如何在已经执行过编译操作的内核源码树做重新编译

    # make clean:清理大多数编译生成的文件,但会保留config文件等
    # make mrproper:清理所有编译生成的文件,config及某些备份文件
    # make distclean:mrproper,patches以及编辑器备份文件

    附:screen命令用法

    1.打开新的screen

    # screen

    2.退出并关闭screen

    # exit

    3.剥离当前screen

    # ctrl+a,d

    4.显示所有已经打开的screen

    #  screen -ls

    5.恢复screen:通过ls查看的ID号恢复

    screen -r [SESSION]
  • 相关阅读:
    UVALive 7141 BombX
    CodeForces 722D Generating Sets
    CodeForces 722C Destroying Array
    CodeForces 721D Maxim and Array
    CodeForces 721C Journey
    CodeForces 415D Mashmokh and ACM
    CodeForces 718C Sasha and Array
    CodeForces 635C XOR Equation
    CodeForces 631D Messenger
    田忌赛马问题
  • 原文地址:https://www.cnblogs.com/jym1/p/8073051.html
Copyright © 2011-2022 走看看