本地編譯全志R系列的步驟(Ubuntu16.04.4版本)
2018/6/14 9:32
版本:V1.0
0、擷取全志R系列的Android源碼包:
請通過管道/代理商/方案公司擷取全志R系列的Android源碼包。
1、安裝ubuntu
已經驗證過的系統:ubuntu-16.04.4-desktop-amd64.iso
ubuntu的官方下載下傳位址(喜歡中文優化版本的,可以選擇麒麟版本):
http://releases.ubuntu.com/releases/16.04/
http://cdimage.ubuntu.com/releases/
http://old-releases.ubuntu.com/releases/lucid/
http://cn.ubuntu.com/
http://www.ubuntukylin.com/
https://www.ubuntu.com/download/ubuntu-kylin
如果沒有特殊理由,推薦使用ubuntu長期支援的版本(LTS版本:比如ubuntu12.04/14.04/16.04/18.04)。
安裝Ubuntu的教程請參考:
http://digi.163.com/11/0127/18/6RE3LQL400162OUT.html
圖文教程:手把手教你用U盤安裝Ubuntu
http://www.linuxidc.com/Linux/2012-11/74695.htm
U盤安裝Ubuntu 12.10
http://jingyan.baidu.com/article/a3761b2b66fe141577f9aa51.html
怎麼用u盤安裝ubuntu
手動分區的建議設定:
/boot 推薦500MB。配置設定100MB是不夠的!222MB也會報告/boot分區容量不足的問題,以後有空看看/boot分區都存了些啥!
swap 交換分區 4G
/home 剩下的容量()
/ 注意這裡需要設定為主分區!!!!(20GB)
小知識:
檢視ubuntu的版本:
[email protected]:~$
[email protected]:~$ cat /etc/issue
Ubuntu 16.04.4 LTS \n \l
[email protected]:~$
[email protected]:~$ uname -a
Linux rootroot-Lenovo-IdeaPad-S410 4.13.0-36-generic #40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[email protected]:~$
http://www.360doc.com/content/13/0921/23/6496277_316103639.shtml
檢視ubuntu是32位還是64位的方法及其版本号
http://www.cnblogs.com/zero1665/archive/2010/05/24/1742962.html
檢視ubuntu版本号
擷取目前電腦組態的IP位址:
[email protected]:~$
[email protected]:~$ ifconfig
enp1s0 Link encap:以太網 硬體位址 f0:76:1c:14:a5:c7
UP BROADCAST MULTICAST MTU:1500 躍點數:1
接收資料包:0 錯誤:0 丢棄:0 過載:0 幀數:0
發送資料包:0 錯誤:0 丢棄:0 過載:0 載波:0
碰撞:0 發送隊列長度:1000
接收位元組:0 (0.0 B) 發送位元組:0 (0.0 B)
lo Link encap:本地環回
inet 位址:127.0.0.1 掩碼:255.0.0.0
inet6 位址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 躍點數:1
接收資料包:39772 錯誤:0 丢棄:0 過載:0 幀數:0
發送資料包:39772 錯誤:0 丢棄:0 過載:0 載波:0
碰撞:0 發送隊列長度:1000
接收位元組:2945369 (2.9 MB) 發送位元組:2945369 (2.9 MB)
wlp2s0 Link encap:以太網 硬體位址 30:10:b3:df:af:69
inet 位址:192.168.0.104 廣播:192.168.0.255 掩碼:255.255.255.0
inet6 位址: fe80::5c04:4f5d:80d7:b5f4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 躍點數:1
接收資料包:240642 錯誤:0 丢棄:0 過載:0 幀數:0
發送資料包:141332 錯誤:0 丢棄:0 過載:0 載波:0
碰撞:0 發送隊列長度:1000
接收位元組:285174750 (285.1 MB) 發送位元組:14994647 (14.9 MB)
[email protected]:~$
2、全志R系列的android的環境搭建:
[email protected]:~$
[email protected]:~$ sudo passwd root
[sudo] rootroot 的密碼:
輸入新的 UNIX 密碼:
重新輸入新的 UNIX 密碼:
passwd:已成功更新密碼
[email protected]:~$
(1)
sudo apt-get update
sudo apt-get upgrade
(2)
首先安裝openssh-server,這樣就可以在Windows下通過SSH軟體連接配接Ubuntu的電腦操作了。
sudo apt-get install openssh-server
(3)
[email protected]:~$ sudo apt-get install samba
[email protected]:~$
[email protected]:~$ samba --version
Version 4.3.11-Ubuntu
[email protected]:~$
[email protected]:~$ ps -e | grep smb
6273 ? 00:00:00 smbd
6276 ? 00:00:00 smbd
6279 ? 00:00:00 smbd
[email protected]:~$
[email protected]:~$ cd /etc/samba/
[email protected]:/etc/samba$
[email protected]:/etc/samba$ ll
總用量 36
drwxr-xr-x 3 root root 4096 6月 7 15:06 ./
drwxr-xr-x 131 root root 12288 6月 7 15:21 ../
-rw-r--r-- 1 root root 8 3月 7 18:43 gdbcommands
-rw-r--r-- 1 root root 9542 6月 7 15:06 smb.conf
drwxr-xr-x 2 root root 4096 3月 7 18:41 tls/
[email protected]:/etc/samba$
[email protected]:/etc/samba$ sudo cp smb.conf smb.conf.bak1
[email protected]:/etc/samba$
[email protected]:/etc/samba$ sudo vi smb.conf
[email protected]:/etc/samba$
最後面加入:
[rootroot]
comment=rootroot Shared Folder
path=/
#public=yes
writable=yes
#readonly=yes
valid users=rootroot
create mask=0700
directory mask=0700
available=yes
browseable=yes
[email protected]:/etc/samba$ sudo smbpasswd -a rootroot
New SMB password:
Retype new SMB password:
Added user rootroot.
[email protected]:/etc/samba$
現在你就可以在WIN7下将:\\192.168.0.104\rootroot\home\rootroot映射為L盤了!
(4)
增強工具(可選):右鍵打開終端(已經内置在系統中了):
[email protected]:~$
[email protected]:~$ sudo apt-get install nautilus-open-terminal
正在讀取軟體包清單... 完成
正在分析軟體包的依賴關系樹
正在讀取狀态資訊... 完成
沒有可用的軟體包 nautilus-open-terminal,但是它被其它的軟體包引用了。
這可能意味着這個缺失的軟體包可能已被廢棄,
或者隻能在其他釋出源中找到
然而下列軟體包會取代它:
gnome-terminal:i386 gnome-terminal
E: 軟體包 nautilus-open-terminal 沒有可安裝候選
[email protected]:~$
(5)
安裝編譯全志的android4所需要的軟體:
安裝前:
[email protected]:~$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.2-19ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
[email protected]:~$
[email protected]:~$ g++ -v
程式“g++”尚未安裝。 您可以使用以下指令安裝:
sudo apt-get install g++
[email protected]:~$
sudo apt-get install git-core
sudo apt-get install gnupg
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install gperf
sudo apt-get install build-essential
sudo apt-get install zip
sudo apt-get install curl
sudo apt-get install libc6-dev
sudo apt-get install libncurses5-dev
sudo apt-get install x11proto-core-dev
sudo apt-get install libx11-dev:i386
sudo apt-get install libreadline6-dev:i386
sudo apt-get install libgl1-mesa-glx:i386
sudo apt-get install libgl1-mesa-dev
sudo apt-get install g++-multilib
sudo apt-get install tofrodos
sudo apt-get install python-markdown
sudo apt-get install libxml2-utils
sudo apt-get install xsltproc
sudo apt-get install zlib1g-dev:i386
sudo apt-get install zlib1g-dev
sudo apt-get install lib32ncurses5-dev
sudo apt-get install lib32z1(代替:ia32-libs)
sudo apt-get install libx11-dev
sudo apt-get install lib32readline-gplv2-dev
sudo apt-get install lib32z1-dev
sudo apt-get install libreadline6-dev
sudo apt-get install libgl1-mesa-glx
sudo apt-get install u-boot-tools(代替:uboot-mkimage)
sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8
sudo apt-get install gcc-4.8-multilib
sudo apt-get install g++-4.8-multilib
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
[email protected]:~$ sudo apt-get install mingw32
正在讀取軟體包清單... 完成
正在分析軟體包的依賴關系樹
正在讀取狀态資訊... 完成
E: 無法定位軟體包 mingw32
[email protected]:~$
[email protected]:~$ sudo apt-get install lib32readline-gplv2-dev
正在讀取軟體包清單... 完成
正在分析軟體包的依賴關系樹
正在讀取狀态資訊... 完成
沒有可用的軟體包 lib32readline-gplv2-dev,但是它被其它的軟體包引用了。
這可能意味着這個缺失的軟體包可能已被廢棄,
或者隻能在其他釋出源中找到
E: 軟體包 lib32readline-gplv2-dev 沒有可安裝候選
[email protected]:~$
(以下4個不要安裝)
sudo apt-get install gcc-4.5-arm-linux-gnueabihf
sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install g++-arm-linux-gnueabihf
sudo apt-get install c++-arm-linux-gnueabihf
6、安裝開發工具
6.1、安裝代碼比較工具
[email protected]:~$ sudo apt-get install meld
6.2、編譯tina的系統
[email protected]:~$ sudo apt-get install libssl-dev
3、安裝JDK1.6:jdk-6u45-linux-x64.bin
(1)
安裝JDK1.6,使用如下指令
sudo chmod u+x jdk-6u45-linux-x64.bin
sudo cp -a jdk-6u45-linux-x64.bin /opt
sudo /opt/jdk-6u45-linux-x64.bin
sudo rm -f /opt/jdk-6u45-linux-x64.bin
(2)
設定JDK環境變量,在HOME根目錄下按鍵盤Crtr+H顯示HOME目錄下所有檔案,打開.bashrc,在最後加入以下代碼
[email protected]:~$ cp .bashrc bak_orig.bashrc
[email protected]:~$
[email protected]:~$ vi .bashrc
在最後面加入:
#set java environment
export JAVA_HOME=/opt/jdk1.6.0_45
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
(3)
測試JDK是否安裝成功,使用指令java -version 如果顯示(需要登出,或者重新開機ubuntu系統)
[email protected]:~$
[email protected]:~$ java --version
Unrecognized option: --version
Could not create the Java virtual machine.
[email protected]:~$
[email protected]:~$ java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
[email protected]:~$
則JDK安裝成功。
[email protected]:~$ sudo cp jdk-6u45-linux-x64.bin /opt/
[sudo] rootroot 的密碼:
[email protected]:~$ cd /opt/
[email protected]:/opt$
[email protected]:/opt$
[email protected]:/opt$ ll
總用量 70408
drwxr-xr-x 2 root root 4096 6月 7 15:38 ./
drwxr-xr-x 26 root root 4096 6月 7 15:13 ../
-rwx------ 1 root root 72087592 6月 7 15:38 jdk-6u45-linux-x64.bin*
[email protected]:/opt$
[email protected]:/opt$ sudo chmod 777 jdk-6u45-linux-x64.bin
[email protected]:/opt$
[email protected]:/opt$ sudo ./jdk-6u45-linux-x64.bin
4、安裝JDK7:
[email protected]:~$ sudo apt-get install openjdk-7-jdk
[sudo] rootroot 的密碼:
正在讀取軟體包清單... 完成
正在分析軟體包的依賴關系樹
正在讀取狀态資訊... 完成
沒有可用的軟體包 openjdk-7-jdk,但是它被其它的軟體包引用了。
這可能意味着這個缺失的軟體包可能已被廢棄,
或者隻能在其他釋出源中找到
E: 軟體包 openjdk-7-jdk 沒有可安裝候選
[email protected]:~$ sudo add-apt-repository ppa:openjdk-r/ppa
更多資訊: https://launchpad.net/~openjdk-r/+archive/ubuntu/ppa
按回車繼續或者 Ctrl+c 取消添加
gpg: 鑰匙環‘/tmp/tmpi9j8_l2o/secring.gpg’已建立
gpg: 鑰匙環‘/tmp/tmpi9j8_l2o/pubring.gpg’已建立
gpg: 下載下傳密鑰‘86F44E2A’,從 hkp 伺服器 keyserver.ubuntu.com
gpg: /tmp/tmpi9j8_l2o/trustdb.gpg:建立了信任度資料庫
gpg: 密鑰 86F44E2A:公鑰“Launchpad OpenJDK builds (all archs)”已導入
gpg: 合計被處理的數量:1
gpg: 已導入:1 (RSA: 1)
OK
[email protected]:~$
[email protected]:~$ sudo apt-get update
命中:1 http://cn.archive.ubuntu.com/ubuntu xenial InRelease
擷取:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
擷取:3 http://cn.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
擷取:4 http://ppa.launchpad.net/openjdk-r/ppa/ubuntu xenial InRelease [17.5 kB]
擷取:5 http://cn.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
擷取:6 http://ppa.launchpad.net/openjdk-r/ppa/ubuntu xenial/main amd64 Packages [4,564 B]
擷取:7 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [785 kB]
擷取:8 http://ppa.launchpad.net/openjdk-r/ppa/ubuntu xenial/main i386 Packages [4,572 B]
擷取:9 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main i386 Packages [720 kB]
擷取:10 http://cn.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [632 kB]
擷取:11 http://cn.archive.ubuntu.com/ubuntu xenial-updates/universe i386 Packages [578 kB]
擷取:12 http://ppa.launchpad.net/openjdk-r/ppa/ubuntu xenial/main Translation-en [1,452 B]
已下載下傳 3,066 kB,耗時 5秒 (522 kB/s)
正在讀取軟體包清單... 完成
[email protected]:~$
[email protected]:~$ sudo apt-get install openjdk-7-jdk
斷開SSH終端連接配接重新連接配接:
[email protected]:~$ java --version
Unrecognized option: --version
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
[email protected]:~$
[email protected]:~$ java -version
java version "1.7.0_95"
OpenJDK Runtime Environment (IcedTea 2.6.4) (7u95-2.6.4-3)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
[email protected]:~$
5、Ubuntu14.04下還需要安裝:sudo apt-get install libswitch-perl
http://www.cnblogs.com/kobe8/p/3998379.html
在Ubuntu14.04上編譯Android4.0.1出現的幾個問題 sudo apt-get install libswitch-perl
(1)、 出錯以下出錯資訊:
Import includes file: out/target/product/mx3/obj/STATIC_LIBRARIES/libwebcore_intermediates/import_includes
target Generated: libwebcore <= external/webkit/Source/WebCore/css/tokenizer.flex
<span style="rgb(255, 255, 51);">Can't locate Switch.pm in @INC (you may need to install the Switch module)</span> (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at external/webkit/Source/WebCore/make-hash-tools.pl line 23.
BEGIN failed--compilation aborted at external/webkit/Source/WebCore/make-hash-tools.pl line 23.
Can't locate Switch.pm in @INC (you may need to install the Switch module) (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at external/webkit/Source/WebCore/make-hash-tools.pl line 23.
BEGIN failed--compilation aborted at external/webkit/Source/WebCore/make-hash-tools.pl line 23.
make: *** [out/target/product/mx3/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/html/DocTypeStrings.cpp] Error 2
make: *** Waiting for unfinished jobs....
make: *** [out/target/product/mx3/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/platform/ColorData.cpp] Error 2
target Generated: libwebcore <= external/webkit/Source/WebCore/html/parser/HTMLEntityNames.in
解決方法是安裝perl的switch庫:
[email protected]:~$ sudo apt-get install libswitch-perl
6、将shell從DASH切換到BASH:
http://blog.csdn.net/smilettxp/article/details/19118057?reload
ubuntu 12.04編譯MTK6582——FAQ
現象:
加載MT6582_Android_scatter.txt檔案後,Flash_tool無法顯示下載下傳内容時,檢視XXXX_preloader.log中有如下提示:
/bin/sh: 1: [: -a: unexpected operator
awk: line 4: function strtonum never defined
awk: line 4: function strtonum never defined
解決辦法:/bin/sh: 1: [: -a: unexpected operator 分析原因為/bin/sh的連結到/bin/dash,而不是/bin/bash(可以用指令ls /bin/sh -lh檢視連結的時bash還是dash)
修改sh預設指向到/bin/bash,如下:
sudo dpkg-reconfigure dash 選擇no,即可。
awk:line的解決辦法是安裝gnu awk,如下:
sudo apt-get install gawk 即可。
[email protected]:~$
[email protected]:~$ ls /bin/sh -lh
lrwxrwxrwx 1 root root 4 6月 7 11:34 /bin/sh -> dash
[email protected]:~$
[email protected]:~$ sudo dpkg-reconfigure dash
正在删除 dash 導緻 /bin/sh 轉移到 /bin/sh.distrib
正在添加 bash 導緻 /bin/sh 轉移到 /bin/sh.distrib
正在删除 dash 導緻 /usr/share/man/man1/sh.1.gz 轉移到 /usr/share/man/man1/sh.distrib.1.gz
正在添加 bash 導緻 /usr/share/man/man1/sh.1.gz 轉移到 /usr/share/man/man1/sh.distrib.1.gz
[email protected]:~$
[email protected]:~$ ls /bin/sh -lh
lrwxrwxrwx 1 root root 4 6月 7 15:23 /bin/sh -> bash
[email protected]:~$
[email protected]:~$ sudo apt-get install gawk
7、編譯及其步驟(請參考R系列具體的編譯手冊):
參考資料:
http://www.linuxidc.com/Linux/2014-04/100645.htm
Ubuntu 14.04 LTS下安裝Google Chrome浏覽器
http://blog.csdn.net/man_embedded/article/details/40111023
linux下編譯MTK android的環境搭建
http://jingyan.baidu.com/article/624e7459abb8eb34e8ba5aa2.html
Ubuntu10.04搭建MTK android編譯環境
http://blog.csdn.net/doon/article/details/8053174
ubuntu 12.04 64位設定相容32位的實作
http://blog.csdn.net/yimiyangguang1314/article/details/39996851
Ubuntu 12.04 64bit 無法識别交叉編譯器解決辦法
http://pkgs.org/download/ia32-libs
ia32-libs Download (DEB)
http://source.android.com/source/initializing.html
Initializing a Build Environment
http://processors.wiki.ti.com/index.php/TI-Android-JB-4.2.2-DevKit-4.1.1_DeveloperGuide
TI-Android-JB-4.2.2-DevKit-4.1.1 DeveloperGuide
https://www.virtualbox.org/
virtualbox