全志A33学习笔记及问题汇总

来源:互联网 发布:淘宝虚假交易订单清洗 编辑:程序博客网 时间:2024/05/16 14:55

全志A33学习笔记及问题汇总

全过程:

1.编译环境配置

      首次编译,需要导入vstar方案的内核配置,进入linux3.4目录,

如果开启WIFI需修改a33_vstar_defconfig 1294行,改为:CONFIG_BCMDHD_OOB=n   #与硬件电路相关

cp a33_vstar_defconfig   .config

./build.sh  config          只须做一次即可

到这一步,自带的编译器已经生成,在out目录。

out/sun8iw5p1/dragonboard/common/buildroot/external-toolchain/bin

将此路径加入环境变量PATH,接下来编译内核可以用。

 

2 .在编译内核及生成文件系统前要做的:      

1>   将应用程序相关文件复制到buildroot/target/dragonboard/extra目录下(注意运行权限)

2>      根据需要修改启动脚本文件buildroot/target/dragonboard/extra/autorun.sh    

           启动WIFI

           /root/setup_network.sh

           运行应用程序

           /usr/gui/centrol_system-qws&

          

3>   添加QT库路径  buildroot/target/dragonboard/extra/profile中添加QT库路径

           export LD_LIBRARY_PATH=/opt/Trolltech/lib/:$LD_LIBRARY_PATH

           这样在终端运行qt应用程序才可以

4>  解决中文显示问题

将buildroot/target/dragonboard/Trolltech/lib/fonts目录下所有文件删除,将文泉驿字体复制到此目录下。          

5>  开发板无法PING通外网原因:

           buildroot/target/dragonboard/extra/  建立resolv.conf文件(DNS域名服务器IP配置)

           内容如下:

                 #Generated by NetworkManager

                 nameserver192.168.128.1

                 nameserver8.8.8.8

                 nameserver192.168.1.1

                

6>  使用WIFI的相关修改

           dragonboard/buildroot/target/dragonboard下的build.sh作如下修改:

           mkdir-p rootfs/usr/gui

           mkdir-p rootfs/mnt/nfs 

              cp -rfextra/centrol_system rootfs/usr/gui      #应用程序

           cp-rf extra/image rootfs/usr/gui             #相关图片

           cp-rf extra/zhpy_table.db rootfs/root     #拼音输入法数据库

           cp-rf extra/centrol_system.ini  rootfs/root    #应用程序配置文件

           cp-rf extra/resolv.conf rootfs/etc

 

           cp-rf rootfs/dragonboard/bin/*.bin rootfs/lib/modules/3.4.39/    #WIFI依赖

           cp-rf rootfs/dragonboard/bin/*.txt rootfs/lib/modules/3.4.39/

           cp-rf extra/setup_network.sh rootfs/root

                   chmod 744rootfs/root/setup_network.sh         #WIFI启动脚本,一定要有可执行权限chmod 744 setup_network.sh

                 脚本内容如下:

                 #!/bin/sh

                 WPA_CONF_FILE=/etc/init.d/wpa_supplicant.conf

                 STA_DEVICE=wlan0                             

                 STA_GATEWAY=192.168.1.1

                 #insmod/system/vendor/modules/8723bs.ko

                 echo"inmod wifi module"              

                 /usr/sbin/wpa_supplicant-c $WPA_CONF_FILE -i$STA_DEVICE -Dwext &

                 ifconfigwlan0 192.168.1.200                                    

                 routeadd default gw $STA_GATEWAY

          

           cp-rf extra/wpa_supplicant.conf rootfs/root  #WIFI网络密码

           内容如下 :

           network={

                      ssid="N32926"

                      psk="87654321"

                                       }

          

7>   配置文件 打包前可随时修改

/home/yygyickl/A33/dragonboard/tools/pack/chips/sun8iw5p1/configs/vstar/sys_config.fex

开发包目录下的配置文件目录下的vstar目录中有各种液晶相应的sys_config.fex文件, 

根据液晶选择配置文件替换上面的文件sys_config.fex, 要根据实际情况修改

      8> 更改开机LOG

dragonboard/tools/pack/chips/sun8iw5p1/configs/vstar/bootlogo.bmp替换重打包即可。

板子运行后在 /boot/bootlogo.bmp替换也可。

3.编译内核

      ./build.sh

 

4. 打包固件

      ./build.shpack                   打包release 固件

./build.shpack_debug      打包debug 固件

5.烧写固件:

先打开软件,一键刷机界面,选择好固件,开发板现在未连接任何线,是断电状态,软件界面底部显示无设备连接,先按住任一音量键,不要松,将数据线连接到电脑,快速短按电源键约10次,正常的话,软件界面会显示开始烧录,此时松开所有按键。等待烧录完成。

 

 

 

 

备忘:

1.文件系统:

      路径:buildroot/target/dragonboard/rootfs

 

2.编译脚本:buildroot/target/dragonboard/build.sh

 

3.启动脚本:buildroot/target/dragonboard/rootfs/autorun.sh  原路径是:buildroot/target/dragonboard/extra/autorun.sh,

编译时由脚本拷到rootfs中,把要加载驱动模块的命令和需要自启动的程序写在这里。

 

4.驱动模块路径:/system/vendor/modules,原路径是:rootfs/lib/modules/3.4.39,运行时由脚本拷到/system/vendor/modules

5.配置文件/home/yygyickl/A33/dragonboard/tools/pack/chips/sun8iw5p1/configs/vstar/sys_config.fex

开发包目录下的配置文件目录下的vstar目录中有各种液晶相应的sys_config.fex文件, 根据液晶选择配置文件替换上面的文件sys_config.fex, 要根据实际情况修改。重新打包即可。

      系统配置文件

sdc_d1         =port:PF0<2><1><2><default>

                        端口  功能 电阻 电平

     

6 .串口

UART0的2根线与TF卡的2根线复用,默认关闭

      修改Debug的级别

           修改dragonboard/tools/pack/chips/sun8iw5p1/configs/default/env.cfg

           将loglevel=4改为loglevel=7或9, 重新打包固件即可。

     

     

      更改调试串口为UART2:

修改home/yygyickl/A33/dragonboard/tools/pack/chips/sun8iw5p1/configs/default/env.cfg

                 将console=ttyS0,115200改为console=ttyS2,115200

进入文件系统目录buildroot/target/dragonboard/rootfs 修改/etc/inittab文件,

将ttyS0::respawn:/sbin/getty -n -l/bin/autologin -L ttyS0 115200 vt100# GENERIC_SERIAL修改为

ttyS2::respawn:/sbin/getty-n -l/bin/autologin -L ttyS2 115200 vt100 # GENERIC_SERIAL

          

7.启动网卡

      固定IP

ifconfig eth0192.168.1.185  netmask 255.255.255.0broadcast 192.168.1.1 up 

自动获取IP

/sbin/udhcpc

 

8.挂载NFS文件系统

      mount-t nfs -o nolock 192.168.1.182:/home/yygyickl/nfsdir /mnt/nfs

      主机端要进行相应的设置。

 

 

 

问题及解决方法:

1. 编译环境搭建64位系统

libz.so.1: cannot open shared object file: No suchfile or directory

解决方法:apt-get installlib32z1

 

mkimage” command not found – U-Boot images will not bebuilt

解决方法:apt-get installuboot-mkimage

 

fakeroot: command not found

解决方法:apt-get installfakeroot

 

2.arm-linux-gcc4.3.2编译器安装          用来编译QT

修改环境变量, exportPATH=$PATH:/usr/local/arm/4.3.2/bin

在用arm-linux-gcc -v命令时,

/usr/local/arm/4.3.2/bin/arm-linux-gcc: line 3:/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc: No such file or directory

解决方法:apt-get installia32-libs 还不行参照下面。

64位的系统装arm-linux-gcc4.3.2, 网上的各种方法都试过了,无法解决,最后发现,GCC版本太高,如4.6.3  ,降低到4.4.7可解决。

降低GCC版本。Gcc -v 4.6.3

1.apt-get install gcc-4.4 g++-4.4g++-4.4-multilib gcc-4.4-multilib   

2.update-alternatives --install/usr/bin/g++ g++ /usr/bin/g++-4.4 100   

3.update-alternatives --install/usr/bin/g++ g++ /usr/bin/g++-4.6 50     

4.update-alternatives --install/usr/bin/gcc gcc /usr/bin/gcc-4.4 100      

5.update-alternatives --install/usr/bin/gcc gcc /usr/bin/gcc-4.6 50        

6.update-alternatives --install/usr/bin/cpp cpp-bin /usr/bin/cpp-4.4 100      

7.update-alternatives --install/usr/bin/cpp cpp-bin /usr/bin/cpp-4.6 50 

8.gcc -v  4.4.7

3.qt-everywhere-opensource-src-4.8.5           QT4.8.5库编译

1. 先安装以下几个包,apt-get install libX11-dev libXext-devlibXtst-dev

2. 进入qt-everywhere-opensource-src-4.8.5文件夹,./configure

4. 开发板无法PING通外网原因:

我的嵌入式设备已经接入网络。能够ping局域网ip。可是为了实现能够ping通外网。比如 ping baidu.com 还是不行的。

当运行ping baidu.com这个命令时,提示 ping bad address baidu.com。

这是因为板子的dns服务还没有配置。

这里 新建/etc/hosts文件(如果存在则只需修改)

内容如下:127.0.0.1   localhost

 

建立/etc/resolv.conf(DNS域名服务器IP配置)

内容可以从PC Linux上面copy过来,因为PC Linux和开发板链接Internet所需要的DNS域名是一致的

示例内容可以如下:

# Generated by NetworkManager

nameserver 192.168.128.1

nameserver 8.8.8.8

nameserver 192.168.1.1

 

重启开发板即可。

与网络时间同步的域名:

time.nist.gov

time.nuri.net

0.asia.pool.ntp.org

1.asia.pool.ntp.org

2.asia.pool.ntp.org

3.asia.pool.ntp.org