Povolení nedůvěryhodného přístupu:
- Otevřete Editor registru (Win + R → napište
regedit
). - Přejděte na klíč do:
- Vytvořte nebo upravte hodnotu DWORD (32bit) s názvem:
- Nastavte hodnotu na 1.
regedit
).HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
AllowInsecureGuestAuth
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.
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.
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
Pro spuštění kompilace použijte:
make
Výstupem bude soubor at24.ko, což je zkompilovaný modul jádra.
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>; }; }; }; };
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í.
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
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
Následně ověříme zápis čtením obsahu EEPROM:
sudo hexdump -C /sys/bus/i2c/devices/1-0057/eeprom
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...........-.|