WhyCan Forum

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132, 微信: whycan_cn (哇酷网/挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2017-10-29 16:20:59

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,489

F1C100s 编译 XBOOT 详细过程

购买链接: https://s.click.taobao.com/s0JIBZw
相关链接1: 买个全志arm9 F1C100s 方案的唱戏机回来拆一拆
相关链接2: F1C100s 编译 XBOOT 详细过程

1. 下载工具链 arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2,解压缩到 /usr/local/ 目录.

修改 ~/.bashrc 将上面的工具链添加到PATH:

export PATH=/usr/local/arm-2014.05/bin/:$PATH

2. 下载xboot源码:

3.编译源码:

make PLATFORM=arm32-f1c100s CROSS_COMPILE=arm-linux-

4. spi flash烧录xboot hack过的固件,插入usb公对公线, 上电,出现sunxi-fel 设备之后, 运行:

sudo sunxi-fel -p write 0x80000000 output/xboot.bin;sudo sunxi-fel exec 0x80000000

QQ20171029162648.png

离线

#2 2017-10-29 16:27:03

落雁
会员
注册时间: 2017-09-06
累计积分: 62

Re: F1C100s 编译 XBOOT 详细过程

不错,收藏。

离线

#3 2018-01-15 17:08:46

kgp0213
会员
注册时间: 2018-01-15
累计积分: 149

Re: F1C100s 编译 XBOOT 详细过程

好帖!

离线

#4 2018-01-25 14:07:48

cheng880126
会员
注册时间: 2018-01-22
累计积分: 9

Re: F1C100s 编译 XBOOT 详细过程

晕哥,你这个xboot流程旧了,最近好不容易捣鼓成功xboot编译。。经验总结一下下

方法是从xboot源码编译F1C100S的readme里面找到方向的。
https://github.com/xboot/xboot/blob/master/src/arch/arm32/mach-f1c100s/README-zh-CN.md


全编译命令如下
make CROSS_COMPILE=/path/to/arm-eabi- PLATFORM=arm32-f1c100s
看出ubuntu环境编译需要的交叉工具是arm-eabi-

工具的网盘地址如下:
https://pan.baidu.com/s/1dDtssIt#list/path=%2F99-%E5%85%B1%E4%BA%AB%2Fxboot-toolchains%2Fgcc-linaro-5.3.1-2016.05&parentPath=%2F99-%E5%85%B1%E4%BA%AB

找到arm-eabi-工具下载包
gcc-linaro-5.3.1-2016.05-x86_64_arm-eabi.tar.xz

下载后放置到需要编译的位置,进行解压缩
解压分为两步,.tar.xz格式-->.tar格式
xz -d xxxx.tar.xz

.tar-->解压出文件夹
tar xvf xxxx.tar

至此出现了编译工具的文件夹gcc-linaro-5.3.1-2016.05-x86_64_arm-eabi



这个时候才真正可以在XBOOT的源码文件夹下使用编译命令
make CROSS_COMPILE=/path/to/arm-eabi- PLATFORM=arm32-f1c100s


生成的xboot.bin文件,我才可以使用sunxi-fel工具(修改版源码,参见https://whycan.cn/t_465.html,这个网址的29楼有晕哥说明)烧写到spi flash中。

烧录到spi flash命令
sudo ./sunxi-fel -p spiflash-write 0 /mnt/hgfs/xboot/output/xboot.bin;sudo ./sunxi-fel exec 0

离线

#5 2018-01-25 14:27:33

bugfix
会员
注册时间: 2017-11-22
累计积分: 123

Re: F1C100s 编译 XBOOT 详细过程

@cheng880126 没有看出区别在哪里

离线

#6 2018-01-25 14:46:48

cheng880126
会员
注册时间: 2018-01-22
累计积分: 9

Re: F1C100s 编译 XBOOT 详细过程

差别在两条编译指令,你试试看

make PLATFORM=arm32-f1c100s CROSS_COMPILE=arm-linux-

make CROSS_COMPILE=/path/to/arm-eabi- PLATFORM=arm32-f1c100s

离线

#7 2018-01-25 15:15:41

bugfix
会员
注册时间: 2017-11-22
累计积分: 123

Re: F1C100s 编译 XBOOT 详细过程

cheng880126 说:

差别在两条编译指令,你试试看

make PLATFORM=arm32-f1c100s CROSS_COMPILE=arm-linux-

make CROSS_COMPILE=/path/to/arm-eabi- PLATFORM=arm32-f1c100s

一般都会把把交叉工具链添加到PATH目录,所以略去了。

离线

#8 2018-03-19 08:57:09

lvjun0728
会员
注册时间: 2018-03-18
累计积分: 13

Re: F1C100s 编译 XBOOT 详细过程

路过看看。、。。

离线

#9 2018-03-20 08:50:48

Lvy
会员
注册时间: 2017-11-25
累计积分: 89

Re: F1C100s 编译 XBOOT 详细过程

记下,用全志的人不少呀!

离线

#10 2018-04-16 18:00:43

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,489

Re: F1C100s 编译 XBOOT 详细过程

QQ20180416175942.png

确实, 更新最新的xboot, 使用gcc4.8 链接的时候会出错.

换 gcc-linaro-7.2.1 就正常了。

离线

#11 2018-04-16 18:01:54

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,489

Re: F1C100s 编译 XBOOT 详细过程

这里下载工具链: Latest Bare-Metal Targeted Binary Toolchain Releases

因为我的电脑是ubuntu14.04 x64版本的,所以我下载这个工具链: gcc-linaro-7.2.1-2017.11-x86_64_arm-eabi.tar.xz

一般解压缩到 /usr/local/ 目录,
然后把目录 export PATH=/usr/local/gcc-linaro-7.2.1-2017.11-x86_64_arm-eabi/bin:$PATH 添加到 /etc/profile, 或者 ~/.bashrc 文件

然后执行:

make PLATFORM=arm32-f1c100s CROSS_COMPILE=arm-eabi-

离线

#12 2019-07-11 10:04:04

hzpyl
会员
注册时间: 2019-07-10
累计积分: 79

Re: F1C100s 编译 XBOOT 详细过程

x-boot的帖子!

离线

#13 2019-10-14 12:30:28

cris8259
会员
注册时间: 2019-09-25
累计积分: 166

Re: F1C100s 编译 XBOOT 详细过程

CROSS_COMPILE    ?=arm-linux-gnueabihf-
PLATFORM        ?=arm32-f1c100s

链接报错是怎么回事
e:/eclipse-for-xboot-windows-x86_64/compiler/arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/5.3.1/../../../../arm-linux-gnueabihf/bin/ld.exe: failed to merge target specific data of file .obj/init/version.o
collect2.exe: error: ld returned 1 exit status
make.exe[1]: *** [../output/xboot] Error 1
make.exe[1]: Leaving directory `D:/workbench/TouchView/xboot/src'
make: *** [all] Error 2

应该下载哪一个工具链

离线

#14 2019-11-03 10:23:34

642242855
会员
注册时间: 2019-10-31
累计积分: 31

Re: F1C100s 编译 XBOOT 详细过程

cris8259 说:

CROSS_COMPILE    ?=arm-linux-gnueabihf-
PLATFORM        ?=arm32-f1c100s

链接报错是怎么回事
e:/eclipse-for-xboot-windows-x86_64/compiler/arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/5.3.1/../../../../arm-linux-gnueabihf/bin/ld.exe: failed to merge target specific data of file .obj/init/version.o
collect2.exe: error: ld returned 1 exit status
make.exe[1]: *** [../output/xboot] Error 1
make.exe[1]: Leaving directory `D:/workbench/TouchView/xboot/src'
make: *** [all] Error 2

应该下载哪一个工具链


同问,我用win10系统,能不能编译

离线

#15 2019-11-03 11:11:06

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,489

Re: F1C100s 编译 XBOOT 详细过程

用一楼我列出的那个工具链试一试

离线

#16 2019-11-14 15:22:44

642242855
会员
注册时间: 2019-10-31
累计积分: 31

Re: F1C100s 编译 XBOOT 详细过程

晕哥 说:

用一楼我列出的那个工具链试一试


root@DESKTOP-SDMPT9S:/mnt/c/Users/ASUS/xboot# make CROSS_COMPILE=/path/to/arm-eabi- PLATFORM=arm32-f1c100s
make[1]: Entering directory '/mnt/c/Users/ASUS/xboot/src'
[AS] arch/arm32/lib/cpu/cache-v7.S
make[1]: /path/to/arm-eabi-gcc: Command not found
Makefile:291: recipe for target '.obj/arch/arm32/lib/cpu/cache-v7.o' failed
make[1]: *** [.obj/arch/arm32/lib/cpu/cache-v7.o] Error 127
make[1]: Leaving directory '/mnt/c/Users/ASUS/xboot/src'
Makefile:8: recipe for target 'all' failed
make: *** [all] Error 2
root@DESKTOP-SDMPT9S:/mnt/c/Users/ASUS/xboot#


请问下这是什么情况

离线

#17 2019-11-14 15:26:54

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,489

Re: F1C100s 编译 XBOOT 详细过程

make[1]: /path/to/arm-eabi-gcc: Command not found

下载并设置好 gcc 的路径。

离线

#18 2019-11-14 15:41:24

642242855
会员
注册时间: 2019-10-31
累计积分: 31

Re: F1C100s 编译 XBOOT 详细过程

晕哥 说:

make[1]: /path/to/arm-eabi-gcc: Command not found

下载并设置好 gcc 的路径。

有安装教程推荐下吗,刚用linux不是很熟悉

离线

#19 2019-11-14 15:43:45

xgui
会员
注册时间: 2019-09-07
累计积分: 195

Re: F1C100s 编译 XBOOT 详细过程

按一楼的步奏做。

离线

#20 2019-11-14 16:33:40

642242855
会员
注册时间: 2019-10-31
累计积分: 31

Re: F1C100s 编译 XBOOT 详细过程

xgui 说:

按一楼的步奏做。


~/.bashrc 这个文件是哪个目录下的,我搜索了下,有好几个这样的文件

离线

#21 2019-11-14 16:38:38

jimmy
Moderator
注册时间: 2017-10-29
累计积分: 286

Re: F1C100s 编译 XBOOT 详细过程

~ 代码你的家目录  /home/账号/

离线

#22 2019-11-15 10:35:48

642242855
会员
注册时间: 2019-10-31
累计积分: 31

Re: F1C100s 编译 XBOOT 详细过程

jimmy 说:

~ 代码你的家目录  /home/账号/

找到了,多谢!

离线

#23 2019-11-15 11:08:48

642242855
会员
注册时间: 2019-10-31
累计积分: 31

Re: F1C100s 编译 XBOOT 详细过程

晕哥 说:

这里下载工具链: Latest Bare-Metal Targeted Binary Toolchain Releases

因为我的电脑是ubuntu14.04 x64版本的,所以我下载这个工具链: gcc-linaro-7.2.1-2017.11-x86_64_arm-eabi.tar.xz

一般解压缩到 /usr/local/ 目录,
然后把目录 export PATH=/usr/local/gcc-linaro-7.2.1-2017.11-x86_64_arm-eabi/bin:$PATH 添加到 /etc/profile, 或者 ~/.bashrc 文件

然后执行:

我的是linux子系统ubuntu18.04的下面需要选哪个:

gcc-linaro-7.2.1-2017.11-i686-mingw32_arm-linux-gnueabihf.tar.xz    27-Feb-2018 00:54    319.7M    open
gcc-linaro-7.2.1-2017.11-i686-mingw32_arm-linux-gnueabihf.tar.xz.asc    28-Jan-2018 19:47    99    open
gcc-linaro-7.2.1-2017.11-i686_arm-linux-gnueabihf.tar.xz                    27-Feb-2018 00:54    102.4M    open
gcc-linaro-7.2.1-2017.11-i686_arm-linux-gnueabihf.tar.xz.asc            28-Jan-2018 19:48    91    open
gcc-linaro-7.2.1-2017.11-linux-manifest.txt                                      28-Jan-2018 19:48    9.9K    open
gcc-linaro-7.2.1-2017.11-win32-manifest.txt                            28-Jan-2018 19:48    9.9K    open
gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz    27-Feb-2018 00:54    103.4M    open
gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz.asc    28-Jan-2018 19:48    93    open
runtime-gcc-linaro-7.2.1-2017.11-arm-linux-gnueabihf.tar.xz    28-Jan-2018 19:48    6.2M    open
runtime-gcc-linaro-7.2.1-2017.11-arm-linux-gnueabihf.tar.xz.asc    28-Jan-2018 19:48    94    open
sysroot-glibc-linaro-2.25-2017.11-arm-linux-gnueabihf.tar.xz    27-Feb-2018 00:54    40.3M    open
sysroot-glibc-linaro-2.25-2017.11-arm-linux-gnueabihf.tar.xz.asc    28-Jan-2018 19:48    225    open

离线

页脚