Ubuntu下Qt开发嵌入式整理

一.安装ubuntu10.4
 1.在睿思上下载ubuntu10.4.iso文件。
 2.解压出wubi.exe,把ubuntu10.4.iso和wubi.exe放在同一个系统盘外的根目录下。(注意,没有全部解压ubuntu10.4.iso文件。
 3.双击执行wubi.exe.
安装完重启,即可实现类似双系统模式。(不是真正的双系统)

二.安装校园网客户端
 1.在西电信息建设处下载linux客户端Linux.tar.gz。
 2.我的安装目录为/usr/iNode/
  新建目录:sudo mkdir /usr/iNode  (注意新建文件为:touch test.c)
  拷贝:sudo cp  -a /media/Softwares/Linux.tar.gz  /usr/iNode/  (注意选项-a是保留权限的复制,否则容易出现复制过去的文件:打叉说明没有可读权限,加锁说明有写保护,得单独再改权限)
  进入/usr/iNode/,解压sudo tar -zxvf Linux.tar.gz
  安装:sudo ./install.sh
 3.当终端下显示“Starting AuthenMngService: ”并无任何异常时说明安装成功。可以用鼠标双击iNodeClient这个快捷键。但是第一遍执行用sudo特权用户执行客户端:sudo ./iNodeClient来打开客户端,新建链接,用户名、密码连网。
 4.可给桌面弄个快捷链接,sudo ln -s /usr/iNode/iNodeClient ~/桌面/iNode(建立链接文件) 
  更改图标样式:右键->属性,点击左边的图片,选择安装目录下resource文件夹内的iNodeClient.png文件。以后开机只需点这个快捷方式即可。
 5.当系统提示“You have passed the identity authentication”时,你已经通过了校园网认证,下来只要点击右上角任务栏网络图标点击Auto ech0(相当于网卡选择,eth0为默认网卡,有线连接)即可,之后就可以上网了。

可能的问题:
 1.解压用解压命令,不能用右键解压,否则会丢失一些文件。最好先拷贝再解压。
 2.针对本安装程序,解压后执行sudo ./install.sh后,ap文件夹几个文件消失了。
如下图:

 3. 第一遍执行用sudo特权用户执行客户端:sudo ./iNodeClient
若出现提示:意思是缺少libtiff.so.3这个文件一类的话吧(出现了libtiff.so.3这个关键词),其实不缺,只是这个库的版本太低了,需要升级。   
:我们先把那个无效的libtiff.so.3删了,
执行:    sudo rm /usr/lib/libtiff.so.3
创快捷键,执行:    sudo ln -s libtiff.so.4 /usr/lib/libtiff.so.3
然后进入那个文件夹执行:    cd ..
再执行:    ls libtiff*,发现又有libtiff.so.3东西了,但是颜色为绿色了。
4.我遇到的另一个问题,新建的连接不能保存,每次开启都要新建。原因是发现桌面那个快捷连接有个加锁图标,说明没有写权限,给它对应的连接文件,即/usr/iNode/iNodeClient/下的客户端,给它权限:一般做法:sudo chmod 777 iNodeClient,然后sudo ./NodeClient( 用root执行)之后新建的连接保存下来了。

有个问题:查看文件权限:NodeClient -l,
显示的一些内容不太懂,第二组用户区别。

三. 语言和输入法,终端透明
 1.刚装完系统,系统默认语言为英文,系统--系统管理--语言支持里下载语言包,改成默认汉语。
 2.ubuntu默认带ibus输入法,但是不好用。自己装的SCIM貌似没装好,用不了,以后删掉。
 3.安装了fcitx:
 $sudo apt-get install fcitx //下载安装fcitx
 $sudo gedit ~/.bashrc //在打开的文件最末尾添加新的一行,内容如下
export XMODIFIERS="@im=fcitx"
输入完成后保存退出。
 $im-switch -c //设置默认输入法
$im-switch -s fcitx -z deafult //设系统默认调用fcitx输入
点击:系统--首选项--启动应用程序   选添加按钮    在弹出的窗口名称填fcitx  命令填fcitx -d 点添加。(开机启动它)
点击:系统--系统管理--语言支持,会提醒升级,跟着升级即可。???没有找到。
再回到终端
 $sudo apt -get install language-pack-zh
 $sudo apt-get install language-pack-gnome-zh
注:以上更新语言包,不然输入法输出为乱码
$sudo apt-get remove ibus
注:清楚不用的系统默认的中文输入法ibus
 $sudo gedit ~/.fcitx/config
注:将打开的文件中的第一个[ ]括号下的第一、第二行=后的字体替换为
WenQuanYi Bitmap Song
[3ìDò]
ÏÔêŸ×Öìå(ÖD)=WenQuanYi Bitmap Song
ÏÔêŸ×Öìå(ó¢)=WenQuanYi Bitmap Song  (注意:不做这个操作会导致输入法框汉字显示为方块,显示不出来)
保存文件,退出,重启,你就会发现小企鹅输入法出现了

注意fcitx的使用:
 Ctrl +Alt+H 打开隐藏的浮动窗口,右击浮动窗口会隐藏它。
 Ctrl+Space切换输入法

3.设置终端透明,
假透明和真透明
进入配置管理器(见四中方法)
在打开的界面中选择: apps->metacity->general,给右列compositing-manager 打勾。即可实现真透明




四.修改软件源
  软件源是debian系的概念,把软件放在一个pool里面,用一条命令就可以自动从指定服务器下载并安装
源列表是/etc/apt/sources.list,里面写了你所用的服务器地址。

改成西电内网源。
使用方法:
sudo mv  /etc/apt/sources.list{,.back}  //备份一下原来的配置(新生成sources.list.back文件。)
sudo gedit /etc/apt/sources.list
把下边的内容贴近去:
deb ftp://linux.xidian.edu.cn/ubuntu/ lucid main restricted universe multiverse
deb ftp://linux.xidian.edu.cn/ubuntu/ lucid-backports main restricted universe multiverse
deb ftp://linux.xidian.edu.cn/ubuntu/ lucid-proposed main restricted universe multiverse
deb ftp://linux.xidian.edu.cn/ubuntu/ lucid-security main restricted universe multiverse
deb ftp://linux.xidian.edu.cn/ubuntu/ lucid-updates main restricted universe multiverse

sudo apt-get update //更新一下


五.设置编码,解决乱码问题
  典型的打开windows下的TXT文件显示中文乱码。这是因为编码方式不同造成的主要是编码不同,Windows下简体中文多用gb2312编码 (或gbk, gb18030), Linux下多用utf8编码!
1.打开配置编辑器
方法一:在Applications(应用程序)菜单上点右键,选择Edit Menu(编辑菜单).在Main Menu(主菜单)的对话框中勾选System Tools(系统工具)--Configuration Editor(配置编辑器),并从Applications菜单中开启。
方法二:$ sudo gconf-editor
方法三:按组合键ALT+F2打开“运行应用程序“对话框,输入 gconf-editor,运行,进入配置编辑器
2.在打开的界面中选择: apps->gedit-2->preferences->encodings
在右边的auto_detected和shown_in_menu上点右键编辑,点add,分别加入GB2312,(GB18030,GBK可加可不加)并点UP按钮移动到第一位。关闭,就可以显示中文了。


六.Ubuntu默认浏览器firefox对flash文件不能打开现象

(1)linux firefox 安装flash player 10:
1.ADOBE的网站下载install_flash_player_10_linux.tar.gz。
2.解压tar -zxvf install_flash_player_10_linux.tar.gz
  得到libflashplayer.so文件。
3.复制libflashplayer.so到火狐浏览器插件文件夹下,
  命令为: sudo cp libflashplayer.so /usr/lib/mozilla/plugins    \*此目录可能根据火狐不同的版本有所不同,大家可以先去lib下面 搜索一下mozilla*\
4.重启firefox。就可以看flash了。

(2)用firefox 播放flash时出现乱码解决:(目前我没遇到,可能是前面第五部改了的缘故)
sudo vim /etc/fonts/conf.d/49-sansserif.conf

    <edit name="family" mode="append_last">
        <string>sans-serif</string>
    </edit>
    将<string>sans-serif</string>部分改为<string>sans</string>

七.安装QT遇到的问题
(1)安装X86的Qt 时,#./configure报错:
make: g++:命令未找到
make: *** [outlook.o] 错误 127

出现错误是因为没有安装g++编译器,运行以下命令来安装:
sudo apt-get install g++

(2)装完g++ 执行
#./configure
#make
make: *** 没有指明目标并且找不到makefile。 停止。
原因肯定是./configure出错,再#./configure 报错:
Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /usr/QT/qt-x11-opensource-src-4.7.4/mkspecs/linux-g++

其原因就在于需要安装libX11的开发包,在ubuntu/debian里包名都是libX11-dev
根据以往的经验,在./configure前主动装好下面3个包,基本上就万事大吉了
sudo apt-get install libX11-dev libXext-dev libXtst-dev
之后#./configure
   #make
结果运行了一个小时又出错:
/usr/bin/ld: cannot find -lXrender
collect2: ld returned 1 exit status
make[1]: *** [http://www.cnblogs.com/http://www.cnblogs.com/lib/libQtWebKit.so.4.7.4] 错误 1
make[1]:正在离开目录 `/usr/QT/qt-everywhere-opensource-src-4.7.4/src/3rdparty/webkit/WebCore'
make: *** [sub-webkit-make_default-ordered] 错误 2

因为没有装libXrender-dev,不止要装上面3个包,还少装了这个。
sudo apt-get install libXrender-dev
然后清除下make clean。最好再把解压的包删掉 rm -r qt-everywhere-opensource-src-4.7.4。
重新解压编译安装。

%%To reconfigure, run 'make confclean' and 'configure'.

(3)解决Ubuntu Linux 下的gmake不能使用的问题 (有的编译命令是gmake,我就百度了原因)

编译nachos程序的时候发现了这样一个错误
gmake : command not found
gmake的全名应该是GNUmake,
原来在ubuntu中已经取消掉了它,都用make代替。
方法是把Makefile中的gmake全改为make。
解决方案是到/usr/bin下创建一个符号连接 cd /usr/bin && sudo ln -s make gmake 即可

如果你用的是FC等发行版的话应该没有这个问题的,就不必担心了。

Linux系统环境下的make就是GNU Make,之所以有gmake,是因为在别的平台上,make一般被占用,GNU make只好叫gmake了。
比如在安装二进制文件进行编译时要使用make命令,但如果在Solaris或其他非GNU系统中运行,必须使用GNU make,而不是使用系统自带的make版本,这时要用gmake代替make进行编译。

那qmake呢???
设置终端透明呢???
conky?

(4)安装arm-linux-gcc-4.4.3
    0、软件请到友善之臂的官网下载,此处用的mini2440光盘提供的。
    1、解压 tar zxvf arm-linux-gcc-4.4.3-20100728.tar.gz (加压完就安好了,只需要设置环境变量,解压生成opt命名的文件夹)
    2、设置环境变量:gedit /etc/profile
    然后在最后加上 export PATH=$PATH:/usr/QT/opt/FriendlyARM/toolschain/4.4.3/bin
    3、使环境变量立即生效: source /etc/profile
    4、验证:arm-linux-gcc  -v  。

(5)相关编译命令
注意:每次编译不同环境QT前,重新把软件包复制到别的文件夹,分别解压。(如本次安装放在了/usr/QT qt-everywhere-opensource-src-4.7.4-6-X86,qt-everywhere-opensource-src-4.7.4-6-qvfb, qt-everywhere-opensource-src-4.7.4-6-arm,可能会用到重命名解压的文件夹 mv file1 file2
1.编译qt-X86平台的QT环境
A :cd /usr/QT/qt-everywhere-opensource-src-4.7.4-6-X86/
配置:#./configure -prefix /usr/local/qt-X86 -qvfb  (注意配置时要加-qvfb,否则后面无法编译生成qvfb工具。
编译:make
安装:make install
B: 编译安装qt-X86的qvfb
进入刚才加压的包  cd /usr/QT/qt-everywhere-opensource-src-4.7.4-6-X86/tools/qvfb/
#make
#make install
 然后会在/usr/local/qt-X86/bin里生成qvfb。


 还没完,没安装QT开发包,开发个鸟
# apt-get install libqt4-dev

*** 运行/usr/local/qt-X86里的例子example或者demos,不能执行,删掉.pro,makefile 等后重新编译可执行。一般就可以了,如果有的程序用到OpenGL,make的时候会报错,
error: QtOpenGL: 没有那个文件或目录。
改正方法是在qmake -project 生成的.pro中加入 QT   +=opengl。再qmake ,make就好了。


2.编译qt-embedded的两个版本:for X86-qvfb和 for arm
A:编译X86平台的qvfb环境
进入qvfb源文件目录:cd /usr/QT/qt-everywhere-opensource-src-4.7.4-6-qvfb/tools/qvfb/
#./configure -prefix /usr/local/arm/QtEmbedded-4.7.4-qvfb -embedded x86 -qvfb -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
make
make install

???复制 qvfb 相关文件
make install 完成后, 会在/usr/local 目录下生成一个 Trolltech 目录, 形 成 /usr/local/Trolltech 目 录 , 这 是 qt-x11-opensource-src-4.5.3 安 装 后 所 在 的 目 录 , 进 入 /usr/local/Trolltech 会 看 到 一 个 Qt-4.5.3 的 目 录 , 将 /usr/local/qt/qt-x11-opensource-src-4.5.3/tools/qvfb 目 录 下 的 qvfb 相 关 文 件 拷 贝 到 /usr/local/Trolltech/Qt-4.5.3/bin 目 录 下 , 在 终 端 中 操 作 ( 确 定 当 前 目 录 是 /usr/local/qt/qt-x11-opensource-src-4.5.3) cp tools/qvfb/qvfb* /usr/local/Trolltech/Qt-4.5.3/bin OK,qt-x11-opensource-src-4.5.3 就编译安装成功了,此过程大约需要 4 小时。 (作者貌似漏了一些,要运行 qvfb 还必须编译生成可执行文件 qvfb,操作如下: cd qt-x11-opensource-src-4.5.3/tools/qvfb/ make mv qvfb /usr/local/Trolltech/QtEmbedded-4.5.3-x86/bin/ )


3.编译tslib库
#./autogen.sh
 出错了:./autogen.sh: 4: autoreconf: not found
 是因为没有安装automake 工具
  sudo apt-get install autoconf automake libtool 即可解决。
 
#./configure --prefix=/opt/mytslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
#make
又出错:make[2]: *** [ts_calibrate.o] 错误 1
make[2]:正在离开目录 `/opt/qt/tslib/tests'
make[1]: *** [all-recursive] 错误 1
make[1]:正在离开目录 `/opt/qt/tslib'
make: *** [all] 错误 2
将open函数的修改如下:

修改方法:把/opt/qt/tslib/tests/ts_calibrate.c 文件open函数修改:
cal_fd = open("/etc/pointercal", O_CREAT | O_RDWR ,0);
因为gcc 新版本编译器对语法检查严格,在源文件 ./tests/ts_calibrate.c 中少了一个参数。

再编译可能还会出错:error:stray'\243'in program类似这样的错误,
表述‘\243’这个字符不能识别,应该是用的中文输入法输入标点符号,把问题指向的语句重新用英文输入法输一次就行了。
重新编译
#make clean
#make
#make install
最终在/opt/mytslib下生成bin etc include lib

 
4.编译ARM平台的QT环境
#cd /usr/QT/qt-everywhere-opensource-src-4.7.4-6-arm/
#./configure -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -qt-mouse-pc -no-gfx-qvfb -no-gfx-vnc -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-qvfb -no-gfx-vnc -qt-mouse-tslib -no-glib -prefix /usr/local/arm/QtEmbedded-4.7.4-arm -embedded arm -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18,24,32 -I/opt/mytslib/include -L/opt/mytslib/lib
结果出错,
The tslib functionality test failed!

You might need to modify the include and library search paths by editing

QMAKE_INCDIR and QMAKE_LIBDIR
因为 是arm-linux-gcc的路径没有添加到系统变量中。。。
我明明添加了,再 source /etc/profile了,  (????)
之后重新配置编译就OK了。


Qt for Embedded Linux data directory is not owned by user 0 已放弃

QScreenLinuxFb::connect: 权限不够 Error opening framebuffer device /dev/fb0
但是qvfb呢???

装了Qt-X86后不能直接编程吗?还装了qt开发包,装了之后有两个版本qmake,一个是装的qt开发包里的,Using Qt version 4.6.2 in /usr/lib
另一个是之前安装的Using Qt version 4.7.4 in /usr/local/qt-X86/lib,在我source之后。

/usr/lib/libtiff.so.4 不是符号连接

装了2个安装包解决了qvfb打开问题。
apt-get install qt4-dev-tools
apt-get install qt3-dev-tools-embeded,
然后到qvfb的安装目录下bin/里执行qvfb:
cd /usr/local/arm/QtEmbedded-4.7.4-qvfb
//#source setenv.sh
# qvfb -width 640 -height 480 -depth 16 & (必须要加&符号,否则只能有一个窗口活动)
#source setenv.sh (注意:souece的位置,放在前面的话,qvfb打不开,不知为何)
#cd /usr/local/arm/QtEmbedded-4.7.4-qvfb/examples/animation/states# ./states -qws
Connected to VFB server :0: 640 x 480 x 16 226x169mm (72x72dpi)

看下图的错误





%%%%./configure  错了之后怎么办?
如果在配置指令 如果在配置指令./configure ......执行后 发生错误 可以进入到解压缩文件目录 如 执行后,发生错误 可以进入到解压缩文件目录(如 执行后 发生错误,可以进入到解压缩文件目录 /usr/local/qt/qt-embedded-linux-opensource-src-4.5.3-arm 目录 执行 make configclean 便可将 目录),执行 前面所有的配置都清除掉,然后再 前面所有的配置都清除掉 然后再./configure。 然后再 。 2 如果在编译的过程中出错 如果在编译的过程中出错, 在重新 make 前需要先执行 make clean, 然后再./configure, 然后再 的操作。 再执行 make 的操作。 3 在 make install 完后 可执行 make clean 将中间生成的许多 文件清楚 这些临时文 完后,可执行 将中间生成的许多.o 文件清楚,这些临时文 件要占很大一部分空间。 件要占很大一部分空间。

用源码包自己安装的可以直接rm(移出)。 在重启。
To reconfigure, run 'make confclean' and 'configure'.



5.添加环境变量
.bashrc是什么,想设固定环境变量,所有用户所有情况下都优先的路径。

本次设环境变量:(不适合用.bashrc)
各版本使用方法
我们在运行的时候分别运行对应的脚本即可,比如我们要用qt-x11:
cd /usr/local/qt-X86/
source setenv.sh
然后就可以使用对应的qmake designer等工具了。


6.装了一个拍照软件,测试摄像头能否识别
sudo apt-get install cheese

7.minicom(Linux下的超级终端)的使用
安装:apt-get install minicom
测试:minicom -v
显示版本号即表示安装成功了。
使用:
打开 minicom -s
出现配置菜单,见图:

八 移植
  安装win7超级终端,配置参数为152100 ,8,1 无,插电显示mini2440主菜单,根据板子状态分两种情况:(用超级终端可以传送文件,输入rz然后右键选择传送文件。。。)
A 板子内核系统等全无,则需先装bootloader,内核文件,文件系统,然后是装自己需要运行的程序。方法同毕社论文步骤,用友善之臂提供的制作工作制作相应bootloader、root、等。然后板子处于B 状态

B 板子上有系统,直接选择主菜单b选项启动内核系统(无图形用户界面的系统),然后就是移植QT程序一级相关依赖库,还有环境变量的设置。
1 在mini 2440板建立如下目录:
mini2440,子目录:Qtlib camera-app tslib
 Qtlib里包含:见图片


tslib里:bin etc include lib 即触摸屏驱动解压的文件
camera-app :自己的可执行程序如videoCapture ,plugins(注意这个是插件包,此处Qt程序会用到图片编解码插件库camera-app/plugins/imageformats/里的五个lib库按此路径放进去。


2 复制字库文件

把PC 机上/usr/local/arm/QtEmbedded-4.7.4-arm/lib/fonts 目录上所有字库(自己用到的库即可)文件CP 到mini2440上的/usr/local/Trolltech/QtEmbedded-4.7.4-arm/lib/fonts目录下。(或者不放在这个目录上,后面环境变量加上实际放的路径上)

3 复制运行库

在PC 机上复制下列文件到mini 2440上的mini2440/Qtlib/目录下:

libQtGui.so.4 libts-0.0.so.0 libQtCore.so.4 libQtNetwork.so.4。。。。。。具体查看图片。

一般在PC 机上/usr/local/arm/QtEmbedded-4.7.4-arm/lib/和/tslib/上可以找到上述文件。复制时注意如果需要复制的文件是链接文件,则把被链接文件都要复制上。

4 复制触摸屏软件

复制PC 机上/opt/mytslib/目录下的全部文件(含子目录)到mini 2440上的mini2440/tslib目录下

5 在开发板上建立环境变量
输入 vi /etc/profile  编辑此文件(开发板不支持gedit命令。按:q推出编辑模式
修改开发板上/etc/profile 文件,增加以下内容:

# Ash profile
# vim: syntax=sh

# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]\# '
PATH=$PATH

HOSTNAME=`/bin/hostname`

export USER LOGNAME PS1 PATH

export  QTDIR=/mini2440
LD_LIBRARY_PATH=$QTDIR/Qtlib:$LD_LIBRARY_PATH
export  PATH LD_LIBRARY_PATH
export  QTDIR_PLUGINDIR=$QTDIR/plugins
export  PATH=$QTDIR/bin:$PATH

export  TSLIB_ROOT=/mini2440/tslib
export  TSLIB_TSDEVICE=/dev/event0
export  LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$LD_LIBRARY_PATH
export  TSLIB_FBDEVICE=/dev/fb0
export  TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export  TSLIB_CONSOLEDEVICE=none
export  TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export  QWS_MOUSE_PROTO=tslib:/dev/event0
#export  TSLIB_CALIBFILE=/etc/pointercal

export  FFMPEGLIB_ROOT=/mini2440/ffmpeg
LD_LIBRARY_PATH=$FFMPEGLIB_ROOT/lib:$LD_LIBRARY_PATH
export  PATH LD_LIBRARY_PATH
export  PATH=$FFMPEGLIB_ROOT/bin:$PATH

export  OPENCV_ROOT=/mini2440/OpenCV
LD_LIBRARY_PATH=$OPENCV_ROOT/lib:$LD_LIBRARY_PATH
export  PATH LD_LIBRARY_PATH
export  PATH=$OPENCV_ROOT/bin:$PATH

ts_calibrate


(回去研究这个文件,还有目前字体库放在mini2440上的/usr/local/Trolltech/QtEmbedded-4.7.4-arm/lib/fonts目录下,环境变量里没有任何说明,但程序字体正常显示,不知原因。??
研究完这个文件,可以再看看那个网页(http://vcommon.growprogress.com/?paged=34)怎么改环境变量可使
“本来是准备开机以后运行qtopia再运行自己的程序,但是本来能全屏运行的程序通过rcS自动运行后并不能全屏显示,qtopia的任务栏仍然在。所以就决定不用qtopia,直接在目标板上运行程序。”)

然后进入程序所在目录执行./videoCapture -qws 完成。


研究学长代码去,学习规范编码.

1 设置电脑静态IP(两台电脑相连组局域网) :
#sudo gedit  /etc/network/interfaces
打开interfaces文件:
auto lo
iface lo inet loopback            #lo 是本地回环地址:127.1

auto eth0
iface eth0 inet static
address 192.168.1.152
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255      #设定eth0的IP

这样,IP并没有立即生效。
sudo /etc/init.d/networking restart

可以试着ping。


2 有可能导致下次开机任务栏网络图标消失,解决方法
#gedit /etc/NetworkManager/nm-system-settings.conf
把“managed=false”改为ture。
#service network-manager restart
显示network-manager start/running, process 2962
任务栏图标就出现了。

精简总结:

1.用软件中心装的qt集成开发环境编好程序。

 以下两个步骤都是必须的,首先,交叉编译必然需要arm-linux-gcc,qt-embedded也是必须的,它提供编译时需要的库。当然了下载到板子里运行时需要运行时的qt库,这个后面说。

2.安装arm-linux-gcc

  # tar xvzf arm-gcc-4.4.1.tar.gz

  # cd arm-gcc-4.4.1

  # ./configure

  # make

  # make install

 默认安装到/usr/local/arm/4.4.1

配置环境变量gedit /etc/profile

在最后添加:export PATH=$PATH:/usr/local/arm/4.4.3/bin

source  /etc/profile

3 安装Qt-Embedded

#tar -zxvf qt-everywhere-opensource-src-4.7.4-6-arm.tar

#cd /usr/QT/qt-everywhere-opensource-src-4.7.4-6-arm/

#./configure -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -qt-mouse-pc -no-gfx-qvfb -no-gfx-vnc -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-qvfb -no-gfx-vnc -qt-mouse-tslib -no-glib -prefix /usr/local/arm/QtEmbedded-4.7.4-arm -embedded arm -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18,24,32 (-I/opt/mytslib/include -L/opt/mytslib/lib可以不要)

#make

#make install

配置环境变量:

在解压的目录下#cd /usr/QT/qt-everywhere-opensource-src-4.7.4-6-arm/

新建#gedit setenv-embedded.sh

PATH=/usr/local/arm/QtEmbedded-4.7.4-arm/bin:$PATH
QTDIR=/usr/local/arm/QtEmbedded-4.7.4-arm
MAINPATH=$QTDIR/man:$MAINPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH QTDIR MAINPATH LD_LIBRARY_PATH

每次用到时都source下

现在查看环境变量就有了:#echo $PATH

4.交叉编译:

把源程序中的.h,.cpp拷到一个文件夹如capture

进入到该文件夹执行

#qmake -project

#qmake  (此步完了查看生成的Makefile中编译器是否为arm-linux-gcc)

#make

5 把编译好的可执行程序放到优盘。把优盘插在mini2440上,拷出程序到指定目录

挂载优盘:mount -t vfat /dev/sdaX /mnt  (这个X要具体看优盘当前是那个设备名,每次插上可能都会变)

执行后可能会提示:FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!

不用管,这时你查看/mnt下已经是你优盘的内容了。之后cp到指定目录。

6.我用的是已经制作好的系统,其中已包括了qt4.7的依赖库、插件库等,我只需放到/mini2440/camera_server/

执行:./capture -qws

OK !

7.如果要传回电脑,电脑端程序需要连接板子上ip,查看板子ip

#ifconfig eth0

8。注意问题:

main函数更改了再交叉编译。
板子有默认eht0IP:192.168.2.150
查看#ifconfig eth0
注意摄像头接口video0/video1 Pc端开发摄像头默认接口可能和板子默认不一致。

9.最关键的是:文件系统现在用的是学长制作的,他把依赖库、插件库、环境变量设置文件都放好了,我只需把程序放到指定目录即可。

至于制作文件系统和找那些是依赖库,我是不知道的。以后有机会再研究。可以看我的下篇博文,制作mini2440文件系统





 



 

原文地址:https://www.cnblogs.com/Yogurshine/p/3014694.html