导航:首页 > 源码编译 > uboot2021编译

uboot2021编译

发布时间:2023-02-01 16:50:11

❶ uboot怎么样才可以编译成自己的u-boot.bin

按照uboot移植手册,修改源代码,然后用交叉编译工具编译,就会生成uboot.bin文件了。

❷ ubuntu 编译uboot需要哪些工具,哎,新手,详细点哦,亲

1.首先安装基本编译环境:sudo apt-get install build-essential
2:先把交叉编译环境包放到你的共享目录,(我这里的版本是:arm-linux-gcc-4.4.3.tar.gz)
3:进行解压 tar zxvf arm-linux-gcc-4.4.3.tar.gz -C (要解压的路径)
比如:tar zxvf arm-linux-gcc-4.4.3.tar.gz -C ~/ (root 用户的工作目录)

4:然后设置环境变量:export PATH=$PATH:~/opt/FriendlyARM/toolschain/4.4.3/bin

5:要想系统启动自动加载环境变量:
1:普通用户:vim .bashrc 在最后添加你的环境变量:export PATH=$PATH:~/opt/FriendlyARM/toolschain/4.4.3/bin

2:root用户:vim .bashrc 在最后添加你的环境变量:export PATH=$PATH:~/opt/FriendlyARM/toolschain/4.4.3/bin

❸ 如何在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目录下就能找到你刚刚编译的东西了。

❹ 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

❺ 编译uboot时出现如下错误,求大神告知!!!

没有指定交叉编译器,定义Makefile中CROSS_COMPILE

❻ U-Boot编译问题

make clean
make
试试?

重新解压工具链,确保其完整性,和路径的正确性,工具链必须用在制作时用那个路径;

❼ 为什么在ubuntu编译下uboot时总是出错

1.U-boot的使用:
ubuntu下基本只能用
kermit协议,进行串口通信了:
loadb
Ctrl+\,再按c,切换到C-kermit的命令行模式:
send
<文件路径>,回车。
传送完毕后,输入c,回到U-boot串口界面。

若能和PC机ping成功,则可用tftp和nfs传输文件:
dhcp:使用
DHCP/TFTP 协议获取文件
rarpboot :使用 RARP/TFTP 协议获取文件
nfs:使用 NFS
协议获取文件
tftpboot :使用 TFTP 协议获取文件
bootp:使用 BOOTP/TFTP
协议获取文件
以上命令的格式都为:指令 [目的 SDRAM 地址] [[主机 IP:]文件名]
注意:
要使用 dhcp、rarpboot 或 bootp 要路由器或 Host
支持的这些协议和服务。
如果没有输入[目的SDRAM 地址],系统就是用编译时定义的CONFIG_SYS_LOAD_ADDR
在使用如果
tftpboot 和 nfs 命令没有定义[主机 IP:],则使用 ENV 中的 serverip
其它命令必需定义[主机 IP:],否则使用提供动态 IP 服务的主机
IP。

Nand Flash
操作指令:
nand info
nand device [dev]
nand read addr off size
nand
write addr off size
nand write[.yaffs[1]] addr off size
nand erase [clean]
[off size]
nand bad
nand mp[.oob] off
nand scrub
nand markbad
off
nboot loadAddr dev offset

内存/寄存器操作指令:
nm [.b, .w, .l]
address
mm [.b, .w, .l] address
md [.b, .w, .l] address [# of
objects]
mw [.b, .w, .l] address value [count]
cp [.b, .w, .l] source
target count

Nor Flash 指令:
flinfo
(N)
md
protect
cp

USB 操作指令:
usb reset
usb
stop [f]
usb tree
usb info [dev]
usb storage
usb dev [dev]
usb
part [dev]
usb read addr blk# cnt
SD 卡(MMC)指令:
mmc init
mmc
device
FAT 文件系统指令:
fatinfo <interface>
<dev[:part]>
fatload <interface> <dev[:part]> <addr>
<filename> [bytes]
fatls <interface> <dev[:part]>
[directory]

系统引导指令:
boot 和 bootd 都是运行
ENV”bootcmd”中指定的指令
bootm [addr [arg ...]]

run 运行一个 ENV
定义的命令脚本
reset 重启 CPU

使用 U-boot
将映像文件烧写到板上的 Flash,一般步骤是:
(1)通过网络、串口、U盘、SD卡等方式将文件传输到SDRAM;
(2)使用 Nand
Flash 或 Nor Flash 相关的读写命令将 SDRAM 中的数据烧入 Flash。

内核的引导步骤如下:
(1)用
U-boot 的 mkimage 工具处理内核映像 zImage。
(2)通过网络、串口、U 盘、SD 卡等方式将处理过的内核映像传输到 SDRAM
的一定
位置(一般使用 0x30008000)
(3)然后使用”bootm"等内核引导命令来启动内核。

2.U-boot在mini2440上的移植
在U-boot根目录下:
vim Makefile
将 CROSS_COMPILE = arm-tekkaman-linux-gnueabi-
修改为CROSS_COMPILE = arm-linux-
make mini2440_config
make
注意:修改交叉编译器一定要在make之前完成!
终于完成了U-boot
的移植。以前一直掐住瓶颈的问题,居然出在这里!
至此,总算完成了U-boot+内核+rootfs根文件系统等的移植,一个嵌入式系统搭建起来了。然而在这里,基本上只是拿了人家现成的代码稍加修改而已,不值得沾沾自喜。接下来该在应用程序上进行开发了。

❽ 在WINDOWS下编译UBOOT需要什么工具,还有过程

我是这样做的,我在win7下安装了virtualbox虚拟机,然后再虚拟机上安装了一个ubuntu的linux系统,然后安装交叉编译器GCC,然后就可以在uboot源码目录下直接编译了。。。先配置uboot 然后make,就自己编译了。。。windows平台下不知道能不能编译,你网络看看或者等待其它大神帮你。。。陪LZ等答案哈

❾ uboot用什么编译软件啊 请尽量说的详细些

用arm-linux-gcc(如果你的处理器是ARM的话),具体有好多版本,一般都是直接用开发板公司提供的,这样比较保证,因为重新编译一个编译器还是比较麻烦的事(想自己编译一个编译器的话,就用Cross tools吧)。

阅读全文

与uboot2021编译相关的资料

热点内容
vue类似电脑文件夹展示 浏览:111
后备服务器有什么功效 浏览:268
连不上服务器怎么连 浏览:600
什么构架的可以刷安卓系统 浏览:771
爱奇艺APP怎么兑换CDK 浏览:994
程序员买4k显示器还是2k显示器 浏览:144
python多进程怎么多窗口 浏览:818
电脑文件夹怎么取消类别 浏览:47
cad拉线段命令 浏览:924
如何用电脑清理手机没用的文件夹 浏览:100
储存层次结构对程序员的意义 浏览:477
微信文件夹查看器 浏览:952
android视频聊天开源 浏览:552
思科iso命令 浏览:944
手机网页源码里的视频地址 浏览:681
哈利波特魔法觉醒要怎么选服务器 浏览:993
情感交友网站php 浏览:942
id下载不了app怎么回事 浏览:996
有什么好看的服务器小说 浏览:293
程序员四级没过有什么影响 浏览:540