实验六 Linux内核编译

讲师:杨行

【实验目的】

1、掌握Linux内核编译

2、了解Linux内核Makefile

3、了解Linux内核Kbuild系统

【实验原理】

网站可以下载标准内核文件;

本次实验使用的内核源码详见,ARM裸板驱动开发课程所发的arm_linux文件夹;

编译内核

1 内核源码目录分析

2 内核编译主要过程;

du -hs linux-.tar.gz

tar xzvf linux--mini2440tar.gz -C /

find -name "*" | wc –l

tree

cp config_mini2440_w35 .config

make menuconfig

make zImage

3 编译主要过程讲解

将所有目标连接为: LD vmlinux

去除vmlinux生成纯二进制文件 OBJCOPY arch/arm/boot/Image

提示镜像文件编译生成 Image Kernel: arch/arm/boot/Image is ready

汇编编译程序启动头 AS arch/arm/boot/compressed/head.o

压缩源码Image: GZIP arch/arm/boot/compressed/piggy.gz

汇编编译产生压缩程序 AS arch/arm/boot/compressed/piggy.o

链接 LD arch/arm/boot/compressed/vmlinux

纯二进制文件生成: OBJCOPY arch/arm/boot/zImage

最终生成: Kernel: arch/arm/boot/zImage is ready

/linux-/arch/arm/boot$ du -hs Image

/linux-/arch/arm/boot$ du -hs zImage

4 运行内核

copy zImage 到tftpboot目录中;

tftp 下载zImage到0到0址后;

使用bootm 0启动内核;

查看内核是否可以正常启动;

未能启动内核的原因有两种:

第一种:未配置网络文件系统;

第二种:未正确设置u-boot启动参数;

4.1 配置nfs文件系统

1. sudo apt-get install nfs-kernel-server

2. sudo vim /etc/exports

+

/nfsroot *(rw,sync,no_root_squash)

3. sudo /etc/init.d/portmap restart

4. sudo /etc/init.d/nfs-kernel-server restart

5. showmount –e

切换到/home/spring/arm_linux/mini2440/src目录下:

6 sudo tar xvf nfsroot.tar -C /

4.2 设置u-boot的启动参数

在u-boot命令行模式下:

set bootargs root=/dev/nfs rw nfsroot=:/nfsroot ip=30 console=ttySAC0,115200

save

5 编写测试程序hello.c

#include

int main()

{ printf("hello world!\n");

while(1);

}

5.1 在PC机上面编译hello.c

arm-linux-gcc –c helo.c –o hello.o

arm-linux-gcc hello.o –o hello

cp hello /nfsroot

5.2 在mini2440平台上后台运行hello,并使用命令杀死hello进程

/sq1415 # ls

hello

/sq1415 # ./hello &

/sq1415 # hello world!

/sq1415 #

/sq1415 # ps -a |grep hello

729 0 0:50 ./hello

731 0 0:00 grep hello

/sq1415 # kill -9 729

/sq1415 # jobs

[1]+ Killed ./hello

/

linux编译内核实验,实验六 Linux内核编译实验.doc相关推荐

  1. mysql备份与恢复实验报告_实验报告六MYSQL备份和恢复.doc

    实验报告六MYSQL备份和恢复.doc 班级:10应用 姓名:张红珍 学号:2010081133 指导老师:钟老师 实验六 MYSQL备份与恢复 实验平台:安装MYSQL数据库的PC 实验目的:1.熟 ...

  2. 计算机组成原理实验 第六章,计算机组成原理实验

    第一部分 数字电路基础 第一章 基本逻辑关系和基本逻辑门电路 第一节 基本逻辑关系和基本逻辑门电路概述 第二节 复合逻辑门 第三节 OC门和三态输出门 第二章 逻辑代数基础 第一节 逻辑代数的基本关系 ...

  3. QGIS编译(跨平台编译)之十六:Expat编译(Windows、Linux、MacOS环境下编译)

    目录 1.Expat介绍 2.Expat下载 3.Windows下编译 4.Linux下编译 5.MacOS下编译 1.Expat介绍 Expat是一个用C语言开发的.用来解析XML文档的开发库,它最 ...

  4. 实验十六:电位器传感器实验

    OK,说一下实验原理 我们的电位器通过分压,把0-5V电压编程模拟量输入到Arduino的A0口,A0把0-5V的模拟电压转换成0-1023的数字量,我们的灯连接13管脚,延时是delay(input ...

  5. 实验(六):定时器实验

    一.实验目的与任务 实验目的: 1.掌握定时/计数器的中断法工作原理: 2.熟悉C51编程与调试方法. 任务: 1. 运行Keil开发环境,完成定时器软件编程: 2. 建立Proteus仿真模型: 3 ...

  6. 十六.linux开发之Kernel移植——内核的配置和编译原理

    有道云笔记地址: 详情看这里链接,记录太多,就不一一排版了. http://note.youdao.com/noteshare?id=d25dbce79566963e3699574a74048154& ...

  7. Linux拉取代码启动镜像,基于Linux源代码及Busybox源代码制作精简可启动内核镜像技术实验方法...

    基于Linux源代码及Busybox源代码制作精简可启动内核镜像技术实验方法总结 熊海泉 内核源代码 下载地址 这里下载的是linux-2.6.38.tar.bz源代码 下载地址 这里下载的是busy ...

  8. linux内核启动分析 三,Linux内核分析 实验三:跟踪分析Linux内核的启动过程

    贺邦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一. 实验过程 ...

  9. linux内核分析 网络九,“Linux内核分析”实验报告(九)

    一 Linux内核分析博客简介及其索引 本次实验简单的分析了计算机如何进行工作,并通过简单的汇编实例进行解释分析 在本次实验中 通过听老师的视频分析,和自己的学习,初步了解了进程切换的原理.操作系统通 ...

最新文章

  1. pt-tools系统:pt-kill 实战
  2. Julia数据统计最全教程,代码图解全都有,昆士兰大学出品,公开免费阅读
  3. freemarker 学习笔记
  4. 戴尔推免费浏览器安全工具 可隔离恶意软件
  5. 一 手游开发工具cocos2d-x editor初识
  6. 添加蜂窝注册表及永久存储
  7. 百度顶会论文复现(2):GAN综述
  8. 分布式精华问答 | 分布式系统面临哪些挑战?​
  9. 运用数组,输出从小到大的10个数
  10. uboot启动第一阶段——start.S
  11. 快速精准的人头检测,代码已开源
  12. apache部署多个项目
  13. python配置环境是干啥的_Python配置环境
  14. 【转】Zookeeper入门
  15. 一个人形图案程序c语言,如何用PPT绘制出人形图形
  16. hadoop官方hdfs操作说明
  17. 计算机开机密码设置要求,电脑设置开机密码
  18. axf下不了 keil5jlink_keil无法生成axf文件之解决方法
  19. 美国大学计算机信息技术专业排名,新鲜出炉 2019年USNews美国大学信息技术管理专业排名榜单!...
  20. 联想笔记本 插电源 拔电源 黑屏问题解决。

热门文章

  1. 《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构
  2. sublime text2 用ctags插件实现方法定位(转)
  3. 自定义JAVA注解_深入理解Java:自定义java注解
  4. 小米redmi_99.9元!Redmi首款智能手环评测:能“打赢”小米手环5吗?
  5. ndows live id怎么登陆,手机如何注册和使用Windows Live ID帐号
  6. 【mybatis】xml中定义变量
  7. 【sprinb-boot】lib分离打包
  8. css margin和border,Margin、Border、Padding属性的区别和联系
  9. 清华计算机学院吴建平,吴建平
  10. ieda 远程调试hive_idea 远程调试