嵌入式开发环境配置

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 restartlinux

关于刷机的几点思考
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卡就能够了。web


关于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 restartbash

最后在开发板采用命令 tftp 0x50000000 /home/guoyang/tftp/key.bin 能够将key.bin下载到开发板 ,而后采用 go 0x50000000 能够执行该程序服务器

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

接下来开始神奇的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 检验一下ui


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# makethis


最后开机又不行了可是先执行sudo -s 而后执行make min。。。。。就行了nuxt


minicom配制方法
Quick instructions for installation:rest

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是不能用触摸屏,不知道啥缘由。 至此开发环境创建好了

相关文章
相关标签/搜索