分类 香蕉派 下的文章

为BPI-M2+编译armbian

偶然的机会由TK的网址找到了这里https://github.com/igorpecovnik/lib
61.jpg
似乎是armbian的编译环境,所以决定尝试一下,母机的环境是最新的Ubuntu 16.4x64

Linux MikuQ 4.4.0-24-generic #43-Ubuntu SMP Wed Jun 8 19:27:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

根据github的指引,操作很简单

cd bpi
git clone https://github.com/igorpecovnik/lib --depth 1
cp lib/compile.sh .
./compile.sh

会自己准备编译环境,要求我输入root的密码,带有内核配置,不懂,一律默认吧,选择M2+板卡和ubuntu版本,编译过程并不快,或许和网络有关,系统提示用了80min,直接生成了需要的镜像,插入tf卡就可以烧录了

cd output/images
sudo dd if=Armbian_5.14_Bananapim2plus_Ubuntu_xenial_3.4.112.raw of=/dev/sdb bs=10MB
sudo eject /dev/sdb

很顺利,加电启动成功!全自动编译,就差自动写卡了

BPI-M3内核编译过程

首先下载最新的ubuntu 16.04 x64的安装盘http://www.ubuntu.com/download/server
ubuntu-16.04-server-amd64.iso大小为686,817,280 字节
下载VirtualBox 5.0.20虚拟机https://www.virtualbox.org/wiki/Downloads
VirtualBox-5.0.20-106931-Win.exe大小为113,110,496 字节
Oracle_VM_VirtualBox_Extension_Pack-5.0.20-106931.vbox-extpack大小为16,421,439 字节

英文系统,主机名MikuQ,用户名bpi

18.jpg

- 阅读剩余部分 -

温度的相关集合(CPU、SHT2X)

系统温度的工具,会除以1000,往往得到0,新的系统里似乎已经找不到这个包了

apt-get install lm-sensons

树莓派的方法,适用于M2+、M3,不适用M1、M1+,2018-3-27补充适用于M2U

cat /sys/class/thermal/thermal_zone0/temp

关于A20,宅猫给的办法,需要除1000

cat /sys/devices/platform/sunxi-i2c.0/i2c-0/0-0034/temp1_input

目前还没有找到获取M2系统温度的代码

- 阅读剩余部分 -

Armbian for M2+

首先是下载镜像,官方下载网址,下载的Jessie server,很袖珍只有200+M,解压后Armbian_5.13_Bananapim2plus_Debian_jessie_3.4.112.raw有1.3+G
http://www.armbian.com/banana-pi-m2-plus/

烧录后可以直接SSH登录,账号root,密码1234,会立即要求更新密码,新建帐户,用了传统的pi/bananapi
66.png

第一次用,测试了一下MikuDuino的兼容性,OK
67.png

MikuDuino来了(基于MikuPi的Arduino库)

仅仅是一个开始,也仅仅能点灯,算作一种轻量级库的尝试吧
https://github.com/bpiq/MikuPi
期间参考了很多前辈的资料,首先是Gordon's WiringPi,然后是sinovoip's BPI-WiringPi和tjCFeng's ClassA20等
要写一个轻量级的库看似简单,但对于一个没有linux和c基础的MikuQ来说,困难重重

1、要判断板卡的型号,目前也只能通过数内核的办法粗分BPI-M2+和BPI-M3
2、学习如何写动态库和如何安装,参考wiringPi
3、学习写makefile编译和安装,勉强通过还不会写build脚本
4、简单的gpio控制,参考cubieboard
5、gpio映射,结果发现GPIO L不受控,后来参考BPI-WiringPi
6、学用github,暂时还不太会写markdown
7、定义Arduino的结构和IO
8、其它各种c的问题,找不到头文件,重复定义,编译错误,and so on

最终算是出来了一个雏形,可以点灯了,结果还被大球抢了先
http://forum.banana-pi.org.cn/thread-1324-1-1.html

安装起来很简单

git clone https://github.com/bpiq/MikuPi.git
cd MikuPi
sudo make

然后就可以运行例子了

cd examples
gcc -Wall -o blink blink.c -lMikuDuino
sudo ./blink

看大球说和Arduino还有区别,继续修改了blink-qubot.c,是不是更像了,这里用到的13是wiringPi定义的13,对应物理21脚,也可以写成D21,这个是MikuDuino的定义,更方便对应。