/**************************************************************************************
* Function : Tiny4412 開發板 編譯環境搭建
* Create Date : 2016/04/04
* Author : NTSK13
* Email : beijiwei@qq.com
* Copyright : 歡迎大家和我一起交流學習,轉載請保持文章的完整性。
任何單位和個人不經本人書面允許不得用于商業用途。
***************************************************************************************
我使用的是VirtualBox +Ubuntu
VirtualBox 版本 : 5.0.16 r105871 (使用最新版即可)
Ubuntu : ubuntu-15.10-desktop-amd64.iso
在安裝的時候安裝語言選擇 English,不建議選擇中文,方便開發。
在安裝的時候,虛擬機不要聯網。
配置用戶的時候設定一個密碼,比如1234.
記住這個密碼,以后設置root登錄的時候會用到這個密碼。
建議有空間的選擇70GB以上的空間,、我的62GB,編譯完之后就剩余1GB 左右了。
以下是配置:
<1> 以root用戶登錄
1、先解除root鎖定,為root用戶設置密碼
打開終端輸入:sudo passwd root
Password: <--- 輸入你當前用戶的密碼,就是之前安裝Ubuntu的那個密碼1234
Enter new UNIX password: <--- 新的Root用戶密碼
Retype new UNIX password: <--- 重復新的Root用戶密碼
passwd:已成功更新密碼
2設置root自動登錄
sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
文件內容最終為:
[SeatDefaults]
autologin-user=root #啟動后以root身份自動登錄
greeter-session=unity-greeter
user-session=ubuntu
在剛修改完root權限自動登錄后,發現開機出現以下提示:
Error found when loading /root/.profile
stdin:is not a tty
…………
解決方法:在終端中用命令gedit /root/.profile,打開文件后找到“mesg n”,
將其更改為“tty -s && mesg n”。
<二>虛擬機窗口大小問題 和共享文件夾的設置
這個需要安裝Guest Additions(增強包) 在VirtualBox 安裝目錄下有這個iso
1.安裝:VirtualBoxGuestAddition.iso文件
可以在VirtualBox的安裝目錄下找到。
直接在虛擬機的主菜單上點擊“安裝增強功能”,Unbuntu會自動掛載一個iso。
打開終端,cd /media/cdrom0目錄下,運行sudo ./VBoxLinuxAdditions-x86.run。待完整的出現下面的信息后表示安裝成功了。
Verifying archive integrity... All good.
Uncompressing VirtualBox 3.0.4 Guest Additions for Linux
installation......................................................................................................
..................................................................................................................
......
VirtualBox 3.0.4 Guest Additions installation
Building the VirtualBox Guest Additions kernel module...
Building the shared folder support kernel module...
Building the drm support kernel module...
Installing the VirtualBox Guest Additions...
Successfully installed the VirtualBox Guest Additions.
You must restart your guest system in order to complete the installation.
裝完重啟之后,鼠標就可以在Host主機系統和虛擬系統之間自由移動而不需按右邊Ctrl鍵切換了,而且虛擬系統的窗口可以拉動,
位置合適的話Ubuntu桌面會自動全屏顯示。如果開啟了與Host系統共享剪貼板的話,還可以在Host系統與虛擬系統之間進行復制/剪切和粘貼。
2.設置共享文件夾
重啟完成后點擊"設備" ->分配數據空間,添加一個共享文件夾,選項固定和臨時是指該文件夾是否是持久的。
共享名可以任取一個自己喜歡的,比如"vboxshd",盡量使用英文名稱。
D:Vboxshd ,這個是windows 的目錄,以后共享文件可以放在這個路徑下。
3.掛載共享文件夾
若要使用共享文件夾功能,必須安裝linux guest additions,安裝增強功能,.如果你不想每一次手動掛載,可以使用以下方法,在系統啟動時執行掛接腳本,成功自動掛接
# gedit /etc/rc.local
1. 在文件的最后加入上面手動掛接的命令:
mount -t vboxsf vboxshd /mnt/shd // vboxshd 是共享數據空間的名稱
2. cd /mnt/
mkdir shd
注意:一定要在mount之前,確定已經加載了vboxsf模塊。
如果不加載的話,會出現mount出錯的情況。
/sbin/mount.vboxsf: mounting failed with the error: No such device
Ubuntu啟動后 一般會在 /media/ 目錄下掛載共享文件夾。
<三>添加國內 Ubuntu 源
如果不添加,接下來安裝 Android 編譯需要的工具的時候,有幾個無法安裝。
cp /etc/apt/sources.list /etc/apt/sources.list_bak
gedit /etc/apt/sources.list
在最后加上:
deb http://mirrors.163.com/ubuntu/ wily main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ wily-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ wily-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ wily-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ wily-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ wily main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ wily-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ wily-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ wily-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ wily-backports main restricted universe multiverse
之后,sudo apt-get update
加其他國內源也是一樣的方法。
<四>安裝android源代碼編譯所需的軟件包
Ubuntu 默認安裝后是不帶軟件開發相關的組件的,因此需要先安裝一系列的軟件開發組件,
請先保存你的電腦能正常訪問互聯網絡。
第一步,先從Tiny4412 光盤中拷貝 tools 目錄下的 ubuntu 目錄到tmp 。
第二步,安裝jdk6 :
# cd /tmp/ubuntu/jdk6/
# chmod 755 install-sun-java6.sh
# ./install-sun-java6.sh
第三步,通過執行install-devel-packages.sh 腳本,聯網安裝軟件開發相關的軟件包:
# cd /tmp/ubuntu/
# chmod 755 install-devel-packages.sh
# ./ install-devel-packages.sh
中途會詢問是否下載軟件包,輸入Y 回車即可。
最后一步,Android5.0.2 的編譯 需要使用的是openjdk-7-jdk,
但是,friend 官方沒提這個事情,坑。。。
apt-get install openjdk-7-jdk
之后:執行./ install-openjdk7,sh
附送一個shell 腳本 install-openjdk7,sh 來設置 Java jdk:
=================================================================================================================================
#!/bin/sh
# Update symbolic links for Java
update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-7-openjdk-amd64/bin/java" 1
update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-7-openjdk-amd64/bin/javac" 1
update-alternatives --install "/usr/bin/javadoc" "javadoc" "/usr/lib/jvm/java-7-openjdk-amd64/bin/javadoc" 1
update-alternatives --install "/usr/lib/mozilla/plugins/libjavaplugin.so" "mozilla-javaplugin.so" "/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/libnpjp2.so" 1
update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/java-7-openjdk-amd64/bin/javaws" 1
update-alternatives --install "/usr/bin/jar" "jar" "/usr/lib/jvm/java-7-openjdk-amd64/bin/jar" 1
# Choose the java you installed as default
update-alternatives --config java
update-alternatives --config javac
update-alternatives --config javadoc
update-alternatives --config mozilla-javaplugin.so
update-alternatives --config javaws
update-alternatives --config jar
# Verify installation
java -version
javac -version
==============================================================================================================
<五>安裝交叉編譯器GCC
使用的是官方的 arm-linux-gcc-4.5.1 (和Mini210 相同),它在編譯內核時會自動采用 armv7
指令集,支持硬浮點運算,下面是安裝它的詳細步驟。
Step1:將光盤Android 目錄中的arm-linux-gcc-4.5.1-v6-vfp-YYYYMMDD.tgz 復制到/tmp 目
錄,然后進入到該目錄,執行解壓命令:
#cd /tmp
#tar xvzf arm-linux-gcc-4.5.1-v6-vfp-YYYYMMDD.tgz –C /
注意:C 后面有個空格,并且C 是大寫的,它是英文單詞“Change ”的第一個字母,在此
是改變目錄的意思。
執行該命令,將把arm-linux-gcc 安裝到/opt/FriendlyARM/toolschain/4.5.1 目錄
Step2:把編譯器路徑加入系統環境變量,運行命令
#gedit ~/.bashrc
編輯~/.bashrc 文件,注意“bashrc ”前面有一個“. ”,修改最后一行為 export
PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin ,注意路徑一定要寫對,否則將不會有效。
保存退出。
重新登錄系統 ,使以上設置生效,在命令行輸入
arm-linux-gcc –v ,會出現GCC 相關信息,這說明交叉編譯環境已經成功安裝
<六>解壓安裝Android 內核源代碼 并編譯:
在工作目錄/opt/FriendlyARM/tiny4412/android 中執行:
#cd /opt/FriendlyARM/tiny4412/android
#tar xvzf /tmp/Android-5.0.2/linux-3.0.86-YYYYMMDD.tgz
將創建生成linux-3.0.86 目錄,里面包含了完整的內核源代碼
說明:YYYYMMDD 是發行更新日期標志,請以光盤中實際日期尾綴為準。
(2)解壓安裝Android 源代碼包
在工作目錄/opt/FriendlyARM/tiny4412/android 中執行:
#cd /opt/FriendlyARM/tiny4412/android
#tar xvzf /tmp/Android/Android-5.0.2/android-5.0.2-fs-YYYYMMDD.tar.gz
將創建android-5.0.2 目錄。
說明:YYYYMMDD 是發行或更新日期標志,請以光盤中實際日期尾綴為準。
ps: android-5.0.2 源碼放在那里都無所謂,因為編譯工具都加入到 環境變量里邊了。
我把源碼放在了 /root/aa文件夾下,fandroid目錄中,
android5 就是android5.0.2 源碼目錄,kernel 是Linux3.0.86 內核 源碼 目錄。
注意還有兩個 編譯腳本 bandroid.sh 和 bernel.sh 分別是 android 和kernel 的編譯腳本.
編譯的時候直接
cd /home/fandroid
./bandroid.sh 和 ./bkernel.sh 就OK了。
這兩個文件記得加X權限。
自己寫的 bandroid.sh:
======================================================================================
set -e -o pipefail
exec > >(tee android.log)
exec 2>&1
cd ./android5
. setenv
make -j4
./gen-img.sh
rm -rf /media/sf_vboxshd/bin/
mkdir /media/sf_vboxshd/bin/
cd ..
mv ./android5/*.img /media/sf_vboxshd/bin/
mv ./kernel/arch/arm/boot/zImage /media/sf_vboxshd/bin/
======================================================================================
bkernel.sh
======================================================================================
set -e -o pipefail
exec > >(tee kernel.log)
exec 2>&1
cd ./kernel
cp tiny4412_android_defconfig .config
make -j4
======================================================================================
編譯 android 的時候 可能會遇到如下問題:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
上一篇:tiny4412 裸機程序 五、控制icache
下一篇:tiny4412 裸機程序 六、重定位代碼到IRAM+0x8000【轉】
推薦閱讀
史海拾趣
隨著全球化進程的加速,ADI也逐漸將業務拓展至全球范圍。公司不僅在全球各地設立了研發中心和銷售網絡,還與眾多國際知名企業建立了戰略合作關系。這些合作不僅為ADI帶來了更多的商業機會,也使其能夠更好地了解全球市場的需求和趨勢,為公司的長遠發展奠定了堅實基礎。
這五個故事展示了ADI Electronics Inc公司從創業初始到發展成為電子行業領軍企業的過程。通過不斷創新、并購重組和全球化拓展,ADI成功地在激烈的市場競爭中脫穎而出,成為一家備受尊敬的企業。
請注意,由于無法實時獲取ADI的最新發展動態,上述故事中的部分細節可能已隨時間發生變化。如需獲取更詳細和準確的信息,建議查閱ADI的官方網站或相關新聞報道。
面對國內市場的飽和競爭,AMRI Enterprise Co Ltd積極實施國際化戰略,拓展海外市場。公司通過參加國際電子展會、建立海外銷售渠道等方式,不斷提升品牌知名度和產品影響力。同時,AMRI還針對不同國家和地區的市場需求,調整產品策略,提供定制化的解決方案。這一戰略的實施,使得AMRI的產品成功打入多個國際市場,實現了業務的快速增長。
AMRI Enterprise Co Ltd在電子行業中嶄露頭角,源于其一次重大的技術突破。公司研發團隊經過數年的努力,成功開發出了一款具有高效能、低功耗特點的芯片,引起了市場的廣泛關注。這一技術突破不僅提升了AMRI的產品競爭力,還為公司贏得了眾多合作伙伴的青睞。隨著產品線的不斷擴展和市場份額的逐步增加,AMRI逐漸在電子行業中站穩了腳跟。
廣西來賓電廠是中國第一個國家正式批準的BOT試點項目。該項目由法國電力國際和通用電氣阿爾斯通公司作為項目公司的主要股東,總投資為6.16億美元。這個電廠的裝機規模為72萬千瓦,安裝了兩臺36萬千瓦的進口燃煤機組。在長達18年的特許經營期內,該項目為廣西地區提供了穩定的電力供應,同時也為項目公司帶來了可觀的投資回報。隨著時間的推移,該項目成為了BOT模式在中國成功應用的典范,為后來的類似項目提供了寶貴的經驗。
ESPROS Photonics corp(以下簡稱ESPROS)于2006年由Beat De Coi先生創立,總部位于瑞士。公司成立之初,就專注于芯片設計、集成與制造領域,依托其獨特的光學工藝技術,為客戶提供高性能的光電傳感器解決方案。在中國上海,ESPROS設立了專門的芯片設計中心及技術支持部門,以更好地服務亞洲市場。
在E-Switch的發展歷程中,品質一直是公司最為重視的方面之一。公司始終堅持嚴格的質量管理體系,從原材料采購到生產流程控制,再到產品出廠檢驗,每一個環節都嚴格把關。正是這種對品質的執著追求,讓E-Switch的產品在市場上贏得了良好的口碑。
PB50型高壓功率升壓放大器及其應用 夏榮,許恒迎,李忠華 (哈爾濱理工大學 電氣工程學院,黑龍江 哈爾濱 150040) 1 概述 PB50是美國APEX公司推出的高壓型場效應管大功率升壓放大器,具有工作電壓高(200V)、輸出電流大(2A)、高轉換速率(50V ...… 查看全部問答∨ |
|
電容我能查到的作用有以下四種 隔直流:作用是阻止直流通過而讓交流通過。 旁路(去耦):為交流電路中某些并聯的元件提供低阻抗通路。 耦合:作為兩個電路之間的連接,允許交流信號通過并傳輸到下一級電路。 濾波:將整流以后的鋸齒波變為平滑的 ...… 查看全部問答∨ |
US_CR = (1 << 2) | /* RSTRX: Reset Receiver: 1 = The receiver logic is reset. */ (1 < ...… 查看全部問答∨ |
達人給講一下軟件加密的整體流程, 然后我最關心的是序列號是怎么產生的? 因為一般用軟件注冊的話,輸個序列號以及注冊碼(注冊碼一般由輸入的序列號以及硬件碼運算而得來的), 但問題是這個序列號是怎么得出來的,怎么驗證序列號的有效性,去 ...… 查看全部問答∨ |
|
有沒有誰用過通嘉單級PFC IC7591設計反激式的高功率因素LED電源 如題。 有沒有誰用過通嘉單級PFC IC LD7591設計反激式的高功率因素LED電源 能談點使用心得嗎? 我準備用它來設計15W-350MA,30W-700MA。60W-1。05A http://www.leadtrend.com.tw/ch/index.php 管方網… 查看全部問答∨ |
LSD-FET430UIF用MSP430Flasher升級固件后怎么裝驅動? 前不久想用利爾達的仿真器LSD-FET430UIF直接將msp430-txt文件下載進430單片機,使用MSP430_Flasher,結果按照軟件提示進行固件升級后,電腦就再也無法為其安裝驅動了(固件升級前仿真器是可用的),也 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 特斯拉:美國交付的Model Y/3電池包已實現100%美國生產
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產品
- 強化中國市場戰略布局,德州儀器正靈活應對全球關稅挑戰
- Molex莫仕通過本地合作和創新加強支持中國汽車行業
- 貿澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實現車載充電器小型化!
- 用上車規級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術解析:聚焦高帶寬、多通道同步采集與協議分析
- 傳統晶體管的極限!臺積電3nm N3P已量產
- 分析師稱H20出口管制毫無意義:對中國AI發展影響不大