萤火工场CEK8902-S905D3安装HomeAssistant,但寄了

2022-10-31 17:44:46 浏览数 (1)

提要:py编译安装成功,hass安装成功,但安装好hass后使用hass命令启动失败,重启后无法进入系统

编译安装Python3.9

更新系统
代码语言:javascript复制
# 刷新软件包目录
sudo apt update
# 执行更新
sudo apt upgrade
安装依赖

本轮测试版可以跳过,eMMC附带的系统已经装好了依赖。 后续正式版不确定,最好装一遍。

代码语言:javascript复制
sudo apt install gcc
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libbz2-dev liblzma-dev sqlite3 libsqlite3-dev tk-dev uuid-dev libgdbm-compat-dev
下载源码
代码语言:javascript复制
# 下载
sudo wget https://www.python.org/ftp/python/3.9.12/Python-3.9.12.tar.xz
# 解压
tar -xf Python-3.9.12.tar.xz
# 进入该目录
cd Python-3.9.12/
编译
代码语言:javascript复制
# 检查依赖与配置编译
sudo ./configure --enable-optimizations --with-lto --enable-shared
# 编译
sudo make

不用make install是因为Makefile里有如下提示: If you have a previous version of Python installed that you don't want to overwrite, you can use "make altinstall" instead of "make install". 如果用make install会把Python3命令链接到当前的版本,可能会影响其他正在用的项目

代码语言:javascript复制
# 安装
sudo make altinstall
使用

这时候,如果直接使用python3.9命令会出现如下提示:

代码语言:javascript复制
python3.9: error while loading shared libraries: libpython3.9.so.1.0: cannot open shared object file: No such file or directory

这是由于编译配置中有 --enable-shared 的选项,所有直接使用python3.9会提示无法找到 libpython3.9.so.1.0 。 只需找到该libpython3.9.so.1.0文件,复制/创建符号链接到 /usr/lib/ 目录下即可

代码语言:javascript复制
# 找到 libpython 的位置
root@cek:~# whereis libpython3.9.so.1.0
libpython3.9.so.1: /usr/local/lib/libpython3.9.so.1.0

# 在 /usr/lib/ 下创建 libpython 的符号链接
root@cek:~# sudo ln -s /usr/local/lib/libpython3.9.so.1.0 /usr/lib/

这时候再使用python3.9命令就没问题了

代码语言:javascript复制
root@cek:~# python3.9
Python 3.9.12 (main, Oct 16 2022, 20:46:19)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

安装HomeAssistant

防火墙放开8123端口

或者关闭防火墙

代码语言:javascript复制
iptables -I INPUT -p tcp --dport 8123 -j ACCEPT
安装依赖
代码语言:javascript复制
sudo apt-get install -y bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata
创建hass专用账户

用root账户运行多少有点不妥

代码语言:javascript复制
sudo useradd -rm homeassistant
创建hass工作空间
代码语言:javascript复制
sudo mkdir -p /home/homeassistant/app/hass
sudo chown homeassistant:homeassistant /home/homeassistant/app/hass
创建虚拟环境
代码语言:javascript复制
sudo -u homeassistant -H -s
cd /home/homeassistant/app/hass
python3.9 -m venv .
source bin/activate

不出意外的话可以看线如下显示

代码语言:javascript复制
(hass) homeassistant@cek:~/app/hass$
安装
代码语言:javascript复制
(hass) homeassistant@cek:~/app/hass$ python3.9 -m pip install wheel
(hass) homeassistant@cek:~/app/hass$ python3.9 -m pip install homeassistant
试运行
代码语言:javascript复制
(hass) homeassistant@cek:~/app/hass$ hass

等待5-10分钟后浏览器打开如下链接: 因为第一次运行要下载、安装和缓存必要的库/依赖项,所以会稍微慢点。

代码语言:javascript复制
http://[CEK8902本地IP]:8123
错误

Message: 'Home Assistant core failed to initialize. Further initialization aborted'

大概率是空间不够,用df -h看看,删除点东西

寄了

使用hass命令启动报错:

代码语言:javascript复制
2022-10-16 23:27:30.887 ERROR (MainThread) [homeassistant.bootstrap] Home Assistant core failed to initialize. Further initialization aborted

猜测是空间不足,使用df -h证实猜想

代码语言:javascript复制
root@cek:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/system     7.2G  7.1G     0 100% /
devtmpfs        990M     0  990M   0% /dev
tmpfs           995M     0  995M   0% /dev/shm
tmpfs           199M   20M  180M  10% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           995M     0  995M   0% /sys/fs/cgroup
tmpfs           995M  548K  994M   1% /tmp
tmpfs           199M   12K  199M   1% /run/user/1000
tmpfs           199M     0  199M   0% /run/user/0

用apt删除软件包也报空间不足无法执行

尝试reboot重启开发板,重启后网卡灯不亮,SSH无法连接。

寄了。

0 人点赞