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

Atcloud:全场8折优惠,美国/加拿大/英国/法国/德国/新加坡vps,500g大硬盘/2T流量/480G高防vps,$4/月

atcloud怎么样?atcloud刚刚发布了最新的8折优惠码,该商家主要提供常规cloud(VPS)和storage(大硬盘存储)系列VPS,其数据中心分布在美国(俄勒冈、弗吉尼亚)、加拿大、英国、法国、德国、新加坡,所有VPS默认提供480Gbps的超高DDoS防御。Atcloud高防VPS。atcloud.net,2020年成立,主要提供基于KVM虚拟架构的VPS、只能DNS解析、域名、SS...

RAKsmart 2021新年新增韩国服务器及香港美国日本VPS半价

RAKsmart 商家我们肯定不算陌生,目前主要的营销客户群肯定是我们。于是在去年的时候有新增很多很多的机房,比如也有测试过的日本、香港、美国机房,这不今年有新增韩国机房(记得去年是不是也有增加过)。且如果没有记错的话,之前VPS主机也有一次磁盘故障的问题。 这不今天有看到商家新增韩国服务器产品,当然目前我还不清楚商家韩国服务器的线路和速度情况,后面我搞一台测试机进行...

JustHost:俄罗斯/新西伯利亚vps,512MB内存/5GB空间/不限流量/200Mbps/KVM/自由更换IP,$1.57/月

justhost怎么样?justhost是一家俄罗斯主机商,2006年成立,提供各种主机服务,vps基于kvm,有HDD和SSD硬盘两种,特色是200Mbps不限流量(之前是100Mbps,现在升级为200Mbps)。下面是HDD硬盘的KVM VPS,性价比最高,此外还有SSD硬盘的KVM VPS,价格略高。支持Paypal付款。国内建议选择新西伯利亚或者莫斯科DataLine。支持Paypal付...

ubuntu8.04为你推荐
www.119mm.com看电影上什么网站??ip在线查询通过对方的IP地址怎么样找到他的详细地址?www.niuav.com在那能找到免费高清电影网站呢 ?partnersonlinecashfiesta 该怎么使用啊~~www.147.qqq.comWWW147EEE.COM这个网站现在改哪个网址了45gtv.comLETSCOM是什么牌子?pp43.com登录www.bdnpxzl.com怎么进入网站后台啊www.diediao.com这是什么电影恶魔兜兜恶魔圈怎么选癫狂蚕食嫩妻推荐好看的言情小说,要短篇的
提供香港vps 西安服务器 仿牌空间 星星海 老鹰主机 godaddy域名转出 光棍节日志 parseerror 500m空间 七夕促销 双线主机 lol台服官网 umax120 爱奇艺会员免费试用 支持外链的相册 如何建立邮箱 独享主机 架设邮件服务器 河南移动梦网 美国迈阿密 更多