树莓派 篇一:树莓派 docker下安装hassio+openwrt
之前一直用树莓派安装homeassistant利用homeassistant连接了天猫精灵控制过家电,之前用了sonoff不知道有没有大神知道,反正用esphome刷代码就对了,之后换了小米的很多设备就就在手机app上点点算了,嫌麻烦,所以废弃了一段时间,然后拿出我上古树莓派(当时买了2个一个测试一个想就家里用着结果一个都没用积灰尘)然后升级,升级后发现了问题了,之前我也将python升级到3.7再升级homeassistant没有问题,这次再次闲置想升级的时候发现升级到python3.8.6问题一大堆,要知道我之前添加了一大堆智控呢,于是看到某大神itcommander也放弃了转战hassio的文章有了启发,作出了艰难的决定转战hassio。但是并不想按照他方式在openwrt下安装docker再安装hassio,自己摸索自己来。废话讲完了开始教程。
一、系统的安装
首先我们要去raspberrypi官网下载树莓派os
下面我们把SD卡 format
我们来烧录下载好的镜像文件
在烧写好的卡中system32分区,增加SSH空文件以及wpa_supplicant.conf,内容如下(修改其中ssid和psk)
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="你的ssd"
psk="你的密码"
key_mgmt=WPA-PSK
priority=1
}
然后我们插入树莓派,要在自己的路由器内找到正确的IP 这步简单自己进自己路由去看
输入默认账号pi密码raspberry 当然自己要修改的自己修改有的是教程
下面我们固定下ip不管走无线还是走有线
sudo nano /etc/dhcpcd.conf
底部添加:
#网线
interface eth0
static ip_address=自己IP
static routers=网关
static domian_name_servers=114.114.114.114
static domian_name_servers=114.114.115.115
#无线
interface wlan0
static ip_address=自己IP
static routers=网关
static domian_name_servers=114.114.114.114
static domian_name_servers=114.114.115.115
然后我们重启下sudo reboot 用自己设置的IP进行SSH。
下面我们要改下源不然下载太慢了
1.修改/etc/apt/sources.list或者直接修改原文件,把原有的配置全部注释掉(使用#注释)。
deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib rpi
2.修改/etc/apt/sources.list.d/raspi.list
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ buster main
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ buster main
3.修改pip源 sudo nano /etc/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
extra-index-url = http://pypi.doubanio.com/simple/
trusted-host =
mirrors.aliyun.com
pypi.douban.com
下面我们更新系统
sudo apt-get update
sudo apt-get upgrade
二、docker的安装
系统部分好了。下面我们需要安装docker
在凡是求方便的基础上我们使用一键脚本gogogo
sudo curl -sSL https://get.docker.com | sh
为了方便观察我们下载 Docker 图形化界面 portainer
sudo docker pull portainer/portainer#
创建 portainer 容器
sudo docker volume create portainer_data
#运行 portainer
sudo docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
其实你不在乎portainer_data位置的话直接最后一句会拉取的,我求方便最后一句
安装完成之后我们可以在浏览器里查看:你IP:9000 创建自己的用户名跟密码,之后选local
三、openwrt的安装
下面我们要安装openwrt系统,首先要感谢sulinggg提供的docker镜像,感觉比较全,但是大神现在这个版本有点问题上不了网的需要做修改,大家可以参考下,去使用别的镜像版本也可以流程一样。
打开网卡混杂模式
sudo ip link set eth0 promisc on
创建网络
sudo docker network create -d macvlan --subnet=你IP/24 --gateway=你网关 -o parent=eth0 macnet
sudo docker network ls 看下成功没有
下一步创建openwrt
sudo docker pull registry.cn-shanghai.aliyuncs.com/suling/openwrt:latest
sudo docker run --restart always --name openwrt -d --network macnet --privileged registry.cn-shanghai.aliyuncs.com/suling/openwrt:latest /sbin/init
sudo docker ps -a
接着我们修改网络不然无法使用
sudo docker exec -it 你的containerID bash
nano /etc/config/networkconfig
interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option ipaddr '192.168.123.100'
option netmask '255.255.255.0'
option ip6assign '60'
option gateway '192.168.123.1'
option broadcast '192.168.123.255'
option dns '192.168.123.1'
修改自己的的IP 网关以及DNS 划重点 这个IP不是你当前树莓派的IP 而是你给openwrt的以后做网关的路由。处理好之后我们重启容器里面的网络
/etc/init.d/network restart
在浏览器输入 你刚才设定的那个IP
用户名:root
密码:password
到这就完成了openwrt的安装
里面的调试不在今天的范围内给个提示吧这个版本有问题进去记得关闭防火墙
openwrt 好了,我们接着搞hassio
四、hassio的安装
首先说下 itcommander 他的是这样的
本来我想这么干但是 sorry完全支持 docker 里的镜像会无限重启 我们来分析下问题吧
jobs.json 没问题反正就是阻止健康检查
aarch64他写的明明支持树莓派3b+为什么不行呢?
你试试输入命令uname -a 会给你解答
Linux raspberrypi 5.10.17-v7+ #1403 SMP Mon Feb 22 11:29:51 GMT 2021 armv7l GNU/Linux
看清楚了是armV7 不是aarch64版本不对的 知道原因了我尝试了分析后面这段命令
docker run -d --name hassio_supervisor --privileged
-v /var/run/docker.sock:/var/run/docker.sock
-v /var/run/dbus:/var/run/dbus
-v /opt/docker/hassio:/data
-e SUPERVISOR_SHARE="/opt/docker/hassio"
-e SUPERVISOR_NAME=hassio_supervisor
-e HOMEASSISTANT_REPOSITORY="homeassistant/qemuarm-64-homeassistant"
--restart unless-stopped homeassistant/aarch64-hassio-supervisor:2020.12.7
是不是版本修改下可以?
在dockerhub上找到了
homeassistant/armv7-hassio-supervisor
替换进去了,但是很不好意思估计还是不行,可能我等的时间不够吧,有可能可以,你们可以尝试
下面要感谢某位日本大神了按照他的方法我成功安装了我们看下
那我们来操作吧
要选对自己的版本哦
sudo apt-get -y install network-manager apparmor apparmor-utils apparmor-profiles jq
sudo curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh
sudo bash installer.sh --machine raspberrypi3
下面需要耐心的等待,等待时间也挺长的我估计我自己等了1个小时左右吧全部弄好
等这个完成后需要重启下树莓派(可能我卡死了)才能安装不然会卡在那边
记得可以这里观察容器数量会上去
然后我们愉快的进入homeassistant的安装了
这个时候需要有绝对的耐心等待完成,毕竟服务器不在国内
五、总结
现在就完成了利用docker openwrt+hassio同时安装在树莓派上了安装hassio的好处就是方便真的比homeassistant方便,原来我设置域名还要N多命令,包括ssl设置,现在在supv,下面还有好多东西要设置,很多我也忘记了,很多与我当初设置的东西也不同了,要从0开始重新认识。
难得写一次,也是希望大家少走弯路,觉得可以的麻烦收藏点赞呗。
后记关于如何删除
##
# Install Hass.io Supervisor
info "Install supervisor startup scripts"
curl -sL ${URL_BIN_HASSIO} > "${PREFIX}/sbin/hassio-supervisor"
curl -sL ${URL_SERVICE_HASSIO} > "${SYSCONFDIR}/systemd/system/hassio-supervisor.service"
sed -i "s,%%HASSIO_CONFIG%%,${CONFIG},g" "${PREFIX}"/sbin/hassio-supervisor
sed -i -e "s,%%BINARY_DOCKER%%,${BINARY_DOCKER},g"
-e "s,%%SERVICE_DOCKER%%,${SERVICE_DOCKER},g"
-e "s,%%BINARY_HASSIO%%,${PREFIX}/sbin/hassio-supervisor,g"
"${SYSCONFDIR}/systemd/system/hassio-supervisor.service"
chmod a+x "${PREFIX}/sbin/hassio-supervisor"
systemctl enable hassio-supervisor.service > /dev/null 2>&1;
可以看到安装的时候是作为系统服务的必须先停止,不然的话停止这个容器还是会不停运行创建
石头上的史诗
校验提示文案
JasonWu
校验提示文案
esp卡米
校验提示文案
lukea
校验提示文案
值友6872836916
校验提示文案
值友7979198945
校验提示文案
值友5912495337
校验提示文案
aska
校验提示文案
小蚂蚁来吧
校验提示文案
小蚂蚁来吧
校验提示文案
aska
校验提示文案
值友5912495337
校验提示文案
值友7979198945
校验提示文案
石头上的史诗
校验提示文案
值友6872836916
校验提示文案
lukea
校验提示文案
esp卡米
校验提示文案
JasonWu
校验提示文案