dd if=/dev/sda of=/dev/zero bs=1M count=10240\
Banana Pi R2 是一款路由器开发板,可运行 OpenWrt、Android 和 Bananian 等多种开源操作系统。它配有 4 个千兆 LAN 端口、1 个千兆 WAN 端口,并支持 300 Mbps 802.11n 无线网络。
| 更多信息:Banana Pi BPI-R2 |
MediaTek MT7623N,四核 ARM Cortex-A7
Mali-450 MP4 GPU
2 GB DDR3 SDRAM
1 个 Mini PCIe 接口
2 个 SATA 接口
4 个千兆 LAN 端口、1 个千兆 WAN 端口
BPI-R2 支持两个 SATA 接口,并配有板载硬盘供电接口。
可以使用 SATA 线将硬盘连接到 BPI-R2。
使用三星 SSD 测得的读写性能如下:
磁盘读取:230 MB/s
dd if=/dev/sda of=/dev/zero bs=1M count=10240\
磁盘写入:192 MB/s
dd if=/dev/zero of=/dev/sda bs=1M count=1024 oflag=direct\
| 如果使用 3.5 英寸硬盘,可能需要外接电源供电,因为板载电源接口可能无法提供足够的电流。 = 开发 下面开始在 BPI-R2 上进行开发。 |
准备一张至少 16 GB 的 TF 卡、一个 USB 转串口适配器和一台 Ubuntu 电脑
使用 USB 转串口适配器(3.3 V,波特率 115200)连接 R2 的调试控制台
LAN 口默认 IP 地址:192.168.1.1
用户名/密码:pi/bananapi、root/bananapi。+ 也可以使用无密码的 root 用户登录。
Banana Pi R2 调试串口:http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:debug-uart
可以从官方论坛下载最新镜像
在 Ubuntu 上安装 bpi-tools。如果无法访问该网址或遇到其他问题,请前往 bpi-tools 仓库手动安装该工具。
apt-get install pv
curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
下载镜像后,将 TF 卡插入 Ubuntu 电脑
bpi-copy xxx.img /dev/sdx
完成步骤 3 后,将 TF 卡插入 R2,再按住电源按钮约 10 秒启动 R2。
从 GitHub 克隆 BSP 项目,执行
git clone [email protected]:BPI-SINOVOIP/BPI-R2-bsp.git
执行
./build.sh
以构建自己的 U-Boot 和内核。
R2 build sh.png
构建完成后,执行
cd SD
将装有 Ubuntu 的 TF 卡插入电脑。
执行
bpi-update -c bpi-r2.conf -d /dev/sdX
以便将编译好的内核更新到 TF 卡。
如果要将 Ubuntu 安装到 eMMC,请按以下步骤操作:
将镜像烧录到 SD 卡,并使用该 SD 卡启动 R2。
将文件名中包含 xxx-emmc-xxx 的镜像复制到 U 盘。
将 U 盘挂载到 R2,然后使用 bpi-copy 将镜像烧录到 eMMC。
bpi-copy <XXX.img.zip>
XXX.img.zip 是 Ubuntu 镜像,可从 http://www.banana-pi.org/r2-download.html 获取。
关闭电源
取出 SD 卡,然后开机
从 GitHub 克隆 OpenWrt 项目。
git clone https://github.com/garywangcn/bpi-r2_lede.git
需要预先安装 gcc、binutils、bzip2、flex、python、perl、make、find、grep、diff、unzip、gawk、getopt、subversion、libz-dev 和 libc 头文件。
运行“./scripts/feeds update -a”,获取 feeds.conf 和 feeds.conf.default 中定义的最新软件包;再运行“./scripts/feeds install -a”,将所有软件包的符号链接安装到 package/feeds/。
使用“make menuconfig”配置镜像。
将“Target System”配置为“MediaTek Ralink ARM”
将“Boot Loaders”配置为“u-boot-bpi_r2”
执行“make -j1 V=s”构建 OpenWrt 镜像。
构建完成后,可以使用以下两种方式安装镜像。
将 TF 卡插入 Ubuntu 电脑,然后进入“build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-mediatek_32/”目录, 其中可以找到两个镜像:
mtk-bpi-r2-EMMC.img
mtk-bpi-r2-SD.img
将镜像写入 TF 卡,执行“dd if=mtk-bpi-r2-SD.img of=/dev/sdX”
如需将镜像安装到 eMMC,需要先从 SD 卡启动另一个系统,再由该系统把 eMMC 镜像写入 eMMC。请按以下步骤操作:
将 eMMC 镜像复制到从 SD 卡启动的系统中
将 eMMC 镜像写入 eMMC 用户数据区:dd if=mtk-bpi-r2-EMMC.img of=/dev/mmcblk0(假设 /dev/mmcblk0 为 eMMC)
解锁 EMMC boot0 块:echo 0 > /sys/block/mmcblk0boot0/force_ro
将预加载器写入 eMMC boot0 块:dd if=mtk-bpi-r2-EMMC.img of=/dev/mmcblk0boot0 bs=1M count=1
将 eMMC 分区配置改为 48h:重启从 SD 卡运行的系统,进入 U-Boot 命令行并执行 emmc pconf 48。(也可以使用 mmc-utils 在用户空间更改分区配置;更多信息请参阅 2018-04-11 版本的 BPI-R2 OpenWrt(LEDE)源代码。)
关闭电源,取出 SD 卡,然后重新给 R2 开发板上电
以下步骤用于升级。如果构建完成后不想重新烧录镜像,可以执行在线升级。
将“bin/targets/mediatek/32/lede-mediatek-32-bananapi,bpi-r2-sysupgrade.tar”复制到正在运行 OpenWrt 的 R2 开发板(无论系统从 SD 卡还是 eMMC 启动),然后执行“sysupgrade lede-mediatek-32-bananapi,bpi-r2-sysupgrade.tar”更新内核和根文件系统。
Banana Pi R2 安装 OpenWrt:https://www.cnblogs.com/topbin/p/8794152.html
Banana Pi R2 OpenWrt 网口配置分析:https://www.cnblogs.com/topbin/p/9518279.html
使用 Banana Pi R2 和 OpenWrt 开发简单路由器:https://www.cnblogs.com/topbin/p/9519881.html
Banana Pi R2 OpenWrt LuCI:https://www.cnblogs.com/topbin/p/9519875.html
echo xxx > /sys/class/gpio/export
echo in/out > /sys/class/gpio/gpioxxx/direction
echo 0/1 > /sys/class/gpio/gpioxxx/value
查看 GPIO 基准编号,本例中为 233
R2 gpio base.png
例如,如果要将 GPIO 22 配置为高电平输出,需要输入以下命令:
echo 255(22+233) > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio255/direction
echo 1 > /sys/class/gpio/gpio255/value
echo x >/sys/class/pwm/pwmchip0/export
echo 200000 >/sys/class/pwm/pwmchip0/pwmx/period
echo 100000 >/sys/class/pwm/pwmchip0/pwmx/duty_cycle
echo 1 >/sys/class/pwm/pwmchip0/pwmx/enable
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”安装模块
从这里获取更多信息:
wmt_loader (ignore errors)
stp_uart_launcher -p /etc/firmware &
ip link set wlan0 up
iw dev wlan0 scan | grep SSID
vim /etc/wpasupplicant/wpa_supplicant.conf
network={
ssid="ssid"
psk="password"
priority=1
}
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
dhclient wlan0
wmt_loader (ignore errors)
stp_uart_launcher -p /etc/firmware &
echo A >/dev/wmtWifi
创建 hostapd.conf:“vim /etc/hostapd/hostapd.conf”
interface=ap0
bridge=br0
ssid=test_r2
driver=nl80211
country_code=US
hw_mode=b
channel=1
max_num_sta=5
wpa=2
auth_algs=1
rsn_pairwise=CCMP
wpa_key_mgmt=WPA-PSK
wpa_passphrase=ledetest
logger_stdout=-1
logger_stdout_level=2
根据能够连接互联网的网络接口配置 ap0:
本例中,可访问互联网的接口是 wan,IP 地址为 192.168.30.102,因此按如下方式配置 ap0:
ifconfig ap0 192.168.30.188 netmask 255.255.255.0
运行 hostapd:“hostapd -d /etc/hostapd/hostapd.conf”
配置 DHCP 文件:“vim /etc/dhcp/dhcpd.conf”
subnet 192.168.30.0 netmask 255.255.255.0 {
range 192.168.30.2 192.168.30.250;
option domain-name-servers 8.8.8.8;
option routers 192.168.30.1; }
为 ap0 配置 DHCP,使连接到 ap0 的设备能够获取 IP 地址:“dhcpd ap0 -pf /var/run/dhcpd.pid ”
再创建一个网桥
brctl addbr br0
brctl addif br0 ap0
brctl addif br wan
配置 br0:“ifconfig br0 192.168.30.180 netmask 255.255.255.0”
为 br0 添加默认网关:“route add -net default netmask 255.255.255.0 gw 192.168.30.1 dev br0”
如果遇到如下问题:
A64 ap 1.png
可以使用以下命令解决:
nmcli radio wifi off
A64 ap 2.png
rfkill unblock 1
rfkill unblock 2
ifconfig ap0 up
hostapd -d hostapd.conf
A64 ap 3.png
创建 Bash 脚本
vim setup.sh
#!/bin/ash
wmt_loader &
sheep 3
stp_uart_launcher -p /etc/firmware &
sleep 5
echo A > /dev/wmtWifi &
sleep 5
hostapd -d hostapd.conf
创建 hostapd.conf
vim hostapd.conf
interface=ap0
bridge=br-lan
ssid=BPI_R2
driver=nl80211
country_code=CN
hw_mode=g
channel=1
max_num_sta=5
wpa=2
auth_algs=1
rsn_pairwise=CCMP
wpa_key_mgmt=WPA-PSK
wpa_passphrase=ledetest
logger_stdout=-1
logger_stdout_level=2
运行脚本
./setup.sh
将脚本加入启动流程
vim /etc/rc.local
cd /root/
sleep 6
./setup.sh &
如果 AP 不稳定,可以限制速率。本例将下载速率限制为 8 Mbit/s、上传速率限制为 4 Mbit/s
tc qdisc add dev ap0 root handle 1: htb default 11
tc class add dev ap0 parent 1:1 classid 1:2 htb rate 8Mbit ceil 4Mbit prio 2
准备一张已安装 Ubuntu 系统的 SD 卡
使用该 SD 卡启动 R2。R2 启动完成后,复制所需文件并配置 Ubuntu,然后关闭 R2 电源
将 SD 卡插入 Linux 电脑,执行“cd /media”,然后执行“ln -s <your account> pi”
执行“bpi-migrate -c bpi-r2.conf -c ubuntu-mate-from-sd.conf -d /dev/sdx”
完成后即可得到自己的镜像
Banana Pi BPI-R2 Razberry 扩展板与 OpenHAB 2 https://community.openhab.org/t/banana-pi-bpi-r2-razberry-board-openhab2-help/37222/8
调试串口的 TTL 电平为 3.3 V。