嵌入式开发环境配置

samba 服务器配置
sudo apt-get install samba 
vi /etc/samba/smb.config
添加一下语句
[guoyang]
comment=share
path= /home/guoyang 
available= yes
browseable =yes
writable = yes
然后
smbpasswd -a 用户名(此用户名必须已经存在)
接下来会自动出现输入密码的命令,输入密码后
sudo service  smbd restart
Samba服务器配置成功
tftp 服务器 
可以利用命令sudo apt-cache search tftp-查看安装tftp服务器需要哪个软件包
sudo apt-get install tftpd-hpa
建立tftp目录。如/home/guoyang/tftp
修改 /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/guoyang/tftp"
TFTP_ADDRESS="0.0.0.0:69"
#TFTP_OPTIONS="--secure"
FTP_OPTIONS="-l -c -s''
然后输命令
sudo service tftpd-hpa restart
nfs服务器配置
sudo apt-cache search nfs-查看安装nfs服务器需要哪个软件包
sudo apt-get install nfs-kernel-server
修改/etc/exports文件,添加如下代码
/home/guoyang/nfs  *(rw,sync,no_root_squash)//需要共享的文件目录
然后输入命令
sudo /etc/init.d/nfs-kernel-server restart 
远程连接时出现拒绝问题。这时已经关闭防火墙,因为没有开通SSH服务
采用如下方式开通
sudo apt-get install ssh
sudo gedit /etc/ssh/ssh_config
设置端口号为22
sudo /etc/init.d/ssh restart

关于刷机的几点思考
1.配置文件中有 Linux bootloader=  *** 意思就是你刷机的时候superboot存放的位置,在桌面5.2中superboot放在images目录下
所以Linux-BootLoader = Superboot-6410.bin ,注意文件名要和你存放的文件名一致
2.好像刷机时对superboot版本比较敏感,桌面5.2中/images下存放的superboot是可以用的
3.原先刷机失败有一下原因
(1),superboot 没有存放到/images目录下,导致出现 install bootloader failed ,蜂鸣器一直响
(2),superboot版本不对,虽然可以重装系统,但是重装后从nandflash启动到半截就启动不下去了。
最终 桌面5.2 /images是可以用的。superboot烧写好后,将/images目录直接复制到SD卡就可以了。


关于tftpf服务器配置的思考
主机ip 172.17.51.194
虚拟机(采用Eth1,bridge连接采用本机网卡,customer vmneter0)ip设为172.17.51.195
开发板ip设为 172.17.51.193 (采用命令 setenv ipaddr 172.17.51.193)
setenv setserverip  172.17.51.195(虚拟机ip)
此时主机和虚拟机可以ping通,开发板和主机,开发板和虚拟机可以ping通,但是主机和虚拟机ping不通开发板,查资料说时u-boot不支持其他设备ping它自己。
虚拟机tftp服务器配置 :有说进入/etc/default gedit tftp-hpa 添加
TFTP_USERNAME="tftp"
TFTP_ADDR = "0.0.0.0:69"
TFTP_DIRECTORY="/home/guoyang/tftp"
TFTP_OPTIONS="-l -c -s"
上面配置tftp服务器时说
修改 /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/guoyang/tftp"
TFTP_ADDRESS="0.0.0.0:69"
#TFTP_OPTIONS="--secure"
FTP_OPTIONS="-l -c -s''
然后输命令
sudo service tftpd-hpa restart

最后在开发板采用命令 tftp 0x50000000 /home/guoyang/tftp/key.bin 可以将key.bin下载到开发板 ,然后采用 go 0x50000000 可以执行该程序

出现的问题:如果采用命令 tftp 0x50000000 key.bin 会出现错误 说是Error code 2: Only absolute filenames allowed

接下来开始神奇的busybox之旅


arm-linux-gcc 安装
解压文件.tgz tar -xvzf
复制文件到opt目录下 进入/hone/guoyang/tools/opt 执行命令sudo cp -r Friendlyarm/. /opt
然后 sudo gedit  /etc/environment
添加:/opt/Friedlyarm/4.5.1/bin
然后source /etc/environment 
然后 arm-linux-gcc -v 检验一下


uboot配置出现的问题
解压uboot之后执行make mini6410......出现找不到arm-linux-gcc但是在/etc/profile    ,/etc/environment,/root/.bash..都配置了环境变量
但是还是不行,最后网上说先执行sudo -s ,然后再配置/etc/profile。然后source /etc/profile还是不行
最后配置了/etc/bash.bashrc,添加export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin,
然后再uboot目录下执行了make mini6410......,make 成功了
root@guoyang-virtual-machine:~/uboot/u-boot-mini6410# make distclean 
find /home/guoyang/uboot/u-boot-mini6410 -type f \( -name .depend \
    -o -name '*.srec' -o -name '*.bin' -o -name u-boot.img \) \
    -print0 \
    | xargs -0 rm -f
rm -f  *.bak ctags etags TAGS include/version_autogenerated.h
rm -fr *.*~
rm -f u-boot u-boot.map u-boot.hex 
rm -f tools/crc32.c tools/environment.c tools/env/crc32.c
rm -f tools/inca-swap-bytes cpu/mpc824x/bedbug_603e.c
rm -f include/asm/proc include/asm/arch include/asm
[ ! -d /home/guoyang/uboot/u-boot-mini6410/nand_spl ] || find nand_spl -lname "*" -print | xargs rm -f
root@guoyang-virtual-machine:~/uboot/u-boot-mini6410# make mini6410_nand_config-ram256 
Configuring for mini6410 board which boot from NAND ram256...
root@guoyang-virtual-machine:~/uboot/u-boot-mini6410# make


最后开机又不行了但是先执行sudo -s 然后执行make min。。。。。就好了


minicom配制方法
Quick instructions for installation:

1. Change to the minicom-$VERSION directory.
2. ./configure (see ./configure --help for options)
3. make
4. make install
5. minicom -s (for changing /etc/minicom you probably need to run it as root)
   Change what should be changed on your system, and choose
   'Save setup as dfl' from the configuration menu to save the
   changed settings as system defaults.
   Now add every user which should be allowed to use minicom to
   the group of the corresponding character devices (e.g. /dev/ttyS0).
   On Debian this group already exists and is called 'dialout'.
   
   
   
nfs系统开发环境的建立
千辛万苦终于来到了这里,接下来就是遇到的问题
刚开始用的是linux-2.6.38的内核,里面有config-mini6410文件,将他复制成.config文件之后make zImage 会
出现s70屏幕偏移的问题,于是乎改变驱动程序里面的参数但是这时不能生成zImage文件不知道为啥,于是终于发现
光盘里面还有一个linux-2.6.28的内核,解压发现里面竟然有config-mini6410-s70文件,将他复制成.config文件编
译出来的内核也会出现s70显示偏移问题,这时心里想肯定是驱动问题,于是乎通过makefile发现lcd驱动为s3c_mini6410.c
等文件,同时在s3c_mini6410.c发现了leftmargin等字样,有在s3c_mini6410.h文件中找到了相应参数的定义,修改开始了
通过修改其参数如下#elif defined(CONFIG_FB_S3C_S70T800480)

#define S3CFB_LCD_TYPE    "S70"
//#define S3CFB_VBP        (0x15)    /* back porch */
#define S3CFB_VBP        (0x1E)    /* back porch */
//#define S3CFB_VFP        (0x16)    /* front porch */
#define S3CFB_VFP        (0x16)    /* front porch */
#define S3CFB_VSW        (0x02)    /* vsync width */
//#define S3CFB_HBP        (0x2C)    /* back porch */
#define S3CFB_HBP        (0x56)    /* back porch */

//#define S3CFB_HFP        (0xD2)    /* front porch */
#define S3CFB_HFP        (0x05)    /* front porch */
#define S3CFB_HSW        (0x02)    /* hsync width */

#define S3CFB_HRES        800        /* horizon pixel  x resolition */
#define S3CFB_VRES        480        /* line cnt       y resolution */

#define S3CFB_CLKVAL        3    /* ~33.25 MHz */
#define S3CFB_VIDCON1    (S3C_VIDCON1_IHSYNC_INVERT | S3C_VIDCON1_IVSYNC_INVERT)
修改后编译内核竟然通过了,好了,屏幕显示正常,但是采用的是友善提供的rootfs_qtopia_qt4-s文件系统,
触摸屏又出现问题,最终用里面的触摸屏校准软件解决了,现在一切ok
同时内核解压后编译时出现错误说是define(&arrary)。。。。。,这时通过错误提示将kernel/timconst.pl文
件里面的最后几行if (!defined(@val))改为if (!(@val))就好了
网上有说法s70显示偏移是因为bootargs 里面没有 lcd=S70,但是我加上以后还是有问题,最终问题解决时没有
这个参数是驱动问题

开始了qt开发环境的搭建,目的,让自己的软件可以跑在arm开发板上,遇到了很多的问题,接下来慢慢聊。
刚开始用的是文件系统是rootfs_qtopia_qt4-s-20111212.tgz,按照光盘说明文档建立虚拟机交叉编译工具链,建立的是Qtembdded的开发环境用的是
qt-everywhere-opensource-src-4.7.0文件,解压后按照开发文档说明配置config,我建立了一个脚本文件install.sh其内容如下
#!/bin/sh
echo yes | ./configure -prefix /opt/Qt4.7 -static  -opensource -embedded arm -xplatform qws/linux-arm-g++  -no-webkit  -qt-libtiff  -qt-libmng  -qt-mouse-tslib -qt-mouse-pc -no-mouse-linuxtp -no-neon好像真正编译的时候没有-static选项,有此选项也可以编译通过。编译时出现-qt-libmng找不到,不用理它.然后执行make&&make install,这时候可能出现错误[sub.....],意思好像就是啥啥顺序错误。这时候可以先执行sudo -s ,然后执行make&&make install。按照这样编译出来后,写的qt程序在安装上述文件系统的开发板上运行时出现illegal instruction
错误,网上有的说编译qt-everywhere-opensource-src-4.7.0时要改一下qmake.config文件里面的选项。其路径在/opt/mini6410/qt-everywhere-opensource-src-4.7.0/mkspecs/default
#add by meself
QMAKE_CFLAGS           += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv6  -mtune=arm1176.....
QMAKE_CXXFLAGS         += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv6 -mtune=arm1176.....
#endmyself
然后将common文件夹里面的g++.conf里面QMAKE_CFLAGS_RELEASE    += -O2改为QMAKE_CFLAGS_RELEASE    += -O0。
这样make&&make install时出现错误,说是-mtune=arm1176.....错误。
然后把那个改为arm11还是去掉之后就可以用了。这样编译之后还是出现illegal instruction问题。考虑到这时候linux上用的是qt5.5creator,于是换成qt-sdk-linux-x86-opensource-2010.05.1.bin,建立这个的开发环境是建立交叉编译工具链是开发文档上显示选择PATH IN RELEASE,但是编译时出现underfine reference错误,最后选择release,该问题就不会出现。但是编译的程序还是不能运行,最后试了千万次,终于重见天日的时间到了。跟换了根文件系统,使用的是rootfs_qtopia_qt4-201411110.tar.gz,解压了之后,里面有一个setqt4env文件,然后我自己建了一个setqenv文件,将setqt4env和bin/qt4里面需要的东西复制过来,让启动文件为setqenv,这时终于可以用自己编写的程序了,但是不能用触摸屏,日了狗了。最后采用的是人家的setqt4env文件,将自己的程序执行,这回可以使用了。
最终成功的开发环境如下:
1.编译qt-everywhere-opensource-src-4.7.0,采用执行脚本的方式配置config,qt-everywhere-opensource-src-4.7.0,脚本文件内容如下,
#!/bin/sh
echo yes | ./configure -prefix /opt/Qt4.7 -static  -opensource -embedded arm -xplatform qws/linux-arm-g++  -no-webkit  -qt-libtiff  -qt-libmng  -qt-mouse-tslib -qt-mouse-pc -no-mouse-linuxtp -no-neon
去掉-static好像也可以。
修改/opt/mini6410/qt-everywhere-opensource-src-4.7.0/mkspecs/default路径下的qmake.conf,添加如下内容
#add by meself
QMAKE_CFLAGS           += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv6  
QMAKE_CXXFLAGS         += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv6 
#endmyself
然后将common文件夹里面的g++.conf里面QMAKE_CFLAGS_RELEASE    += -O2改为QMAKE_CFLAGS_RELEASE    += -O0。
本来上面还添加了-mtune=arm1176.....,但是make时出现错误于是删掉了。
最后执行脚本文件,然后执行make&&make install ,这时可能会出现错误,说是啥啥顺序错误,也曾经碰见过不能进入/opt/Qt4.7文件夹等错误。这时自己创建了一个Qt4.7文件夹并修改了权限。然后执行了sudo -s 命令,然后make成功了,不行的话多试几次应该就可以了。
linux qt开发环境采用qt-sdk-linux-x86-opensource-2010.05.1.bin,
交叉编译器建立是注意选择release,如果按开发文档上说的选择PATH in RELEASE,编译时会出现underfine reference错误。
文件系统采用rootfs_qtopia_qt4-201411110.tar.gz,采用人家的setqt4env,采用自己写的env是不能用触摸屏,不知道啥原因。
至此开发环境建立好了


 

转载于:https://my.oschina.net/u/3141630/blog/806472

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值