编译ubuntu8.04

ubuntu8.04  时间:2021-03-29  阅读:()
嵌入式Linux应用程序移植笔记‐‐5iTEK9261S开发板系列教程本文档深入介绍了嵌入式linux应用程序在ARM开发板5iTEK9261S上的移植2010王伟北京爱泰电子2010-9-24北京爱泰电子北京爱泰电子论坛:WWW.
5iTEK.
COM技术支持电话:18611215201QQ:24736136MSN:gmechina@live.
cn淘宝店面:http://itek.
taobao.
com/-2-目录1.
制作linuxLogo.
32.
NCURSES移植.
32.
1交叉编译NCURSES.
32.
2制作带NCURSES库的根文件系统.
42.
3NCURSES编程实例.
43.
网络摄像头移植.
53.
1在内核中添加摄像头驱动.
53.
2交叉编译mjpg-streamer应用程序.
84.
MTD工具的移植.
94.
1编译x86版本的MTD工具级.
94.
1.
1编译e2fsprogs.
94.
1.
2编译mtd-utils94.
2编译arm版本的MTD工具级104.
2.
1交叉编译e2fsprogs.
104.
2.
2交叉编译lzo.
114.
2.
3交叉编译mtd-utils115.
使用DDD+GDB开发ARMlinux程序.
116.
webserver的移植与实现lighttp12北京爱泰电子北京爱泰电子论坛:WWW.
5iTEK.
COM技术支持电话:18611215201QQ:24736136MSN:gmechina@live.
cn淘宝店面:http://itek.
taobao.
com/-3-1.
制作linuxLogo1.
首先在ubuntu804下安装制作linuxLogo的工具#apt-getinstallnetpbm2.
下面以jpg图片为里,说明Logo的制作过程,假设图片的文件名为logo.
jpg#jpegtopnmlogo.
jpg>logo.
pnm//转换为pnm格式#pnmquaut224logo.
pnm>logo224.
pnm//转换为224颜色#pnmtoplainpnmlogo224.
pnm>logo_linux_clut224.
ppm//转换为ASCII格式3.
把生成的logo_linux_clut224.
ppm拷贝到内核目录下的"driver/video/logo",然后重新编译内核.
4.
把编译好的内核下载到开发板执行,内核的下载方式可参考《5iTEK9261S开发板使用手册》一文.
2.
NCURSES移植CURSES的命名是来自一个叫做"cursoroptimization"(光标最优化)的双关语.
CURSES库通过对终端原始控制代码(转义序列)的封装,向用户提供一个灵活高效的API(应用程序接口).
它提供了一套控制光标、建立窗口、改变背景颜色以及处理鼠标操作的函数.
使用户在字符终端下编写应用程序时绕过了那些恼人的底层机制.
NCURSES是一个从SystemVRelease4.
0(SVr4)中CURSES的克隆.
NCURSES是一个可自由配置的库,完全兼容旧版本的CURSES.
简单的说:zNCURSES是一个库;zNCURSES提供直接控制屏幕终端的API;z利用NCURSES提供的API,可以在linux终端上实现图形界面;关于NCURSES的编程请参考《NCURSES-Programming-HOWTO》.
可在互联网上下载.
2.
1交叉编译NCURSES下面以NCURSES-5.
7为例,介绍NCURSES在ARM板上的移植过程.
z解压ncurses-5.
7.
tar.
gz#tar–zxvfncurses-5.
7.
tar.
gzz生成Makefile#cdncurses-5.
7#exportCC=arm-none-linux-gnueabi-gcc#.
/configure--prefix=$PWD/__install–host=arm-linux–with-sharedz编译安装#makeHOSTCC=gccCXX=arm-none-linux-gnueabi-c++#makeinstall.
libs北京爱泰电子北京爱泰电子论坛:WWW.
5iTEK.
COM技术支持电话:18611215201QQ:24736136MSN:gmechina@live.
cn淘宝店面:http://itek.
taobao.
com/-4-#mskeinstall.
includesz复制库和头文件到交叉编译器的相应目录#cp__install/include/ncurses/*\/opt/arm2008q1/arm-none-linux-guneabi/libc/usr/include#cp__install/lib/*/opt/arm2008q1/arm-none-linux-guneabi/libc/usr/libz我们已经把以上编译过程写在mkncurses.
sh的脚本里,您可以在PC的linux终端里直接运行该脚本完成整个编译过程#.
/mkncurses.
sh2.
2制作带NCURSES库的根文件系统注意:关于如何建立最基本根文件系统,请参考我们的另一篇文章《如何构建Linux的根文件系统》,在这篇文章中不紧包含了制作根文件系统的步骤,还包括如何制作ramdisk格式的文件系统、如何制作jffs2格式的文件系统,以及制作教你如何从nfs启动文件系统.
在这篇文章中,我们还会继续增加制作ubi格式的文件系统和从cf卡启动的文件系统等.
首先拷贝"ncurses-5.
7/__install/lib"目录下的动态库文件(.
so文件)到开发板根文件系统的"/usr/local/lib"目录下(注意只需要拷贝动态库文件即可,静态库文件可以不拷贝).
拷贝"/usr/share/terminfo/v/vt102"目录下的相关文件到根文件系统的"/etc/terminfo/v/vt102"目录下.
其次,在根文件系统的"/etc/profile"文件中添加ncurses运行的环境变量,如下:……#setforncursesexportTERM=vt100exportTERMINFO=/etc/terminfo……2.
3NCURSES编程实例z新建文本文件test-ncurses.
c,并输入源代码#touchtest-ncurses.
c//新建文件#vitest-ncurses.
c//用vi编辑文件z新建文本文件test-ncurses.
c,并输入源代码,源代码内容如下#includeintmain(){initscr();/*初始化,进入NCURSES模式*/printw("HelloWorld!
在虚拟屏幕上打印HelloWorld!
!
!
*/refresh();/*在虚拟屏幕上的内容写到终端上,并刷新*/getch();/*等待用户输入*/北京爱泰电子北京爱泰电子论坛:WWW.
5iTEK.
COM技术支持电话:18611215201QQ:24736136MSN:gmechina@live.
cn淘宝店面:http://itek.
taobao.
com/-5-endwin();/*退出NCURSES模式*/return0;}这个程序在终端上打印"HelloWorld!
!
!
"后,等待用户按任意键退出.
这个小程序展示了如何初始化并进入curses模式、处理屏幕操作和退出curses模式.
关于NCURSES的编程请参考《NCURSES-Programming-HOWTO》.
可在互联网上下载.
z交叉编译#arm-none-linux-gnueabi-gcctest-ncurses.
c–lncurses–otest-ncursesz首先通过NFS方式编译好的程序与开发板共享(根据个人喜好采用不同的方式,例如tftp、ftp等,这里仅以NFS方式为例)#mount–tnfs–onolock192.
168.
0.
110:/armlinux/5itek9261/apps/ncurses/mnt/nfs这里需要注意的是:a.
这条命令在开发板上执行b.
PC机(linux虚拟机)上已经配置好NFSserver,关于如何配置NFSserver在我们的《基于5iTEK9261的根文件系统的制作》一文;c.
必须保证开发板与PC机(虚拟机)之间能有建立正常的网络通讯(ping);d.
192.
168.
0.
110为PC机(虚拟机)IP地址,/armlinux/5itek9261/apps/ncurses为PC机上(虚拟机)上存储test-ncurses.
c的目录;e.
/mnt/nfs为开发板上的目录z在开发板上执行程序,查看输出效果.
在开发板执行程序,需要一个能过执行开发板上命令的终端.
这里的终端可以是接在开发板上的一块TFT屏幕、可以是串口、也可以是telnet.
用哪个终端,程序输出就在那个终端上显示.
当然,也可以通过重定向的方式把程序的标准输出定位到其他终端上.
一般的,以串口终端运行程序#cd/mnt/nfs//切换到共享目录#.
/test-ncurses//执行程序3.
网络摄像头移植这里以中星微的摄像头ZC301为例,讲解网络摄像头的实现过程,其他型号的网络摄像头请您根据内核中的驱动的实际情况自行试验,不对ZC301以外的型号的网络摄像头的实现提供技术支持.
3.
1在内核中添加摄像头驱动z进入内核目录,配置内核#makeARCH=armmenuconfigz选择DeviceDriver-,按回车进入下一级;z在DeviceDriver下,选择MultimediaDevice-按回车进入下一级;北京爱泰电子北京爱泰电子论坛:WWW.
5iTEK.
COM技术支持电话:18611215201QQ:24736136MSN:gmechina@live.
cn淘宝店面:http://itek.
taobao.
com/-6-z在Multimedia选择VideoForLinux和EnableVideoForLinuxAPI1(DEPRECATED)选择Videocaptureadapters-按回车进入,如下图所示;z进入上面的Videocaptureadapters-,选择V4LUSBdevices-按回车进入下一级目录,如图.
z进入上边的V4LUSBdevices-的下一级后,选择USBZC0301[P]ImageProcessorand北京爱泰电子北京爱泰电子论坛:WWW.
5iTEK.
COM技术支持电话:18611215201QQ:24736136MSN:gmechina@live.
cn淘宝店面:http://itek.
taobao.
com/-7-ControlChipsupport,选择USBVideoClass,选择GSPCAbasedwedcams-按回车进入下一级目录,如图.
z进入上边的GSPCAbasedwedcams-的下一级后,选择ZC3XXUSBCameraDriver、选择SPCA500USBCameraDriver等,如图.
北京爱泰电子北京爱泰电子论坛:WWW.
5iTEK.
COM技术支持电话:18611215201QQ:24736136MSN:gmechina@live.
cn淘宝店面:http://itek.
taobao.
com/-8-z保存,并重新编译内核.
关于内核的编译和调试.
请参考《5iTEK9261S开发板使用手册》.
3.
2交叉编译mjpg-streamer应用程序为开发板更新内核后,插上USB口的摄像头,一般情况下,回在/dev目录下建立video0设备.
mjpg-streamer就是读写这个/dev/video0设备的应用程序.
mjpg-streamer可以把摄像头采集的图像转化为jpg格式图片,并可以通过网络(socket方式)与PC机通讯.
可以在PC机上通过WEB浏览器查看摄像头实时采集的图像.
交叉编译mjpg-streamer应用程序的过程如下.
z解压mjpg-streamer-r63.
tar.
gz#tar–zxvfmjpg-streamer-r63.
tar.
gzz编译#cdmjpg-streamer-r63#makeCC=arm-none-linux-gnueabi-gccz我们已经把以上编译过程写在mkmjpg-streamer.
sh的脚本里,您可以在PC的linux终端里直接运行该脚本完成整个编译过程#.
/mkmjpg-streamer.
shz编译完成后会在mjpg-streamer-r63目录下生成如下文件:input_gspcav1.
soinput_testpicture.
soinput_uvc.
sooutput_autofocus.
sooutput_file.
sooutput_http.
somjpg_streamerwww(存放WEB脚本的目录,软件中自带的,可以按照个人需求更改)z通过NFS方式把上边的文件开发板共享(根据个人喜好采用不同的方式,例如tftp、ftp等,这里仅以NFS方式为例)#mount–tnfs–onolock192.
168.
0.
110:/armlinux/5itek9261/apps/webcam/mjpg_streamer-r63/mnt/nfs这里需要注意的是:a.
这条命令在开发板上执行b.
PC机(linux虚拟机)上已经配置好NFSserver,关于如何配置NFSserver在我们的《基于5iTEK9261的根文件系统的制作》一文;c.
必须保证开发板与PC机(虚拟机)之间能有建立正常的网络通讯(ping);d.
192.
168.
0.
110为PC机(虚拟机)IP地址,/armlinux/5itek9261/apps/ncurses为PC机上(虚拟机)上存储test-ncurses.
c的目录;e.
/mnt/nfs为开发板上的目录z在开发板上执行程序,查看输出效果.
#cd/mnt/nfs北京爱泰电子北京爱泰电子论坛:WWW.
5iTEK.
COM技术支持电话:18611215201QQ:24736136MSN:gmechina@live.
cn淘宝店面:http://itek.
taobao.
com/-9-#.
/mjpg_streamer–i".
/input_uvc.
so–d/dev/video0"-o".
/output_http.
so–p8888–wwww"z在PC机上,打开WEB浏览器,在地址栏输入http://192.
168.
0.
61:8888(假设开发板的IP地址是192.
168.
0.
61,并且保证PC机和开发板可以ping通).
即可在WEB浏览器中查看摄像头图像了z关于mjpg_streamer的用法,可以在开发板上执行".
/mjpg_streamer-h"查看帮助,关于input_uvc.
so等动态库输入参数的用法可以查看相应的源代码文件,其中有详细的注释和用法.
4.
MTD工具的移植MTD工具中包含了制作jffs2、ubi等文件系统的工具.
利用这些工具可以制作文件系统镜像.
需要注意的是,制作MTD工具一般分为x86版本和arm版本,编译x86版本的主要目的可以在PC机上制作文件系统镜像.
编译arm版本的目的是可以在开发板上利用MTD工具对NANDFLASH或NORFLASH进行擦除格式化等工作.
4.
1编译x86版本的MTD工具级我们的开发板环境是ubuntu8.
04,编译x86的MTD工具需要如下软件包:e2fsprogs-1.
41.
12.
tar.
gzmtd-utils-1.
3.
1.
tar.
bz2这里需要注意的是,根据开发环境的不同,可能需要的软件包不同.
这里我们仅以ubuntu8.
04开发为例,下面介绍编译过程.
4.
1.
1编译e2fsprogs编译mtd-utils-1.
3.
1之前需要e2fsprogs动态库支持,所以这里选介绍如何编译e2fsprogs.
z解压e2fsprogs-1.
41.
12.
tar.
gz#tar–zxvfe2fsprogs-1.
41.
12.
tar.
gzz生成Makefile#cde2fsprogs-1.
41.
12#.
/configure--enable-elf-shlibsz编译安装#make#makeinstall4.
1.
2编译mtd-utils有了e2fsprogs动态库的支持就可以编译mtd-utils了.
北京爱泰电子北京爱泰电子论坛:WWW.
5iTEK.
COM技术支持电话:18611215201QQ:24736136MSN:gmechina@live.
cn淘宝店面:http://itek.
taobao.
com/-10-z解压mtd-utils-1.
3.
1.
tar.
bz2#tar–jxvfmtd-utils-1.
3.
1.
tar.
bz2z编译安装#cdmtd-utils-1.
3.
1#makeDESTDIR=$PWD/__installWITHOUT_XATTR=1CFLAGS="-static–O2–g"installz把编译好的可执行二进制文件拷贝到交叉编译工具的bin目录下#cp__install/usr/sbin/*/opt/arm-2008q1/binz编译完成后会在__install/usr/sbin目录下生成mkfs.
jffs2、mkfs.
ubifs等工具.
关于各种工具的用法我们会在《基于5iTEK9261的根文件系统的制作》一文中用到相应工具时在详细介绍.
这里就不在赘述了.
z我们已经把4.
1.
1节和4.
1.
2节的编译过程写在mkmtd4x86.
sh的脚本里,您可以在PC的linux终端里直接运行该脚本完成整个编译过程#.
/mkmtd4x86.
sh4.
2编译arm版本的MTD工具级编译x86的MTD工具需要如下软件包:e2fsprogs-1.
41.
12.
tar.
gzlzo-2.
03.
tar.
gzmtd-utils-1.
3.
1.
tar.
bz2这里需要注意的是,根据不同的交叉编译,可能需要的软件包不同.
4.
2.
1交叉编译e2fsprogsz解压e2fsprogs-1.
41.
12.
tar.
gz#tar–zxvfe2fsprogs-1.
41.
12.
tar.
gzz生成Makefile#cde2fsprogs-1.
41.
12#.
/configure--host=arm-linux--enable-elf-shlibs--prefix=$PWD/__installz编译安装#make#makeinstallz复制库到交叉编译器的相应目录#cp__install/lib/*/opt/arm2008q1/arm-none-linux-guneabi/libc/usr/lib北京爱泰电子北京爱泰电子论坛:WWW.
5iTEK.
COM技术支持电话:18611215201QQ:24736136MSN:gmechina@live.
cn淘宝店面:http://itek.
taobao.
com/-11-4.
2.
2交叉编译lzoz解压lzo-2.
03.
tar.
gz#tar–zxvflzo-2.
03.
tar.
gzz生成Makefile#cdlzo-2.
03#.
/configure--host=i686-linux--target=arm-linuxCC=arm-none-linux-gnueabi--prefix=$PWD/__installz编译安装#make#makeinstallz复制头文件和库到交叉编译器的相应目录#cp__install/include/*/opt/arm2008q1/arm-none-linux-guneabi/libc/usr/include–av#cp__install/lib/*/opt/arm2008q1/arm-none-linux-guneabi/libc/usr/lib–av4.
2.
3交叉编译mtd-utilsz解压mtd-utils-1.
3.
1.
tar.
bz2#tar–jxvfmtd-utils-1.
3.
1.
tar.
bz2z编译安装#cdmtd-utils-1.
3.
1#makeCROSS=arm-none-linux-gnueabi-DESTDIR=$PWD/__installWITHOUT_XATTR=1CFLAGS="-static–O2-g"installz去掉调试信息,减小文件尺寸#arm-none-linux-gnueabi-strip__install/usr/sbin/*z把编译好的可执行二进制文件拷贝的根文件系统的usr/sbin目录下,然后下载文件系统到开发板上(可通过NFS方式).
关于如何制作跟文件系统请参考《基于5iTEK9261的根文件系统的制作》一文,这里不在赘述.
z我们已经把4.
2.
1节、4.
2.
2节、4.
2.
3节的编译过程写在mkmtd4arm.
sh的脚本里,您可以在PC的linux终端里直接运行该脚本完成整个编译过程#.
/mkmtd4arm5.
使用DDD+GDB远程调试ARMlinux程序北京爱泰电子北京爱泰电子论坛:WWW.
5iTEK.
COM技术支持电话:18611215201QQ:24736136MSN:gmechina@live.
cn淘宝店面:http://itek.
taobao.
com/-12-6.
webserver的移植与实现lighttp

腾讯云CVM云服务器大硬盘方案400GB和800GB数据盘方案

最近看到群里的不少网友在搭建大数据内容网站,内容量有百万篇幅,包括图片可能有超过50GB,如果一台服务器有需要多个站点的话,那肯定默认的服务器50GB存储空间是不够用的。如果单独在购买数据盘会成本提高不少。这里我们看到腾讯云促销活动中有2款带大数据盘的套餐还是比较实惠的,一台是400GB数据盘,一台是800GB数据盘,适合他们的大数据网站。 直达链接 - 腾讯云 大数据盘套餐服务器这里我们看到当前...

Puaex:香港vds,wtt套餐,G口带宽不限流量;可解流媒体,限量补货

puaex怎么样?puaex是一家去年成立的国人商家,本站也分享过几次,他家主要销售香港商宽的套餐,给的全部为G口带宽,而且是不限流量的,目前有WTT和HKBN两种线路的方面,虽然商家的价格比较贵,但是每次补一些货,就会被抢空,之前一直都是断货的状态,目前商家进行了补货,有需要这种类型机器的朋友可以入手。点击进入:puaex商家官方网站Puaex香港vds套餐:全部为KVM虚拟架构,G口的带宽,可...

NameCheap新注册.COM域名$5.98

随着自媒体和短视频的发展,确实对于传统的PC独立网站影响比较大的。我们可以看到云服务器商家的各种促销折扣活动,我们也看到传统域名商的轮番新注册和转入的促销,到现在这个状态已经不能说这些商家的为用户考虑,而是在不断的抢夺同行的客户。我们看到Namecheap商家新注册域名和转入活动一个接一个。如果我们有需要新注册.COM域名的,只需要5.98美元。优惠码:NEWCOM598。同时有赠送2个月免费域名...

ubuntu8.04为你推荐
百度商城百度知道一般一天能挣多少钱?mathplayer西南交大网页上的 Mathplayer 安装了为什么还是用不了?地陷裂口地陷前期会有什么征兆吗?杰景新特我准备在网上买杰普特711RBES长笛,10700元,这价格合理吗?还有,这是纯银的吗,是国内组装的吗?www.zjs.com.cn我的信用卡已经申请成功了,显示正在寄卡,怎么查询寄卡信息?kb123.net股市里的STAQ、NET市场是什么?dadi.tv1223tv影院首页地址是什么?1223tv影院在哪里可以找到?www.diediao.com这是什么电影dpscycle国服魔兽WLK,有什么适合死亡骑士的插件?鹤城勿扰非诚勿扰 怀化小伙 杨荣是哪一期
买域名 网易域名邮箱 全球付 debian源 谁的qq空间最好看 世界测速 免费phpmysql空间 卡巴斯基破解版 宏讯 视频服务器是什么 789 免费asp空间 西安主机 789电视剧网 闪讯网 脚本大全 cdn加速技术 美国vpn代理 标准机柜 认证机构 更多