嵌入式開發環境配置

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是不能用觸摸屏,不知道啥緣由。 至此開發環境創建好了

相關文章
相關標籤/搜索