linux编译内核实验,实验六 Linux内核编译实验.doc
实验六 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相关推荐
- mysql备份与恢复实验报告_实验报告六MYSQL备份和恢复.doc
实验报告六MYSQL备份和恢复.doc 班级:10应用 姓名:张红珍 学号:2010081133 指导老师:钟老师 实验六 MYSQL备份与恢复 实验平台:安装MYSQL数据库的PC 实验目的:1.熟 ...
- 计算机组成原理实验 第六章,计算机组成原理实验
第一部分 数字电路基础 第一章 基本逻辑关系和基本逻辑门电路 第一节 基本逻辑关系和基本逻辑门电路概述 第二节 复合逻辑门 第三节 OC门和三态输出门 第二章 逻辑代数基础 第一节 逻辑代数的基本关系 ...
- QGIS编译(跨平台编译)之十六:Expat编译(Windows、Linux、MacOS环境下编译)
目录 1.Expat介绍 2.Expat下载 3.Windows下编译 4.Linux下编译 5.MacOS下编译 1.Expat介绍 Expat是一个用C语言开发的.用来解析XML文档的开发库,它最 ...
- 实验十六:电位器传感器实验
OK,说一下实验原理 我们的电位器通过分压,把0-5V电压编程模拟量输入到Arduino的A0口,A0把0-5V的模拟电压转换成0-1023的数字量,我们的灯连接13管脚,延时是delay(input ...
- 实验(六):定时器实验
一.实验目的与任务 实验目的: 1.掌握定时/计数器的中断法工作原理: 2.熟悉C51编程与调试方法. 任务: 1. 运行Keil开发环境,完成定时器软件编程: 2. 建立Proteus仿真模型: 3 ...
- 十六.linux开发之Kernel移植——内核的配置和编译原理
有道云笔记地址: 详情看这里链接,记录太多,就不一一排版了. http://note.youdao.com/noteshare?id=d25dbce79566963e3699574a74048154& ...
- Linux拉取代码启动镜像,基于Linux源代码及Busybox源代码制作精简可启动内核镜像技术实验方法...
基于Linux源代码及Busybox源代码制作精简可启动内核镜像技术实验方法总结 熊海泉 内核源代码 下载地址 这里下载的是linux-2.6.38.tar.bz源代码 下载地址 这里下载的是busy ...
- linux内核启动分析 三,Linux内核分析 实验三:跟踪分析Linux内核的启动过程
贺邦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一. 实验过程 ...
- linux内核分析 网络九,“Linux内核分析”实验报告(九)
一 Linux内核分析博客简介及其索引 本次实验简单的分析了计算机如何进行工作,并通过简单的汇编实例进行解释分析 在本次实验中 通过听老师的视频分析,和自己的学习,初步了解了进程切换的原理.操作系统通 ...
最新文章
- pt-tools系统:pt-kill 实战
- Julia数据统计最全教程,代码图解全都有,昆士兰大学出品,公开免费阅读
- freemarker 学习笔记
- 戴尔推免费浏览器安全工具 可隔离恶意软件
- 一 手游开发工具cocos2d-x editor初识
- 添加蜂窝注册表及永久存储
- 百度顶会论文复现(2):GAN综述
- 分布式精华问答 | 分布式系统面临哪些挑战?​
- 运用数组,输出从小到大的10个数
- uboot启动第一阶段——start.S
- 快速精准的人头检测,代码已开源
- apache部署多个项目
- python配置环境是干啥的_Python配置环境
- 【转】Zookeeper入门
- 一个人形图案程序c语言,如何用PPT绘制出人形图形
- hadoop官方hdfs操作说明
- 计算机开机密码设置要求,电脑设置开机密码
- axf下不了 keil5jlink_keil无法生成axf文件之解决方法
- 美国大学计算机信息技术专业排名,新鲜出炉 2019年USNews美国大学信息技术管理专业排名榜单!...
- 联想笔记本 插电源 拔电源 黑屏问题解决。
热门文章
- 《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构
- sublime text2 用ctags插件实现方法定位(转)
- 自定义JAVA注解_深入理解Java:自定义java注解
- 小米redmi_99.9元!Redmi首款智能手环评测:能“打赢”小米手环5吗?
- ndows live id怎么登陆,手机如何注册和使用Windows Live ID帐号
- 【mybatis】xml中定义变量
- 【sprinb-boot】lib分离打包
- css margin和border,Margin、Border、Padding属性的区别和联系
- 清华计算机学院吴建平,吴建平
- ieda 远程调试hive_idea 远程调试