今天来总结一下mini2440的内核制作过程。
  一、
    将内核文件拷贝至目标目录,解压。
  二、清除中间文件
    命令:make distclean
  三、配置内核文件
    将开发板厂商制作好的内核文件拷贝至内核文件目录,并命名为.config,退出保存。
    这里有个特别坑的,就是老师给的内核文件在配置时保留了他自己PC的信息,所以我开始编译内核一直无法成功。

  

  就是这个挨千刀的错误。解决办法嘛,其实也蛮简单,修改一下编译选项。
            命令:make menuconfig ARCH=arm,然后找到下图这个

  

    一定要把前面的清空,删掉!!! 然后在Uboot目录下tools文件夹中找到mkimage,将这个文件复制到/bin/中
  四、编译内核文件
    做好以上几步,就可以成功地编译了。
    命令:make uImage ARCH=arm CROSS_COMPILE=arm-linux-
    操作部分就以上这么多。然后有关内核的一些知识神马的,我听完也忘了,这里就抄袭一下国嵌论坛里的吧,以后要用到来这里看看。

------------------------------------------------------------------------------------------------
华    丽    丽    的    分    割    线  华    丽    丽    的    分    割    线 华    丽    丽    的    分    割    线 
------------------------------------------------------------------------------------------------

一.内核简介:
1.系统架构
(1)Linux是由用户空间和内核空间构成的

(2)用户空间主要是用户应用程序以及一些C库文件,配置文件。一般是看得见的。

(3)内核空间主要是系统调用接口,狭义上的内核,处理器架构相关的代码。

(4)划分两个空间的理由:处理器有不同的工作模式,不同的模式权限不一样,可以运行的指令不一样。两个空间对应不同的工作模式(操作级别),程序执行的两种不同的状态。可以起到系统保护作用。比如用户空间级别较低,内核空间级别高。

(5)通过系统调用和硬件中断可以在两种空间相互切换。

2.内核架构(狭义上内核,纯代码)
(1)系统调用接口
(2)进程管理(创建进程---fork,exec,停止进程--kill,exit,控制通信---signal,POSIX机制,共享CPU--进程调度)
(3)存储管理(内存分配,回收,控制多个进程安全的共享内存区域)
(4)CPU架构相关代码(为的是提高至移植性)
(5)设备驱动程序
(6)网络协议栈(只是协议,与硬件无关)
(7)虚拟文件系统(隐藏各种文件系统的具体操作细节,提供统一的文件操作接口)

3.源代码目录简介
(1)ARCH:存放体系结构相关的代码。下设子目录,分别对应具体的CPU,没格子目录还有boot,mm,以及kernel三个子目录,分别对应系统引导以及存储管理,和系统调用

(2)documentation:内核文档,包含帮助信息,修改信息等

(3)drivers:设备驱动目录

(4)include:内核所需要的头文件目录。与平台无关的头文件在/include/linux子目录下。平台相关的则放在include相应的子目录中。

(5)fs:存放各种文件系统的实现代码。每个子目录对应一种文件系统。公用的源代码则用于实现VFS。

(6)net:网络协议的实现目录。

(7)管理源代码:SourceInsight软件。

嵌入式linux内核制作的更多相关文章

  1. 嵌入式linux内核制作、根文件系统制作

    嵌入式系统构成: 主要由bootloader.kernel.以及根文件系统三部分组成. 内核制作步骤: 制作嵌入式平台使用的linux内核制作方法与pc平台上的linux内核基本一致 1.清除原有配置 ...

  2. [国嵌攻略][100][嵌入式Linux内核制作]

    Linux内核制作步骤 1.清除原有配置 make distclean 2.配置内核 选择一个已有的配置文件简化配置 make menuconfig ARCH=arm 3.编译内核 ARCH指明处理器 ...

  3. 嵌入式Linux内核制作【转】

    本文转载自:http://blog.csdn.net/coding__madman/article/details/51291316 1. Linux体系结构 从整体上来分,linux可以分为User ...

  4. 制作嵌入式linux内核

    拿到一个嵌入式linux内核代码,首先make distclean 接下来,如果在x86平台,就直接make menuconfig,如果是在ARM平台,就直接make menuconfig ARCH= ...

  5. 嵌入式Linux内核+根文件系统构建工具-Buildroot 快速入手指导【转】

    本文转载自:https://my.oschina.net/freeblues/blog/596448 嵌入式Linux内核+根文件系统构建工具-Buildroot 快速入手指导 buildroot 是 ...

  6. 嵌入式linux内核和根目录制作

    系统组成:Bootloader, Boot parameters, Kernel, Root filesystem嵌入式linux系统有linux内核与根文件系统两部分构成,两者缺一不可. 内核制作: ...

  7. 嵌入式linux内核是什么?

    linux内核是一种可以被内核动态加载(insmode)和卸载(rmmod)的可执行二进制代码 最简单的内核 #include <linux/module.h> #include < ...

  8. 嵌入式Linux内核tasklet机制(附实测代码)

    Linux 中断编程分为中断顶半部,中断底半部 中断顶半部: 做紧急,耗时短的事情,同时还启动中断底半部. 中断底半部: 做耗时的事件,这个事件在执行过程可以被中断. 中断底半部实现方法: taskl ...

  9. 【内核】嵌入式linux内核的五个子系统

    Perface Linux内核主要由进程调度(SCHED).内存管理(MM).虚拟文件系统(VFS).网络接口(NET)和进程间通信(IPC)5个子系统组成,如图1所示. 图1 Linux内核的组成部 ...

随机推荐

  1. python network programming tutorial

    关于网络编程以及socket 等一些概念和函数介绍就不再重复了,这里示例性用python 编写客户端和服务器端. 一.最简单的客户端流程: 1. Create a socket 2. Connect ...

  2. codevs 4650 破损的键盘(链表)

    /* 之前一直不重视链表 (好吧说实话主要是看着板子都是指针就怂了T.T) 这道题比较基础 应用了链表的思想 数组模拟指针 遇到的问题就是跑着跑着光标跳到前面或者跳到后面 我们用next储存每个点下一 ...

  3. Config配置文件读写

    config文件读写操作(文字说明附加在程序中) App.config文件 <?xml version="1.0" encoding="utf-8" ?& ...

  4. HTML基础总结<标题>

      HTML: 标题 标题(Heading)是通过 <h1> - <h6> 等标签进行定义的. <h1> 定义最大的标题.<h6> 定义最小的标题. & ...

  5. UFLDL课程学习(一)

    章节地址:http://ufldl.stanford.edu/tutorial/supervised/LinearRegression/ 章节名称:线性回归 (Linear Regression) 第 ...

  6. .Net使用SSH.NET通过SSH访问Linux主机

    使用了SSH.NET库,添加引用dll至项目,以下代码显示了点击按钮后SSH链接Linux主机执行命令并返回命令执行结果 protected void btnExcute_Click(object s ...

  7. TextView过长显示省略号, TextView文字中间加横线

    1.TextView显示的内容过长时自动显示省略号:  省略号的位置:android:ellipsize="end"   省略号在结尾android:ellipsize=" ...

  8. ruby 知识点

    $LOAD_PATH 执行 require 读取文件时搜索的目录名数组,也可以写作 $: 创建 URI 的时候可以直接这样 URI("http://www.dy2018.com/i/9751 ...

  9. 回传值(代理、通知、block)

    回传值问题,一直都是困扰初学者的问题,今写者 代理.通知.block 三者的回传值做了一个小小的总结, Main.storyboard 视图: 通过代码分别创建三个代表 代理.通知.block 的按钮 ...

  10. mysql版本问题sql_mode=only_full_group_by

    set @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_ ...