分类目录归档:Home Assistant

介绍Home Assistant开源项目

Pi400 电源指示灯闪烁/SDRAM failure/死机黑屏情况的处理

Pi400 电源指示灯闪烁/SDRAM failure/死机黑屏情况的处理

背景

最近Pi400出现不稳定情况,有时候出现电源指示灯闪8次,有的时候出现死机/花屏情况,查询了Raspberry网站,发现这个8次闪烁定义为SDRAM故障,至于花屏/死机情况没有相关信息,尝试过更换SD卡,虽然有效,但是待机时间长了又会出现此类现象,尝试了rpi-update(更新kernel和VideoCore firmware),不过不但情况没改善,反而更频繁了,当时考虑是否需要维修了,可是过保了,而且这机器也用了一段时间,最近才有此情况,考虑到系统一直是64位的,是否是系统不稳定造成的,更换了32位系统后,可以启动了,不过此类情况并没有消失。心中忐忑,个人觉得这种情况有两个可能:

  1. CPU虚焊跟SDRAM交互出现了问题 – 可以尝试拆开,用热风枪加助焊剂尝试复位,不过这个方法成功的概率很低,底下的pad可能已经氧化了。
  2. 底层硬件跟系统出现了兼容问题 – 可以尝试更新固件,但是Pi400有嘛,你别说还真有自动更新的工具,我就是靠这个暂时缓解了这个问题,如果恢复到以前的情况,可能真修复了。

通过上面对几个可能性的解释,我介绍一下如果通过更新固件方法;如果你在使用Raspberry Pi Diagnostics对SD卡进行测试Failed,就也可以通过以下方法解决,前提是SD卡是没问题的情况下啦。

更新Pi400固件

  1. 通过Raspberry Pi Imager工具更新bootloader eeprom
    a. 打开Raspberry Pi Imager,选择操作系统->Misc utility image->bootloader->SD Card Boot
    b. 选择SD卡,这里使用一个空卡作为更新bootloader的卡
    c. 点击烧录
    d. 烧录完成后,将SD卡插入设备开机,此时指示灯会连续闪烁,并不会停顿,屏幕如果出现了绿色,就表示更新bootloader完成了
    e. 更换回原来的SD启动系统
    e. 执行sudo rpi-update,更新kernel和VideoCore firmware

    #已经更新完了,这里只是做演示
    $ sudo rpi-update 
    *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
    *** Performing self-update
    *** Relaunching after update
    *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
    FW_REV:7d6d960523325b4c52804183f4b56e0bb9297102
    *** Your firmware is already up to date (delete /boot/.firmware_revision to force an update anyway)

    f. 完成后会提示重启
    g. 观察系统是否已经稳定了

  2. 通过rpi-eeprom-update更新eeprom
    a. 执行sudo rpi-eeprom-update,如果下面的bootloader和VL805(应该是USB HUB控制芯片),都是up-to-date的状态,那么可能真是坏了,如果不是,那么是有可能的,因为系统会经常更新,出现不兼容的情况也是很自然的

    $ sudo rpi-eeprom-update 
    BOOTLOADER: up to date #已经是最新stable版本
    CURRENT: Wed 11 Jan 2023 05:40:52 PM UTC (1673458852)
    LATEST: Wed 11 Jan 2023 05:40:52 PM UTC (1673458852)
    RELEASE: stable (/lib/firmware/raspberrypi/bootloader/stable)
           Use raspi-config to change the release.
           #可使用raspi-config选择release/beta等版本
    
    VL805_FW: Using bootloader EEPROM
    VL805: up to date #已经是最新版本
    CURRENT: 000138c0
    LATEST: 000138c0

    b. 执行sudo rpi-eeprom-update -d -a,更新eeprom,完成后,会有提示reboot。
    c. 执行sudo reboot,等待系统重启
    d. 执行sudo rpi-eeprom-update,确认是否都是最新的状态
    e. 执行sudo rpi-update,更新kernel和VideoCore firmware

    #已经更新完了,这里只是做演示
    $ sudo rpi-update 
    *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
    *** Performing self-update
    *** Relaunching after update
    *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
    FW_REV:7d6d960523325b4c52804183f4b56e0bb9297102
    *** Your firmware is already up to date (delete /boot/.firmware_revision to force an update anyway)

    f. 完成后会提示重启
    e. 观察系统是否已经稳定了

参考资料:

  1. Raspberry Pi 4 Boot EEPROM – https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-boot-eeprom
  2. Raspberry Pi 4 not booting – SDRAM Failure – https://forums.raspberrypi.com/viewtopic.php?t=317088
    3。Using rpi-update – https://www.raspberrypi.com/documentation/computers/os.html#using-rpi-update

Home Assistant 中 HACS部署

Home Assistant 中 HACS部署

home assistant supervisor如果已经安装成功就可以开始添加HACS商店,这个商店里面有更为丰富的集成套件,方便控制更多的设备,完成安装后需要注册Github账号获取授权。

  • 要求
    Home Assistant 版本>= 2022.11.0
    运行了一个支持的Home Assistant安装包
    启用了集成功能
    可以访问Home Asssistant配置文件所在的文件系统
    知道如何访问Home Assistant log文件
    HACS中没有附加组件
    有稳定的网络连接没有数据流量的限制

  • 下载安装-脚本模式
    a. 前往插件商店 – 配置->加载项->加载项商店
    b. 安装SSH附加组件(Terminal & SSH或SSH & Web Terminal)
    c. 按照文档配置您选择的SSH附加组件
    d. 启动SSH附加组件
    e. 连接到SSH附加组件
    f. 运行HACS下载脚本
    wget -O - https://get.hacs.xyz | bash -
    如果出现bad address之类的安装提示,有可能是网络问题,这时可以通过手动下载安装包安装
    g. 安装完成后,重启登录,如果看到右侧出现HACS的条目,则说明HACS已经安装成功,需要点击HACS进行github账户授权才能正常使用

  • 手动安装
    a. 前往插件商店 – 配置->加载项->加载项商店
    b. 安装Samba share
    c. 配置Samba share
    d. 启动Samba share
    e. 下载最新的hacs包:https://github.com/hacs/integration/releases/latest/download/hacs.zip
    f. 使用文件管理器访问\HomeAssistantIP\config\custom_components\,输入之前配置的用户名和密码
    g. 将下载的hacs.zip解压到\HomeAssistantIP\config\custom_components\路径下
    h. 然后重启设备Pi400
    g. 重启登录后,如果看到右侧出现HACS的条目,则说明HACS已经安装成功,需要点击HACS进行github账户授权才能正常使用

参考资料

HomeAssistant安装到树莓派4

HomeAssistant安装到树莓派4

官方网站有过HomeAssistant Core的安装教程,如果有需要装HACS扩展商店的话,就需要安装HomeAssistant Supervisor后才能安装HACS商店。
这里以树莓派Pi400为例,使用的系统是树莓派的64位系统。

  • 通过管理员账号执行依赖包安装,HomeAssistant Supervisor采用的是Docker运行方式
    su -orsudo su -

    apt-get install \
    apparmor \
    jq \
    wget \
    curl \
    udisks2 \
    libglib2.0-bin \
    network-manager \
    dbus \
    lsb-release \
    systemd-journal-remote -y
  • 安装Docker-CE

    curl -fsSL get.docker.com | sh
  • 安装OS-Agent:
    a. 从OS Agent GitHub 发行版页面下载最新的Debian包:
    https://github.com/home-assistant/os-agent/releases/latest
    b. 安装更新下载的OS-Agent包:
    sudo apt install os-agent_1.4.1_linux_aarch64.deb

    注意: 替换deb文件名,这里只是个例子,如果是树莓派64位系统,请下载aarch64的deb包
    你可以测试安装是否成功:
    gdbus introspect --system --dest io.hass.os --object-path /io/hass/os
    这里不应该返回错误。如果你得到一个object introspection带interface等内容的。说明OS Agent已经正常工作了。
    你可能需要安装libglib2.0-bin去执行gdbus命令。

  • 卸载OS Agent,如果需要卸载

    sudo apt-get remove os-agent
  • 安装HomeAssistant Supervised Debain包

    wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
    apt install homeassistant-supervised.deb #安装下载后的deb包
    #安装过程中可能需要对硬件系统进行选择,Pi400+64位系统,这里选择raspberrypi4-64
  • 支持的设备

    generic-x86-64
    odroid-c2
    odroid-c4
    odroid-n2
    odroid-xu
    qemuarm
    qemuarm-64
    qemux86
    qemux86-64
    raspberrypi
    raspberrypi2
    raspberrypi3
    raspberrypi4
    raspberrypi3-64
    raspberrypi4-64
    tinker
    khadas-vim3
  • 配置
    默认的$DATA_SHARE路径是/usr/share/hassio。这个路径是用于存储所有home assistant相关的内容的。
    你可以在安装时重新配置这个路径。

    DATA_SHARE=/my/own/homeassistant dpkg --force-confdef --force-confold -i homeassistant-supervised.deb
    #可以将/my/own/homeassistant替换为自己的路径
  • 故障排查
    如果在安装运行过程中出现了错误,使用:
    journalctl -f #获取系统的log
    如果你不熟悉Linux或者无法修复出现的问题,建议你使用Home Assistant OS。

参考资料