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

GigsGigsCloud 春节优惠2022 指定云服务器VPS主机85折循环优惠码

GigsGigsCloud商家在之前介绍的还是比较多的,因为之前我一直有几台机器在使用,只是最近几年网站都陆续转型删除掉不少的网站和闲置域名,包括今年也都减少网站开始转型自媒体方向。GigsGigsCloud 商家产品还是比较有特色的,有提供香港、新加坡等亚洲机房的云服务器、VPS和独立服务器等。第一、新春优惠活动优惠码:CNY2022-15OFF截止到正月初二,我们可以使用上述优惠码在购买指定G...

美国cera机房 2核4G 19.9元/月 宿主机 E5 2696v2x2 512G

美国特价云服务器 2核4G 19.9元杭州王小玉网络科技有限公司成立于2020是拥有IDC ISP资质的正规公司,这次推荐的美国云服务器也是商家主打产品,有点在于稳定 速度 数据安全。企业级数据安全保障,支持异地灾备,数据安全系数达到了100%安全级别,是国内唯一一家美国云服务器拥有这个安全级别的商家。E5 2696v2x2 2核 4G内存 20G系统盘 10G数据盘 20M带宽 100G流量 1...

HyperVMart:加拿大vps,2核/3G/25G NVMe/G口不限流量/季付$10.97,免费Windows系统

hypervmart怎么样?hypervmart是一家成立了很多年的英国主机商家,上一次分享他家还是在2年前,商家销售虚拟主机、独立服务器和VPS,VPS采用Hyper-V虚拟架构,这一点从他家的域名上也可以看出来。目前商家针对VPS有一个75折的优惠,而且VPS显示的地区为加拿大,但是商家提供的测速地址为荷兰和英国,他家的优势就是给到G口不限流量,硬盘为NVMe固态硬盘,这个配置用来跑跑数据非常...

ubuntu8.04为你推荐
外挂购买自动充值软件sherylsandberg这个文章什么意思 给个翻译好吗 谢谢了johncusack约翰·库萨克好看的的恐怖片全集杨紫别祝我生日快乐周杰伦的祝我生日快乐这首歌有什么寓意或者是在什么背景下写的硬盘的工作原理简述下硬盘的工作原理?mathplayerjavascript 如何判断document.body.innerHTML是否为空access数据库ACCESS数据库有什么用百度关键词价格查询百度关键词排名价格是多少www.e12.com.cn上海高中除了四大名校,接下来哪所高中最好?顺便讲下它的各方面情况qq530.com求教:如何下载http://www.qq530.com/ 上的音乐
万网虚拟主机 成都主机租用 GGC adman 国外私服 debian7 台湾谷歌网址 hostloc 中国电信测速网 web服务器安全 湖南idc 畅行云 免费php空间 godaddyssl register.com restart 卡巴斯基免费版下载 neobux 电脑显示屏不亮但是主机已开机 远程主机强迫关闭了一个现有的连接 更多