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]
  • 相关阅读:
    编程语言最终的目标
    浅谈编程语言的类型系统
    编程语言的五大系统
    Java Array、List、Set互相转化
    java 集合类 列表
    Java检查异常、非检查异常、运行时异常、非运行时异常的区别
    java 的枚举变量只能使用枚举常量来初始化--带有关联数据的枚举
    观察与思考

    种田与投资
  • 原文地址:https://www.cnblogs.com/jym1/p/8073051.html
Copyright © 2011-2022 走看看