湖南工业大学
课 程 设 计
资 料 袋 电气与信息工程 学院(系、部) 2016 - 2017 学年第 1 学期 课程名称 嵌入式系统 指导教师 谭会生 职称 教授 学生姓名 专业班级 学号 题 目 Linux操作系统开发环境的构建、移植与使用 成 绩 起止日期 2016 年 12 月 12 日~ 2016 年 12 月 23 日 目 录 清 单 序号 1 2 3 4 5 6 湖南工业大学
材 料 名 称 课程设计任务书 课程设计说明书 课程设计图纸 资料数量 备 注 张
1
课程设计任务书
2016 —2017 学年度 第 2 学期
电气与信息工程 学院(系、部) 电子信息工程 专业 1303-1304 班级 课程名称: 嵌入式系统课程设计 设计题目: Linux操作系统开发环境的构建、移植与使用 完成期限: 2016 年 12 月 12 日~ 2016 年 12 月 23 日 共 2 周
内 容 及 任 务 在学习和初步掌握ARM嵌入式系统基础理论以及嵌入式系统设计与开发基本方法的基础上,进行Linux操作系统开发环境的构建、移植与使用等综合实践,具体任务如下: (1)Linux操作系统的安装及设置:包括VMware的安装,Linux操作系统的安装及设置;(2)Linux开发环境的构建及移植:包括:交叉编译器的安装,U-BOOT的配置与编译,Linux内核的配置与编译;Busybox等实用工具的安装;GUI工具包QT的安装等;(3)Linux基本操作命令的使用:各种Linux基本操作命令的使用。(4)Linux操作系统QT的使用:设计与调试一个温度转换参数处理的界面。 起止日期 2016,12.14晚上 2016,12.15上午 2016,12.15下午 2016,12.15晚上 2016,12.16上午 2016,12.18上午 2016,12.18下午 2016,12.19晚上 其它时间 工作内容 课题的布置与讲解; (晚上:18:00-21:45,5) Linux操作系统的安装及设置; (上午:08:00-11:45,5) Linux开发环境的构建及移植; (下午:14:00-17:45,5) Linux开发环境的构建及移植; (晚上:18:30-22:15,5) Linux开发环境的构建及移植; (上午:08:00-11:45,5) Linux开发环境的构建及移植; (上午:08:00-11:45,5) Linux基本操作命令的使用; (下午:14:00-17:45,5) Linux操作系统QT的使用。 (晚上:18:00-21:45,5) 非统一安排上机调试,学生自行查找资料,自行进行实践,撰写报进 度 安 排 备注: 地点:电气205 主 要 参 考 资 料 [1] 谭会生.ARM嵌入式系统原理与应用开发[M].西安:西安电子科技大学出版社,2012 [2] 何文华,梁竞敏. Linux操作系统实验与实训. 北京:人民邮电出版社,2006. [3] 李蔚泽. Fedora Core 3 Linux安装与系统管理. 北京:中国铁道出版社,2006. [4] 朱居正,高冰. Red Hat Linux(Fedora Core 3)实用培训教程. 北京:清华大学出版社,2005. [5] 广州天嵌计算机科技有限公司的TQ2440+3.5开发板硬件及配套的软件,2010 指导教师(签字): 2016年 6 月 20日 系(教研室)主任(签字): 2016 年 6 月 20 日
2
附件三
嵌入式系统课程
设 计 说 明 书
Linux操作系统开发环境的构建、移植与使用 起止日期: 2016 年 12 月 12 日~ 2016 年12 月23 日 共 2 周 学班学成生姓名 级 号 绩
指导教师(签字)
电气与信息工程学院 2016年12月 10 日
3
设计说明书的主要内容
1.课程设计目的
在学习和初步掌握ARM嵌入式系统的硬件结构与工作原理、ARM汇编程序设计语言、Linux操作系统等ARM嵌入式系统基础理论以及嵌入式系统设计与开发基本方法的基础上,进行Linux操作系统开发环境的构建、移植与使用等综合实践,为实际从事ARM+Linux嵌入式系统的设计与开发打下良好的基础。
2.课程设计要求
进行Linux操作系统开发环境的构建、移植与使用等综合实践,具体任务为: (1)Linux操作系统的安装及设置:包括VMware的安装,Linux操作系统的安装及设置;
(2)Linux开发环境的构建及移植:包括:交叉编译器的安装,U-BOOT的配置与编译,Linux内核的配置与编译;Busybox等实用工具的安装;GUI工具包QT的安装等; (3)Linux基本操作命令的使用:各种Linux基本操作命令的使用。 (4)Linux操作系统QT的使用:设计与调试一个温度转换参数处理的界面。
3.Linux操作系统的安装及设置
3.1 VMware虚拟机的安装 (1)创建安装文件夹。为了方便文件的管理,先自行创建一个文件夹,此文件夹用于虚拟机的安装。
(2)开始安装并设置。双击虚拟机的安装程序进行安装,并根据提示将安装路径设置为所建的文件夹。
4
初次使用,选择典型模式
5
(3)输入授权序列号。根据安装提示,输入虚拟机安装的用户名、公司名 和授权序列号,虚拟机的安装序列号一般是虚拟机软件自带,也可经注册获取。等待一段时间,虚拟机的安装完成之后,点击Finsh按钮即可。
6
3.2 Linux操作系统的安装
(1)新建虚拟机。先打开虚拟机,从虚拟机中新建一个Virtual Machine Wizard; 然后选择自定义模式进行操作系统的安装。
(2)安装镜像的选择。当出现安装镜像选择的提示时,点击“Browes...”选择事先下载好的Linux镜像路径,并加载至Virtual Machine Wizard中,如图3.2.2所示。
7
(3)设置登录用户名称和密码。
用户名只能小写,密码要记住,后面要用到 (4)新建文档放虚拟机
8
(5)选择虚拟机核心数
总核心数取决于所用PC机的CPU核心数。
(6)存储容量的设定。当出现虚拟存储器容量设定对话框时,为了满足设计的运行需要,将系统的内存大小设置为2G(至少512M)。
9
(7)网络类型的选择。当出现网络类型选择对话框时,根据网络工作情况选择
合适的网络工作方式,本次网络类型选择为桥网络链接。
(8)接着选推荐即可
10
(9)硬盘设定的选择。当出现磁盘设定选择对话框时,因本设计系统需要的硬盘比较大,故在安装前将硬盘大小设置为20GB左右,选择单个文件存储虚拟磁盘
11
12
选择好放的地方
(10)设置完成,点击Finish
(11)操作系统的选择,根据设计需要,选择的操作系统为Linux,Linux的版本号选择Linux 2.6.x kernel。同时把系统文件的共享设置好。为了Windows系统和Linux系统之间的资源共享,以及方面后面各种软件的安装,在完成工具
13
包的安装后,需要建立windows系统和Linux系统之间的文件共享。可以通过虚拟机的文件夹选择Options进行共享文件夹的设置
或者在第(10)步的最后一步把
的钩去掉再设置
或者
暂时关机要迅速,否则会导致安装不成功。
14
新建两个文件夹作为共享文件,一个放镜像,一个放其他需要的文件
15
16
(12)重新启动虚拟机,等待安装,时间较长。
17
3.3 Linux操作系统的设置
1.root 用户权限的设定(不root基本上干不了什么) (1)在操作系统安装完成后,需要对相关文档进行权限修改才能使用root权限。 具体修改方法为:首先通过终端进入root权限,然后gedit操作命令对系统文件gdm进行修改。
18
把终端放桌上或顶栏,方便以后使用
19
此处密码不可见,直接按之前设置的即可
(2)将gdm文本文档中的第二行屏蔽掉,也就是在对应的文本行前添加一个注释符#
重启
选择other,选择超级用户,密码为之前设置的密码 2.界面修改。 (1)主机名
20
这是把localhost改成自己想要的名字,修改完实现要重启
更详细看:http://www.cnblogs.com/kerrycode/p/3595724.html (2)时钟
稍等片刻就会改变 更多参考:
http://jingyan.baidu.com/article/d45ad148a4b88369552b80b5.html?st=2&net_type=&bd_page_type=1&os=0&rst=&word=格林威治
(3)文档打开方式
21
每次打开一个文件夹就出来一个窗口,如果不关闭就越来越多。设置成经常在浏览窗口打开就方便多了。
(4)固定界面。原始的界面是要上下拖动才可以,固定下来则没有那么麻烦,按View>>Fit Guest Now。但也有可能因此有些界面显示不全,这是由于PC机本身的分辨率问题,适当调整即可。
22
(5)右下角工作界面设置,多界面操作可以带来方便,更改一下名字不那么容易眼花缭乱。
选择preferences
23
名字直接在上面改即可。 (6)加载中文输入法
选择input method
24
(7)在txt中显示中文 1)yum install gconf-editor
2)左上角applications>>system tools>>configuration editor 3)apps>>gedit-2>>preferences>>encodings 4)双击auto_detected,add>>gb18030,将其up到最上面 勾选第一个选项,然后log out
3.系统网络参数的修改(若已连上网络可略过)
为了使系统的网络能连接正常工作,可通过修改网络相关参数文档ifcfg-eth0进行设置,将ONBOOT=NO改为YES即可
如若换网的时候连不上网,可以耐心等一会或者重启虚拟机。
4.Linux开发环境的构建及移植
4.1 系统工具安装的准备(这一步很重要,不进行或者进行不完全则会导致屏幕不能调节,共享文件不能实现,不能与PC机相互复制,之前所修改的时间改了等于没改等等不好的情况发生)
(1)装载工具到界面
25
(2)工具包压缩文件的解压
tab键可以自动补全已存在文档名字,可省下很多时间 而且如果在终端直接上输入该文件夹内含有文件名字的前几个名字,再按tab就会出现有前几个名字相关的文件名字
一个文件名如果有空格,则要像图中用\\+space连接
所解压的文件名要与系统所给的工具名一一对应。cd
后有一空格。-C是大写,后也有一空格。/opt/代表在这个名录下解压
(3)输入命令运行安装程序
(4)程序安装过程选项的设置。根据系统默认选择即可,弹出文件名按回车,弹出yes打上yes按回车,no打上no按回车。
26
中途可能会黑屏,不要慌张,耐心。
若以下出现不是OK而是红色的failed,则要重新安装
27
后来发现即使重启也改变不了failed,所以换了64位内核,可行。 对于只选默认无需敲击yes或者no或者y或者n,直接回车即可。
(5)共享文件的准备及验证
cd ..或cd ../:返回上一个文档;终端区分大小写
本次实验本人所使用的是谭老师所弄的HGD文档下的工具(后来不适合qt-creator,所以换了天嵌公司的重新做)
4.2 交叉编译器的安装
(1)交叉编译器的安装程序的准备
28
由于解压包内已经有建立一个opt文件夹,内含HGD,在/后就无需像上上加opt/HGD/,否则就会出现opt文件下有HGD再有opt文件夹再有HGD。在终端上不能使用c+c/c+v,但可以右键复制粘贴,只不过粘贴完会立即执行或者用命令ctrl+shift+c/v,而在文档或者文本内可以用c+c/c+v。
(2)编译器系统路径的修改。系统在配置编译的时候只有在指定的路径上去寻找文件,要关联才能正确关联到交叉编译器。
每次开启或者重启虚拟机小键盘都默认为关闭状态,需要自行开启。 如若修改开机启动小键盘状态,参考:http://jingyan.baidu.com/article/91f5db1b25a4961c7f05e32a.html
(3)交叉编译器的安装验证
29
gedit /etc/profile只是简单的文本添加
source /etc/profile才会植入系统,真正修改路径 (4)附带文件系统镜像制作工具说明
4.3 U-Boot的配置与编译 (1)U-Boot的安装准备
-C /要加上,不加会在当前文件夹下解压 (2)U-Boot程序的编译
(3)U-Boot程序的镜像复制 4.4 Linux内核的配置与编译 (1)Linux内核的准备
(2)修改开机Logo画面的设置
方法一:在gimp官网下载windows版本,然后将图片修改为ppm再复制到共享文件夹内。然后在虚拟机上把图片转移到指定文件下进行必要修改即可。
1)图片改名
把所要用的图片名字改为logo_linux_tft320240_clut224
2) 修图。用gimp把像素改为320*240,图片模式改为索引模式并将256改
30
为224,进转换,接着弹出ppm格式,选择ascii格式弹出。
31
32
最后把图存放在共享文件夹
2)logo图片导入和替换。先对原本的logo进行重命名,再将修好的图导入。
方法二:在Linux上运用gimp修改(该方法并未完成,只在于体验) 由于系统内的gimp版本较低,用yum install gimp命令下载的2.6版本中转换图片格式成ppm格式的插件以损坏,所以要在网络上下载gimp的最新版本
下载Linux现阶段2.8版本哪个都可以
gimp的安装需要babl和gegl插件,babl>=0.1.10版本,gegl>=0.2.0版本。
33
gegl安装需要babl>=0.1.10版本,zlib高版本,glib>=2.28.0
babl:http://download.chinaunix.net/download/0014000/13320.shtml gegl:http://download.chinaunix.net/download/0014000/13320.shtml glib: http://download.chinaunix.net/download/0004000/3822.shtml zlib:http://download.chinaunix.net/download/0013000/12241.shtml(这个尽量下最新版本)
gimp也可以在这些网站上可以找到 gz用xvfz解压,bz2用xvfj解压,
.xz后缀解压要分两步走,先yun install xz
.zip解压方式如下
在网上下载的源代码解压包安装步骤一般为 1)./configure 2)make
3) make install 这种情况是没有指定安装目录,而现在所使用的Fedora 10查找路径是在/usr/lib/pkgconfig下寻找,没有指定安装目录则会安装到/usr/local下,路径文件.pc则会放在/usr/local/lib/pkgconfig,则要进行.pc文件的复制,如下:
可以直接在computer下直接复制
也可以在终端用命令执行,如下图
34
http://blog.chinaunix.net/uid-23069658-id-4028681.html 对于文中所说修改PKG_CONFIG_PATH并不可行
如若版本下载错误,要在此文件夹下用make uninstall命令,同时,usr/lib/pkgconfig下的路径文件也要删除
而更好的办法是用./configure --prefix=/usr/(--前有空格) 这样就指定了安装目录,且.pc会直接在/usr/lib/pkgconfig下 以下为个人的安装经历
解压
配置
需要安装babl
35
需要安装gegl 解压,配置,gegl
系统已经由了glib,但版本太低 安装glib
需要zlib库文件 安装zlib文件 安装完zlib,安装glib,再尝试编译gegl
glib并没有完全覆盖
设置一个临时变量
参考:http://www.ithao123.cn/content-97397.html
36
再次编译出现如下情况(但到这一步网上解释一般都用yum,但yum在该版本的fedora下载的都比较低,所以之后的步骤并没有继续做):
如果用yum的话下载的版本太低,所以先尝试直接编译会出现如下情况
http://www.ijg.org/files/
https://libopenraw.freedesktop.org/wiki/ http://libspiro.sourceforge.net/
umfpack在网上找不到,只能暂时用yum install suitesparse
37
exiv2也是用yum
libspiro也用yum
ffmpeg配置出问题,暂且避过
配置graphviz时出现问题,最终决定放弃
虚拟机运用yum后PC搜索网络会出问题,运用360卫士LSP恢复即可 不想要了用rpm –e [安装了的名字],删除即可 参考:http://tieba.baidu.com/p/2105667557?pid=28340503524&see_lz=1 (3)内核的配置 38
需要插件,用yum下载
由于本人把窗口缩小了来运行,所以显示窗口太小不适合配置,放大窗口并拉大终端重新配置
system type>>s3c2440 machines,对开发板作选择
返回初始,device drivers>>memory technology device (mtd)
support>>nand device support,做nand设备支持的选择,也即运行内存大小
39
返回初始,graphics support>>support for frame buffer devices,对显示器做选择
返回一步,选择bootup logo,做开机界面选择
结束
(4)修改图像
(5)生成镜像
(6)将镜像复制到共享文件夹下
40
4.5 实用工具Busybox的安装
BusyBox 是一个集成了一百多个最常用linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统的自带的shell (1)安装程序的准备
(2)启动Busybox的配置操作
尝试运用图形窗口配置,但出现如下情况:
应该是缺少某个库文件或者插件,由于对配置不太懂,只能返回课本步骤继续操作。 在配置单中添加自己的信息
再文件夹内将config_EmbedSky改名 再配置
41
(5)修改busybox 进入makefile文件
把164行改为CROSS_COMPILE = arm-linux- 把189行改为ARCH =arm (也就是把两个问号去掉) (5)编译,安装
出现如下情况
解决方法如下:对配置单进行修改 networking utilities>>ip tunnel,按N
参考:http://blog.csdn.net/qq_21792169/article/details/48132209 然后出现如下情况:
42
和平时make情况有所不同,但其实是已经编译成功,继续完成下一步
(6)构建文件系统
由于制作步骤实在太过繁琐,时间紧迫,只能用天嵌公司做好的文件系统然后添加自己的东西进去再重新制作。
4.6 apps的安装
包含了数据库源码、Web服务器源码、针对2.6.30.4内核的测试程序源码以及Linux移植手册中讲到的程序和库的源码
(1)准备
(2)配置编译,为了apps的成功安装,需要先对相关文档进行修改
(3)安装与相关文档的修改
4.7 GUI工具包QT的安装 (1)准备
安装的根目录与原先的HGD有出入,所以要对HGD改名字,并且profile路径也要进行修改
43
这个改不了右下角换一个界面即可
用下载必要的编译文件:zlib-devel、libjpeg-devel、libX11-devel、libXinerama-devel、libXext-devel、uuid、uuid-devel、e2fsprogs-devel (2)安装过程,需要耗费一定时间,本人大概20-30分钟左右
(3)测试
将test_x86文件内的HGD改为EmbedSky
选择display
44
再选择replace all保存文档即可
45
测试完关掉窗口即可 (4)其他的安装
出现如下问题
我先尝试将Qte文件夹下所有执行文件中的HGD改为EmbedSky,再次执行问题没有得到解决。
再次认真读问题语句,发现是交叉编译器出现了问题 应该是之前修改了profile并没有source的原因 重新修改profile并且source再查找是否有arm-linux-gcc –v 再重新执行安装,顺利!大概10-20分钟左右 (5)将qtepia到文件系统
4.8 Linux移植镜像的下载 (1)USB驱动安装过程
46
将开发板调到NOR端,并插上电源,连上PC机USB端,会弹出如下界面。 右键PC机桌面我的电脑点击设备管理器,看到其他设备处有一个黄色感叹号。在网上搜索SEC S3C2410X Test B/D驱动(支持64位WIN7的),解压,会看到有一个driver,并在更新驱动选择本电脑驱动定位到安装文件夹下的driver即可完成驱动安装。
(2)利用串口与硬件连接
先观察自己的电脑是否有串口:右键我的电脑选择设备管理器,看是否有端口这一栏,并且里面会有显示COM*(*为任意数字)。如果有,则可以继续操作下面步骤,如果没有换电脑。或者观察自己的电脑是否有九针孔,我们会发现开发板盒子里会有一条九针孔的线,待会需要用到这个。如今笔记本基本上都没有这个口,到台式机会好一点。
天嵌公司提供的SecureCRT软件使用不了,所以要在网上下载一个SecureCRT软件,地址:sercurecrt 32/64位
http://www.liangchan.net/liangchan/5314.htmll,下载好之后32位的装x86,64位的装x64,接着就进入破解阶段。
将keygen_scrt_v7.x.exe复制到C:\\Program Files\\VanDyke
Software\\Clients目录下面并运行它,点击按钮Patch,选择SecureCRT.exe,
47
点击打开,随后会弹出一个打开对话框,选择LicenseHelper.exe即可。将注册机上的name/company以及Serial Number等信息输入上去即可。
按回车
(3)利用串口进行镜像下载
选择1,3,6,顺序无所谓
之下步骤选择upload,选择对应的镜像,如果镜像下载不成功,则再重插USB尝试即可
(4)结果
48
5.Linux基本操作命令的使用 (1)unzip 命令 功能:用于解压缩 用法:unzip【选项】压缩文件名。Zip 网络相关命令 (2) ifconfig命令 功能:用于网络配置 用法:ifconfig【选项】【网络接口】 选项及选项含义 选项 参数含义 -interface 指定网络接口名称 激活指定的网络接口 -up 关闭指定的网络接口 -down 设置接口的广播地址 broadcast point to point 启用点对点方式 设置指定接口设备的ip地址 address netmask address 设置接口的子网掩码 (3)netstat命令 功能:用于查看网络状态 用法:netstat【选项】 (4)grep 命令 功能:查找字符串
用法:grep【选项】字符串 选项及选项含义 选项 参数含义 只输出匹配行计数 -c 不区分大小写 -I 查询多文件时不显示文件名 -h 查询多文件时只输出包含匹配字符的文件名 -l 49
显示匹配行及行号 -n 不显示不存在或无匹配文本的错误信息 -s 显示不包含匹配文本的所有行 -v 其他常用命令 (1) rpm命令 功能:用于软件安装 用法:rmp【选项】【安装文件】 (2)mount命令 功能:挂载文件系统
用法:mount【选项】设备源 目标目录 选项及选项含义 选项 参数含义 依照/etc/fstab的内容装载所有相关的硬盘 -a 列出当前已挂载的设备,文件系统名和挂载点 -l 将后面的设备已制定类型的文件格式装载到挂载点上。常用-t 的类型有vfat、 ext3、ext2、nfs等 mount不执行实际挂载的动作,而是通常用于除错,它会使-f 模拟整个挂载 的过程(3)umount命令 功能:卸载文件系统 用法:umount目标目录 (4)find命令 功能:用于查找文件 用法:find路径 name‘文件名’ (5)top命令 功能:用于动态查看cpu的情况 用法:top (6)ps命令 功能:用于查看进程 用法:ps【选项】 选项及选项含义 选项 参数含义 查看所有进程及其PID,系统时间,命令详细目录,执行者-ef 等 除可显示-ef所有内容外,还可以显示cpu及内存占用率,-aux 进程状态 显示加宽并且可以显示较多信息 -w (7)kill命令 功能:杀死进程
用法:kill【选项】进程号 选项及选项内容 选项 参数含义 将制定信号发送给进程 -s 打印出进程号,但并不送出信号 -p 50
列出所有可用的信号名称 -l (8)man命令 功能:查看命令或者函数的使用情况 用法:man命令名
6.Linux操作系统QT的使用
(1)安装。解压,安装 1)安装arm版qt4.5
出现如下问题
解决方法如下
2)安装qt-creater
一直按next直接安装 打开qtcreator
进行相关设置
51
选options
点一下
rebuild,等待× 变钩,出现如下问题
52
解决方法如下:
到此处修改文件qmake.conf
改为
接着出现如下问题:
53
再此认识到同一个文件可以同时打开两个,但系统不允许这么做
尝试重启VMware,但发现Rebuild按钮已经不能再用,所以尝试卸载重装 同时从PC机复制到Linux功能忽然失效,网上说vmtools工具不稳定,所以我只能暂且忍一忍。
重装后依然无法解决,最后决定重来,不用HGD的编译,改用天嵌公司 ************************************************************** 同样出现如下情况:
解决办法如下:
同样找到qmake.conf
改为
54
参考:
http://blog.163.com/linux__study/blog/static/233401030201421613447918/
搜索关键字为:gdbmacros.o 之前那一次搜索的关键字是出现错误的整句话
3)安装PC版qt4.5
观察磁盘剩余量,applications>>system tools>>system monitor>>file systems
退出终端在终端输入exit 以下为安装过程
(2)启动qt-creator
(3)创建工程
55
输入名字和选择文件位置
base class 选这个,其他两个不能选
56
finish
(4)进入操作界面
(5)添加操作空间并设置属性 步骤后退按ctrl+z,或如下图
拖动并修改文字
57
把所有按钮括起来再按此键可整理一下按钮放置
进行如下步骤进行预览,即按ctrl+alt+r
预览结果:
(6)程序代码编写
右键按钮,选择go to solt,选择clikcked()
58
(7)qt4仿真 1)准备
yum install qt-devel,会安装如下 59
2)改编译环境
和上面步骤类似,添加刚刚下载的qt4的qmake,就是图中的最下面那个
60
然后点击
就会显示
或者在build all之后执行如下命令 这是本人放执行文件的地
方
(8)如果在用qt-creator过程中遇到什么问题,可以用左边栏的help进行帮助
7.课程设计收获和体会 自己体会自己写
61
因篇幅问题不能全部显示,请点此查看更多更全内容