🔌 Raspberry Pi 5 + AI HAT+ 2 · ราสเบอร์รี่ พาย 5 กับ AI HAT+ 2 · 树莓派 5 加 AI HAT+ 2

40 TOPS and 8 GB on the HAT itself. A language model runs beside the Pi, not inside it. Which card to flash, the one driver package, and hailo-ollama. · 40 TOPS และแรม 8 GB อยู่บนตัว HAT เอง โมเดลภาษาจึงทำงานข้าง ๆ พาย ไม่ใช่ข้างใน จะแฟลชการ์ดไหน ไดรเวอร์แพ็กเกจเดียว และ hailo-ollama · 40 TOPS,8 GB 内存就装在 HAT 上,所以语言模型是跑在树莓派旁边,不是里面。烧哪张卡、那一个驱动包,以及 hailo-ollama。

🇬🇧 English

The AI HAT+ 2 came out in January 2026. It carries a Hailo-10H chip and 8 GB of its own memory.

That memory is the important part. The model sits on the HAT, not in the Pi. Your Pi keeps its own RAM for everything else.

It does 40 TOPS. That is enough for small language models and for vision work.

🇹🇭 ไทย

AI HAT+ 2 ออกมาเมื่อมกราคม 2026 มันมีชิป Hailo-10H และแรมของตัวเอง 8 GB

แรมนั้นคือส่วนสำคัญ โมเดลอยู่บน HAT ไม่ใช่ในพาย พายจึงเก็บแรมของตัวเองไว้ทำอย่างอื่นได้

มันทำได้ 40 TOPS พอสำหรับโมเดลภาษาเล็ก ๆ และงานด้านภาพ

🇨🇳 中文

AI HAT+ 2 在 2026 年 1 月出。它带一颗 Hailo-10H 芯片,还有自己的 8 GB 内存。

那块内存才是重点。模型住在 HAT 上,不在树莓派里。树莓派自己的内存留着干别的。

它有 40 TOPS,够跑小的语言模型,也够做视觉的活。

Without the HATไม่มี HAT没有 HATWith the AI HAT+ 2มี AI HAT+ 2有 AI HAT+ 2
Where the model livesโมเดลอยู่ที่ไหน模型住在哪in the Pi's own RAMในแรมของพายเอง在树莓派自己的内存里on the HAT, in its own 8 GBบน HAT ในแรม 8 GB ของมันเอง在 HAT 上,用它自己的 8 GB
What the Pi is doingพายกำลังทำอะไร树莓派在干嘛all of it, slowlyทำทั้งหมด และช้า全都它干,而且慢free for your own programว่างไว้ให้โปรแกรมของคุณ空着给你自己的程序
Which modelsโมเดลไหนได้บ้าง哪些模型anything Ollama hasอะไรก็ได้ที่ Ollama มีOllama 有的都行only ones built for Hailoเฉพาะที่สร้างมาเพื่อ Hailo只有为 Hailo 编译过的
Which OSระบบปฏิบัติการไหน哪个系统almost anyแทบทุกตัว几乎都行one, really. See step 1.จริง ๆ แล้วมีตัวเดียว ดูขั้นที่ 1说白了就一个。看第 1 步。
WHAT YOU NEED ON THE DESK A Raspberry Pi 5. The AI HAT+ 2 and its ribbon cable. A 32 GB card or bigger, or an NVMe drive. A 27 W USB-C supply. The HAT draws real power, so a phone charger is not enough. ราสเบอร์รี่ พาย 5 หนึ่งตัว AI HAT+ 2 พร้อมสายแพ การ์ด 32 GB ขึ้นไป หรือไดรฟ์ NVMe และอะแดปเตอร์ USB-C 27 วัตต์ HAT กินไฟจริงจัง ที่ชาร์จมือถือไม่พอ 一块树莓派 5。AI HAT+ 2 和它的排线。一张 32 GB 以上的卡,或者一块 NVMe。一个 27 瓦的 USB-C 电源。HAT 是真的吃电,手机充电头不够。

💿 Tutorial 1 — Choose the OS before you flash · บทที่ 1 — เลือกระบบปฏิบัติการก่อนแฟลช · 教程 1 —— 烧录之前先选系统

🇬🇧 English

This is the one decision that is hard to undo. Get it right and the rest is two commands.

Get it wrong and you are compiling kernel drivers on a Sunday.

🇹🇭 ไทย

นี่คือการตัดสินใจเดียวที่ย้อนกลับยาก ถ้าเลือกถูก ที่เหลือคือสองคำสั่ง

ถ้าเลือกผิด คุณจะได้นั่งคอมไพล์ไดรเวอร์เคอร์เนลในวันอาทิตย์

🇨🇳 中文

这是唯一一个难以反悔的决定。选对了,剩下的就是两条命令。

选错了,你的周日就用来编译内核驱动了。

1 Why Trixie, and why nothing else · ทำไมต้อง Trixie และทำไมไม่ใช่อย่างอื่น · 为什么是 Trixie,为什么别的都不行

🇬🇧 English

Raspberry Pi say it plainly. Running AI models needs a Pi 5. It needs 64-bit Raspberry Pi OS, Trixie.

Trixie is Debian 13. The kernel must be 6.12 or newer. 64-bit is not optional here.

The driver arrives as one apt package. On anything else you build it from source.

🇹🇭 ไทย

Raspberry Pi บอกไว้ตรง ๆ การรันโมเดล AI ต้องใช้พาย 5 กับ Raspberry Pi OS 64 บิต รุ่น Trixie

Trixie คือ Debian 13 เคอร์เนลต้องเป็น 6.12 ขึ้นไป ตรงนี้ 64 บิตไม่ใช่ตัวเลือก

ไดรเวอร์มาเป็นแพ็กเกจ apt อันเดียว ถ้าใช้ตัวอื่นคุณต้องคอมไพล์เอง

🇨🇳 中文

Raspberry Pi 说得很直白:跑 AI 模型需要树莓派 5 配 64 位的 Raspberry Pi OS,Trixie 版。

Trixie 就是 Debian 13。内核要 6.12 或更新。这里 64 位不是可选项。

驱动是一个 apt 包。换别的系统,你就得自己从源码编。

Choiceตัวเลือก选择Driverไดรเวอร์驱动Verdictคำตัดสิน结论
Pi OS Trixie, 64-bitPi OS Trixie 64 บิตPi OS Trixie 64 位apt install hailo-h10-allUse this oneใช้ตัวนี้就用这个
Ubuntu 24.04Ubuntu 24.04Ubuntu 24.04build from sourceคอมไพล์เอง从源码编Only if you mustต่อเมื่อจำเป็นจริง非用不可才用
Arch ARM, NixOSArch ARM, NixOSArch ARM、NixOSbuild from sourceคอมไพล์เอง从源码编You own that build foreverคุณต้องดูแลการคอมไพล์นั้นตลอดไป这份编译你得养一辈子
Pi OS BookwormPi OS BookwormPi OS Bookwormtoo oldเก่าเกินไป太旧Reflash. No upgrade path.แฟลชใหม่ ไม่มีทางอัปเกรด重烧。没有升级路径。
Any 32-bit imageอิมเมจ 32 บิตใด ๆ任何 32 位镜像noneไม่มี没有Will not work at allใช้ไม่ได้เลย根本不行
BOOKWORM CANNOT BE UPGRADED INTO TRIXIE Raspberry Pi do not support upgrading between major versions in place. People try it. It often half works, and then the driver will not build. Is your card Bookworm today? Copy off what you need. Then flash a fresh Trixie card. Doing that first is faster than doing it after. Raspberry Pi ไม่รองรับการอัปเกรดข้ามรุ่นใหญ่บนเครื่องเดิม หลายคนลอง มันมักทำงานได้ครึ่ง ๆ แล้วไดรเวอร์ก็สร้างไม่ผ่าน ถ้าการ์ดของคุณตอนนี้เป็น Bookworm ให้คัดลอกของที่ต้องใช้ออกมา แล้วแฟลชการ์ด Trixie ใหม่ ทำตั้งแต่แรกเร็วกว่ามาทำทีหลัง Raspberry Pi 不支持原地跨大版本升级。有人试过,通常是半好不好,然后驱动编不出来。如果你的卡现在是 Bookworm,把要留的东西拷出来,重烧一张 Trixie。先做比后做快。
WHY THE OS DECIDES EVERYTHING HERE The HAT talks over PCIe. Talking to it needs a kernel module. On Pi OS that module is built and signed for you. It arrives with apt. Everywhere else you compile it. You match it to your exact kernel. Then the kernel updates, and you compile it again. That is the whole difference. A nicer looking desktop is a bad reason to move. HAT คุยผ่าน PCIe การคุยกับมันต้องมีโมดูลเคอร์เนล บน Pi OS โมดูลนั้นถูกสร้างและเซ็นมาให้แล้ว และมาพร้อม apt ที่อื่นคุณต้องคอมไพล์เอง และต้องให้ตรงกับเคอร์เนลของคุณเป๊ะ ๆ พอเคอร์เนลอัปเดต ก็คอมไพล์ใหม่อีกรอบ นั่นคือความต่างทั้งหมด และเป็นเหตุผลว่าทำไมเดสก์ท็อปที่สวยกว่าจึงเป็นเหตุผลที่แย่ในการย้าย HAT 走 PCIe 通信。要和它说话就要有内核模块。在 Pi OS 上,那个模块已经替你编好签好,跟着 apt 一起来。在别的系统上你得自己编,而且要和你的内核严丝合缝。然后内核一更新,再编一次。区别就这些,这也是为什么"桌面更好看"是个很烂的搬家理由。

2 Flash the card · แฟลชการ์ด · 把卡烧好

🇬🇧 English

Use Raspberry Pi Imager. It runs on Windows, macOS and Linux. It is the supported way.

Pick the 64-bit image by name. The Imager offers 32-bit too, and the names look almost the same.

🇹🇭 ไทย

ใช้ Raspberry Pi Imager มันใช้ได้ทั้ง Windows, macOS และ Linux และเป็นวิธีที่รองรับ

เลือกอิมเมจ 64 บิตจากชื่อให้ดี ตัว Imager มี 32 บิตด้วย และชื่อดูเกือบเหมือนกัน

🇨🇳 中文

用 Raspberry Pi Imager。Windows、macOS、Linux 上都能跑,而且这是官方支持的方式。

按名字挑 64 位那个。Imager 里也有 32 位的,名字看起来差不多。

1Raspberry Pi Imagerเปิด Imager打开 Imager
2Pi 5 → Pi OS (64-bit)Pi 5 → Pi OS (64 บิต)Pi 5 → Pi OS(64 位)
3⚙ set wifi + ssh⚙ ตั้งไวไฟ + ssh⚙ 设置 wifi + ssh
4write, then bootเขียน แล้วบูต写入,然后开机
SET THE WIFI AND SSH IN THE IMAGER, NOT AFTER Click the gear before you write. Set the hostname, your user, your wifi and turn ssh on. Then the Pi joins your network on its first boot. You never need a screen for it. Doing this after the write means finding a spare monitor and keyboard. กดรูปเฟืองก่อนจะเขียน ตั้งชื่อเครื่อง ผู้ใช้ ไวไฟ และเปิด ssh แล้วพายจะเข้าเครือข่ายของคุณตั้งแต่บูตแรก และคุณไม่ต้องใช้จอเลย ถ้าทำหลังเขียนเสร็จ คุณต้องไปหาจอกับคีย์บอร์ดมาต่อ 写入之前先点那个齿轮。设好主机名、用户、wifi,把 ssh 打开。这样树莓派第一次开机就进你的网络,你根本不需要显示器。写完再弄,就得去翻一台显示器和键盘出来。

📘 FROM THE DOCS · quoted, not run here

# Find the Pi once it is up. The name is what you set in the Imager.
ssh pi@raspberrypi.local

# Bring everything up to date before you add the HAT software.
sudo apt update
sudo apt full-upgrade -y

# The bootloader lives in its own chip and updates separately.
sudo rpi-eeprom-update -a
sudo reboot
YOUR TURN
  1. Flash the card. Set wifi and ssh in the gear menu.
  2. Boot with the HAT not yet fitted. One change at a time.
  3. Run the four commands above. Let it reboot.
  4. Check uname -m says aarch64 before going on.
  1. แฟลชการ์ด ตั้งไวไฟกับ ssh ในเมนูรูปเฟือง
  2. บูตโดยที่ยังไม่ใส่ HAT เปลี่ยนทีละอย่าง
  3. รันสี่คำสั่งข้างบน แล้วปล่อยให้มันรีบูต
  4. ตรวจว่า uname -m ขึ้น aarch64 ก่อนไปต่อ
  1. 烧卡。在齿轮菜单里设好 wifi 和 ssh。
  2. 先不要装 HAT 就开机。一次只改一样。
  3. 把上面四条命令跑完,让它重启。
  4. 继续之前先确认 uname -m 显示 aarch64。

🔌 Tutorial 2 — Wake the HAT up · บทที่ 2 — ปลุก HAT ให้ตื่น · 教程 2 —— 把 HAT 叫醒

🇬🇧 English

Power the Pi off fully before you fit the HAT. Not a reboot. Off, and unplugged.

Then one package, one reboot, and three checks.

🇹🇭 ไทย

ปิดพายให้สนิทก่อนใส่ HAT ไม่ใช่รีบูต แต่ปิดและถอดปลั๊ก

จากนั้นแพ็กเกจเดียว รีบูตหนึ่งครั้ง และตรวจสามอย่าง

🇨🇳 中文

装 HAT 之前把树莓派彻底断电。不是重启,是关机并拔掉电源。

然后一个包、一次重启、三项检查。

3 Firmware first, then one package · เฟิร์มแวร์ก่อน แล้วค่อยแพ็กเกจเดียว · 先固件,再一个包

🇬🇧 English

The package name is the thing to get right. There are two, and they cannot live together.

hailo-h10-all is for this HAT. hailo-all is for the older one. Almost every guide online says the older one.

🇹🇭 ไทย

ชื่อแพ็กเกจคือสิ่งที่ต้องไม่พลาด มีสองตัว และมันอยู่ด้วยกันไม่ได้

hailo-h10-all สำหรับ HAT ตัวนี้ ส่วน hailo-all สำหรับรุ่นเก่ากว่า บทความออนไลน์เกือบทั้งหมดบอกตัวเก่า

🇨🇳 中文

包名是最不能弄错的东西。有两个,而且不能共存。

hailo-h10-all 是给这块 HAT 的。hailo-all 是给老款的。网上几乎所有指南写的都是老的那个。

📘 FROM THE DOCS · quoted, not run here

# dkms rebuilds the kernel module whenever the kernel updates. Install it first.
sudo apt install dkms

# The one that matters. h10 means Hailo-10H, which is the AI HAT+ 2.
# hailo-all is the Hailo-8 package. The two cannot be installed together.
sudo apt install hailo-h10-all

sudo reboot
hailo-all AND hailo-h10-all CANNOT BOTH BE INSTALLED Raspberry Pi say this plainly: the packages cannot co-exist. Did an older guide have you install hailo-all? Remove it before you go on. sudo apt remove --purge hailo-all and then reboot. The check script in step 5 looks for this. It is the easiest mistake to make. It is also the hardest to spot. Raspberry Pi บอกไว้ตรง ๆ ว่าสองแพ็กเกจนี้อยู่ร่วมกันไม่ได้ ถ้าคุณติดตั้ง hailo-all ไปแล้วจากบทความเก่า ให้เอาออกก่อนไปต่อ ใช้ sudo apt remove --purge hailo-all แล้วรีบูต สคริปต์ตรวจในขั้นที่ 5 มองหาเรื่องนี้ เพราะมันพลาดง่ายที่สุดและสังเกตยากที่สุด Raspberry Pi 说得很明白:这两个包不能共存。如果你照着旧教程已经装了 hailo-all,先把它卸掉再往下走:sudo apt remove --purge hailo-all,然后重启。第 5 步的检查脚本会查这件事,因为它最容易犯,也最不容易发现。
SKIP THE PCIe GEN 3 STEP — IT IS FOR THE OLD AI KIT Older guides tell you to add dtparam=pciex1_gen=3 to /boot/firmware/config.txt. Raspberry Pi say you can skip that here. On both AI HAT+ boards the setting is applied for you. It was only ever needed for the AI Kit. That is out of production. Do not edit config.txt when you need not. That is a good way to break the boot. บทความเก่าบอกให้เพิ่ม dtparam=pciex1_gen=3 ลงใน /boot/firmware/config.txt Raspberry Pi บอกว่าข้ามได้สำหรับ AI HAT+ และ AI HAT+ 2 เพราะค่านั้นถูกตั้งให้อยู่แล้ว มันจำเป็นเฉพาะกับ AI Kit ซึ่งเลิกผลิตไปแล้ว การแก้ config.txt ทั้งที่ไม่จำเป็นเป็นวิธีที่ดีในการทำให้พายบูตไม่ขึ้น 旧教程会让你往 /boot/firmware/config.txt 里加 dtparam=pciex1_gen=3。Raspberry Pi 说 AI HAT+ 和 AI HAT+ 2 可以跳过,因为这个设置已经自动应用了。它只对已停产的 AI Kit 才需要。没必要还去改 config.txt,是把树莓派弄到开不了机的好办法。

4 Prove the chip is really there · พิสูจน์ว่าชิปอยู่ตรงนั้นจริง · 证明芯片真的在

🇬🇧 English

Three checks, from the outside in. The bus, then the kernel, then the runtime.

Do all three. Each one fails for a different reason. Knowing which failed tells you what to fix.

🇹🇭 ไทย

ตรวจสามอย่าง จากนอกเข้าใน บัสก่อน แล้วเคอร์เนล แล้วรันไทม์

ทำให้ครบทั้งสาม แต่ละอย่างพังด้วยเหตุผลต่างกัน และการรู้ว่าอันไหนพังจะบอกคุณว่าต้องแก้อะไร

🇨🇳 中文

三项检查,从外往里:先总线,再内核,最后运行时。

三个都做。它们失败的原因各不相同,知道是哪一个挂了,就知道该修什么。

📘 FROM THE DOCS · quoted, not run here

# 1. Is it on the PCIe bus at all? If this is empty, it is a hardware problem.
lspci | grep -i hailo

# 2. Did the kernel pick it up? Look for the driver loading, and for errors.
dmesg | grep -i hailo

# 3. Can the runtime talk to the firmware? This is the real test.
hailortcli fw-control identify
CheckIf it is empty or fails · ถ้าว่างหรือพัง · 如果是空的或失败了
lspci | grep -i hailoThe Pi cannot see the board. Power off, reseat the ribbon, check which way round it goes.พายมองไม่เห็นบอร์ด ปิดเครื่อง เสียบสายแพใหม่ ดูว่าหันด้านถูกไหม树莓派看不到这块板。关机,重插排线,看方向对不对。
dmesg | grep -i hailoSeen but not driven. The module did not build or load. Check dkms.เห็นแต่ขับไม่ได้ โมดูลสร้างไม่ผ่านหรือโหลดไม่ขึ้น ไปดู dkms看得见但驱动不了。模块没编好或没加载。去查 dkms。
hailortcli fw-control identifyDriven but not talking. Usually the wrong package for the board.ขับได้แต่คุยไม่ได้ ส่วนใหญ่คือใช้แพ็กเกจผิดรุ่น驱动了但说不上话。通常是包和板子不匹配。
WHEN ALL THREE PASS The HAT is alive and the driver is right. Now it can hold a model.HAT ทำงานแล้ว และไดรเวอร์ถูกตัว ทีนี้มันเก็บโมเดลได้HAT 活了,驱动也对了。现在它能装模型了。

5 A script that checks before you install · สคริปต์ที่ตรวจให้ก่อนติดตั้ง · 一个装之前先帮你检查的脚本

🇬🇧 English

This script reads. It never writes. It checks eleven things and tells you which ones are wrong.

Run it before the model zoo. It catches the two mistakes that waste an afternoon. The wrong driver package. And port 8000 already in use.

🇹🇭 ไทย

สคริปต์นี้อ่านอย่างเดียว ไม่เขียนอะไรเลย มันตรวจสิบเอ็ดอย่างและบอกว่าอันไหนผิด

รันมันก่อนติดตั้งสวนสัตว์โมเดล มันจับสองความผิดพลาดที่กินเวลาทั้งบ่าย คือแพ็กเกจไดรเวอร์ผิดตัว และพอร์ต 8000 ถูกใช้อยู่แล้ว

🇨🇳 中文

这个脚本只读,从不写。它检查十一项,告诉你哪些不对。

在装模型园之前跑它。它能抓住两个浪费一下午的错误:驱动包装错了,以及端口 8000 已经被占了。

📄 NEW FILE · hailo_preflight.sh

#!/usr/bin/env bash
# hailo_preflight.sh - read-only checks before installing the Gen AI model zoo.
# Changes nothing. Run it on the Pi 5, fix every FAIL, then install by hand.
#
#   scp hailo_preflight.sh pi@raspberrypi.local:~
#   ssh pi@raspberrypi.local 'bash hailo_preflight.sh'

pass=0; fail=0
ok()   { printf '  \033[32mOK  \033[0m %s\n' "$1"; pass=$((pass+1)); }
bad()  { printf '  \033[31mFAIL\033[0m %s\n' "$1"; fail=$((fail+1)); }
note() { printf '       %s\n' "$1"; }
head_() { printf '\n== %s ==\n' "$1"; }

head_ "1. Board"
# Guard the read. "< file 2>/dev/null" does not silence a missing file: the
# shell fails to open it before tr ever runs, and prints its own error.
model=""
[ -r /proc/device-tree/model ] && model=$(tr -d '\0' < /proc/device-tree/model)
case "$model" in
  *"Raspberry Pi 5"*) ok "$model" ;;
  *) bad "need a Raspberry Pi 5, found: ${model:-unknown}" ;;
esac

head_ "2. Architecture - 64-bit is mandatory"
arch=$(uname -m)
[ "$arch" = "aarch64" ] && ok "arch $arch" || bad "arch $arch, need aarch64"

head_ "3. OS - must be Trixie / Debian 13"
codename=$(. /etc/os-release 2>/dev/null; echo "$VERSION_CODENAME")
pretty=$(. /etc/os-release 2>/dev/null; echo "$PRETTY_NAME")
if [ "$codename" = "trixie" ]; then
  ok "$pretty"
else
  bad "$pretty - hailo-h10-all needs Trixie"
  note "Pi OS major upgrades are not supported in place. Plan a clean flash."
fi

head_ "4. Kernel - 6.12 or newer"
kver=$(uname -r)
kmaj=$(echo "$kver" | cut -d. -f1); kmin=$(echo "$kver" | cut -d. -f2)
if [ "$kmaj" -gt 6 ] 2>/dev/null || { [ "$kmaj" -eq 6 ] && [ "$kmin" -ge 12 ]; } 2>/dev/null; then
  ok "kernel $kver"
else
  bad "kernel $kver, need 6.12+"
fi

head_ "5. Is the HAT on the PCIe bus?"
if command -v lspci > /dev/null 2>&1; then
  hailo_pci=$(lspci 2>/dev/null | grep -i hailo)
  if [ -n "$hailo_pci" ]; then
    ok "$hailo_pci"
    case "$hailo_pci" in
      *"Hailo-10"*|*1888:0010*) note "Hailo-10H - the AI HAT+ 2, use hailo-h10-all" ;;
      *) note "NOT a Hailo-10H. hailo-h10-all is the wrong package." ;;
    esac
  else
    bad "no Hailo device on the PCIe bus"
    note "Power off fully, reseat the ribbon cable, check its orientation."
  fi
else
  bad "lspci missing - sudo apt install pciutils"
fi

head_ "6. Conflicting driver package"
# hailo-all (Hailo-8/8L) and hailo-h10-all (Hailo-10H) cannot coexist.
if dpkg -l 2>/dev/null | grep -q '^ii  hailo-all'; then
  bad "hailo-all is installed - it conflicts with hailo-h10-all"
  note "sudo apt remove --purge hailo-all   (then reboot)"
else
  ok "hailo-all not installed"
fi

head_ "7. Driver stack"
if dpkg -l 2>/dev/null | grep -q '^ii  hailo-h10-all'; then
  ok "hailo-h10-all installed"
else
  bad "hailo-h10-all not installed yet"
fi
if lsmod 2>/dev/null | grep -q hailo; then
  ok "kernel module loaded"
else
  bad "no hailo kernel module loaded"
fi

head_ "8. Runtime talks to the chip"
if command -v hailortcli > /dev/null 2>&1; then
  if hailortcli fw-control identify > /tmp/hailo_id.txt 2>&1; then
    ok "hailortcli reached the device"
    sed 's/^/       /' /tmp/hailo_id.txt | head -8
  else
    bad "hailortcli could not reach the device"
  fi
else
  bad "hailortcli not found (comes with hailo-h10-all)"
fi

head_ "9. Room for the model zoo"
avail=$(df -BG --output=avail / 2>/dev/null | tail -1 | tr -d ' G')
if [ -n "$avail" ] && [ "$avail" -ge 16 ] 2>/dev/null; then
  ok "${avail}G free on /"
else
  bad "only ${avail:-?}G free on / - want 16G+"
fi

head_ "10. Is port 8000 already taken?"
if command -v ss > /dev/null 2>&1 && ss -ltn 2>/dev/null | grep -q ':8000 '; then
  bad "something is already listening on :8000"
  note "hailo-ollama binds 8000. Stop the other service or move it."
else
  ok "port 8000 free"
fi

printf '\n== %d passed, %d failed ==\n' "$pass" "$fail"
[ "$fail" -eq 0 ] && printf 'Ready for the model zoo.\n' \
                 || printf 'Fix the FAILs above first.\n'
exit 0

✅ ACTUALLY RUN · the script above, on aarch64 Linux with no Pi and no HAT, 27 September 2026

== 1. Board ==
  FAIL need a Raspberry Pi 5, found: unknown

== 2. Architecture - 64-bit is mandatory ==
  OK   arch aarch64

== 3. OS - must be Trixie / Debian 13 ==
  FAIL Ubuntu 24.04.4 LTS - hailo-h10-all needs Trixie
       Pi OS major upgrades are not supported in place. Plan a clean flash.

== 4. Kernel - 6.12 or newer ==
  OK   kernel 6.17.0-1018-nvidia

== 5. Is the HAT on the PCIe bus? ==
  FAIL no Hailo device on the PCIe bus
       Power off fully, reseat the ribbon cable, check its orientation.

== 6. Conflicting driver package ==
  OK   hailo-all not installed

== 7. Driver stack ==
  FAIL hailo-h10-all not installed yet
  FAIL no hailo kernel module loaded

== 8. Runtime talks to the chip ==
  FAIL hailortcli not found (comes with hailo-h10-all)

== 9. Room for the model zoo ==
  OK   3269G free on /

== 10. Is port 8000 already taken? ==
  OK   port 8000 free

== 5 passed, 6 failed ==
Fix the FAILs above first.
WHY A FAILING RUN IS WORTH PRINTING That output is a refusal, and a refusal is a real test. The machine is 64-bit Linux with a new kernel. Those two checks pass. It is not a Pi. It has the wrong OS and no HAT. Those three fail, and say exactly why. A check script must work when things are wrong. Otherwise it is not a check script. This one was run on the wrong machine on purpose. ผลลัพธ์นั้นคือการปฏิเสธ และการปฏิเสธคือการทดสอบจริง เครื่องนั้นเป็นลินุกซ์ 64 บิตที่เคอร์เนลใหม่ สองข้อนั้นจึงผ่าน แต่มันไม่ใช่พาย ใช้ระบบผิด และไม่มี HAT สามข้อนั้นจึงไม่ผ่านและบอกเหตุผลชัดเจน สคริปต์ตรวจที่ทำงานได้เฉพาะตอนทุกอย่างดีอยู่แล้ว ไม่ใช่สคริปต์ตรวจ อันนี้จงใจรันบนเครื่องที่ผิด 那段输出是一次拒绝,而拒绝才是真正的测试。那台机器是装了新内核的 64 位 Linux,所以那两项通过了。它不是树莓派、系统不对、也没有 HAT,所以那三项失败了,并且明确说出原因。一个只有在一切本来就正常时才能用的检查脚本,不算检查脚本。这一个是故意跑在错的机器上的。
ONE BUG CAME OUT OF RUNNING IT The first version read the board name with tr -d '\0' < /proc/device-tree/model 2>/dev/null. On a machine without that file, it printed a shell error. Right above the tidy output. The 2>/dev/null belongs to tr. But the shell fails first. It cannot open the file for redirection. Testing [ -r ... ] first is the fix, and it is in the version above. เวอร์ชันแรกอ่านชื่อบอร์ดด้วย tr -d '\0' < /proc/device-tree/model 2>/dev/null บนเครื่องที่ไม่มีไฟล์นั้น มันยังพิมพ์ข้อผิดพลาดดิบ ๆ ของเชลล์ขึ้นมาเหนือผลลัพธ์ที่จัดไว้สวยงาม เพราะ 2>/dev/null เป็นของ tr แต่เชลล์ต่างหากที่พังก่อน ตอนที่มันเปิดไฟล์เพื่อเปลี่ยนทิศทางไม่ได้ วิธีแก้คือตรวจ [ -r ... ] ก่อน และมันอยู่ในเวอร์ชันข้างบนแล้ว 第一版用 tr -d '\0' < /proc/device-tree/model 2>/dev/null 读板子名。在没有这个文件的机器上,它仍然会在整齐的输出上方打出一行原始的 shell 报错。2>/dev/null 是给 tr 的,但先失败的是 shell —— 它打不开那个文件来做重定向。先用 [ -r ... ] 测一下就是解法,上面那版已经改好了。
YOUR TURN
  1. Download it with the button above. Copy it to the Pi.
  2. bash hailo_preflight.sh. Read every FAIL.
  3. Fix them in order. Check 1 first, check 10 last.
  4. Run it again until it says 11 passed, 0 failed.
  1. ดาวน์โหลดด้วยปุ่มข้างบน แล้วคัดลอกไปที่พาย
  2. bash hailo_preflight.sh แล้วอ่านทุกบรรทัดที่ FAIL
  3. แก้ไปตามลำดับ ข้อ 1 ก่อน ข้อ 10 ทีหลังสุด
  4. รันซ้ำจนกว่ามันจะบอกว่าผ่าน 11 ไม่ผ่าน 0
  1. 用上面的按钮下载,拷到树莓派上。
  2. bash hailo_preflight.sh,每一条 FAIL 都读。
  3. 按顺序修。先修第 1 项,第 10 项放最后。
  4. 反复跑,直到它说 11 通过、0 失败。

🧠 Tutorial 3 — A model on the HAT · บทที่ 3 — โมเดลบน HAT · 教程 3 —— 让模型跑在 HAT 上

🇬🇧 English

The driver makes the chip usable. The model zoo gives it something to run.

What you get is a small server on port 8000. It speaks the same language as Ollama.

🇹🇭 ไทย

ไดรเวอร์ทำให้ชิปใช้งานได้ สวนสัตว์โมเดลให้ของมันรัน

สิ่งที่คุณจะได้คือเซิร์ฟเวอร์เล็ก ๆ บนพอร์ต 8000 ที่พูดภาษาเดียวกับ Ollama

🇨🇳 中文

驱动让芯片可用,模型园给它东西可跑。

你得到的是端口 8000 上一个小服务,说的是和 Ollama 一样的话。

6 The model zoo package · แพ็กเกจสวนสัตว์โมเดล · 模型园那个包

🇬🇧 English

This one does not come from apt. You download a .deb file straight from Hailo and install it by hand.

That means it will never update by itself. Write the version down.

🇹🇭 ไทย

อันนี้ไม่ได้มาจาก apt คุณต้องดาวน์โหลดไฟล์ .deb จาก Hailo โดยตรงแล้วติดตั้งเอง

แปลว่ามันจะไม่อัปเดตเองเลย จดเวอร์ชันไว้

🇨🇳 中文

这个不是从 apt 来的。你要直接从 Hailo 下一个 .deb,手动安装。

也就是说它永远不会自己更新。把版本号记下来。

📘 FROM THE DOCS · quoted, not run here

# A direct download, not an apt repository. Nothing will update this for you.
wget https://dev-public.hailo.ai/2025_12/Hailo10/hailo_gen_ai_model_zoo_5.1.1_arm64.deb

sudo dpkg -i hailo_gen_ai_model_zoo_5.1.1_arm64.deb

# dpkg does not fetch dependencies. If it complained, this finishes the job.
sudo apt -f install
dpkg -i IS NOT apt install dpkg -i unpacks one file and stops. It does not go and fetch anything the package needs. It may print an error about dependencies. The package is then half installed, not broken. sudo apt -f install finishes it. This surprises people who only ever use apt. dpkg -i แตกไฟล์เดียวแล้วจบ มันไม่ไปดึงสิ่งที่แพ็กเกจต้องใช้มาให้ ถ้ามันขึ้นข้อผิดพลาดเรื่องสิ่งที่ต้องพึ่งพา แปลว่าแพ็กเกจติดตั้งไปครึ่งเดียว ไม่ใช่พัง ใช้ sudo apt -f install เพื่อทำให้จบ คนที่ใช้แต่ apt มักประหลาดใจกับเรื่องนี้ dpkg -i 解开一个文件就停。它不会去取这个包需要的其他东西。如果它报了依赖错误,说明包装了一半,不是坏了。sudo apt -f install 把它补完。只用过 apt 的人常被这个绊住。

7 List, pull, ask · ดูรายการ ดึงมา แล้วถาม · 列出、拉取、提问

🇬🇧 English

Start the server, then use it from a second terminal. Three calls: list, pull, chat.

The server holds the terminal while it runs. Step 8 fixes that.

🇹🇭 ไทย

เปิดเซิร์ฟเวอร์ แล้วใช้มันจากเทอร์มินัลที่สอง สามคำสั่ง คือดูรายการ ดึงมา และคุย

เซิร์ฟเวอร์จะยึดเทอร์มินัลไว้ตอนทำงาน ขั้นที่ 8 แก้เรื่องนั้น

🇨🇳 中文

先把服务起起来,然后在第二个终端里用它。三个调用:列出、拉取、对话。

服务跑着的时候会占住这个终端。第 8 步解决这件事。

📘 FROM THE DOCS · quoted, not run here

# Starts in the foreground and binds port 8000. It holds this terminal.
hailo-ollama

# --- everything below goes in a SECOND terminal ---

# Which models will actually run on this chip. Trust this over any web page.
curl --silent http://localhost:8000/hailo/v1/list

# Fetch one. stream:true prints progress instead of waiting in silence.
curl --silent http://localhost:8000/api/pull \
     -H 'Content-Type: application/json' \
     -d '{ "model": "qwen2:1.5b", "stream": true }'

# Ask it something. Same shape as the Ollama chat API.
curl --silent http://localhost:8000/api/chat \
     -H 'Content-Type: application/json' \
     -d '{"model": "qwen2:1.5b", "messages": [{"role": "user", "content": "Hello"}]}'
DO NOT TRUST ANY MODEL LIST, INCLUDING THIS ONE Published lists of what runs on the Hailo-10H disagree with each other. Between them they name qwen2:1.5b, qwen2.5:1.5b, qwen2.5-coder:1.5b, deepseek_r1_distill_qwen:1.5b and a llama3.2 of one size or another. The tags do not match across sources. This page cannot test any of them. Your own box prints a list from /hailo/v1/list. That one is the only true one. รายการที่เผยแพร่กันว่ารันบน Hailo-10H ได้ ขัดแย้งกันเอง รวมกันแล้วมีชื่อ qwen2:1.5b, qwen2.5:1.5b, qwen2.5-coder:1.5b, deepseek_r1_distill_qwen:1.5b และ llama3.2 ขนาดใดขนาดหนึ่ง แท็กไม่ตรงกันระหว่างแหล่งข้อมูล และหน้านี้ทดสอบอะไรไม่ได้เลย รายการที่เครื่องของคุณเองพิมพ์ออกมาจาก /hailo/v1/list คืออันเดียวที่จริง 各处公布的 Hailo-10H 可跑模型清单互相打架。合起来提到 qwen2:1.5b、qwen2.5:1.5b、qwen2.5-coder:1.5b、deepseek_r1_distill_qwen:1.5b,还有某个尺寸的 llama3.2。各来源的标签对不上,而这一页一个都测不了。只有你自己机器从 /hailo/v1/list 打出来的那份是真的。
YOU CANNOT PULL ORDINARY OLLAMA MODELS The API looks like Ollama. So people try gemma3 or llama3.3, and expect it to work. It will not. A model has to be compiled for the Hailo-10H first. The list endpoint is not a search of the internet. It is a short menu of what Hailo has built. This is the single biggest surprise on the whole board. API หน้าตาเหมือน Ollama คนจึงลอง gemma3 หรือ llama3.3 แล้วคาดว่าจะใช้ได้ มันไม่ได้ โมเดลต้องถูกคอมไพล์สำหรับ Hailo-10H ก่อน จุดที่ดูรายการไม่ใช่การค้นหาทั้งอินเทอร์เน็ต มันคือเมนูสั้น ๆ ของสิ่งที่ Hailo สร้างไว้แล้ว นี่คือเรื่องที่คนประหลาดใจที่สุดของบอร์ดนี้ 这个 API 长得像 Ollama,于是人们去试 gemma3 或 llama3.3,以为能用。不能。模型必须先为 Hailo-10H 编译过。那个列表接口不是在搜整个互联网,它是 Hailo 已经编好的一份短菜单。这是整块板子上最大的意外。

8 Keep it running after you log out · ให้มันทำงานต่อหลังคุณออกจากระบบ · 你退出登录后让它继续跑

🇬🇧 English

hailo-ollama runs in front of you and stops when you close the terminal. No service file comes with it.

So write one. Then it starts at boot and comes back if it crashes.

🇹🇭 ไทย

hailo-ollama ทำงานอยู่ข้างหน้าคุณ และหยุดเมื่อคุณปิดเทอร์มินัล มันไม่มีไฟล์เซอร์วิสมาให้

งั้นก็เขียนเอง แล้วมันจะเริ่มตอนบูต และกลับมาเองถ้าพัง

🇨🇳 中文

hailo-ollama 跑在你面前,你一关终端它就停。它没带服务文件。

那就自己写一个。这样开机它就起来,崩了还会自己回来。

🛠️ NOT FROM THE DOCS · the ordinary systemd pattern, adjust User=

# /etc/systemd/system/hailo-ollama.service
[Unit]
Description=Hailo Ollama server
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/bin/hailo-ollama
User=pi
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

🛠️ NOT FROM THE DOCS · turning it on

# daemon-reload tells systemd to read the new file. It will not find it alone.
sudo systemctl daemon-reload

# enable means start at boot. --now also starts it this second.
sudo systemctl enable --now hailo-ollama

systemctl status hailo-ollama
journalctl -u hailo-ollama -f
CHECK WHERE hailo-ollama ACTUALLY IS The unit above says /usr/bin/hailo-ollama. That is the usual place for a .deb. But check yours with command -v hailo-ollama. Use whatever it prints. A unit with the wrong path fails. The message does not obviously say "wrong path". ไฟล์ยูนิตข้างบนเขียนว่า /usr/bin/hailo-ollama นั่นเป็นที่ปกติของ .deb แต่ให้ตรวจของคุณด้วย command -v hailo-ollama แล้วใช้ตามที่มันพิมพ์ออกมา ยูนิต systemd ที่พาธผิดจะล้มเหลวพร้อมข้อความที่ไม่ได้บอกชัด ๆ ว่า "พาธผิด" 上面的 unit 写的是 /usr/bin/hailo-ollama。这是 .deb 的常见位置,但你还是用 command -v hailo-ollama 查一下,按它打出来的写。路径写错的 systemd unit 会失败,而报错并不会明说"路径错了"。

🚧 Tutorial 4 — Four things that will bite · บทที่ 4 — สี่เรื่องที่จะกัดคุณ · 教程 4 —— 会咬人的四件事

9 Read these before you buy · อ่านพวกนี้ก่อนจ่ายเงิน · 掏钱之前先读这些

What bitesอะไรกัด什么咬人Whyเพราะอะไร为什么What to doทำยังไง怎么办
Only Hailo modelsเฉพาะโมเดลของ Hailo只能用 Hailo 的模型Each one is compiled for the chipแต่ละตัวถูกคอมไพล์มาเพื่อชิปนี้每个都是为这颗芯片编译的Check the list before you plan anythingดูรายการก่อนวางแผนอะไรทั้งนั้น做任何计划之前先看清单
Port 8000, not 11434พอร์ต 8000 ไม่ใช่ 11434端口是 8000,不是 11434Ollama tools assume 11434เครื่องมือของ Ollama เดาว่าเป็น 11434Ollama 的工具默认 11434Change the base URL, not the codeเปลี่ยน base URL ไม่ใช่เปลี่ยนโค้ด改 base URL,不用改代码
Everything is about 1.5Bทุกตัวประมาณ 1.5B全都是 1.5B 上下8 GB holds the model and its working space8 GB เก็บทั้งโมเดลและพื้นที่ทำงาน8 GB 要装模型和它的工作空间Expect a small model, done fastคาดหวังโมเดลเล็กที่เร็ว预期是一个小模型,但很快
No automatic updatesไม่มีการอัปเดตอัตโนมัติ没有自动更新The zoo is a downloaded fileสวนสัตว์เป็นไฟล์ที่ดาวน์โหลดมา模型园是个下载来的文件Write the version down. Check by hand.จดเวอร์ชันไว้ แล้วตรวจเอง把版本记下来,自己去查
WHAT THIS BOARD IS ACTUALLY FOR It is not a small desktop with a graphics card. It is a fixed menu, run fast, in very little power. Pick it when you already know which model you need. Check it is on the list. Then the Pi stays free and the box stays cool. Do not pick it to replace a general machine. That runs whatever you like. มันไม่ใช่เครื่องเดสก์ท็อปที่มีการ์ดจอแบบย่อส่วน มันคือเมนูตายตัวที่รันได้เร็วและกินไฟน้อยมาก เลือกมันเมื่อคุณรู้ว่าต้องใช้โมเดลไหน โมเดลนั้นอยู่ในรายการ และสิ่งที่คุณแคร์คือพายต้องว่างและเครื่องต้องไม่ร้อน อย่าเลือกมันมาแทนเครื่องที่รันอะไรก็ได้ตามใจ 它不是一台带显卡的台式机的缩小版。它是一份固定菜单,跑得快,耗电极少。当你已经知道要哪个模型、那个模型在清单上,而你在意的是树莓派保持空闲、机器保持凉快时,选它。别指望它替代一台想跑什么就跑什么的机器。

🏆 Tutorial 5 — Four challenges · บทที่ 5 — โจทย์สี่ข้อ · 教程 5 —— 四道题

🇬🇧 English

These need the hardware. Try each one before opening the answer.

The answers come from the manuals, like the rest of this page. Check them against your own box.

🇹🇭 ไทย

ข้อพวกนี้ต้องมีฮาร์ดแวร์ ลองเองก่อนเปิดเฉลยทุกข้อ

เฉลยเขียนจากคู่มือ เหมือนส่วนอื่นของหน้านี้ ให้ตรวจกับเครื่องของคุณเอง

🇨🇳 中文

这些题需要硬件。每一题都先自己试,再打开答案。

答案和这一页其余部分一样,是照手册写的。请拿你自己的机器核对。

10 Try first. The answers are folded away. · ลองเองก่อน เฉลยพับซ่อนไว้ · 先自己试。答案折起来放着。

1Ask it a question from another computer · ถามมันจากคอมพิวเตอร์เครื่องอื่น · 从另一台电脑问它

🇬🇧 English

By default the server answers only the Pi itself. Reach it from your laptop instead.

Do it without changing any code on the Pi.

🇹🇭 ไทย

ปกติเซิร์ฟเวอร์ตอบเฉพาะตัวพายเอง ลองเข้าถึงมันจากแล็ปท็อปของคุณแทน

ทำโดยไม่แก้โค้ดบนพายเลย

🇨🇳 中文

默认情况下这个服务只回答树莓派自己。改成从你的笔记本去够它。

而且不要改树莓派上的任何代码。

Show the answerดูเฉลย看答案

🛠️ NOT FROM THE DOCS · ordinary ssh tunnelling

# An ssh tunnel. -L means: port 8000 on my laptop becomes port 8000 on the Pi.
# Nothing on the Pi changes, and nothing new is exposed to the network.
ssh -N -L 8000:localhost:8000 pi@raspberrypi.local

# Then on the laptop, in another terminal, it looks local:
curl --silent http://localhost:8000/hailo/v1/list
A TUNNEL IS SAFER THAN OPENING THE PORT You could make the server listen on every address instead. Then anyone on your wifi can use your Pi. And there is no password on it. The tunnel gives one person access over ssh. It uses keys you already trust. Prefer it. คุณจะตั้งให้เซิร์ฟเวอร์ฟังทุกที่อยู่ก็ได้ แต่แล้วใครก็ตามบนไวไฟของคุณจะใช้พายของคุณได้ และมันไม่มีรหัสผ่าน อุโมงค์ให้สิทธิ์คนเดียว ผ่าน ssh ด้วยกุญแจที่คุณเชื่อถืออยู่แล้ว เลือกแบบนี้ดีกว่า 你也可以让服务监听所有地址。但那样你 wifi 上任何人都能用你的树莓派,而它没有密码。隧道只给一个人访问,走 ssh,用你本来就信任的密钥。选这个。

2Point an Ollama tool at it · ชี้เครื่องมือของ Ollama มาที่มัน · 把 Ollama 的工具指过来

🇬🇧 English

You have a script that talks to Ollama on port 11434. Make it talk to the HAT instead.

Change as little as you can.

🇹🇭 ไทย

คุณมีสคริปต์ที่คุยกับ Ollama บนพอร์ต 11434 ทำให้มันคุยกับ HAT แทน

เปลี่ยนให้น้อยที่สุดเท่าที่ทำได้

🇨🇳 中文

你有个脚本在和端口 11434 上的 Ollama 说话。让它改去和 HAT 说话。

改动越少越好。

Show the answerดูเฉลย看答案

📘 THE docker run LINE IS FROM THE DOCS · the env var above it is not

# The API shape matches, so only the address changes. Two ports differ:
#   ollama on a normal box : 11434
#   hailo-ollama on the Pi :  8000

# Most tools read one of these. Set it and nothing else.
export OLLAMA_HOST=http://raspberrypi.local:8000

# Open WebUI in Docker takes it as an environment variable too.
docker run -d \
  -e OLLAMA_BASE_URL=http://127.0.0.1:8000 \
  -v open-webui:/app/backend/data \
  --name open-webui --network=host --restart always \
  ghcr.io/open-webui/open-webui:main
THE SHAPE MATCHES. THE MENU DOES NOT. Pointing the tool at port 8000 is the easy half. The hard half is the model name. Your script probably names one the HAT never heard of. The endpoints match; the list behind them does not. Expect to change the model name as well as the address. การชี้เครื่องมือไปที่พอร์ต 8000 คือครึ่งที่ง่าย ครึ่งที่ยากคือสคริปต์ของคุณอาจระบุชื่อโมเดลที่ HAT ไม่เคยได้ยินมาก่อน จุดเชื่อมต่อตรงกัน แต่รายการที่อยู่ข้างหลังไม่ตรง เตรียมเปลี่ยนชื่อโมเดลด้วย ไม่ใช่แค่ที่อยู่ 把工具指到端口 8000 是容易的那一半。难的那一半是:你的脚本里写的模型名,HAT 多半没听说过。接口对得上,接口后面的清单对不上。要改的不只是地址,还有模型名。

3Find out how hot it gets · ดูว่ามันร้อนแค่ไหน · 看看它有多烫

🇬🇧 English

A Pi 5 slows itself down when it gets hot. Watch the temperature while the model answers.

Then decide whether you need a fan.

🇹🇭 ไทย

พาย 5 จะหรี่ความเร็วตัวเองเมื่อร้อน ดูอุณหภูมิระหว่างที่โมเดลกำลังตอบ

แล้วค่อยตัดสินใจว่าต้องมีพัดลมไหม

🇨🇳 中文

树莓派 5 一热就会自己降速。在模型回答的时候盯着温度看。

然后再决定要不要风扇。

Show the answerดูเฉลย看答案

🛠️ NOT FROM THE DOCS · ordinary Raspberry Pi commands

# watch -n 2 repeats a command every two seconds and redraws the screen.
# throttled=0x0 means nothing has been slowed down. Anything else is a warning.
watch -n 2 'vcgencmd measure_temp; vcgencmd get_throttled'

# Leave that running, then send a long prompt from another terminal and watch.
throttled=0x0 IS THE ONLY GOOD ANSWER The value is a set of flags, not a number to read. 0x0 means the Pi has never slowed itself down since boot. Any other value means it did. The bits say whether it was heat or power. The HAT draws real current. So the power bits matter as much as the heat ones. That is why the 27 W supply is on the shopping list. ค่านี้เป็นชุดของแฟล็ก ไม่ใช่ตัวเลขให้อ่านตรง ๆ 0x0 แปลว่าพายไม่เคยหรี่ตัวเองเลยตั้งแต่บูต ค่าอื่นแปลว่ามันเคยหรี่ และบิตต่าง ๆ บอกว่าเป็นเพราะความร้อนหรือเพราะไฟ HAT ที่กินกระแสจริงจังทำให้บิตเรื่องไฟสำคัญพอ ๆ กับบิตเรื่องความร้อน นั่นคือเหตุผลที่อะแดปเตอร์ 27 วัตต์อยู่ในรายการของที่ต้องซื้อ 这个值是一组标志位,不是拿来直接读的数字。0x0 表示开机以来树莓派从没给自己降过速。别的值表示降过,而那些位会说是因为热还是因为供电。一块真吃电的 HAT 会让供电那几位和温度那几位一样要紧——这就是购物清单上要 27 瓦电源的原因。

4Make the preflight script check one more thing · ให้สคริปต์ตรวจเพิ่มอีกอย่าง · 让检查脚本多查一项

🇬🇧 English

Add an eleventh section: is the model zoo already installed?

Use the same ok and bad helpers the script already has.

🇹🇭 ไทย

เพิ่มการตรวจข้อที่สิบสอง คือสวนสัตว์โมเดลติดตั้งไว้แล้วหรือยัง

ใช้ตัวช่วย ok กับ bad ที่สคริปต์มีอยู่แล้ว

🇨🇳 中文

加第十二项检查:模型园是不是已经装好了?

用脚本里已经有的 ok 和 bad 两个帮手。

Show the answerดูเฉลย看答案

🛠️ NOT FROM THE DOCS · extends the script in step 5

# Add this before the final printf in hailo_preflight.sh.
head_ "11. Gen AI model zoo"
if command -v hailo-ollama > /dev/null 2>&1; then
  ok "hailo-ollama found at $(command -v hailo-ollama)"
  note "use that path in the systemd unit"
else
  bad "hailo-ollama not installed"
  note "that is expected before you install the model zoo"
fi

🇬🇧 English

Note what the answer prints. It gives you the real path. Step 8 needs that for the service file.

A check that hands you the next answer is the best kind. Better than one saying only yes or no.

🇹🇭 ไทย

สังเกตสิ่งที่เฉลยพิมพ์ออกมา มันให้พาธจริงกับคุณ ซึ่งขั้นที่ 8 ต้องใช้ในไฟล์เซอร์วิส

การตรวจที่ยื่นคำตอบข้อถัดไปให้คุณ มีค่ามากกว่าการตรวจที่บอกแค่ใช่หรือไม่ใช่

🇨🇳 中文

注意答案打出了什么。它给你真实路径,而第 8 步写服务文件正需要它。

一个顺手把下一个答案递给你的检查,比只会答"是"或"否"的检查有用得多。

🇬🇧 English

One card, one package, one file, one server. That is the whole road.

The hard parts are not the commands. They are choosing Trixie before you flash. And knowing the model list is short.

Get those two right and the rest is an afternoon.

🇹🇭 ไทย

การ์ดหนึ่งใบ แพ็กเกจหนึ่งตัว ไฟล์หนึ่งไฟล์ เซิร์ฟเวอร์หนึ่งตัว นั่นคือเส้นทางทั้งหมด

ส่วนที่ยากไม่ใช่คำสั่ง แต่คือการเลือก Trixie ก่อนแฟลช และการรู้ว่ารายการโมเดลนั้นสั้น

ทำสองอย่างนั้นให้ถูก ที่เหลือใช้เวลาแค่บ่ายเดียว

🇨🇳 中文

一张卡、一个包、一个文件、一个服务。整条路就这些。

难的不是命令。难的是烧录之前就选对 Trixie,以及知道模型清单很短。

这两件做对,剩下的就是一个下午。

You wantคุณอยากได้你想要Look upไปหาคำว่า去查
Cameras and object findingกล้องและการหาวัตถุ摄像头和找物体rpicam-apps, picamera2
A browser front endหน้าเว็บไว้คุย一个浏览器界面open-webui
To see what the chip is doingดูว่าชิปกำลังทำอะไร看芯片在干什么hailortcli monitor
Models built for the chipโมเดลที่สร้างมาเพื่อชิปนี้为这颗芯片编的模型hailo_model_zoo_genai
Boot from a fast diskบูตจากดิสก์เร็ว从快盘启动rpi-clone, NVMe HAT