本帖最后由 trz0332 于 2024-3-29 01:38 编辑
这次捡到的垃圾不属于智能家居系列了,只不过是为了记录一下自己的玩机历程,存个底。一个arm的盒子配置很低,全志H3,256M内存,4Gnand。百兆网口,属于垃圾中垃圾了,
不过好在做工还不错。价格也是一杯奶茶钱了,11块钱不包邮。70块钱买了5块包邮
外观不错,有个铁壳子,这个铁壳子就差不多值回票价了。
第一步找固件。上armbian找了一下没有hdmi接口的同类型的貌似有一款nanopi-neo。先把固件下载下来,解压成img文件
https://www.armbian.com/nanopi-neo/
第二部刷机。
这里需要2个软件,一个是安装驱动需要一个这样的软件
zadig-2.8.exe.zip
(5 MB, 下载次数: 6)
开发板不接电源线,按住BPI-M64开发板的FEL/U-Boot键不松手,USB-OTG连接电脑。
此时你会在“我的电脑”-右键“管理”-“设备管理器”中看到一个“unknown device”
此时松开FEL/U-Boot键,打开zadig软件,设置libusbK(v3.0.7.0),点击Install Driver。
把驱动打上去
挂载开发板emmc
打开大神的软件bpi-fel-mass-storage-gui4win.exe,点击“Detect Device”。
bpi-fel-mass-storage-gui4win-v1.002.zip.001
(9 MB, 下载次数: 4)
bpi-fel-mass-storage-gui4win-v1.002.zip.002
(9 MB, 下载次数: 4)
bpi-fel-mass-storage-gui4win-v1.002.zip.003
(9 MB, 下载次数: 4)
bpi-fel-mass-storage-gui4win-v1.002.zip.004
(5.03 MB, 下载次数: 4)
结束之后会在“我的电脑”中看到开发板的emmc已经被当作一个“U盘”被挂载到了系统中。
格式化emmc
这一步比较简单,我建议用DiskGenius软件,将U盘所有分区删掉,然后再新建一个新的分区,可以不格式化
刷入系统
解压我们下载的neo的镜像,以管理员权限打开Win32DiskImager软件,选择镜像文件,选择对应的emmc盘符,点击“Write”开始漫长的等待。
系统就安装好了,默认密码是armbian的默认密码1234.第一次登录上去要求改密码。
受限于性能配置,装hass肯定是没戏了,如果能扩容成1G+8G勉强还行。但是总还是要发光发热的
首先是配置USB。这个硬件真是有趣的很,电源灯和USB供电居然是GPIO控制的。这个好办,编译全志的GPIO控制软件就行了
BPI-WiringPi.zip
(1.21 MB, 下载次数: 4)
将压缩包里面的内容解压上传到盒子里面。给里面的sh赋予可执行权限后。然后运行压缩包里面的install.sh
然后在用gpio readall 看能不能看到如下界面
如果是这个界面说明gpio的控制程序安装成功了。
然后编辑/etc/rc.local 在exit 0前面加上这一段
gpio mode 25 out
gpio write 25 1 #打开led灯
gpio mode 30 out
gpio write 30 1 #打开从左到右第3个usb电源
gpio mode 29 out
gpio write 29 1 #打开从左到右第2个usb电源
gpio mode 28 out
gpio write 28 1 #打开从左到右第1个usb电源
复制代码
重启,就能自动打开USB和电源灯了
继续发光发热安装docker。
使用如下安装脚本,上传到板子后,赋予可执行权限然后运行get.sh,等待脚本执行完成。
然后运行docker ps -a。如果没有提示出错,就代表安装好了。
get.sh
(18.85 KB, 下载次数: 2)
先装 portainer 个小试牛刀
docker run -d -p 9999:9000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
--name dockerweb \
docker.io/portainer/portainer
复制代码
既然硬件不行,那就做个openwrt用来扶墙和内网穿透吧。
我们先要新建一个 macvlan 这里需要注意的是subnet需要填写你内网的网段。 --gateway填写你内网网关 eth0填写盒子的网卡编号
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 macnet
拉取openwrt镜像
docker pull sulinggg/openwrt:armv7
创建容器
docker run --restart always --privileged --name openwrt -d --network macnet sulinggg/openwrt:armv7 /sbin/init
第一次创建容器后需要进入容器内修改openwrt的IP
使用docker exec -it openwrt bash 就进入到容器的命令行界面了
然后cd \etc\config\
编辑网络配置文件 vi network 找到这一段,把里面的ip改成你自己局域网段。网关指向内网局域网。修改完保存后/etc/init.d/network restart 重启网络配置
config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
option ipaddr '192.168.1.250'
option gateway '192.168.1.1'
option dns '192.168.1.1'
复制代码
这个时候你在自己电脑上ping openwrt的ip,看是否能ping通。
这个openwrt里面有zeirtier,至于zerotier和passwall怎么使用,不需要我教了吧。
在docker里面安装openwrt需要注意一个重要问题。那就是docker和容器有网络隔离。需要虚拟一个网口来桥接容器和主机,
ip link add TTTTT link eth0 type macvlan mode bridge #在eth0的网卡创建一个桥接网卡
ip addr add 192.168.1.251 dev TTTTT #这个桥接网卡添加一个IP
ip link set TTTTT up #桥接网卡启动
ip route add 192.168.1.250 dev TTTTT #添加一条静态路由,访问openwrt的IP走这个桥接网卡
复制代码
在armbian的命令行界面输入这些命令。主要这里面的3个IP需要根据自己具体情况填写。做好如上操作,盒子和openwrt就能相互访问了。
这样配置好的盒子有3个IP
盒子IP:192.168.1.252
openwrtIP :192.168.1.250
盒子桥接网卡IP :192.168.1.251