linux kernel 内核编译

题记:今天装docker,提示我最好用3.10以上的内核

一.环境

1.1 系统环境

[[email protected] kernels]# lsb
lsblk        lsb_release  
[[email protected] kernels]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 6.5 (Final)
Release:        6.5
Codename:       Final

1.2 当前内核版本

Display all 259 possibilities? (y or n)
[[email protected] kernels]# more /proc/version 
Linux version 2.6.32-431.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013

二.安装

2.1 获取高版本内核,并解压到/usr/src/kernels

网址:https://www.kernel.org/

cd /root/soft
wget  
cd /usr/src/kernels
tar -xJvf /root/soft/linux-3.10.87.tar.xz

2.2 编译&安装

A:进入内核目录,执行make menuconfig 修改编译配置文件

[[email protected] kernels]# cd linux-3.10.87/
[[email protected] linux-3.10.87]# pwd
/usr/src/kernels/linux-3.10.87
[[email protected] linux-3.10.87]# make menuconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/lxdialog/checklist.o
  HOSTCC  scripts/kconfig/lxdialog/inputbox.o
  HOSTCC  scripts/kconfig/lxdialog/menubox.o
  HOSTCC  scripts/kconfig/lxdialog/textbox.o
  HOSTCC  scripts/kconfig/lxdialog/util.o
  HOSTCC  scripts/kconfig/lxdialog/yesno.o
  HOSTCC  scripts/kconfig/mconf.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/zconf.lex.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/mconf
scripts/kconfig/mconf Kconfig
#
# using defaults found in /boot/config-2.6.32-431.el6.x86_64
#
/boot/config-2.6.32-431.el6.x86_64:497:warning: symbol value ‘m‘ invalid for X86_INTEL_PSTATE
/boot/config-2.6.32-431.el6.x86_64:565:warning: symbol value ‘m‘ invalid for PCCARD_NONSTATIC
/boot/config-2.6.32-431.el6.x86_64:2730:warning: symbol value ‘m‘ invalid for MFD_WM8400
/boot/config-2.6.32-431.el6.x86_64:2731:warning: symbol value ‘m‘ invalid for MFD_WM831X
/boot/config-2.6.32-431.el6.x86_64:2732:warning: symbol value ‘m‘ invalid for MFD_WM8350
/boot/config-2.6.32-431.el6.x86_64:2745:warning: symbol value ‘m‘ invalid for MFD_WM8350_I2C
/boot/config-2.6.32-431.el6.x86_64:2747:warning: symbol value ‘m‘ invalid for AB3100_COR

注意:此处我的系统是64位,所以要选用64-bit kernel

然后保存,检查配置文件  .config

[[email protected] linux-3.10.87]# ls -al
总用量 684
drwxrwxr-x   23 root root   4096 8月  20 14:39 .
drwxr-xr-x.   4 www  root   4096 8月  20 14:16 ..
drwxrwxr-x   32 root root   4096 8月  17 11:52 arch
drwxrwxr-x    3 root root   4096 8月  17 11:52 block
-rw-r-----    1 root root 119834 8月  20 14:39 .config
-rw-rw-r--    1 root root  18693 8月  17 11:52 COPYING
-rw-rw-r--    1 root root  95317 8月  17 11:52 CREDITS
drwxrwxr-x    4 root root   4096 8月

B:编译 make all 这一步 执行的时间很长,我这边有一个小时左右

[[email protected] linux-3.10.87]# pwd
/usr/src/kernels/linux-3.10.87
[[email protected] linux-3.10.87]# make all

C: 安装模块

[[email protected] linux-3.10.87]# make modules_install

D:执行make install

[[email protected] linux-3.10.87]# make install
sh /usr/src/kernels/linux-3.10.87/arch/x86/boot/install.sh 3.10.87 arch/x86/boot/bzImage                 System.map "/boot"
ERROR: modinfo: could not find module xt_MARK
ERROR: modinfo: could not find module ipt_MASQUERADE
ERROR: modinfo: could not find module iptable_nat
ERROR: modinfo: could not find module nf_nat
ERROR: modinfo: could not find module vmhgfs
ERROR: modinfo: could not find module vsock
ERROR: modinfo: could not find module vmware_balloon
ERROR: modinfo: could not find module vmci
[[email protected] linux-3.10.87]#

报错了

暂时未解决

参考文章:http://blog.itpub.net/27771627/viewspace-1256552

http://smilejay.com/2013/11/kernel-install-error-could-not-find-module/

时间: 2024-10-20 12:38:43

linux kernel 内核编译的相关文章

自制linux和内核编译

自制linux和内核编译 1.分区并创建文件系统 fdisk /dev/sdb分两个必要的分区/dev/sdb1对应/boot /dev/sdb2对应根/mkfs.ext4 /dev/sdb1mkfs.ext4 /dev/sdb2 2.挂载boot mkdir/mnt/bootmount /dev/sdb1 /mnt/boot 3.安装grub grub-install --root-directory=/mnt  /dev/sdb 4.建立grub.conf: vim /mnt/boot/gr

【转】Linux CentOS内核编译:下载CentOS源码、编译2.6.32-220的错误(apic.c:819 error 'numi_watchdog' undeclared)

一.下载CentOS源码 1.1 查看CentOS版本 cat /etc/issue 1.2 查看Linux内核版本 uname -r 1.3 下载 文件名:kernel-2.6.32-220.el6.src.rpm 下载地址:http://vault.centos.org/6.2/os/Source/SPackages/ 官网:http://vault.centos.org/ 1.4 从kernel-2.6.32-220.el6.src.rpm获取源码 1. rpm -i kernel-2.6

Linux 跨内核编译驱动

在UBuntu12.04 内核版本3.2.0-29-generic-pae,编译UBuntu14.04内核版本为3.13.0-32-generic的驱动.首先要搭建编译环境. 1.安装相应的内核文件: apt-get install kernel-headers-`uname -r` uname -r : 需要替换为3.13.0-32-generic2 .编译驱动文件 make -C /usr/src/linux-headers-3.13.0-32-generic/ M=`pwd` clean

Linux之内核编译基础概念

内核组成部分 1.Kernel 2.Kernel Object 3.ramdisk 查看kernel版本 uname 管理kernel object工具 lsmod modinfo modprobe insmod rmmod depmod 与ramdisk相关的工具 mkinitrd dracut 启动流程 POST->boot sequence->bootloader->加载kernel->只读方式挂载root->init->运行系统初始化脚本->默认运行级别-

谢烟客---------Linux之内核编译及LFS制作

内核组成.内核优化.内核编译步骤:开发环境.硬件信息.展开到源码树.内存特性设定.编译 屏幕:在一个终端上,为多个进程,开启多个使用接口. 何谓交叉编译:目标代码非当前平台 有10天没有学习了,去做了LFS,当然得感谢我"瑞哥",学习Linux的导师,www.mykernel.cn , 要不是他告诉我说,选对发行版本和LFS手册很关键,否则很难一次成功的. 前3天就是不懂,好不容易编译到gcc,呀!失败了,..... 心得:体验就够了,没有必要花时间在LFS制作之上,完全浪费时间. 1

使用linux kernel代码编译perf工具

环境:Qemu + ARMv8 perf是一款综合性分析工具,大到系统全局性性能,再小到进程线程级别,甚至到函数及汇编级别. 在内核源码目录下执行编译脚本: #!/bin/bash cross_compile=aarch64-linux-gnu- make CROSS_COMPILE=$cross_compile ARCH=arm64 defconfig make CROSS_COMPILE=$cross_compile ARCH=arm64 menuconfig make CROSS_COMP

Embeded linux之内核编译错误警告汇总

错误A: WARNING: drivers/spi/hi_spi.o(.data+0x0): Section mismatch in reference from the variable hi_spi_platform_driver to the function .init.text:hi_spi_probe()The variable hi_spi_platform_driver referencesthe function __init hi_spi_probe()If the refe

嵌入式 Linux开发Kernel移植(二)——kernel内核配置和编译

嵌入式 Linux开发Kernel移植(二)--kernel内核配置和编译 本文选择linux 2.6.35.7版本kernel进行实践. 一.linux kernel源码目录分析 Kbuild,Kernel Build,管理内核编译的文件 Makefile,kernel工程的Makefile. arch,体系架构,arch目录下的子目录存放的是不同种类的架构 block,块设备,一般是存储设备,存放的块设备管理的相关代码 crypto,加密相关,存放加密算法实现代码 Documentation

嵌入式 Linux开发Kernel移植(一)——kernel内核简介

嵌入式 Linux开发Kernel移植(一)--kernel内核简介 一.Linux Kernel 1.linux kernel简介 Linux kernel是芬兰黑客 Linus Torvalds 1991年在英特尔x86架构上用C语言开发的自由免费的符合POSIX标准的类Unix操作系统. Linux kernel是一个一体化内核(monolithic kernel)系统,提供硬件抽象层.磁盘及文件系统控制.多任务等功能的系统软件,不是一套完整的操作系统. 内核空间与用户空间是程序执行的两种