sobota 22. listopadu 2025

Build plnohodnotného Busyboxu pro kameru Reolink P330M

Kamera Reolink P330M má uvnitř přístupné piny sériové linky, konzole je chráněná heslem bc2020. Procesor je ARMv7 (NA51089), 128MB SPI Flash (4bit, 8 MHz) a 512 MB RAM.


Použil jsem busybox-1_36_1 (https://github.com/mirror/busybox/archive/refs/tags/1_36_1.zip)

export ARCH=arm

export CROSS_COMPILE=arm-linux-gnueabihf-

Pak už klasicky, v mém případě bylo potřeba vypnout podporu TC (traffic control, Networking Utilities ---> tc)

make defconfig

make menuconfig

make -j 6


Ještě k exkrakci dat z paměti:

Linuxové jádro nám vypíše toto:

11 fixed-partitions partitions found on MTD device spi_nand.0
Creating 11 MTD partitions on "spi_nand.0":
0x000000000000-0x000000040000 : "loader"
0x000000040000-0x000000080000 : "fdt"
0x000000080000-0x000000180000 : "uboot"
0x000000180000-0x000000580000 : "kernel"
0x000000580000-0x000001480000 : "rootfs"
0x000001480000-0x000001f80000 : "app"
0x000001f80000-0x000002380000 : "para"
0x000002380000-0x000002400000 : "sp"
0x000002400000-0x000002480000 : "ext_para"
0x000002480000-0x000004000000 : "download"
0x000000000000-0x000004000000 : "all"

Takže nám stačí uložit "all" tedy /dev/mtd10, která obsahuje všechno.
Na začátku je loader, pak device tree, ten můžeme exportovat a převést na kód takto:

dd if=mtd10_dump.bin of=dt.bin bs=262144 skip=1 count=1
dtc -I dtb -O dts -o device_tree.dts dt.bin

To samé můžeme udělat s U-Bootem (výraz si zjednodušíme zadáním přímo hodnot v hexa :-)):
dd if=mtd10_dump.bin of=uboot.bin bs=512k skip=$((0x80000/512/1024)) count=$(((0x180000-0x80000)/512/1024))

dd if=mtd10_dump.bin of=sp.bin bs=512K skip=71 count=1

V oddílu sp jsem našel prvátní klíč:
echo "-----BEGIN RSA PRIVATE KEY-----" >  private.key
grep -a '<PrivateKeyRsaPem>' sp.bin | sed 's/<PrivateKeyRsaPem>//g; s/<\/PrivateKeyRsaPem>//g' >> private.key
echo "-----END RSA PRIVATE KEY-----" >> private.key

openssl rsa -in private.key -check

Funguje. :-)

https://serhack.me/articles/operating-system-reolink-rlc-810-a/

pondělí 10. listopadu 2025

HomeAssistant na Turris v LXC

 Zvolil jsem Debian 12 (Bookworm), a musel jsem pro něj přeložit Python3.14.0, protože původní verze je příliš stará a nefunguje na něm nejnovější verze HomeAssistantu.

Vytvořit uživatele:

sudo useradd -rm homeassistant -G dialout

vytvoření VENV + aktivace pro homeassistant:

*Až to zase zapomenu, Python balíčky se buď mohou stáhnout jako binárky (whl soubory - rychlejší - není nutné je překládat), pokud existují, nebo se automaticky přeloží (to bude asi náš případ).

/usr/local/bin/python3.14 -m venv .

source bin/activate

A samotná instalace:

pip install homeassistant


Každý projekt v Pythonu má soubor requirements.txt, kde jsou uvedeny všechny potřebné knihovny, a hlavně včetně verzí, pro které byl projekt vytvořen.