uboot重新編譯
A. 【求助】uboot編譯出錯 rm:無法刪除 "asm-arm/arch":是一個目錄
這個好辦,我遇到過這類問題,我估計這個Uboot並不是你下的源碼,而是用別人編譯好的你想重新編譯,在Uboot頂層有個mkconfig文件,你打開後在裡面所有rm後面都加上-r
比如源代碼是rm -d asm-arm/arch
改成 rm -rd asm-arm/arch即可 意思就是強行刪除 不行聯系我635123374
B. 大家好,小弟一直不明白對linux或uboot源碼包打補丁的原因。在網上查了資料也沒有詳細的介紹。
1、配置源碼需要重新編譯,而重新編譯系統會花費大量的時間,而且Linux系統並不是修改源碼就能編譯通過,還涉及到很多的Makefile,那麼要你單獨一個個的修改工作量也會比較大。但是源碼補丁可以自動識別和替換需要的,方便了一些並不是太熟悉Linux的人,而且減輕了用戶的工作量。
2、既然是補丁,肯定都是針對某一些特殊情況開發的,並不是所有人都會遇到這些情況,也並不是所有人都需要這些補丁。Linux發布的源碼都是一些Linux比較大的升級時候發布一次的,而源碼是提供給所有人的,那麼也不是每個人都需要這個補丁的源碼呀,一般都只是下載和自己所從事專業有關的。
補丁的話隨便你自己,因為不是所有人都需要那個補丁,就算你不裝,也沒什麼問題的
C. 解鎖uboot分區路由器固件怎麼編譯
參考如下:
1、首先到路由器的官網下載最新固件。
2、登陸路由器,選擇系統工具-軟體升級。
3、點擊瀏覽,找到下載的路由器固件。
4、等待升級完成,路由器會自動重啟就完成升級了。
希望能幫到您。
D. uboot用什麼編譯軟體啊 請盡量說的詳細些
用arm-linux-gcc(如果你的處理器是ARM的話),具體有好多版本,一般都是直接用開發板公司提供的,這樣比較保證,因為重新編譯一個編譯器還是比較麻煩的事(想自己編譯一個編譯器的話,就用Cross tools吧)。
E. rk3188的uboot.img怎麼編譯
U-Boot編譯命令對於mini2440開發板,編譯U-Boot需要執行如下的命令:$makemini2440_config$makeall使用上面的命令編譯U-Boot,編譯生成的所有文件都保存在源代碼目錄中。為了保持源代碼目錄的干凈,可以使用如下命令將編譯生成的文件輸出到一個外部目錄,而不是在源代碼目錄中,下面的2種方法都將編譯生成的文件輸出到/tmp/build目錄:$exportBUILD_DIR=/tmp/build$makemini2440_config$makeall或$makeO=/tmp/buildmini2440_config(注意是字母O,而不是數字0)$makeall為了簡化分析過程,方便讀者理解,這里主要針對第一種編譯方式(目標輸出到源代碼所在目錄)進行分析。2.1.2U-Boot配置、編譯、連接過程U-Boot開頭有一些跟主機軟硬體環境相關的代碼,在每次執行make命令時這些代碼都被執行一次。1.U-Boot配置過程(1)定義主機系統架構HOSTARCH:=$(shelluname-m|\sed-es/i.86/i386/\-es/sun4u/sparc64/\-es/arm.*/arm/\-es/sa110/arm/\-es/powerpc/ppc/\-es/ppc64/ppc/\-es/macppc/ppc/)「sed–e」表示後面跟的是一串命令腳本,而表達式「s/abc/def/」表示要從標准輸入中,查找到內容為「abc」的,然後替換成「def」。其中「abc」表達式用可以使用「.」作為通配符。命令「uname–m」將輸出主機CPU的體系架構類型。作者的電腦使用IntelCore2系列的CPU,因此「uname–m」輸出「i686」。「i686」可以匹配命令「sed-es/i.86/i386/」中的「i.86」,因此在作者的機器上執行Makefile,HOSTARCH將被設置成「i386」。(2)定義主機操作系統類型HOSTOS:=$(shelluname-s|tr'[:upper:]''[:lower:]'|\sed-e's/\(cygwin\).*/cygwin/')「uname–s」輸出主機內核名字,作者使用Linux發行版Ubuntu9.10,因此「uname–s」結果是「Linux」。「tr'[:upper:]''[:lower:]'」作用是將標准輸入中的所有大寫字母轉換為響應的小寫字母。因此執行結果是將HOSTOS設置為「linux」。(3)定義執行shell腳本的shell#Setshelltobashifpossible,otherwisefallbacktoshSHELL:=$(shellif[-x"$$BASH"];thenecho$$BASH;\elseif[-x/bin/bash];thenecho/bin/bash;\elseechosh;fi;fi)"$$BASH"的作用實質上是生成了字元串「$BASH」(前一個$號的作用是指明第二個$是普通的字元)。若執行當前Makefile的shell中定義了「$BASH」環境變數,且文件「$BASH」是可執行文件,則SHELL的值為「$BASH」。否則,若「/bin/bash」是可執行文件,則SHELL值為「/bin/bash」。若以上兩條都不成立,則將「sh」賦值給SHELL變數。由於作者的機器安裝了bashshell,且shell默認環境變數中定義了「$BASH」,因此SHELL被設置為$BASH。(4)設定編譯輸出目錄ifdefOifeq("$(originO)","commandline")BUILD_DIR:=$(O)endifendif函數$(origin,variable)輸出的結果是一個字元串,輸出結果由變數variable定義的方式決定,若variable在命令行中定義過,則origin函數返回值為"commandline"。假若在命令行中執行了「exportBUILD_DIR=/tmp/build」的命令,則「$(originO)」值為「commandline」,而BUILD_DIR被設置為「/tmp/build」。ifneq($(BUILD_DIR),)saved-output:=$(BUILD_DIR)#.$(shell[-d${BUILD_DIR}]||mkdir-p${BUILD_DIR})若${BUILD_DIR}表示的目錄沒有定義,則創建該目錄。#Verifyifitwassuccessful.BUILD_DIR:=$(shellcd$(BUILD_DIR)&&/bin/pwd)$(if$(BUILD_DIR),,$(erroroutputdirectory"$(saved-output)"doesnotexist))endif#ifneq($(BUILD_DIR),)若$(BUILD_DIR)為空,則將其賦值為當前目錄路徑(源代碼目錄)。並檢查$(BUILD_DIR)目錄是否存在。OBJTREE:=$(if$(BUILD_DIR),$(BUILD_DIR),$(CURDIR))SRCTREE:=$(CURDIR)TOPDIR:=$(SRCTREE)LNDIR:=$(OBJTREE)……MKCONFIG:=$(SRCTREE)/mkconfig……ifneq($(OBJTREE),$(SRCTREE))obj:=$(OBJTREE)/src:=$(SRCTREE)/elseobj:=src:=endifCURDIR變數指示Make當前的工作目錄,由於當前Make在U-Boot頂層目錄執行Makefile,因此CURDIR此時就是U-Boot頂層目錄。執行完上面的代碼後,SRCTREE,src變數就是U-Boot代碼頂層目錄,而OBJTREE,obj變數就是輸出目錄,若沒有定義BUILD_DIR環境變數,則SRCTREE,src變數與OBJTREE,obj變數都是U-Boot源代碼目錄。而MKCONFIG則表示U-Boot根目錄下的mkconfig腳本。2.makemini2440_config命令執行過程下面分析命令「makemini2440_config」執行過程,為了簡化分析過程這里主要分析將編譯目標輸出到源代碼目錄的情況。mini2440_config:unconfig@$(MKCONFIG)$(@:_config=)其中的依賴「unconfig」定義如下:unconfig:@rm-f$(obj)include/config.h$(obj)include/config.mk\$(obj)board/*/config.tmp$(obj)board/*/*/config.tmp\$(obj)include/autoconf.mk$(obj)include/autoconf.mk.dep其中「@」的作用是執行該命令時不在shell顯示。「obj」變數就是編譯輸出的目錄,因此「unconfig」的作用就是清除上次執行make*_config命令生成的配置文件(如include/config.h,include/config.mk等)。$(MKCONFIG)在上面指定為「$(SRCTREE)/mkconfig」。$(@:_config=)為將傳進來的所有參數中的_config替換為空(其中「@」指規則的目標文件名,在這里就是「mini2440_config」。$(text:patternA=patternB),這樣的語法表示把text變數每一個元素中結尾的patternA的文本替換為patternB,然後輸出)。因此$(@:_config=)的作用就是將mini2440_config中的_config去掉,得到mini2440。因此「@$(MKCONFIG)$(@:_config=)」實際上就是執行了如下命令:./mkconfigmini2440即將「mini2440」作為參數傳遞給當前目錄下的mkconfig腳本執行。在mkconfig腳本中給出了mkconfig的用法:#Parameters:TargetArchitectureCPUBoard[VENDOR][SOC]因此傳遞給mkconfig的參數的意義分別是:mini2440:Target(目標板型號)arm:Architecture(目標板的CPU架構)arm920t:CPU(具體使用的CPU型號)mini2440:Boardsamsung:VENDOR(生產廠家名)s3c24x0:SOC
F. 如何在windows下面編譯u-boot
1. 執行:apt-get install mingw32安裝了linux-windows交叉編譯環境mingwin
2. 執行:. build/envsetup.sh
3. 執行choosecombo,選擇各個參數
這兩步設置了一些編譯參數和環境變數,按照你正常編譯Android的設置即可。
4. 執行:make USE_MINGW=y adb
5. 執行:make USE_MINGW=y fastboot
最後到out/host/windows-x86/bin目錄下就能找到你剛剛編譯的東西了。
G. uboot2010-09用arm-linux-gcc3.3.2編譯出現如下錯誤:請問該如何解決
1) 可以試試用arm-softfloat-linux-gnu和和arm-linux-gcc-3.4.5-glibc-2.3.62
2) 也可以改uboot的編譯選項把軟浮點去掉,位置可能在cpu/arm920t/config.mk或類似位置,把其中的-msoft-float去掉