pátek 24. prosince 2021

Orange Pi PC

 Systém na micro SD kartě, logy + databáze v eMMC.

ARMbian Bullseye

V eMMC (/dev/mmcblk2p1) Ext4.

Fstab:

/dev/mmcblk2p1 /var ext4 defaults 0 0

pátek 26. listopadu 2021

Linux a když HDD nikdy nespí

Povolíme zápis aktivit do logu:

echo 1 > /proc/sys/vm/block_dump

HDD můžeme uspíme

hd-idle -t sda

 Jak zjistíme stav HDD?

hdparm -C /dev/sda 

dmesg:


[138294.401853] kworker/u4:2(31708): WRITE block 367032 on mmcblk0p1 (8 sectors)

[138294.405752] kworker/u4:2(31708): WRITE block 367096 on mmcblk0p1 (8 sectors)

[138294.405767] kworker/u4:2(31708): WRITE block 367288 on mmcblk0p1 (8 sectors)

[138294.405774] kworker/u4:2(31708): WRITE block 367328 on mmcblk0p1 (8 sectors)

[138294.456742] btrfs-transacti(962): WRITE block 128 on mmcblk0p1 (8 sectors)

[138294.456783] btrfs-transacti(962): WRITE block 131072 on mmcblk0p1 (8 sectors)

[138294.682711] jbd2/sda3-8(2640): WRITE block 3506742232 on sda3 (8 sectors)

[138294.682732] jbd2/sda3-8(2640): WRITE block 3506742240 on sda3 (8 sectors)

[138294.682738] jbd2/sda3-8(2640): WRITE block 3506742248 on sda3 (8 sectors)

[138294.682742] jbd2/sda3-8(2640): WRITE block 3506742256 on sda3 (8 sectors)

[138294.682746] jbd2/sda3-8(2640): WRITE block 3506742264 on sda3 (8 sectors)

[138294.683142] jbd2/sda3-8(2640): WRITE block 3506742272 on sda3 (8 sectors)

[138299.492207] kworker/u4:2(31708): WRITE block 2048 on sda3 (8 sectors)

[138299.492228] kworker/u4:2(31708): WRITE block 4232052992 on sda3 (8 sectors)

[138299.492238] kworker/u4:2(31708): WRITE block 4286578752 on sda3 (8 sectors)

[138299.492246] kworker/u4:2(31708): WRITE block 4288131208 on sda3 (8 sectors)

[138319.640795] kworker/u4:0(12342): WRITE block 4288837800 on sda3 (8 sectors)

[138319.641100] kworker/u4:0(12342): WRITE block 4288837736 on sda3 (8 sectors)

[138324.280643] jbd2/sda3-8(2640): WRITE block 3506742280 on sda3 (8 sectors)

[138324.280662] jbd2/sda3-8(2640): WRITE block 3506742288 on sda3 (8 sectors)

[138324.280668] jbd2/sda3-8(2640): WRITE block 3506742296 on sda3 (8 sectors)

[138324.280672] jbd2/sda3-8(2640): WRITE block 3506742304 on sda3 (8 sectors)

[138324.280676] jbd2/sda3-8(2640): WRITE block 3506742312 on sda3 (8 sectors)

[138324.280680] jbd2/sda3-8(2640): WRITE block 3506742320 on sda3 (8 sectors)

[138324.281064] jbd2/sda3-8(2640): WRITE block 3506742328 on sda3 (8 sectors)

 Dělá to Samba?




středa 24. února 2021

čtvrtek 28. května 2020

Tunelováni TCP spojení IPv4, IPv6, zkrátka všude

Začalo nutností připojit se z IPv4 Only prostřednictvím sítě IPv6 Only na stroj s neveřejnou IPv4 adresou. Ještě štěstí, že mám k dispozici server, který má obě veřejné adresy.

IPv4 (klient) <4=4> IPv4/IPv6 (internetový server) IPv4/IPv6 <6=6> IPv6 (router) IPv4 <4=4> IPv4 (privátní server)

Na privátním serveru nasloucháme:

nc -l 8000

Na routeru nastavíme správně firewall (Accept) a spustíme socat:

socat TCP6-LISTEN:8000,fork <privátní server IPv4>:8000

Na Internetovém serveru spustíme také socat:

socat TCP4-LISTEN:8000,fork TCP6:[<IPv6 adresa routeru>]:8000

A klient (IPv4 Only) se připojí k serveru:
nc <IPv4 adresa internetového serveru> <port>


Jako bonus můžeme trasu mezi serverem a routerem pustit SSL tunelem: (teorie :-))
socat TCP-LISTEN:51000,fork,reuseaddr OPENSSL:remotehost:51000,cafile=certificate.pem,verify=0

socat OPENSSL-LISTEN:4433,reuseaddr,cert=server.pem,cafile=certificate.pem,fork <privátní server IPv4>:8000

středa 29. dubna 2020

Rasbian na RaspberryPi 4

Povolit consoli v souboru: /boot/config.txt

enable_uart=1

  1. # hcitool dev
    
    Sometimes the device is not active right away. Try starting the interface with:
    # hciconfig hci0 up
  2. Power off the bluetooth:
    [bluetooth] # power off
  3. Power on the bluetooth, then enable the pairing method on the mouse if needed"
    [bluetooth] # power on
  4. List the available bluetooth devices, you have to copy the mouse device ID XX:XX:XX:XX:XX:XX:
    [bluetooth] # scan on
  5. Unpair the device if already paired:
    [bluetooth] # remove XX:XX:XX:XX:XX:XX
  6. Trust the device:
    [bluetooth] # trust XX:XX:XX:XX:XX:XX
  7. Pair the mouse with the computer:
    [bluetooth] # pair XX:XX:XX:XX:XX:XX
  8. Connect the computer with the mouse:
    [bluetooth] # connect XX:XX:XX:XX:XX:XX
  9. Unblock the device control:
    [M585/M590] # unblock

Instalace Kodi

sudo apt-get update
sudo apt-get install kodi

A přidáme Kodi do seznamu úloh po startu (/etc/xdg/lxsession/LXDE-pi/autostart):
@kodi

podrobněji o vyladění výkonu:
https://www.raspberrypi.org/forums/viewtopic.php?t=251645

https://wiki.archlinux.org/index.php/bluetooth_mouse
https://learn.adafruit.com/adafruits-raspberry-pi-lesson-5-using-a-console-cable/enabling-serial-console

úterý 4. února 2020

Pluginy Kodi (Python3)

V souvislosti s ukončením podpory Pythonu 2 přechází i LibreElec na Python 3. Pro provizorní opravu pluginu TelevizeSeznamu

by mělo stačit automaticky převést na verzi 3 pomocí 2to3.

Ve složce /storage/.kodi/addons/plugin.video.televizeseznam.cz spustíme.

LibreELEC:~/.kodi/addons/plugin.video.televizeseznam.cz # 2to3-3.7 -w client.py
LibreELEC:~/.kodi/addons/plugin.video.televizeseznam.cz # 2to3-3.7 -w addon.py

a je to. :-)

sobota 18. ledna 2020

Symlinky pro více tiskáren pod OpenWRT

Tiskárny se přesunuly do /dev/usb/lp*, udev byl nahrazen procd. Konfigurační soubory jsou podobné jako u hotplug, tedy v /etc/hotplug.d/ pro USB je to například /etc/hotplug.d/usbmisc/20-p910nd

konfigurační soubor by mělo stačit upravit takto:

skriptík v podstatě načte z /sys/class/usbmisc/lpX/device/ ze souboru ieee1284_id informace o tiskárně a podle názvu tiskárny vytvoří smylink do /dev. Například tedy /dev/ML-1520/dev/CLP-320.

Edit: Tak ještě jedna úprava, původní skript nechával symlinky a pokud uživatel znovu zapnul tiskárny ve špatném pořadí, tak to nefungovalo (soubor ieee1284_id v době odpojování neexistoval). Nově si skript vytváří v /tmp/printers soubory s názvy tiskáren, tak aby věděl kterou při odebrání smazat (uznávám šlo by to jistě i lépe).

vyzobneme název tiskárny (MFG:Samsung;CMD:GDI;MDL:ML-1520;CLS:PRINTER;MODE:GDI;STATUS:IDLE;CODE:10003)

cut -d: -f4 /sys/class/usbmisc/$DEVICENAME/device/ieee1284_id

odebereme ";CLS"
sed -e 's/;.*//'
odebere mezeru a vše za ní (příklad názvu "CLP-320 Series") sed -e 's/ .*//'


A nyní kompletní skript:
#!/bin/sh case "$ACTION" in add) [ -n "${DEVNAME}" ] && [ "${DEVNAME##usb/lp*}" = "" ] && { chmod 660 /dev/"$DEVNAME" chgrp lp /dev/"$DEVNAME" PRINTERNAME=`cut -d: -f4 /sys/class/usbmisc/$DEVICENAME/device/ieee1284_id | sed -e 's/;.*//' | sed -e 's/ .*//'` ln -s /dev/$DEVNAME /dev/$PRINTERNAME mkdir /tmp/printers echo "/dev/$PRINTERNAME" > /tmp/printers/$DEVICENAME } ;; remove) [ -n "${DEVNAME}" ] && [ "${DEVNAME##usb/lp*}" = "" ] && { # device is gone PRINTERNAME=`cat /tmp/printers/$DEVICENAME` rm $PRINTERNAME rm /tmp/printers/$DEVICENAME } ;; esac




sobota 11. ledna 2020

Nový DVB-T2 tuner

Tak to přišlo, po odchodu na zasloužený odpočinek analogové vysílání odchází na odpočinek i standart DVB-T. Pro hrátky s příjmem digitální TV jsem si musel koupit nový USB tuner.

kmod-media-tuner-r820t
kmod-dvb-usb-rtl28xxu
rtl-ais






RTL2832P, SONY CXD2887ER, Rafael Micro R828D


29881.210626] r820t 17-003a: destroying instance
[29881.210953] dvb_usb_v2: 'Astrometa DVB-T2:2-1.2' successfully deinitialized and disconnected
[29883.780263] usb 2-1.2: new high-speed USB device number 5 using ehci-pci
[29883.899164] usb 2-1.2: New USB device found, idVendor=15f4, idProduct=0131, bcdDevice= 1.00
[29883.899171] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[29883.899175] usb 2-1.2: Product: dvbt2
[29883.899179] usb 2-1.2: Manufacturer: astrometadvbt2
[29883.906786] usb 2-1.2: dvb_usb_v2: found a 'Astrometa DVB-T2' in warm state
[29884.053298] usb 2-1.2: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[29884.053317] dvbdev: DVB: registering new adapter (Astrometa DVB-T2)
[29884.053327] usb 2-1.2: media controller created
[29884.053949] dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
[29884.061026] i2c i2c-16: Added multiplexed i2c bus 17
[29884.061032] rtl2832 16-0010: Realtek RTL2832 successfully attached
[29884.061085] i2c i2c-16: cxd2841er_attach(): I2C adapter 00000000ae7d58ea SLVX addr 6e SLVT addr 6c
[29884.065637] i2c i2c-16: cxd2841er_attach(): attaching CXD2837ER DVB-C/T/T2 frontend
[29884.065644] i2c i2c-16: cxd2841er_attach(): chip ID 0xb1 OK.
[29884.065656] usb 2-1.2: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[29884.065672] dvbdev: dvb_create_media_entity: media entity 'Realtek RTL2832 (DVB-T)' registered.
[29884.065999] usb 2-1.2: DVB: registering adapter 0 frontend 1 (Sony CXD2837ER DVB-T/T2/C demodulator)...
[29884.066009] dvbdev: dvb_create_media_entity: media entity 'Sony CXD2837ER DVB-T/T2/C demodulator' registered.
[29884.066281] r820t 17-003a: creating new instance
[29884.073613] r820t 17-003a: Rafael Micro r820t successfully identified
[29884.073638] r820t 17-003a: attaching existing instance
[29884.091830] r820t 17-003a: Rafael Micro r820t successfully identified
[29884.104867] rtl2832_sdr rtl2832_sdr.1.auto: Registered as swradio0
[29884.104872] rtl2832_sdr rtl2832_sdr.1.auto: Realtek RTL2832 SDR attached
[29884.104875] rtl2832_sdr rtl2832_sdr.1.auto: SDR API is still slightly experimental and functionality changes may follow
[29884.112782] Registered IR keymap rc-empty
[29884.112917] rc rc0: Astrometa DVB-T2 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/rc/rc0
[29884.113045] input: Astrometa DVB-T2 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/rc/rc0/input17
[29884.113585] rc rc0: lirc_dev: driver dvb_usb_rtl28xxu registered at minor = 0, raw IR receiver, no transmitter
[29884.113963] usb 2-1.2: dvb_usb_v2: schedule remote query interval to 200 msecs
[29884.122402] usb 2-1.2: dvb_usb_v2: 'Astrometa DVB-T2' successfully initialized and connected

úterý 19. listopadu 2019

Build DigiTempu pro Turris

Nejprve je potřeba nainstalovat vše potřebné


apt-get install ca-certificates git build-essential zlib1g-dev gawk libssl-dev subversion unzip libncurses-dev wget python file rsync

pak již stačí naklonovat aktuální verzi zrojáků pro TurrisOS

https://gitlab.labs.nic.cz/turris/turris-build/-/archive/master/turris-build-master.zip

Obsah rozbalíme a spustíme skript compile_pkgs, parametr board nahradíme HW pro který balíček kompilujeme (turris, omnia, mox)

compile_pkgs prepare_tools -t <board>

Pak již stačí přidat do feeds.conf link na balíček DigiTempu.

src-git hnw_digitemp https://github.com/hnw/openwrt-packages-digitemp.git

A provést update a zkompilovat balíček DigiTempu

./scripts/feeds update -a
./scripts/feeds install digitemp
make defconfig
make package/toolchain/compile
make package/digitemp/compile

A je to, v in/packages/arm_cortex-a9_vfpv3/packages/
No tak ne, bude ještě potřebovat laborovat, balíček nám nejde nainstalovat:
root@JFila:digitem# opkg install digitemp_3.7.2-2_arm_cortex-a9_vfpv3.ipk 
Unknown package 'digitemp'.
Collected errors:
 * pkg_hash_fetch_best_installation_candidate: Packages for digitemp found, but incompatible with the architectures configured
 * opkg_install_cmd: Cannot install package digitemp.


https://gitlab.labs.nic.cz/turris/turris-build
https://github.com/hnw/openwrt-packages-digitemp

středa 3. července 2019

Dekódování certifikátu

openssl x509 -text -noout -in certificate.crt
openssl crl -inform DEM -text -noout -in certificate.crt

formát certifikátu:

-----BEGIN CERTIFICATE-----
MIIF+TCCBOGgAwIBAgIRAOUXUXsbB/LpS0VTQsz/HFcwDQYJKoZIhvcNAQELBQAw
gY8xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
JU9CcMK//V5CIAjGNzV55hB7zFYAAAFoWw+eiwAABAMARzBFAiEAmdEbql+1pWWf
HmpkY34JziCOQzaDlFVtUFen+blgIWwCIBVnwDD3vnwSsrO2T5Clo5Pjqa+xxU7O
trLo/ZRGkICBMA0GCSqGSIb3DQEBCwUAA4IBAQAzOM9lS3RSU7rLy8T3BfixHvua
ErZ+YOHCHpYhlCeSuFZ66jVHueYWvgfF8A+enRdMM0k0z0PC9enREnumNDq3msCf
WYhSLd5lDXiEddg2GCrXkwhOFfOiG0tywS5CD+hLsTq1LQkWDQg7EKlIb6ddhaZO
IYEQ9xwE7aehynQEvAjv3UyevMYfvw7glY+MW5bkMfsxPndDD1gDbnYt8kyenjcv
odjnkvTw4ngnCy1gF9mVWkgQsE1j34FER1bVtR/FlspI0FB+ogV4Qhso1N23DwtF
VDKxH8p+ddYh1LX4b6Oy3dZqzt4HOcunPKsFv36ABpeTs8FPOjgQueTWfHQ4
-----END CERTIFICATE-----



https://www.sslmentor.cz/napoveda/formaty-certifikatu