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去掉