For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /home-assistant/installation/generic-x86-64.md.

通用 x86-64

安装 Home Assistant Operating System

如果您想轻松开始使用 Home Assistant,或者几乎没有 Linux 经验,请按照本指南操作。

推荐硬件

您需要准备一些东西才能开始安装 Home Assistant。以下链接指向 Ameridroid。如果您不在美国,应该能在您所在国家的网店找到这些物品。

首先,我们推荐 ODROID-N2+,这是驱动我们 Home Assistant Blue 的主板,或者是 ODROID-M1。

如果无法获得,我们也推荐 ODROID-C4

Home Assistant 套装(美国市场):

套装预装了 Home Assistant。

未预装 Home Assistant 的版本:

相关组件:

这些是联盟链接。我们通过本文中的链接购买可获得佣金。

Important

前提条件

本指南假设您有一台专用的 PC 专门运行 Home Assistant Operating System

  • 这通常是基于 Intel 或 AMD 的系统。
  • 系统必须支持 64 位并能使用 UEFI 启动。
    • 最近 10 年生产的大多数系统都支持 UEFI 启动模式。

摘要

  1. 首先,您需要将 PC 配置为使用 UEFI 启动模式。
  2. 然后,将 Home Assistant Operating System 磁盘镜像写入您的启动介质。

配置 x86-64 硬件的 BIOS

要启动 Home Assistant OS,BIOS 需要启用 UEFI 启动模式并禁用安全启动。以下截图来自第 7 代 Intel NUC 系统。您的系统上的 BIOS 菜单可能看起来不同,但选项应该仍然存在且命名类似。

  1. 要进入 BIOS,启动您的 x86-64 硬件并反复按 F2 键(在某些系统上可能是 DelF1F10)。 使用 F2、Del、F1 或 F10 键进入 BIOS

  2. 确保启用了 UEFI 启动模式。 启用 UEFI 启动模式

  3. 禁用安全启动。 禁用安全启动模式

  4. 保存更改并退出。

BIOS 配置现已完成。

将 HAOS 写入您的 x86-64 硬件

接下来,您需要将 Home Assistant Operating System 镜像写入启动介质,即您的 x86-64 硬件在运行 Home Assistant 时将从中启动的介质。

Note

HAOS 没有集成的安装程序可以自动写入镜像。您将使用 Ubuntu 的 磁盘 工具或 Balena Etcher 手动写入。

通常,x86-64 启动介质使用内部介质,如 S-ATA 硬盘、S-ATA SSD、M.2 SSD 或不可移动的 eMMC。或者,也可以使用外部介质,如 USB SSD,但不推荐这样做。

要将 HAOS 镜像写入 x86-64 硬件上的启动介质,有 2 种不同的方法:

方法 1(推荐):从 USB 闪存驱动器启动 Ubuntu,并从那里安装 Home Assistant Operating System。它也适用于带有内部硬盘的笔记本电脑和 PC。

方法 2:使用此方法,您直接从常规计算机将 Home Assistant Operating 磁盘镜像写入启动介质。步骤稍微复杂一些。如果您有不可移动的内部介质(例如因为您使用的是笔记本电脑)或没有必要的适配器(例如 USB 转 S-ATA 适配器),请改用方法 1。

方法 1:通过从 USB 闪存驱动器启动 Ubuntu 安装 HAOS

所需材料

  • 计算机
  • 目标 x86-64 硬件,您要在其上安装 Home Assistant Operating System(HAOS)
  • USB 闪存驱动器(USB 拇指驱动器即可,大小应至少为 8 GB)
  • 互联网连接

通过 USB 闪存驱动器从 Ubuntu 安装 HAOS

  1. 注意:此过程将把 Home Assistant Operating System 写入您的设备。
    • 这意味着您将丢失所有数据以及之前安装的操作系统。
    • 在执行此过程之前备份您的数据。
  2. 在 USB 闪存驱动器上创建一个实时操作系统
  3. 将 USB 闪存驱动器插入您想要运行 Home Assistant 的系统。
    • 启动实时操作系统。
    • 您可能需要调整启动顺序或使用 F10(可能是不同的 F 键,取决于 BIOS)来选择 USB 闪存驱动器作为启动设备。
  4. 当提示时,确保选择 试用 Ubuntu。这将在 USB 闪存设备上运行 Ubuntu。
    • 然后系统启动 Ubuntu。
    • 将您的系统连接到网络并确保它可以访问互联网。
  5. 在 Ubuntu 中,打开浏览器并打开当前文档页面,以便您可以按照步骤操作。
  6. 在 Ubuntu 中,在左下角选择 显示应用程序
  7. 在应用程序中,搜索并打开 磁盘 并开始恢复 HAOS 镜像:
    1. 磁盘 中,在左侧选择您要安装 HAOS 的内部磁盘设备。
    2. 在屏幕顶部,选择三点 菜单并选择 恢复磁盘镜像...恢复磁盘镜像:选择三点菜单
    3. 选择您刚刚下载的镜像。 恢复磁盘镜像:选择镜像
    4. 选择 开始恢复...恢复磁盘镜像:开始恢复
    5. 通过选择 恢复 确认。 恢复磁盘镜像:选择恢复
      • 如果您收到 Error unmounting filesystem 错误消息,说明 target is busy
      • 很可能,您正在内部磁盘上运行 Ubuntu。相反,您需要在您的 USB 驱动器上运行它。
        • 返回步骤 3,在启动期间,确保您选择 Try Ubuntu(而不是 Install Ubuntu)。
      • 另一个问题可能是实时 Ubuntu 正在使用现有 Linux 安装的 Swap 分区。
        • 如果您在要安装 HAOS 的驱动器上看到列出了"Swap"分区,只需选择 Swap 分区,然后按停止按钮卸载它,然后再次尝试恢复操作。
    6. 在分区概览中,您现在应该看到正在进行的恢复操作。
      • Home Assistant Operating System 现在正在安装到您的系统上。 恢复磁盘镜像:正在恢复...
  8. 一旦 Home Assistant Operating System 安装完成,关闭系统。
    • Ubuntu 关闭后,移除 USB 闪存驱动器(Ubuntu 会通知您何时可以这样做)。
    • 您的 Home Assistant 服务器现已设置完成,您可以开始使用它。
    • 要使用它,请按照 启动您的通用 x86-64 中描述的步骤操作。

方法 2:直接从启动介质安装 HAOS

Note

仅在方法 1 对您不起作用时使用此方法。

所需材料

  • 计算机
  • 目标 x86-64 硬件,您要在其上安装 Home Assistant Operating System(HAOS)
  • 启动介质
  • 互联网连接

将镜像写入您的启动介质

将镜像写入您的启动介质

  1. 注意:此过程将把 Home Assistant Operating System 写入您的设备。

    • 这意味着您将丢失所有数据以及之前安装的操作系统。
    • 在继续下一步之前备份您的数据。
  2. 将 Home Assistant 启动介质连接到您的计算机。

    如果您使用的是 ODROID-M1,请注意不支持从 NVMe 启动。如果您想从 eMMC 启动,请在安装镜像之前更新固件

    如果您使用的是 Home Assistant Blue 或 ODROID-N2+,您可以直接连接您的设备

    如果您使用的是 ODROID-M1S,您需要按照本指南将您的设备启动到 UMS 模式

  3. 下载并启动 Balena Etcher。在 Windows 上您可能需要以管理员权限运行它。

  4. 将镜像下载到您的计算机。

    • 复制镜像的 URL。
    • 如果下面有多个链接,确保为您的版本选择正确的链接。
    
    //haos_-.img.xz

    选择并复制 URL 或使用悬停时出现的"复制"按钮。

  5. 将 URL 粘贴到浏览器中以开始下载。

  6. 解压您刚刚下载的文件。

  7. 选择 从文件烧录 并选择您刚刚解压的镜像。

    • 不要使用 从 URL 烧录。它在某些系统上不起作用。 显示选择了从 URL 刷写的 Etcher 软件截图。
  8. 选择目标显示选择目标按钮高亮的 Etcher 软件截图。

  9. 选择您要用于安装的启动介质。 显示可用目标的 Etcher 软件截图。

  10. 选择 烧录! 开始写入镜像。

    • 如果操作失败,解压 .xz 文件并重试。 显示 Flash 按钮高亮的 Etcher 软件截图。
    • 当 Balena Etcher 完成写入镜像后,您将看到确认信息。 显示安装已完成的 Etcher 软件截图。

启动您的通用 x86-64

  • 如果您使用方法 1 进行安装,确保 USB 闪存驱动器已从系统中移除。

  • 如果您使用方法 2 进行安装,将启动介质安装到您的 x86-64 硬件中。

  1. 插入连接到网络和互联网的以太网电缆。
    • 注意:需要互联网,因为新安装的 Home Assistant OS 尚未包含所有 Home Assistant 组件。它将在首次启动时下载最新版本的 Home Assistant 核心。
  2. 打开系统电源。如果您有连接到系统的屏幕,大约一分钟后 Home Assistant 欢迎横幅将出现在控制台中。
Note

如果机器抱怨找不到可启动介质,您可能需要在 BIOS 中指定 EFI 条目。 这可以通过使用实时操作系统(例如 Ubuntu)并运行以下命令来完成(将 <drivename> 替换为 Linux 分配的适当驱动器名称,通常是 sda 或在 NVMe SSD 上是 nvme0n1):

efibootmgr --create --disk /dev/<drivename> --part 1 --label "HAOS" \
   --loader '\EFI\BOOT\bootx64.efi'

efibootmgr 命令仅在您以 UEFI 模式启动实时操作系统时才有效,因此请确保在此模式下从 USB 闪存驱动器启动。 根据您在提示符下的权限,您可能需要使用 sudo 运行 efibootmgr。

否则,BIOS 可能会为您提供一个添加启动选项的工具,您可以在那里指定 EFI 文件的路径:

\EFI\BOOT\bootx64.efi
  1. 插入您刚刚创建的启动介质。

  2. 插入连接到网络和互联网的以太网电缆并打开系统电源。

    • 注意:需要互联网,因为新安装的 Home Assistant OS 尚未包含所有 Home Assistant 组件。它将在首次启动时下载最新版本的 Home Assistant 核心。
  3. 在桌面系统的浏览器中,几分钟内您将能够在 homeassistant.local:8123 访问您的新 Home Assistant。

Note

如果您运行的是较旧的 Windows 版本或有更严格的网络配置,您可能需要在 homeassistant:8123http://X.X.X.X:8123(将 X.X.X.X 替换为您的 IP 地址)访问 Home Assistant。

下载适当的镜像

下载后,解压镜像。如果镜像是 ZIP 文件,例如,解压它。

如果您已经在运行支持的虚拟机管理程序,请按照本指南操作。如果您不熟悉虚拟机,请直接在 Home Assistant Yellow树莓派ODROID 上安装 Home Assistant OS。

  • 如果您的 Mac 不支持 VirtualBox,并且您有使用虚拟机的经验,您可以尝试在 UTM 上运行 Home Assistant Operating System。

创建虚拟机

将设备镜像加载到您的虚拟机管理程序中。(注意:您可以自由地为 VM 分配任意多的资源,请根据您的应用需求分配足够的资源)。

最低推荐配置:

  • 2 GB RAM
  • 2vCPU

如果您的使用需要更多资源,所有这些都可以扩展。

管理程序特定配置

VirtualBox

#### 创建虚拟机
    
    1. 打开 VirtualBox 并选择 **New(新建)** 按钮(蓝色星形图标)。
    2. **Name(名称):** 输入 Home Assistant。
    3. **ISO Image(ISO 镜像):** 保留为 **None(无)** 或 **Empty(空)**。
    4. **Type & Version(类型和版本):** 选择 **Linux**,然后选择 **Oracle Linux (64-bit)**(如果您使用的是 M1/M2/M3 芯片的 Mac,则选择 **ARM 64-bit**)。
    5. 选择 **Next(下一步)**。
 
    #### 配置硬件
    1. **Base Memory(基础内存):** 将滑块移动到至少 **2048 MB**(2GB)。
    2. **Number of CPUs(CPU 数量):** 将滑块移动到至少 **2**。
    3. **EFI:** 勾选 **Enable EFI (special OSes only)(启用 EFI,仅用于特殊操作系统)** 复选框。这是 Home Assistant 启动所必需的。
    4. 选择 **Next(下一步)**。

    #### 完成向导

    1. 在 **Virtual Hard Disk(虚拟硬盘)** 页面上,保留默认设置(它会建议创建一个新磁盘)。我们会在下一步将其替换为已下载的文件。
    2. 选择 **Finish(完成)**。

    #### 附加 Home Assistant 磁盘 (VDI)

    1. 在左侧列表中选择新建的 "Home Assistant" 虚拟机,然后选择 **Settings(设置)** 图标(橙色齿轮)。
    2. 在左侧菜单中进入 **Storage(存储)**。
    3. 在 **Storage Devices(存储设备)** 列表里,您会看到 **Controller: SATA** 下已有一个磁盘。右键点击该磁盘并选择 **Remove Attachment(移除挂载)**,删除这个空白占位磁盘。
    4. 选择 **Controller: SATA** 旁边的 **Add Hard Disk(添加硬盘)** 图标(带绿色加号的小磁盘)。
    5. 在弹出窗口中,点击顶部的 **Add(添加)**。
    6. 找到并选择您之前下载并解压的 `.vdi` 文件。
    7. 选择 **Choose(选择)** 确认文件。

    #### 配置网络

    1. 在 **Settings(设置)** 窗口中,转到 **Network(网络)** 页面。
    2. 将 **Attached to(连接方式)** 从 **NAT** 改为 **Bridged Adapter(桥接网卡)**。
    3. 在 **Name(名称)** 下,选择您用于联网的网卡,这样 Home Assistant 才能与局域网中的其他设备通信。
    4. 选择 **OK(确定)**。

    `[mdi:alert-outline]`  默认情况下,VirtualBox 不会
    释放未使用的磁盘空间。要自动收缩 vdi 磁盘镜像,必须使用主机终端启用 `discard` 选项:

bash VBoxManage storageattach --storagectl "SATA" --port 0 --device 0 --nonrotational on --discard on ```

有关该命令的更多详细信息可以在[这里](https://www.virtualbox.org/manual/ch08.html#vboxmanage-storageattach)找到。

Unraid

  1. 下载上面的 .qcow2 镜像并解压。(Windows 中为 Extract all) 2. 将镜像存储在您服务器上的 isos 共享中。 3. 确保在 Settings > VM manager 下,Enable VMs 已启用。 4. 创建一个新的虚拟机:VMS > Add VM。 5. 选择类型 Linux 并给 VM 一个名称和描述。 6. 选择您想让 VM 使用的 CPU 核心并给它一些内存。 7. 在 Primary vDisk Location 下,选择 Manual,然后选择 qcow2 镜像。 8. 在 VM Console Keyboard 下选择您的键盘语言。 9. 在 Network Source 下选择 br0。 10. 在 Network model 下选择 virtio。 11. 选择任何您想透传给 Home Assistant 的 USB 设备,例如 Zigbee 或 Z-Wave 控制器。 12. 取消选择 Start VM after creation。 13. 选择 Create。 14. 选择您新 VM 的名称并选择磁盘的容量数字。在这里,您可以将磁盘扩展到您需要的任何大小。默认值为 32 GB。 15. 选择您新 VM 的图标并选择 start with console (VNC)

KVM (virt-manager)

  1. virt-manager 中创建一个新的虚拟机。 2. 选择 Import existing disk image,提供上面 QCOW2 镜像的路径。 3. 为操作系统选择 Generic Default。 4. 勾选 Customize configuration before install 复选框。 5. 在 Network Selection 下,选择您的网桥。 6. 在自定义下选择 Overview > Firmware > UEFI x86_64: ...。确保选择非安全启动版本的 OVMF(不包含 securesecboot 等词),例如 /usr/share/edk2/ovmf/OVMF_CODE.fd。 7. 选择 Add Hardware(左下角),然后选择 Channel。 8. 选择设备类型:unix。 9. 选择名称:org.qemu.guest_agent.0。 10. 最后,选择 Begin Installation(左上角)。

KVM (virt-install)

    virt-install --name haos --description "Home Assistant OS" --os-variant=generic --ram=4096 --vcpus=2 --disk <PATH TO QCOW2 FILE>,bus=scsi --controller type=scsi,model=virtio-scsi --import --graphics none --boot uefi
    ```

    `[mdi:alert-outline]` 如果您有 USB
    加密狗要附加,您需要添加选项 `--hostdev busID.deviceId`。您可以
    通过 `lsusb` 命令发现这些 ID。例如,如果 `lsusb` 输出为:

    ```bash
       Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
       Bus 003 Device 004: ID 30c9:0052 Luxvisions Innotech Limited Integrated RGB Camera
       Bus 003 Device 003: ID 1a86:55d4 QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2
       Bus 003 Device 002: ID 06cb:00fc Synaptics, Inc. 
       Bus 003 Device 005: ID 8087:0033 Intel Corp. 
       Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
       Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
       Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    ```

    您可以在 `Bus 003 Device 003` 识别 Sonoff 加密狗。所以安装 VM 的命令将变为:

    ```bash
    virt-install --name haos --description "Home Assistant OS" --os-variant=generic --ram=4096 --vcpus=2 --disk <PATH TO QCOW2 FILE>,bus=scsi --controller type=scsi,model=virtio-scsi --import --graphics none --boot uefi --hostdev 003.003
    ```

    请注意,此配置(总线 003,设备 003)只是一个示例,您的加密狗可能在另一个总线和/或具有另一个设备 ID。
    请使用 `lsusb` 检查您 USB 加密狗的正确 ID。

## VMware Workstation
1. 启动 VMware Workstation 并选择 **Create a New Virtual Machine(创建新的虚拟机)**。
       - 注意:以下设置的确切名称和位置取决于 VMware 版本。此过程基于版本 17。
    2. 选择 **I will install the operating system later(稍后安装操作系统)**,然后选择 **Linux** > **Other Linux 5.x kernel 64-bit**。
    3. VM 一个名称,`home-assistant`,并定义一个易于访问的存储位置,例如 `C:\home-assistant`
    4. 指定磁盘大小并选择 **Store virtual disk as a single file(将虚拟磁盘存储为单个文件)**。
    5. 选择 **Customize Hardware(自定义硬件)**。
    6. 定义 VM 允许使用的内存量和核心数。
    7. 删除 **New CD/DVD(新建 CD/DVD)** 条目。该设备不会被使用。
    8. 连接以太网电缆并确保它连接到您的网络。
    9. **Network adapter(网络适配器)** 下,选择 **Bridged: Connected directly to the physical network(桥接:直接连接到物理网络)**。
       - 确保未勾选 **Replicate physical network connection state(复制物理网络连接状态)**。
       - 选择 **Configure Adapters(配置适配器)**。
       - 确保取消选择所有虚拟适配器和蓝牙设备。
       - 选择您的主机网络适配器。很可能是列表中前 2 个复选框之一:
         - 选择用于以太网的那个。
         - 这些适配器的确切名称取决于您的硬件。
    10. 在向导结束时,选择 **Finish(完成)**。

      ## 编辑 VM 设置

      11. Windows 资源管理器中,转到您新创建的 VM 的存储位置,例如 `C:\home-assistant`
      12. 删除 `home-assistant.vmdk` 文件。
      3. `Downloads` 文件夹中,找到 `haos_ova_xx.x.vmdk` 文件。 
         - 如果您尚未解压存档,请解压它。
         - 在文件夹中,找到 `.vmdk` 文件并将其重命名为 `home-assistant.vmdk`
         - 将文件(而不是解压的文件夹)粘贴到 `C:\home-assistant` 文件夹中。
      4. 右键单击 `.vmx` 文件并选择 **Open with(打开方式)** > **Notepad(记事本)**。
      5. `.encoding` 下,添加一行。输入 `firmware = "efi"`
      6. 现在继续下一步启动您的 VM。 
         - 如果您看到关于侧信道缓解措施的提示,选择 **OK(确定)**。
         - 如果您看到一条消息指出找不到 `.vmdk` 文件,在步骤 3 中,您可能粘贴了文件夹而不是文件。重复步骤 3。

## VMware ESXi/vSphere
使用 `E1000`  `E1000E` 虚拟网络适配器。使用 VMware `VMXnet3` 虚拟网络适配器时,已确认存在 mDNS/多播发现问题。

启动您的虚拟机

  1. 启动虚拟机。
  2. 观察 Home Assistant Operating System 的启动过程。
  3. 完成后,您将能够在 homeassistant.local:8123 访问 Home Assistant。如果您运行的是较旧的 Windows 版本或有更严格的网络配置,您可能需要在 homeassistant:8123http://X.X.X.X:8123(将 X.X.X.X 替换为您虚拟机的 IP 地址)访问 Home Assistant。

Home Assistant Operating System 已安装并可访问,您可以继续进行入门设置。

刷写 ODROID-N2+

可以通过板前部的 USB-OTG 连接将 Home Assistant 直接刷写到 ODROID-N2+,将设备直接连接到您的计算机。该设备包含 Petitboot 引导加载程序,这使得 ODROID-N2+ 存储显示为就像它是一个 USB 驱动器一样。

所有这些说明对 ODROID-N2(非 plus 版本)同样适用。

您将需要什么

要使用 Petitboot 和 OTG-USB 刷写您的 eMMC,您需要以下物品:

  • HDMI 电缆和显示器
  • USB 键盘
  • USB 2.0 转 micro-USB 电缆
  • 如果您的主板是 Home Assistant Blue 套装:No.2 六角扳手用于打开外壳

启用 SPI 启动模式

要启用 SPI 启动模式:

  1. 通过拔掉电源线关闭 ODROID-N2+。

  2. 移除外壳。

    已移除外壳的照片

  3. 找到启动模式切换开关并将其从 MMC 切换到 SPI。

    SPI 切换开关照片

  4. 通过位于板前部的 USB-OTG 端口将 ODROID-N2+ 直接连接到您的计算机。

  5. 将 USB 键盘和显示器(使用 HDMI)连接到您的 ODROID-N2+。

  6. 插入电源线以启动 ODROID-N2+。

启用 USB 驱动器模式

当 ODROID-N2+ 设置为 SPI 启动模式并通电后,它会启动到终端。要启用 USB 驱动器模式:

  1. 从菜单中选择 Exit to shell

    退出到 shell

Note

使用命令行时,它可能会返回以下消息: can't access tty; job control turned off. 您可以安全地忽略此消息并继续安装

  1. 在控制台使用以下命令确认存储设备节点:

    ls /dev/mmc*
  2. 使用 ums 命令将 ODROID-N2+ 上的存储设备设置为海量存储设备(USB 大容量存储模式)。 这将配置 ODROID-N2+ 和 OTG 作为存储卡读取器:

    ums /dev/mmcblk0

刷写 Home Assistant

  1. 通过 ODROID-N2+ 前部的 micro-USB 端口将 ODROID-N2+ 连接到您的 PC。

  2. 当 ODROID-N2 被识别为 USB 连接的存储设备时,您可以使用 Etcher 刷写 eMMC。

    • 使用 ODROID-N2+ 的最新稳定版 Home Assistant OS(haos_odroid-n2-.img.xz)。
    • 在 Balena 中,使用 Flash from fileFlash from URL 在所有系统上都不起作用。
  3. 当刷写过程完成时,从您的 PC 断开 ODROID-N2+。

    • 移除电源线。
    • 移除 USB 和 HDMI 电缆。
    • 确保将启动模式开关切换回 MMC。
  4. 将 ODROID 放回外壳中。

  5. 用以太网电缆将您的 ODROID-N2+ 连接到网络,确保有互联网访问,然后插入电源。

  6. 如果您的路由器支持 mDNS,您可以在 http://homeassistant.local:8123 访问您的安装。

    • 如果您的网络不支持 mDNS,您必须使用 ODROID-N2+ 的 IP 地址而不是 homeassistant.local。例如,http://192.168.0.9:8123
    • 您应该能够从路由器的管理界面找到 ODROID-N2+ 的 IP 地址。
  7. 继续入门设置

刷写 ODROID-M1S

可以通过板前部的 USB-OTG 连接将 Home Assistant 刷写到 ODROID-M1S,将设备直接连接到您的计算机。 与其他 ODROID 板不同,M1S 没有可选 eMMC 模块的插槽。它也没有单独的闪存芯片来容纳专用的引导加载程序。 相反,M1S 有一个内置的 64 GB eMMC 直接焊接在板上,默认情况下容纳引导加载程序。本指南将向您展示如何将 Home Assistant Operating System 安装到内置 eMMC

警告: 安装 Home Assistant OS 会将 eMMC 上的固件和 SPL 替换为 Home Assistant OS 提供的主流版本。因此,不再可能使用带有 EMMC2UMS 镜像的 SD 卡,因为主流 SPL 目前(2024 年 2 月)与 EMMC2UMS 镜像中的 U-Boot 不兼容。这对标准使用没有任何问题,只是如果您想返回 Hardkernel 提供的操作系统会更复杂(参见 HK 恢复)。

您将需要什么

要使用 USB-OTG 刷写您的 eMMC,您需要以下物品:

  • 一张小型 SD 卡
  • 另一台计算机
  • USB 2.0 转 micro-USB 电缆
  • 特殊的 Hardkernel eMMC-to-USB-mass-storage 镜像

启动到大容量存储模式

(这些步骤与官方 Hardkernel wiki 页面相同。)

  1. 下载 ODROID-M1S_EMMC2UMS.img
  2. 使用 balena Etcher 或其他工具将 UMS 实用程序刷写到 SD 卡上。
    • 使用 Flash from fileFlash from URL 在所有系统上都不起作用。 (balena Etcher 会抱怨刷写过程中出了问题。您可以忽略此消息)
  3. 将该 SD 卡插入您的 ODROID-M1S 并启动它。

刷写 Home Assistant M1S

  1. 下载 ODROID-M1S 的最新稳定版 Home Assistant OS。
  2. 除了要刷写的 HAOS 镜像(M1S 而不是 N2+ 版本)外,您可以按照这里的 N2+ 分步刷写指南操作。

HK 恢复

如果您想将 M1S 恢复到 Hardkernel 的初始状态,您必须恢复 HK 的引导加载程序。 重新刷写 eMMC 与您选择的操作系统的可靠方法是使用 Home Assistant OS 刷写 EMMC2UMS 镜像,这将 ODROID-M1S 转换为 USB 大容量存储设备。刷写 EMMC2UMS 镜像后,您可以再次刷写任何操作系统。您需要一根 micro USB 电缆将 ODROID-M1S 连接到 PC。

注意:此命令将导致您当前的 Home Assistant OS 安装无法启动!

使用本地终端(HDMI/键盘)访问系统控制台。在 Home Assistant CLI(命令行)上,输入 login 进入 root shell 并使用 curl 下载镜像并使用 dd 将其写入 eMMC 块设备:

curl -L -A "Mozilla/5.0" https://dn.odroid.com/RK3566/ODROID-M1S/Installer/ODROID-M1S_EMMC2UMS.img | sudo dd of=/dev/mmcblk0 bs=4M status=progress conv=fsync

这样,设备将在下次启动时以移除 SD 卡后的 UMS 模式启动。按照从 PC 通过 USB 安装安装不同的操作系统。

安装 Home Assistant Container

以下说明用于在您自己管理的容器环境中安装运行 Home Assistant Container。任何 OCI 兼容的运行时都可以使用,但本指南将重点介绍使用 Docker 进行安装。

Note

此安装类型无法访问应用。如果您想使用应用,您需要使用其他安装类型。推荐的类型是 Home Assistant Operating System。查看安装类型概览表了解差异。

Important

前提条件 本指南假设您已经设置了操作系统并安装了容器运行时(如 Docker)。

如果您使用 Docker,需要 Docker Engine 23.0.0 或更高版本。Docker Desktop 不起作用;您必须使用 Docker Engine

平台安装

使用 Docker 安装很简单。调整以下命令:

  • /PATH_TO_YOUR_CONFIG 指向您要存储配置的文件夹并运行它。确保保留 :/config 部分。

  • MY_TIME_ZONEtz 数据库名称,如 TZ=America/Los_Angeles

  • D-Bus 是可选的,但如果您计划使用蓝牙集成则是必需的。

    Synology NAS

带有 DSM 的 Synology 现在通过容器管理器包支持容器管理,允许您安装 Home Assistant 而无需使用命令行。有关该包的详细信息(包括兼容性信息,如果您的 NAS 受支持),请参阅 https://www.synology.com/en-us/dsm/packages/ContainerManager。 步骤如下:

  • 使用 Synology 的套件中心,安装 Container Manager 套件。
  • 启动容器管理器应用并导航到 Registry 部分。
  • 在注册表页面上,搜索 homeassistant/home-assistant 并选择 Download。选择 stable 标签。
  • 等待镜像被拉取。
  • 导航到容器管理器应用的 Image 部分。
  • 选择 homeassistant/home-assistant 镜像并选择 Run
  • General Settings 页面上:
    • 选择您想要的容器名称(例如,homeassistant)。
    • 如果您愿意,设置 Enable auto-restart
    • 选择 Next
  • Advanced Settings 页面上:
    • Volume Settings 部分,选择 Add Folder 并选择现有文件夹或添加新文件夹(例如,在 docker 共享文件夹中,添加一个名为 homeassistant 的新文件夹,然后在该新文件夹中添加另一个新文件夹 config),然后选择 Select。然后将 Mount path 编辑为 /config,权限设置为 Read/Write。这配置了 Home Assistant 存储配置和日志的位置。
    • 为确保 Home Assistant 显示正确的时区,在 Environment 部分,选择 Add 按钮,在 Variable 字段中添加 TZ,在值中添加您的时区(例如,Europe/London)。时区可以在这里找到。
    • Network 部分,将网络下拉菜单设置为 host
  • 选择 Next
  • 确保选中 Run this container after the wizard is finished 并选择 Done
  • 您在 Docker 中的 Home Assistant 现在应该运行,并将从 Docker 主机上的端口 8123 提供 Web 界面(这将是您的 Synology NAS IP 地址 - 例如 http://192.168.1.10:8123)。

如果您使用内置防火墙,您还必须将端口 8123 添加到允许列表。这可以在 Control Panel > Security 然后是 Firewall 选项卡中找到。选择 Firewall Profile 下拉框旁边的 Edit Rules。创建一个新规则并为端口选择 Custom 并添加 8123。如果您愿意可以编辑源 IP 或保留默认的 All。操作应保持为 Allow

要使用 Z-Wave USB 适配器进行 Z-Wave 控制,HA Docker 容器需要额外配置才能访问 USB 适配器。虽然有多种方法可以做到这一点,但在撰写本文时,授予访问权限的最少特权方式只能通过终端执行。有关配置 Synology NAS 的终端访问,请参阅此页面:

https://www.synology.com/en-global/knowledgebase/DSM/help/DSM/AdminCenter/system_terminal

按如下方式调整终端命令:

  • /PATH_TO_YOUR_CONFIG 替换为指向您要存储配置的文件夹 - 确保保留 :/config 部分
  • /PATH_TO_YOUR_USB_STICK 替换为与您的 USB 适配器路径匹配(例如,大多数 Synology 用户为 /dev/ttyACM0
  • Australia/Melbourne 替换为您的时区

在终端中运行它。

sudo docker run --restart always -d --name homeassistant -v /PATH_TO_YOUR_CONFIG:/config --device=/PATH_TO_YOUR_USB_STICK -e TZ=Australia/Melbourne --net=host :stable

通过按照此处的说明完成其余的 Z-Wave 配置。

备注:要在 Synology NAS 上的 Docker 中更新您的 Home Assistant,您只需执行以下操作:

  • 转到 Container Manager 应用并移至 Image 部分。
  • 在 Image 中找到 homeassistant/home-assistant 并选择 Update
  • 等待系统消息/通知弹出,显示下载已完成(没有进度条)。
  • 移至 Container 部分。
  • 如果容器正在运行,停止它。
  • 右键单击它并选择 Action > Reset。您不会丢失任何数据,因为所有文件都存储在您的配置目录中。
  • 再次启动容器 - 它将使用新的 Home Assistant 镜像启动。

备注:要在 Synology NAS 中重启您的 Home Assistant,您只需执行以下操作:

  • 转到 Container Manager 应用并移至 Container 部分。
  • 右键单击它并选择 Action > Restart
Note

如果您想在 Synology Docker 上的 Home Assistant 中使用 USB 蓝牙适配器或 Z-Wave USB 适配器,这些说明没有正确配置容器以访问 USB 设备。要在 Synology Docker Home Assistant 上配置这些设备,您可以按照 Phil Hawthorne 提供的说明操作。

QNAP NAS

带有 QTS 的 QNAP 支持 Docker,允许您使用 Docker 安装 Home Assistant 而无需命令行。有关该包的详细信息(包括兼容性信息,如果您的 NAS 受支持),请参阅 https://www.qnap.com/solution/container_station/en/index.php

步骤如下:

  • 在您的 Qnap NAS 上安装 Container Station 包。
  • 启动容器站并移至 Create Container 部分。
  • 使用 Docker Hub 搜索镜像 homeassistant/home-assistant 并选择 Install
  • 选择 stable 版本并选择 Next
  • 选择您想要的容器名称(例如,homeassistant)。
  • 选择 Advanced Settings
  • Shared Folders 中选择 Volume from host > Add 并选择现有文件夹或添加新文件夹。挂载点必须是 /config,以便 Home Assistant 将其用于配置和日志。
  • Network 中选择网络模式为 Host
  • 为确保 Home Assistant 显示正确的时区,转到 Environment 选项卡并选择加号,然后添加 variable = TZvalue = Europe/London,选择您的正确时区
  • 选择 Create
  • 等待一段时间,直到您的 NAS 创建容器。
  • 您在 Docker 中的 Home Assistant 现在应该运行,并将从 Docker 主机上的端口 8123 提供 Web 界面(这将是您的 Qnap NAS IP 地址 - 例如 http://192.xxx.xxx.xxx:8123)。

备注:要在 Qnap NAS 上的 Docker 中更新您的 Home Assistant,您只需删除容器和镜像并再次执行步骤(不要删除 config 文件夹)。

社区说明

请注意,一些用户报告了在 ARM QNAP 系统(例如 TS-233)上使用容器站 3 创建 Home Assistant 容器的问题。一个可能的解决方法是基于 YAML 文件的 Docker compose 方法(参见 Docker compose 部分)。在 QNAP 容器站 3 UI 中,可以通过转到 Applications 部分并选择 Create 来访问。然后会提示您输入 YAML 代码,可以从 Docker compose 部分显示的代码复制。注意以两种方式修改此代码:首先,添加一行 version: '3';其次,将文本 /PATH_TO_YOUR_CONFIG 替换为 NAS 系统上的有效路径,例如 /share/Container/HomeAssistant/config

安装


```bash
    Docker run -d \
      --name homeassistant \
      --privileged \
      --restart=unless-stopped \
      -e TZ=MY_TIME_ZONE \
      -v /PATH_TO_YOUR_CONFIG:/config \
      -v /run/dbus:/run/dbus:ro \
      --network=host \
      :
    ```

一旦 Home Assistant 容器运行,Home Assistant 应该可以使用 http://<host>:8123 访问(将 替换为系统的主机名或 IP)。您可以继续进行入门设置。

重启 Home Assistant

如果您更改配置,您必须重启服务器。有 3 个选项可以做到这一点。

  1. 在您的 Home Assistant UI 中,转到 Settings > System 并在右上角选择三点 菜单。然后,选择 Restart Home Assistant
  2. 转到 Settings > Developer Tools > Actions,选择 homeassistant.restart 并选择 Perform Action
  3. 从终端重启它。

Docker CLI


```bash
    Docker restart homeassistant
    ```

Docker compose

Tip

docker compose 应该已经安装在您的系统上。如果没有,您可以手动安装它。

随着 Docker 命令变得越来越复杂,切换到 docker compose 可能更可取,并支持在失败或系统重启时自动重启。创建一个 compose.yaml 文件:

  services:
    homeassistant:
      container_name: homeassistant
      image: ":"
      volumes:
        - /PATH_TO_YOUR_CONFIG:/config
        - /etc/localtime:/etc/localtime:ro
        - /run/dbus:/run/dbus:ro
      restart: unless-stopped
      privileged: true
      network_mode: host
      environment:
        TZ: Europe/Amsterdam

通过运行启动它:

docker compose up -d

一旦 Home Assistant 容器运行,Home Assistant 应该可以使用 http://<host>:8123 访问(将 替换为系统的主机名或 IP)。您可以继续进行入门设置。

暴露设备

为了使用 Zigbee 或其他需要访问设备的集成,您需要将适当的设备映射到容器中。确保运行容器的用户具有访问 /dev/tty* 文件的正确权限,然后将设备映射添加到您的容器说明中:

Docker CLI


```bash
    Docker run ... --device /dev/ttyUSB0:/dev/ttyUSB0 ...
    ```

优化

Home Assistant 容器使用替代内存分配库 jemalloc 以获得更好的内存管理和 Python 运行时加速。

由于使用的 jemalloc 配置可能在某些具有大于 4K 页大小的硬件上引起问题(如某些特定的 ARM64 SoC),可以通过传递环境变量 DISABLE_JEMALLOC 与任何值来禁用它,例如:

Docker CLI


```bash
    Docker run ... -e "DISABLE_JEMALLOC=true" ...
    ```

错误消息 <jemalloc>: Unsupported system page size 是一个已知的指示器。