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

Fiberia.io:$2.9/月KVM-4GB/50GB/2TB/荷兰机房

Fiberia.io是个新站,跟ViridWeb.com同一家公司的,主要提供基于KVM架构的VPS主机,数据中心在荷兰Dronten。商家的主机价格不算贵,比如4GB内存套餐每月2.9美元起,采用SSD硬盘,1Gbps网络端口,提供IPv4+IPv6,支持PayPal付款,有7天退款承诺,感兴趣的可以试一试,年付有优惠但建议月付为宜。下面列出几款主机配置信息。CPU:1core内存:4GB硬盘:...

易探云(QQ音乐绿钻)北京/深圳云服务器8核8G10M带宽低至1332.07元/年起

易探云怎么样?易探云香港云服务器比较有优势,他家香港BGP+CN2口碑不错,速度也很稳定。尤其是今年他们动作很大,推出的香港云服务器有4个可用区价格低至18元起,试用过一个月的用户基本会续费,如果年付的话还可以享受8.5折或秒杀价格。今天,云服务器网(yuntue.com)小编推荐一下易探云国内云服务器优惠活动,北京和深圳这二个机房的云服务器2核2G5M带宽低至330.66元/年,还有高配云服务器...

个人网站备案流程及注意事项(内容方向和适用主机商)

如今我们还有在做个人网站吗?随着自媒体和短视频的发展和兴起,包括我们很多WEB2.0产品的延续,当然也包括个人建站市场的低迷和用户关注的不同,有些个人已经不在做网站。但是,由于我们有些朋友出于网站的爱好或者说是有些项目还是基于PC端网站的,还是有网友抱有信心的,比如我们看到有一些老牌个人网站依旧在运行,且还有新网站的出现。今天在这篇文章中谈谈有网友问关于个人网站备案的问题。这个也是前几天有他在选择...

ubuntu8.04为你推荐
美国互联网瘫痪2000年美国的互联网危机事件的原因?西部妈妈网烟台分类妈妈网 分类妈妈网的前2个字什么?李子柒年入1.6亿将55g铁片放入硫酸铜溶液中片刻,取出洗净,干燥后,称重为56.6g,问生成铜多少g??求解题步骤及答案陈嘉垣陈嘉桓是谁?百度关键词工具常见百度关键词挖掘方法分别是什么请列举?www.522av.com现在怎样在手机上看AV789se.comwuwu8.com这个站长是谁?www.78222.com我看一个网站.www.snw58.com里面好有意思呀,不知道里面的信息是不是真实的kb123.net股市里的STAQ、NET市场是什么?dadi.tvapple TV 功能介绍
购买域名 域名注册godaddy 工信部域名备案查询 域名服务dns的主要功能为 如何注册中文域名 中国域名交易中心 泛域名绑定 187邮箱 adman cpanel主机 香港新世界电讯 嘟牛 中国智能物流骨干网 空间出租 百兆独享 泉州移动 银盘服务 美国盐湖城 贵阳电信测速 空间申请 更多