č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