树莓派1b从Raspbian安装Home Assistant

HA其实消耗不了多少系统资源,hassos居然要树莓派3以上的硬件,不信这个邪,之前已经通过hassbian再树莓派1b上实现ha(hassbian完美支持ha),就是Python的版本比较低,插件得要降版本才行。于是想着要不干脆试试彻底从Raspbian安装ha试试看。虽然这里是用的树莓1b,但我相信高于1b也是可以的,很多人的树莓派2代不用放在那吃灰了。

首先下载最新的Raspbian的镜像(清华源链接),注意是lite,桌面版有图形界面极度消耗资源,树莓派1b扛不住的,接下来无论是dd还是用别的软件烧录到sd卡上自便,我在Mac上习惯性用dd

sudo dd if=2020-02-13-raspbian-buster-lite.img of=/dev/rdiskX bs=5m

如果有显示器,外接键盘可以直接进到系统,否则在boot分区下新建ssh空文件,开机自动打开ssh服务

用nano修改apt源/etc/apt/sources.list,我用南大的源

deb http://mirror.nju.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi

修改/etc/apt/sources.list.d/raspi.list如下(注意南大源给出的说明上漏了debian/)

deb http://mirror.nju.edu.cn/raspberrypi/debian/ buster main

老规矩

sudo apt-get update
sudo apt-get upgare

接下来慢慢等吧,更新完后修改一下系统设置

sudo raspi-config

弹出这个,一般要改

  • 3 Interface Options -> P2 SSH 打开ssh
  • 4 Performance Options -> P1 Overclock -> Turbo 1000MHz ARM 有个警告,ok就好,超频超到1GHz,都快10年的树莓派,也不在乎什么保修了,而且树莓派一般扛的住的
  • 6 Advanced Options -> A1 Expand Filesystem 扩充sd卡空间

设置完问你是否重启?选择Yes。重启后准备升级到Python 3.9,安装一些依赖,手动编译Python 3.9(顺便说一句,我看到有部分页面通过现成的源来安装python,说实话还是有点怕的,胆子大的可以自己试试)

sudo apt-get install -y build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libffi-dev

接下来编译安装Python 3.9.13

wget https://www.python.org/ftp/python/3.9.13/Python-3.9.13.tar.xz
tar xf Python-3.9.13.tar.xz
cd Python-3.9.13
./configure --enable-optimizations --prefix=/usr
make

接下来就慢慢等吧,1b编译了大概3~4个小时,要快也可以,买树莓派4,我这是拿时间换金钱

sudo make altinstall

跑了一串代码之后,更新python版本

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1

此时python已经更新到3.9.13版本了,接下来需要安装pip3

wget https://bootstrap.pypa.io/get-pip.py

sudo python3 get-pip.py

之后安装部分依赖

sudo apt-get install -y libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata ffmpeg

碰到个坑爹的事,更新python后,apt出了一些小错误,apt_pkg出错

# 重新安装python3-apt
sudo apt remove python3-apt
sudo apt autoclean
sudo apt install python3-apt

虽然报了个警告,但也算马马虎虎解决了吧

安装好python3,pip3后,各种善后后,就开始安装Home Assistant了,建立homeassistant的账户,进入python环境

sudo useradd -rm homeassistant -G dialout,gpio,i2c
sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate

进入相应的环境后,改掉pip的更新源,我这里改成南大的源

pip config set global.index-url https://mirror.nju.edu.cn/pypi/web/simple

接下来就是home assistant的安装了

pip3 install homeassistant==2021.11.5

至于为什么是这个版本,是从高版本一个一个降下来的,2022最新版本依赖orjson,不能在32位系统上跑,cryptography自从2021.12.1版本开始,版本号突升,变成35.0.0,不能正常编译。特别注意的是,安装cryptography需要连外网,从github上下一些额外的文件

安装完成后,输入hass开始,果然hass安装艰辛

碰到坑爹的can’t find Rust compiler,需要装个rust

curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env/.cargo/env
rustc – version– version

rustc可以运行的情况下,再来一遍pip3 install homeassistant。经过一番折腾,建议先单独连外网安装cryptography包(版本根据homeassistant相应版本.tar.gz包来查询,从清华源https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/homeassistant/ 下载tar.gz文件,从setup.py查到包的依赖),然后再pip3 install homeassistant,

subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.

解决办法

sudo cp lsb_release.py /usr/lib/python3.9/

等到见到注册界面,基本算大功告成,不得不感慨,在linux改系统自带的python版本还是一件很头疼的事情的。

按照这份指南,改成开机启动,如果添加集成不顺的话,需要用外网,最好删掉南大的pip源,改成默认源,接下来就是随便玩啦

总的来说,树莓派1b是带的起来Home Assistant的,但是因为架构偏老,很多python包在安装的时候需要从源代码编译,一来安装速度很慢,二来从源代码编译很容易报各种奇奇怪怪的错误。但是呢,安装好之后,其实占用系统资源很低,空间需求也不高,剩下的内存绰绰有余,hass进程也占用大概100兆的内存,关键是cpu占用很低,以前树莓派装桌面版的时候,什么不干,cpu就是100%的占用。其次安装的时候会莫名碰到网络的问题,需要外网,即使是linux源,pip源改成国内,但是部分组件还是需要连github等其他网站。

只要不信邪,什么都有可能[手动狗头]


注:这一番折腾,终于发现ha 2022最新的版本,依赖orjson库,这个库是不能在32位系统上运行的,但是不做检测,依然可以正常安装,难怪hassos跑不起来,原来是有个坑

https://blog.csdn.net/qq_21567385/article/details/109253154

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注