编译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

spinservers($179/月),1Gbps不限流量服务器,双E5-2630Lv3/64GB/1.6T SSD/圣何塞机房

中秋节快到了,spinservers针对中国用户准备了几款圣何塞机房特别独立服务器,大家知道这家服务器都是高配,这次推出的机器除了配置高以外,默认1Gbps不限制流量,解除了常规机器10TB/月的流量限制,价格每月179美元起,机器自动化上架,一般30分钟内,有基本自助管理功能,带IPMI,支持安装Windows或者Linux操作系统。配置一 $179/月CPU:Dual Intel Xeon E...

特网云57元,香港云主机 1核 1G 10M宽带1G(防御)

特网云官網特网云服务器在硬件级别上实现云主机之间的完全隔离;采用高端服务器进行部署,同时采用集中的管理与监控,确保业务稳定可靠,搭建纯SSD架构的高性能企业级云服务器,同时采用Intel Haswell CPU、高频DDR4内存、高速Sas3 SSD闪存作为底层硬件配置,分钟级响应速度,特网云采用自带硬防节点,部分节点享免费20G防御,可实现300G防御峰值,有效防御DDoS、CC等恶意攻击,保障...

妮妮云(119元/季)日本CN2 2核2G 30M 119元/季

妮妮云的知名度应该也不用多介绍了,妮妮云旗下的云产品提供商,相比起他家其他的产品,云产品还是非常良心的,经常出了一些优惠活动,前段时间的八折活动推出了很多优质产品,近期商家秒杀活动又上线了,秒杀产品比较全面,除了ECS和轻量云,还有一些免费空间、增值代购、云数据库等,如果你是刚入行安稳做站的朋友,可以先入手一个119/元季付的ECS来起步,非常稳定。官网地址:www.niniyun.com活动专区...

ubuntu8.04为你推荐
brandoff淘宝上的代购奢侈品都是真品吗?permissiondeniedpermission denied 怎么解决johncusack谁知道《失控的陪审团》的电影内容是什么?约翰·库萨克在里面演的是什么角色?商标注册流程及费用注册商标的流程是什么,大概需要多少费用?m.2828dy.comwww.dy6868.com这个电影网怎么样?www.5any.comwww.qbo5.com 这个网站要安装播放器www.789.com.cn有什么网站可以玩游戏的.梦遗姐我姐姐很漂亮,她24了,我才15,晚上我和他睡在一起,我经常挨遗精,咋办?dpscycle魔兽世界国服,求几个暗影MS的输出宏www.bbbb.com二级域名怎么申请?看URL怎么分辨出二级域名、三级域名
美国vps租用 重庆虚拟主机 论坛虚拟主机 北京主机租用 上海vps 高防dns enzu 好看的桌面背景大图 天猫双十一抢红包 12306抢票助手 台湾谷歌网址 国外免费全能空间 东莞数据中心 服务器是干什么的 搜索引擎提交入口 联通网站 smtp虚拟服务器 丽萨 免费ftp 监控服务器 更多