【炫Q香蕉派】虛擬機 跑 Ubuntu14.04 編譯 BPI-M3

原标题:BPI-M3之跟J神学编译,感谢Justin、大球、追梦
首先要有一个64位的ubuntu,必须是64位的,M3的代码在这里:https://github.com/BPI-SINOVOIP/BPI-M3-bsp.git

首先就是ubuntu的版本,要x64的,昨天x32一直没搞定,今天下载了新的iso
http://www.ubuntu.com/download/desktop
版本是
Ubuntu 14.04.3 LTS 64bit,选择的中文,大家似乎不太推荐

这个版本似乎sshd、git都没有,不过也好装
sudo passwd 开通root
sudo apt-get update
sudo apt-get install git
sudo apt-get install openssh-server
就可以通过控制台来用了

然后建立一个bpi文件夹

view plaincopy to clipboardprint?

mkdir bpi
cd bpi

开始下载软件包

view plaincopy to clipboardprint?

git clone https://github.com/BPI-SINOVOIP/BPI-M3-bsp.git

然而并不乐观

经测试才发现,windows下

linux下

www可以,不过还会被重定向到没有www的页面

持续了近一个小时,终于通了,原因不明,下载又用了近一个小时

大球提供了安装准备文件的说明[http://pan.baidu.com/s/1ntrHIh7](http://pan.baidu.com/s/1ntrHIh7)
但是后来证明,这个还是远远不够的,先把中间用过的都记录在这里吧

view plaincopy to clipboardprint?

[list=1]
*]sudo apt-get install gcc-arm-linux-gnueabi
*]
*]sudo apt-get install gcc-arm-linux-gnueabihf
*]
*]sudo apt-get install build-essential libncurses5-dev u-boot-tools qemu-user-static debootstrap git binfmt-support libusb-1.0-0-dev pkg-confi
*]
*]sudo apt-get install build-essential u-boot-tools uboot-mkimage binutils-arm-linux-gnueabihf gcc-4.7-arm-linux-gnueabihf-base g+±4.7-arm-linux-gnueabihf
*]
*]sudo apt-get install gcc-arm-linux-gnueabihf cpp-arm-linux-gnueabihf libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev libncurses5-dev
*]
*]sudo apt-get install lib32stdc++6 lib32z1 lib32z1-dev
[/list]

首先支持软件装不全的时候
view plaincopy to clipboardprint?

[list=1]
*]cd BPI-M3-bsp
*]
*]./build.sh
[/list]

会出现这个错误
<img width="500" height="0" src="http://uphotos.eepw.com.cn/1423193090/pics/9781402254947f2cce993bc2077423dd.jpg">
				
										实测是有的,但是不知道为啥报错,指定路径里的运行也如此
<img width="500" height="0" src="http://uphotos.eepw.com.cn/1423193090/pics/241b76922d1e4229cb5a30f738181b0f.jpg">

[list=1]
*]gcc -v
*]gcc --version
[/list]
看一下版本

view plaincopy to clipboardprint?

[list=1]
*]uname -a
[/list]

系统版本
Linux u14-x64 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

经过J神调教,有些变化了,好像有变化,变找不到库了
<img width="500" height="0" src="http://uphotos.eepw.com.cn/1423193090/pics/938dbf561ccb6598abb218ab507bba05.jpg">

找到BPI-M3-bsp下的Makefile文件,关掉上边,打开下边

view plaincopy to clipboardprint?

[list=1]
*]SUDO=sudo
*]CROSS_COMPILE=$(COMPILE_TOOL)/arm-linux-gnueabi-
*]NEW_CROSS_COMPILE=$(NEW_COMPILE_TOOL)/arm-linux-gnueabihf-
*]U_CROSS_COMPILE=$(CROSS_COMPILE)
*]#K_CROSS_COMPILE=$(CROSS_COMPILE)
*]K_CROSS_COMPILE=$(NEW_CROSS_COMPILE)
[/list]

										再次编译,果然没有异常了,据说大概需要15分钟
<img width="500" height="0" src="http://uphotos.eepw.com.cn/1423193090/pics/03b504ab3a999bbb3c1b4512890357f8.jpg">
				
										果然是15分钟,没有报错
<img width="500" height="0" src="http://uphotos.eepw.com.cn/1423193090/pics/e773af53e76aa09870fc7aaddda67ad6.jpg">

不过预期的download文件夹也没有出来

据说是因为没有build all,开始选择的都是1-3 build kernel,要选择1-1 build all,结果又报错了

继续安装最后三个包,其实如果开始装全的话,很多错误都是看不到的

这次比较顺利,似乎也没用多久

终于得到了download文件夹,但是还没有结束

要找到BPI-M3-bsp/sunxi-pack/chips/sun8iw6p1/configs/BPI_M3_720P下的sys_config.fex文件
在末尾加入对18B20的支持

view plaincopy to clipboardprint?

[list=1]
*][w1_para]
*]w1_used = 1
*]gpio = 3
[/list]

gpio=3的对应定义在这里

view plaincopy to clipboardprint?

[list=1]
*][gpio_para]
*]gpio_used = 1
*]gpio_num = 28
*]gpio_pin_1 = port:PH5<1><1>
*]gpio_pin_2 = port:PH4<1><1>
*]gpio_pin_3 = port:PL10<1><1>
[/list]

是PL10
再次编译就好了,结果里会用到u-boot.fex

[list=1]
*]sudo dd if=u-boot.fex of=/dev/sdb bs=1k seek=19096
[/list]
这个是不够的,大球说会反复重起,还没有实测,订的TF卡应该今天会到,还需要

view plaincopy to clipboardprint?

[list=1]
*]sudo dd if=boot0_sdcard.fex of=/dev/sdb bs=1k seek=8
*]
*]sudo dd if=u-boot.fex of=/dev/sdb bs=1k seek=19096
*]
*]sudo dd if=sunxi_mbr.fex of=/dev/sdb bs=1k seek=20480
*]
*]sudo dd if=boot-resource.fex of=/dev/sdb bs=1k seek=36864
*]
*]sudo dd if=env.fex of=/dev/sdb bs=1k seek=69632
*]
*]sudo dd if=boot.fex of=/dev/sdb bs=1k seek=86016

[/list]

问到如果启动成功后怎么测试,J神给了一张图,到时候有问题再请教吧

有人问PL10是谁,看原理图吧