cross compile u-boot in Ubuntu

本文记录了作者在调试Marvell88F6281的u-boot过程中遇到的配置参数无法传递的问题及解决方案。通过更换shell从dash到bash,成功解决了编译难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     今天又开始弄u-boot啦!

     记得那是两年前,调试Marvell 88F5182的u-boot,一切顺利。(注: 环境,SUSE 10.2, Windows XP, BDI2000) 

      今天,开始调试Marvell 88F6281的u-boot, 可是无论如何都编译不过。原因是配置参数无法传递。(注: 环境,Ubuntu 8.04, Windows XP, BDI 2000)。 

      开始是手动把这些参数传递进去,但是想想,这不办法,如果某一处传错了,后面调试就会特别困难。于是和同事(wayne)商量这个问题,他也去把这个u-boot编译一遍,他却成功编译通过。把他的source code 拿过来,仍然是无法成功编译。 

      想了想,然后对比环境,他用的是fedora 10.0, 最后发现,我的是dash。 

     切换我的dash到bash (方法如下),结果一切顺利,成功编译。还好终于把问题解决了。

     original: $ls -l /bin/sh

                  $lrwxrwxrwx 1 root root  /bin/sh -> dash

    

     changed: $ln -s /bin/bash /bin/sh

 

    完工,收拾下班!

 

### 安装 U-Boot 的前提条件 为了成功安装U-Boot,在Ubuntu环境中需先准备一些必要的工具和库文件。由于U-Boot主要用于嵌入式开发板而非标准PC环境,因此在Ubuntu桌面版或服务器上直接运行并不常见。然而,可以构建U-Boot用于特定硬件平台。 对于编译环境而言,推荐使用稳定版本的操作系统来减少不必要的麻烦,比如Ubuntu 18.04 LTS[^1]。这不仅是因为其广泛的社区支持,还因为更多的第三方依赖项能够得到良好维护和支持。 ### 准备工作 #### 更新包列表并安装必需的软件包 ```bash sudo apt update && sudo apt upgrade -y sudo apt install git make gcc-arm-linux-gnueabihf bc device-tree-compiler u-boot-tools -y ``` 上述命令会确保系统的软件仓库是最新的,并安装一系列后续编译过程中需要用到的基础工具链以及交叉编译器等资源。 ### 获取源码 通过Git克隆官方GitHub仓库获取最新版本的U-Boot源代码: ```bash git clone https://github.com/u-boot/u-boot.git cd u-boot/ ``` 此操作将下载完整的U-Boot项目至本地目录下以便进一步处理。 ### 配置与编译 针对具体的目标设备配置相应的参数,这里假设目标架构为ARM且采用默认设置为例说明: ```bash make CROSS_COMPILE=arm-linux-gnueabihf- distclean make CROSS_COMPILE=arm-linux-gnueabihf- <board_name>_defconfig make CROSS_COMPILE=arm-linux-gnueabihf- ``` 请注意替换`<board_name>`为你实际使用的开发板名称。如果不确定应该选用哪个配置选项,则查阅对应厂商提供的文档资料将是明智之举。 完成以上步骤之后即可获得适用于指定平台的u-boot.bin映像文件。 ### 测试验证 最后一步是在真实硬件或者模拟环境下测试刚刚制作好的固件镜像是否正常启动加载内核等功能模块。这部分通常涉及到烧录程序到Flash存储介质或是借助QEMU仿真器来进行初步的功能检测。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值