全志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目录下(注意运行权限)
启动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
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!