Banana Pi M1+ 板载 WiFi 802.11g/b/n。得益于板载 WiFi 芯片,该开发板既支持经典项目,也能拓展更多应用。与其他 Banana Pi 产品一样,它可运行 Android、Lubuntu、Ubuntu、Debian 和 Raspbian 等操作系统。
Banana Pi M1+ 是 M1 的升级版。板载 WiFi 为开发板增加了更多功能,也让用户能更方便地搭建 Linux 桌面或路由器项目。
双核 1.0 GHz CPU
1 GB DDR3 内存
Mali-400 MP2,支持 OpenGL ES 2.0/1.1
板载 WiFi
| BPI-M1 与 BPI-M1 Plus 共用同一 Android 镜像。 |
下载 M1 Plus 镜像。
将 TF 卡插入 TF 转 USB 读卡器,再将读卡器插入 Windows PC 的 USB 接口。
准备好镜像,并下载镜像烧录工具 PhoenixCard.exe。
使用“PhoenixCard.exe”将 Android 镜像烧录到 TF 卡。
在镜像路径选项中选择镜像。
选择“卡启动”,然后单击“烧录”。
烧录完成。
准备一张 8 GB 或更大容量的 TF 卡、一根 USB 转串口线,以及一台 Windows PC。
使用 USB 转串口线连接 M1 Plus 的调试串口。
Windows
使用 balenaEtcher 安装镜像。
balenaEtcher 是 Balena 开发的开源图形化烧录工具,可将操作系统镜像写入 SD 卡或 USB 存储设备。
单击“Flash from file”选择镜像。
单击“Select target”选择目标设备。
单击“Flash!”开始烧录。
在 M1P 上挂载 SATA 设备
接入 SATA 设备后,执行:
fdisk -l
然后
mount /dev/sdx /mnt/xxx
如果您在挂载 SATA 时遇到一些错误,请尝试以下命令:
创建新分区
fdisk /dev/sdx
设置分区数量和大小。创建分区后,输入“wq”保存并退出。
格式化 SATA 设备
mkfs.ext2 /dev/sdx
执行
mount /dev/sdx /mnt/xxx
成功接入 SATA 设备后,可使用以下命令测试 SATA 接口:
测试读取速度
time dd if=/dev/xxx of=/dev/null bs=1M count=1000
测试写入速度
time dd if=/dev/zero of=/dev/sdx bs=1M count=1000
使用 iperf3 测试 GMAC。
在 PC 终端上:
执行
iperf3 -s
在 M1P 控制台上:
TCP 测试
iperf3 -c serverIP
UDP 测试:
iperf3 -u -c serverIP
您有两种方法来设置 WiFi 客户端
使用命令设置 WiFi 客户端
ip link set wlan0 up
iw dev wlan0 scan | grep SSID
nano /etc/wpasupplicant/wpa_supplicant.conf
network={
ssid="ssid"
psk="password"
priority=1
}
wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
dhclient wlan0
通过图形界面配置 WiFi 客户端
git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB
bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX
安装 RPi.GPIO
git clone https://github.com/BPI-SINOVOIP/RPi.GPIO
cd RPi.GPIO
sudo apt-get update
sudo apt-get install python-dev python3-dev
安装模块,执行
sudo python setup.py install
或
sudo python3 setup.py install
使用 RPi.GPIO
cd /usr/local/bin
./bpi_test_g40.py
还提供以下内置测试命令:
/usr/local/bin
RGB 1602 LCD
/usr/local/bin/bpi_test_lcd1602.sh
8×8 RGB LED 矩阵
首先需要一块用于 8×8 LED 矩阵的 GPIO 扩展板。
执行
/usr/local/bin/bpi_test_gpio40.sh
sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install freeglut3-dev
sudo apt-get install cmake
sudo apt-get install qt5-default qtcreator
要将 can4linux 移植到 Banana Pi,需要参考 A20 硬件手册中的 CAN 模块说明。can4linux 是基于字符设备驱动的 Linux 驱动,已用于桌面 PC 和多种嵌入式平台,例如 Freescale FlexCAN(i.MX 系列微控制器)和 Xilinx Zynq。
A20 CAN 的详细文档:https://dl.linux-sunxi.org/A20/CAN%20Bus1.pdf
以下教程介绍如何在运行 Bananian 15-01 的 Banana Pi 上使用 CAN 总线。
感谢 selqcir 分享此示例:
下载“bananian-1501.img”并将其安装到 8 GB SD 卡。
使用“bananian-config”扩展根文件系统
安装缺少的软件包:
apt-get install git
apt-get update
apt-get upgrade
reboot
获取最新可用的 Bananian,并继续安装缺少的软件包:
git clone https://github.com/Bananian/linux-bananapi
apt-get install build-essential u-boot-tools uboot-mkimage
apt-get install libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev libncurses5-dev
apt-get install subversion
构建内核:
cd linux-bananapi
make menuconfig
菜单出现时,不保存并退出。
zcat /proc/config.gz > /root/linux-bananapi/.config
make uImage modules
make INSTALL_MOD_PATH=output modules_install
此步骤完成后,内核应已编译,且“Module.symvers”文件可用。
然后重命名 Bananian 提供的模块和固件,并替换为新版本。
mv /lib/modules /lib/modules.old
mv /lib/firmware /lib/firmware.old
mv /root/linux-bananapi/output/lib/modules /lib/modules
mv /root/linux-bananapi/output/lib/firmware /lib/firmware
对 uImage 执行同样操作:
mount /dev/mmcblk0p1 /mnt
cd /mnt
mv uImage uImage.old
mv /root/linux-bananapi/arch/arm/boot/uImage /mnt
reboot
创建供后续构建使用的链接:
cd /lib/modules/3.4.104/
ln -s /root/linux-bananapi build
cd ~
获取 Can4Linux 并构建它:
svn checkout https://svn.code.sf.net/p/can4linux/code/trunk can4linux-code
cd /root/can4linux-code/can4linux/
make TARGET=BANANAPI
配置开发板每次启动时自动加载模块:
insmod can4linux.ko
cp can4linux.ko /lib/modules/3.4.104/kernel/net/can/
depmod -A -v
modprobe -v can4linux
echo "" >> /etc/modules ; echo "can4linux" >> /etc/modules
reboot
构建 CAN 示例
apt-get install swig
apt-get install python-dev
cd can4linux-code/can4linux-examples/
在“pyCan-example.py”文件中更新 CAN 速率和设备。
# setting the device number
device = 0
defaultBaudrate = '250'
连接 CAN 收发器与 CAN 总线,并使用以下示例进行检查:
python pyCan-example.py
操作完成。
使用此方法时,内核版本为“Linux bananapi 3.4.104”,而不是“Linux bananapi 3.4.104+”。这是因为未能找到与 Bananian 15-01 完全相同的源代码,但 CAN 总线可以正常工作。