全志A33编译环境搭建
0x00 环境说明:
所使用的开发板为锐尔威视的插针版A33_Vstar
主机系统为WIN10 1809 x64,并且安装VMware Workstation Pro
下载64位的Ubuntu安装镜像 ubuntu-12.04.2-desktop-amd64.iso
0x01 安装Ubuntu12.04:
文件->新建虚拟机:

直接点下一步

指定Ubuntu安装包所在的位置之后点下一步

输入用户名和密码之后点下一步

指定虚拟系统的存放位置之后点下一步

设置磁盘大小之后点下一步(如果需要编译Android系统建议磁盘设置大一点,当然也可以后续进行扩展)

点 自定义硬件 根据自己的机器配置调整虚拟机的配置之后点 完成 即可成功创建Ubuntu虚拟系统
0x02 初次启动系统之后的准备工作:
确保机器能够正常联网,启动刚刚创建好的虚拟系统:

泡杯茶等待自动安装完毕即可
激活root用户:
准备就绪之后输入密码进入桌面,按快捷键 Ctrl+Alt+T 打开终端,输入
sudo passwd root
设置root用户密码:

更新软件源:
切换到root用户方便后续操作:
su root
备份以前的源:
cp /etc/apt/sources.list /etc/apt/sources.list.old
修改当前源:
vi /etc/apt/sources.list
删除里面的内容并且添加网易的源:
deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
deb http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
命令模式输入 :wq 保存退出之后更新一下使修改生效:
apt-get update
安装并配置VIM:
安装VIM:
apt-get install vim
配置VIM:
打开配置文件:
vim /etc/vim/vimrc
添加一行配置之后保存退出:

安装SSH:
apt-get install ssh
搭建samba服务器:
安装samba:
apt-get install samba smbfs
设置 /root/ 文件夹的权限(后续将使用该文件夹作为共享文件夹):
chmod 777 /root/ -R
配置samba:
打开配置文件:
vim /etc/samba/smb.conf
添加如下内容:
[share]
path = /root
available = yes
browseable = yes
public = yes
writable = yes
valid users = root
create mask = 0777
directory mask =0777
force user =nobody
force group = nogroup
添加samba用户密码:
touch /etc/samba/smbpasswd
smbpasswd -a root
重启samba服务:
/etc/init.d/smbd restart
验证samba服务:
Windows快捷键 Win+R 输入 \\+(Ubuntu ip):

点确定之后进入共享文件夹:

上图中的share文件夹与Ubuntu的/root/ 文件夹相通,可以通过这个文件夹进行Windows与Ubuntu之间的文件传输。
0x03 搭建Linux编译环境:
安装Uboot镜像制作工具:
apt-get install uboot-mkimage
安装编译环境所需要的库:
apt-get install \
git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 \
libgl1-mesa-glx-lts-quantal:i386 libgl1-mesa-dev-lts-quantal \
g++-multilib mingw32 tofrodos lib32ncurses5-dev \
python-markdown libswitch-perl libxml2-utils xsltproc zlib1g-dev:i386
创建库的链接:
ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
编译器的安装与配置:
安装GCC:
apt-get install gcc-4.4 g++-4.4 g++-4.4-multilib
配置GCC:
mv -f /usr/bin/gcc /usr/bin/bak_gcc
mv -f /usr/bin/g++ /usr/bin/bak_g++
ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
ln -s /usr/bin/g++-4.4 /usr/bin/g++
查看GCC版本:
gcc -v

0x04 编译Linux系统:
在Ubuntu中切换到 /root/ 下并创建 a33_linux 文件夹:
cd /root/
mkdir a33_linux
将官方提供的Linux-SDK复制到该文件夹下并解压:
cd a33_linux
tar -vxf A33_vstar_linux.tar.bz2
rm A33_vstar_linux.tar.bz2
使用默认配置:
cd dragonboard/linux-3.4/
cp a33_vstar_defconfig .config
配置编译参数:
cd ..
./build.sh config

编译系统:
./build.sh


系统镜像打包:
./build.sh pack
单独编译uboot(默认不编译):
cd brandy/u-boot-2011.09/
make distclean
make sun8iw5p1_config
make -j8
0x05 搭建Android编译环境:
在Linux编译环境的基础上安装、配置JDK即可
去Oacle官网下载JDK6(注意版本)
在共享文件夹下新建 a33_android 文件夹,并且将下载的JDK6复制到该文件夹

(可以顺便把要编译的Android压缩包也复制过去)
安装JDK6:
cd /root/a33_android/
./jdk-6u45-linux-x64.bin
配置JDK6:
打开配置文件:
vim ~/.bashrc
在文件末尾加入内容并保存退出:
export JAVA_HOME=/root/a33_android/jdk1.6.0_45
export PATH=$JAVA_HOME/bin:$PATH
export ClassPath=/root/a33_android/jdk1.6.0_45

使配置生效:
source ~/.bashrc
查看JAVA版本:
java -version

0x06 编译Android系统:
解压所需压缩包:
tar -vxf A33_Vstar_Lichee_20170227.tar.bz2
tar -vxf A33_Vstar_Android_20170227.tar.bz2
编译Linux内核:
cd lichee/linux-3.4/
cp a33_vstar_defconfig .config
cd ..
./build.sh config
./build.sh


编译Android:
cd ../android/
source build/envsetup.sh
lunch
extract-bsp
make -j8



放在一边等待编译完成即可,编译所需要的时间和机器的配置相关,第一次编译所需要的时间长达好几个小时,耐心等待。
打包编译系统镜像:
pack

全志A33编译环境搭建的更多相关文章
- ubuntu12.04下安卓编译环境搭建总结
前言: 因为工作需要,经常要编译安卓下的动态库,公司有已经搭建好环境的服务器,但是第一自己想自己搭建一下了解一个整个过程,另外,公司的服务器也经常出现问 题,导致编译不了,所以就想自己搭建环 ...
- windows下cocos2dx3.0开发环境及Android编译环境搭建
cocos2dx更新到了3.x版本号,自己一直没有换,如今开发组要求统一换版本号,我就把搭建好开发环境的过程记录下来. 一.Windowns下开发环境搭建 1. 所需工具 1)coc ...
- Emscripten编译环境搭建--将C和C++编译成JS
Emscripten编译环境搭建--将C和C++编译成JS 需求:linux环境下用js执行c.c++文件,使用emscirpten编译器 目标:搭建好Emscripten环境 环境:Ubuntu16 ...
- openwrt(一):openwrt源码下载及编译环境搭建
声明:从网上各位大神的博客学习,整理后记录,非原创. 注:请用非root用户来下载源码 导航: 1. openwrt编译环境搭建 2. openwrt源码下载 3. feeds更新 1. openwr ...
- IoT设备程序开发及编译环境搭建初体验
引言 Mirai事件一经曝出,立即引领了一轮研究IoT设备的热潮.目前,对Mirai的报告大多只是在对其功能实现上的介绍,却很少提及如何实现IoT设备程序开发的测试环境.本文在对Mirai的源码研究的 ...
- Tiny4412 开发板 编译环境搭建【转】
本文转载自:http://blog.csdn.net/beijiwei/article/details/51055369 版权声明:本文为博主原创文章,未经博主允许不得转载. /*********** ...
- C语言编程入门之--第二章编译环境搭建
第二章 编译环境搭建 导读:C语言程序如何工作,首先需要编译链接成可执行文件,然后就可以运行在不同的环境中,这个“环境”的意思就是比如说,电脑,手机,路由器,蓝牙音箱等等智能设备中,其中编译器启到了关 ...
- u-boot 移植(一)编译环境搭建
u-boot 移植(一)编译环境搭建 soc:s3c2440 board:jz2440 uboot:u-boot-2016.11 toolchain:gcc-linaro-7.4.1-2019.02- ...
- 手把手教你cuda5.5与VS2010的编译环境搭建
参考:http://www.cnblogs.com/xing901022/archive/2013/08/09/3248469.html 目前版本的cuda是很方便的,它的一个安装里面包括了Toolk ...
随机推荐
- 用python一步一步教你玩微信小程序【跳一跳】
12月28日,微信上线了小游戏「跳一跳」,瞬间成了全民游戏,如何牢牢占据排行榜的第一位呢?用Python帮助你,Python真的无所不能. 作为技术出身的我们,是不是想用技术改变排名呢? 注意:本文适 ...
- iOS之UIApplicatio、AppDelegate
UIApplication,代表的是整个应用做的事,因此每个程序只能有一个,系统使用的是单例模式,就是[UIApplication sharedApplication]来得到一个实例. 这个单例实例是 ...
- EHDU-1039 asier Done Than Said?
Password security is a tricky thing. Users prefer simple passwords that are easy to remember (like b ...
- 原生js实现双向数据绑定
一.两个model之间的双向绑定 var o = { a: 0 } o.b = o.a + 1; console.log(o.a); // "0" console.log(o.b) ...
- LOJ.2864.[IOI2018]排座位(线段树)
LOJ 洛谷 先令编号从\(1\)开始.我们要求\([1,i]\)这些数字能否构成一个矩形. 考虑能否用线段树维护,让每个叶子节点\(i\)表示前\(i\)个数能否构成矩形. 一种方法是维护前\(i\ ...
- java单链表反转(花了半个多小时的作品)
欢迎光临............... 首先我们要搞清楚链表是啥玩意儿?先看看定义: 讲链表之前我们先说说Java内存的分配情况:我们new对象的时候,会在java堆中为对象分配内存,当我们调用方法的 ...
- 十二、JDBC
day17 JDBC入门 l 导jar包:驱动! l 加载驱动类:Class.forName(“类名”); l 给出url.username.password,其中url背下来! l 使用Driver ...
- javascript的数组之join()
join()方法将一个数组(或一个类数组对象)的所有元素根据传入的参数连接成一个字符串,并返回这个字符串. var elements = ['Fire', 'Wind', 'Rain']; conso ...
- javascript的数组之push()
push()方法讲一个元素或多个元素添加到数组的末尾,并返回新数组的长度length,修改数组自身. var numbers = [1, 2, 3]; numbers.push(4); console ...
- centos7查看网卡UUID
https://blog.csdn.net/kepa520/article/details/50222049 查看网卡UUID nmcli con show 查看mac地址 nmcli device ...


