JFíla
úterý 16. prosince 2025
Co dělají jádra RPi po startu? Reverzní inženýrství.
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:
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"
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.
pondělí 15. září 2025
U-Boot script
Vytvořím soubor imx6-hello.txt
bdinfo
Pomocí následujícího příkazu přeložím. V tomto případě je volba architektury zbytečná (přepínač -A)
a na zařízení spustím:
mmc dev 2
mmc part
fatls mmc 2:1
fatload mmc 2:1 ${loadaddr} mx6-hello.scr
md ${loadaddr} 200
iminfo ${loadaddr}
source ${loadaddr}
sobota 13. září 2025
Yocto Linux built
git clone git://git.yoctoproject.org/poky
cd poky
source oe-init-build-env
source oe-init-build-env build
nano build/conf/local.conf
MACHINE ??= "qemux86-64"
IMAGE_FSTYPES += "wic.vmdk"
IMAGE_INSTALL:append = " nano htop mc openssh-sftp-server gcc"
SERIAL_CONSOLES = "115200;ttyS0"
bitbake core-image-minimal
build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.rootfs.wic.vmdk¨
Výběr sestavení:
source oe-init-build-env build-x86 nebo source oe-init-build-env build-imx
středa 27. srpna 2025
Turris LXC IPv4 konektivita
nano /etc/systemd/network/eth0.network
[Match]
Name=eth0
[Network]
Address=192.168.1.10/24
Gateway=192.168.1.1
DNS=8.8.8.8 8.8.4.4
[DHCPv4]
UseDomains=true
UseMTU=true
[DHCP]
ClientIdentifier=mac
sobota 9. srpna 2025
EZS Smart žárovka s PIR čidlem
čtvrtek 3. července 2025
Build Linux pro RPi
Instalovat:
sudo apt updatesudo apt install build-essential git cpio unzip rsync bc libncurses5-dev libssl-dev
Naklonovat repozitář:
git clone https://github.com/buildroot/buildroot.gitcd buildroot
Zkopírovat vzorový konfig pro RPi4
cp configs/raspberrypi4_64_defconfig .config
Upravit dle potřeby:
make menuconfig
vyřešit problém s mezerami v PATH:
#!/bin/bashexport PATH="/usr/local/bin:/usr/bin:/bin" # základní cesty bez mezer
sobota 31. května 2025
úterý 7. ledna 2025
Windows 11 nefunguje Guest přístup na Samba
Povolení nedůvěryhodného přístupu:
- Otevřete Editor registru (Win + R → napište
regedit). - Přejděte na klíč do:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters- Vytvořte nebo upravte hodnotu DWORD (32bit) s názvem:
AllowInsecureGuestAuth
- Nastavte hodnotu na 1.
pátek 3. ledna 2025
Přidání nového modulu do jádra a Device Tree na Raspberry Pi
V tomto článku se podíváme na proces přidání nového modulu do linuxového jádra na Raspberry Pi a jeho konfiguraci pomocí Device Tree (DT). Ukážeme si konkrétní příklad s EEPROM pamětí připojenou přes I2C sběrnici.
1. Stažení a příprava modulu
Nejprve stáhneme zdrojový kód ovladače z repozitáře Linuxu. Použijeme EEPROM ovladač at24:
wget https://raw.githubusercontent.com/torvalds/linux/refs/tags/v6.6/drivers/misc/eeprom/at24.c
Tento ovladač slouží k práci s paměťmi EEPROM přes sběrnici I2C. Zajišťuje správu komunikace mezi jádrem systému a zařízením připojeným přes I2C.
2. Vytvoření Makefile
Makefile definuje pravidla pro kompilaci modulu. Vytvořte soubor s názvem Makefile s následujícím obsahem:
obj-m += at24.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
Popis obsahu Makefile:
- obj-m += at24.o: Určuje, že chceme sestavit modul at24.
- all: Používá se pro sestavení modulu pomocí Makefile. Spustí se příkaz pro kompilaci modulu ve správném adresáři jádra.
- clean: Smaže dočasné soubory vytvořené během kompilace.
Pro spuštění kompilace použijte:
make
Výstupem bude soubor at24.ko, což je zkompilovaný modul jádra.
3. Vytvoření Device Tree pro I2C zařízení
Device Tree (DT) je systémová konfigurace, která popisuje hardwarová zařízení. Pro konfiguraci EEPROM pamětí vytvoříme soubor at24.dts s následujícím obsahem:
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2835";
fragment@0 {
target = <&i2c1>; // Použití I2C-1
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
EEPROM1@50 { // první EEPROM
compatible = "at24,24c02"; // Typ EEPROM
reg = <0x50>; // Adresa na I2C sběrnici
pagesize = <16>; // Velikost stránky
size = <256>; // Celková velikost EEPROM
};
EEPROM2@57 { // druhá EEPROM
compatible = "at24,24c02";
reg = <0x57>; // Adresa na I2C sběrnici
pagesize = <16>;
size = <256>;
};
};
};
};
Vysvětlení obsahu souboru:
- compatible = "brcm,bcm2835";: Specifikuje, že konfigurace je určena pro BCM2835 (Raspberry Pi SoC).
- reg = <0x50>;: Specifikuje skutečnou adresu zařízení na I2C sběrnici, která bude jádrem použita ke komunikaci se zařízením.
- pagesize a size: Definují parametry paměti EEPROM.
4. Kompilace Device Tree
Pro převedení souboru na binární formát použijeme nástroj:
dtc -I dts -O dtb -o at24.dtbo at24.dts
Tímto příkazem vznikne binární soubor at24.dtbo, který je připraven pro použití.
Nahrání overlay:
Zkopírujeme výsledný soubor do adresáře s DT overlays:
sudo cp at24.dtbo /boot/firmware/overlays/
Přidáme overlay do konfiguračního souboru:
echo 'dtoverlay=at24' | sudo tee -a /boot/firmware/config.txt
5. Testování EEPROM
Zápis dat do EEPROM:
Pro otestování funkce EEPROM můžeme zapsat řetězec do paměti:
echo "Zapis do I2C EEPROM" | sudo dd of=/sys/bus/i2c/devices/1-0057/eeprom bs=1 seek=0
Čtení dat z EEPROM:
Následně ověříme zápis čtením obsahu EEPROM:
sudo hexdump -C /sys/bus/i2c/devices/1-0057/eeprom
Ukázkový výstup:
00000000 5a 61 70 69 73 20 64 6f 20 49 32 43 20 45 45 50 |Zapis do I2C EEP| 00000010 52 4f 4d 0a 01 00 0f 00 00 00 00 14 0f 14 2d 10 |ROM...........-.|
sobota 27. dubna 2024
Lineární regrese
- Směrový koeficient (a): a
= Σ((xi - x̄)(yi - ȳ)) / Σ(xi - x̄)² - Úsekový koeficient (b): b
= ȳ - b * x̄
Kde:
x̄aȳreprezentují průměrnou hodnotu x a yxiayireprezentují jednotlivé hodnoty x a y
středa 13. března 2024
Zjištění jaké šifry server podporuje
Na openwrt je nutné nainstalovat nmap-full, který podporuje scriptování a TLS. A stáhnout script ssl-enum-ciphers
Windows 11
"Normální" kontextová nabídka u souboru
reg add HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32 /ve /d "" /f

