Linux 底层开发实验

实验一 嵌入式交叉工具链的安装及使用

一、实验目的
学会在Ubuntu环境嵌入式交叉工具的下载和安装,并练习交叉工具的使用。
二、实验要求
(1)下载嵌入式交叉编译工具;
(2)完成嵌入式交叉编译工具的安装;
(3)编写程序,练习交叉工具链的使用;
(4)做完实验后给出本实验的实验报告。
三、实验设备、环境
序号 名称 型号与规格 数量 备注
1 计算机系统(PC机) 1
2 安装Ubuntu系统的虚拟机 1
四、实验内容与实验结果

  1. 下载交叉编译工具链
    在这里插入图片描述

  2. 完成解压
    在这里插入图片描述

  3. 进行交叉编译工具链的安装
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    五、主要源程序分析
    创建目录:
    sudo mkdir /usr/local/arm
    拷贝源文件:
    sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f
    解压:
    sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
    修改环境变量:
    sudo vim /etc/profile
    添加内容:
    export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
    重启后安装相关库:
    sudo apt-get install lsb-core lib32stdc++6
    交叉编译器验证:
    arm-linux-gnueabihf-gcc -v

六、实验心得
交叉编译的入门介绍就结束了。其实主要就几个步骤:

确定主机平台和目标平台;
获取对应交叉编译工具链;
开始交叉编译。
其实第三步还是比较复杂的,不同的软件各有不同,但是也是有一些共通的地方,就是:

传入交叉编译工具的名称,如gcc和g++,其他还可能需要ld等。
传入目标平台的架构、系统等详细信息,因为交叉编译的时候,软件本身无法去检测平台的特性,需要明确传入。
安装目录(可选)
主要是这些参数的传入方式不同,需要具体用到的时候具体去查一下。
实验心得:
通过本次实验,了解和掌握了交叉编译模式和方法,熟悉和掌握了Linux简单程序设计。在实验开始时对实验的整体流程的了解还不是很清楚,但是在经过助教的讲解后,就有了比较清楚的逻辑。最后在操作中还是遇到了很多问题,因为对linux指令了解还不深入,所以在解决问题时会浪费很多时间。所以我体会到了这门课要学好还需要做好基础功,多了解和掌握linux相关的指令和知识,同时多加练习,才能为以后打好基础。

实验三 嵌入式Linux根文件系统制作

一、实验目的
Busybox的安装与编译、构建根文件系统。
二、实验要求
(1)Busybox的下载与安装;
(2)构建根文件系统;
(3)Busybox的编译;
(4)做完实验后给出本实验的实验报告。
三、实验设备、环境
序号 名称 型号与规格 数量 备注
1 计算机系统(PC机) 1
2 安装Ubuntu系统的虚拟机 1
四、实验内容与实验结果

  1. 下载linux源码、Busybox源码
    在这里插入图片描述

  2. 完成解压

在这里插入图片描述
在这里插入图片描述

  1. 进行嵌入式Linux系统的编译
    在这里插入图片描述
    在这里插入图片描述

  2. 安装Busybox并进行根文件系统的制作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
五、主要源程序分析
(1)配置Busybox
缺省配置,也是默认配置sudo make defconfig
图形化配置 make menuconfig
编译busybox make install CONFIG_PREFIX=/root/imx6ull/rootfs
(2)整理最小文件系统
创建文件夹 mkdir dev etc lib mnt proc sys tmp var
向/lib目录下添加库文件,向/usr/lib目录添加库文件: cp so *.a ~/rootfs/lib/ -d
向/etc目录添加配置文件 sudo mkdir ~/rootfs/etc/init.d/rcS文件

六、实验心得
出现的问题:在修改printable_string.c提示权限不够
解决方法:使用sudo vim命令打开文件,或者chmod修改文件权限后再vim编辑文件。
实验心得:
本次实验中,我学习了嵌入式Linux系统的编译和Busybox实现根文件系统制作的步骤。要注意的是在进行配置时,使用make menuconfig图形化方式配置,可以比较全面且便捷的配置方式。在整理最小文件系统时,我也学习到了嵌入式的最小文件系统的整理,并将其他文件的lib库文件移植到文件系统中,以及添加配置文件。
在操作中遇到一些困难,因为对linux指令了解还不深入,在上网查询指令的用法,做好基本功,是完成本次实验必不可少的。同时,构建嵌入式根文件系统包括Linux内核启动时所必须的目录和关键性的文件,根文件系统的制作也让我能够更加深入地剖析Linux文件系统的结构。
所以我体会到了这门课要学好还需要做好基础功,经过长时间的训练和学习,才能更加的熟悉掌握Linux系统的编译。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个数学不怎么好的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值