4.1 什么是内核

内核是操作系统内核的简称,内核负责实现操作系统的核心功能,包括资源管理模块,譬如内 存管理、调度系统等等。内核不包括应用程序。对于 linux 内核而言全世界是有一份内核,我们可 以去 www.kernel.org 下载最新的版本。

  当然由于 linux 内核的模块化设计,linux 配置时可裁剪,可以实现模块化编译和安装。但是源 头都是一样的,接下来我们要编译的内核就是经过配置后的 linux 内核。

4.1.1 内核与驱动的关联

  首先驱动是内核的一部分,它是内核中的硬件设备管理模块。驱动既可以在编译阶段融入内核, 也可以在内核启动后动态加载。驱动工作在内核态。驱动如果出问题可能使得整个操作系统系统崩, 溃。所以驱动程序漏洞会使内核不安全。

4.1.2 内核与应用程序的关联

应用程序不属于内核,而是在内核之上。内核就是为应用程序提供底层资源管理,为应用程序 服务,应用程序通过内核定义的 API 接口来实现功能。应用程序工作在用户态,应用程序的崩溃不 会导致操作系统的崩溃。当内核配上应用程序之后,就是普通意义上的操作系统了。对于 linux 内 核而言有很多操作系统,如 ubuntu、redhat、suse、centos 等等,我们一般将其称之为操作系统的发 行版。

4.1.3 内核与根文件系统的关联

  根文件系统用于管理磁盘,我们只用创建文件或文件夹。往其内部写入内容,而不必管这些内 容存放到磁盘的那个扇区,以及扇区的操作。内核启动完成之后回去加载根文件系统。

4.2 内核的配置过程

  和 uboot 一样内核的,内核在编译之前需要配置。而且会进行两次不同的配置。首 先我们先去下载配置好的 zynq 内核源码。下载地址为: http://pan.baidu.com/s/1mhDXpxu

4.2.1 第一次配置过程 digilent_zed_defconfig

  首先,将源码拷贝到虚拟机下(必须是用户的根目录下,开始我是copy到了home/Documents下但但是不成功)。输入解压命令: sudo tar zxvf linux-digilent-3.6-digilent-13.01.tar.gz 得到 linux-digilent-3.6-digilent-13.01 文件夹,此后进入该文件夹。先查看一下 Makefile 文件。

  得到 linux-digilent-3.6-digilent-13.01 文件夹,此后进入该文件夹。先查看一下 Makefile 文件。 看到 194 行:

 194 export KBUILD_BUILDHOST :=$(SUBARCH)

 195  ARCH     ?=$(SUBARCH)

 196 CROSS COMPILE  ?=$(CONFIG_CORSS_COMPILE:"%"=%)

这里的 ARCH 变量和 CROSS_COMPILE 变量并没有写死。我们在配置的时候可以给这两个变 量进行赋值。 在配置之前需输入清空命令: makedistclean 这条命令确保整个文件是干净的,避免一些莫名其妙的错误,警告。 接着在 linux-digilent-3.6-digilent-13.01 文件夹下输入配置命令: make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- digilent_zed_defconfig 这一步配置的主要目的是产生.config 文件,如果最后出现:configuration writtento .config 这句 话,就证明我们的操作是正确的。如果没有出现这句话,就有错误。 由于命令是字符串匹配的,所以一定要注意输入的正确性。

4.2.2 第二次配置过程 menuconfig

  

在第一次配置完成之后,才可以进行这次的配置,我们输入命令(同样是在 inux-digilent-3.6-digilent-13.01 文件夹下): make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- menuconfig 在输入该命令之后,你可能遇到如下错误: *** Unable to find the ncurses libraries or the *** required header files. *** 'make menuconfig' requires the ncurses libraries. *** *** Install ncurses (ncurses-devel) and try again.
导致该错误的原因是 ncurses 库没装,所以输入命令:

  apt-get install libncurses5-dev

再次输入 menuconfig 配置命令: make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- menuconfig

当输入这条命令之后,你可能遇到一个错误提示:

  Your display is too small to run Menuconfig!

  It must be at least 19 lines by 80 columns.

   make[1]: *** [menuconfig] Error 1

   make: *** [menuconfig] Error 2

  这时,因为菜单的显示需要一个比较大的面积,而此时你的屏幕显示区域太小。解 决方案一般有两个:   方案 1、让终端界面全屏显示。如果还是不行,使用方案 2

  方案 2、把字体调小。

  再次输入: make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- menuconfig

  这次会弹出一个菜单界面,我们通过方向键操控这个界面

  通过这个菜单,我们可以将 PmodOLED 驱动从内置驱动,改成加载内核模块的方式。 下面我们就配置菜单完成这一过程。 首先,通过上下方向键,将光标移动到 Device Driver

然后回车,显现新的界面,移动光标值最后一行,选择 PMOD Support

然后回车,选择 PmodOLED1,并且将*号处的改成 M

然后回车。之后通过左右方向键,选择< Exit >,最后提示是否保存配置,选择 Yes

到这里配置过程结束。

4.3 内核的编译过程

  比起配置过程,编译过程就很简单,只需在 linux-digilent-3.6-digilent-13.01 文件夹下输入命令, make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- 即可

等上 3 到 10 分钟编译即可完成,最后在 linux-digilent-3.6-digilent-13.01/arch/arm/boot/ 文件夹下 得到最终的 zImage 文件。

cp: omitting directory”错误的解释和解决办法

解决办法:递归copy:cp -r 源目标文件 目的文件夹

Ubuntu 中Could not open lock file /var/lib/dpkg/lock - open (13:Permission denied)

E:Could not open lock file /var/lib/dpkg/lock - open (13:Permission denied)

E:Unable to lock the administration directory (/var/lib/dpkg/),are you root?

解决办法:(但是这种办法自己尝试了并不是可行,先留着吧!)

sudo rm -rf /var/lib/dpkg/lock

sudo rm -rf /var/cache/apt/archives/lock

sudo apt-get update

最后运行:sudo dpkg --configure -a  重新配置(系统会提醒) 。

linux下内核的配置和编译(2017-1-17)的更多相关文章

  1. 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)

    深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...

  2. Linux下Redis服务器安装配置

    说明:操作系统:CentOS1.安装编译工具yum install wget  make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel ...

  3. Linux下SVN服务器安装配置及客户端安装说明

    原文地址:http://wenku.baidu.com/link?url=h3dVAMx4azpOXEND5HQEE6nliE8-zc0GSQ03yv4cUs1vXMALXF64UsK7kT7kXm_ ...

  4. linux下golang的配置

    linux下golang的配置 之前开发golang一直在windows下,今天在linux下试了一下 ,遇到一些梗,比如go 找不到 sync包.花了一小时全部解决,把过程记录一下. 安装 go 我 ...

  5. 转载-Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  6. Linux下PHP安装配置MongoDB数据库连接扩展

    Web服务器: IP地址:192.168.21.127 PHP安装路径:/usr/local/php 实现目的: 安装PHP的MongoDB数据库扩展,通过PHP程序连接MongoDB数据库 具体操作 ...

  7. linux下网卡bonding配置(转)

    linux下网卡bonding配置   章节 bonding技术 centos7配置bonding centos6配置bonding 一.bonding技术 bonding(绑定)是一种linux系统 ...

  8. PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载 && Linux下的ZipArchive配置开启压缩 &&搞个鸡巴毛,写少了个‘/’号,浪费了一天

    PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有 ...

  9. Linux(4)- centos7安装python3、Linux下安装、配置virtualenv、确保开发环境的一致性、虚拟环境之virtualenvwrapper、vim

    一.centos7安装python3 1.下载python3的源码包 下载地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz cd ...

随机推荐

  1. ShardedJedisPool的使用

    package com.test; import java.util.ArrayList; import java.util.List; import redis.clients.jedis.Jedi ...

  2. 【PMP】挣值分析

    挣值分析(EVA):将实际进度和成本绩效与绩效测量基准进行比较. 1.名词解释 1.1 三个指标 PV [Plan value]  计划价值 官方释义:为计划工作分配的经批准的预算,它是为完成某活动或 ...

  3. Jexus 网站服务器和 ASP.NET 跨平台开发

    微软的跨平台战略 微软在过去的一年多中时间中发生了令整个 IT 行业感到惊叹的变化.这一切始于 Ballmer 的退位和 Nadella 的决心,更始于早已在微软各个基层部门蠢蠢欲动的二次创业. 以开 ...

  4. 玩魔兽争霸无故退出 提示框显示"0x21101663"指令引用的"0x02704acc"内存该存不能为"read" 确定就会终止程序

    20151002总结:下方法试过,没完全按照说的操作完,觉得有风险且那个read程序执行时间好长的,感觉有点干坏事的意思 ======================================= ...

  5. 【CLR】解析AppDomain

    目录结构: contents structure [+] 什么是AppDomain 跨越AppDomain边界访问对象 按引用封送(Marshal-by-Reference) 按值封送(Marshal ...

  6. sed 简明教程 (转)

    sed 简明教程 2013年2月20日   awk于1977年出生,今年36岁本命年,sed比awk大2-3岁,awk就像林妹妹,sed就是宝玉哥哥了.所以 林妹妹跳了个Topless,他的哥哥sed ...

  7. 基础006_pg109_IP-Xfft

    作者:桂. 时间:2018-05-09  07:20:48 链接:http://www.cnblogs.com/xingshansi/p/9012232.html 前言 简要记录xilinx FFT的 ...

  8. post请求数据量过大,提交失败

    HttpRuntimeSection.MaxRequestLength 属性,请求的最大大小(以千字节为单位). 默认大小为 4096 KB (4 MB) <system.web> < ...

  9. 【WPF】点击滑动条(Slider),移动滑块(Tick)到鼠标点击的位置

    问题:点击Slider控件时,滑块会自动跳到滑动条的最边缘位置,无法跳到鼠标点击的位置上. 办法:给Slider控件设置属性IsMoveToPointEnabled="True"即 ...

  10. 一些jquery特效收集

    jQuery幻灯片插件带投影的图片叠加切换幻灯片轮播 特效:http://www.jsfoot.com/jquery/images/ jquery文字滚动上下间歇文字滚动 http://www.17s ...