Loess.ru

having fun

Win 10 freezes

Config: i5-4460 on h81m-k with kingston SSD
win 10 freezes example: push start button, push turn-off button, wait seconds
resolution: Change yor power scheme pci-e «link state power management» to Off

это win10, детка!

p.s. Включение gpedit.msc на win10 home basic: https://blog.simplix.info/disable-update-win10/comment-page-1/#comment-761
dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"

p.p.s. Отключение обновлений win10 (очередное): https://blog.simplix.info/disable-update-win10/

All you need for telestudio is OBS

How to output from OBS to multicast/unicast:
Settings -> Output -> Output Mode -> Advanced
Recording -> Type -> Custom Output (FFmpeg)
FFmpeg Output Type -> Output to URL
File path or URL -> udp://224.0.0.1:1234?pkt_size=1316&buffer_size=65535 (working example, tweak it)

Alternatively you can directly send to just one PC in your system by using his IP, for example: udp://192.168.0.5:9999?pkt_size=1000
You can use any port that is free and accessible on the PC’s you want to use.
…
Container Format -> Depends on the protocol, for udp it would be mpegts
Video Bitrate -> 2500 or higher (depends on your encoder)
Audio Bitrate -> 128 or higher (depends on your encoder)
…
Activate the checkbox «Show all codecs»
Be aware, some combinations and codecs will not work for streaming! You will have to test to find your best combination.
Video Encoder -> libx264 / h264_nvenc (if you have an nvidia gpu) or other codecs can be used
Audio Encoder -> AAC, AC3 or even OPUS can be selected.
…
Start a Recording, not a Stream.
You can now watch the stream in VLC (for example) on another PC in your local network. Open a network stream in VLC and enter the following address: udp://@224.0.0.1:1234(if you used this address as the «File Path» earlier, in the case of streaming to one pc you can enter udp://@:9999 on the receiving PC)

via https://obsproject.com/forum/resources/obs-studio-send-an-udp-stream-to-a-second-pc-using-obs.455/
ffmpeg UDP in/out syntax https://www.ffmpeg.org/ffmpeg-protocols.html#udp
more relay and ffmpeg examples https://obsproject.com/wiki/Streaming-With-SRT-Protocol
OBS scene scheduling/time-based switching https://obsproject.com/forum/threads/scene-change-and-stream-scheduler-based-on-date-time.95375/

If you need to send multicast to specific windows interface:
route add 224.10.20.30/32 inter.fa.ce.ip

How to add Claymore rigs hashrate into Zabbix

Quick, dirty, no changes in rigs configs needed — http gathering:

1. Check your rig web-interface availability from zabbix-agent host https://rig.ip.address:3333/
2. Make script to return hashrate from web page
wget -nv -q -O - http://$1:3333 |grep -oP '(?<=result).*?(?=;)'|awk '{print $NF}'|sed -e 's/^"//'
3. Add this script into /etc/zabbix/zabbix_agentd.conf as
UserParameter=getrighashrate[*],/usr/lib/zabbix/externalscripts/script.sh
and restart zabbix-agent service
4. Check either by
zabbix_agentd -t getrighashrate[rig.ip.address]
or
zabbix_get -s 127.0.0.1 -k getrighashrate[rig.ip.address]
5. Add items into Zabbix into zabbix-agent host and multiply values by 1000. Add graphs into your fav dashboard

Quick, dirty, snmp and logs-involved:

1. Install and run snmpd at every rig
2. At every rig add script to return current logged hashrate:
tail -n 200 /var/log/miner/claymore/lastrun_noappend.log |grep "ETH - Total Speed"|tail -n1|awk '{print $7}'
3. Add this script into /etc/snmp/snmpd.conf as
extend hashrate /path/to/snmp.script
and check for security at extension table
view systemonly included .1.3.6.1.4.1.8072.1.3.2
and restart snmpd service
4. Check this with
snmpget -c public -v2c localhost .1.3.6.1.4.1.8072.1.3.2.4.1.2.8.104.97.115.104.114.97.116.101.1
5. Make Zabbix template with snmpv2 item with your fav {$SNMP_COMMUNITY} and apply this to every rig in Zabbix

Additional чтиво:
https://bitcointalk.org/index.php?topic=3959954.0 https://www.ekzorchik.ru/2017/05/monitoring-the-temperature-of-the-raspberry-board/ https://www.ekzorchik.ru/2016/06/monitoring-the-weather-by-zabbix/

Базовые инструменты для трассировки приложений в Linux

$ strace -e trace=open,access -o strace.log uname

$ strace -e trace=read,write -p <PID>

классы вызовов: file, process, network, signal, ipc, <etc, etc>:

-e trace=network (Trace all the network related system calls.)
-e trace=signal (Trace all signal related system calls.)
-e trace=ipc (Trace all IPC related system calls.)
-e trace=desc (Trace all file descriptor related system calls.)
-e trace=memory (Trace all memory mapping related system calls.)
(https://stackoverflow.com/questions/7482076/how-does-strace-connect-to-an-already-running-process)

Опции strace:
-i — выводить указатель на инструкцию во время выполнения системного вызова;
-k — выводить стек вызовов для отслеживаемого процесса после каждого системного вызова;
-o — выводить всю информацию о системных вызовах не в стандартный поток ошибок, а в файл;
-q — не выводить сообщения о подключении о отключении от процесса;
-qq — не выводить сообщения о завершении работы процесса;
-r — выводить временную метку для каждого системного вызова;
-s — указать максимальный размер выводимой строки, по умолчанию 32;
-t — выводить время суток для каждого вызова;
-tt — добавить микросекунды;
-ttt — добавить микросекунды и количество секунд после начала эпохи Unix;
-T — выводить длительность выполнения системного вызова;
-x — выводить все не ASCI-строки в шестнадцатеричном виде;
-xx — выводить все строки в шестнадцатеричном виде;
-y — выводить пути для файловых дескрипторов;
-yy — выводить информацию о протоколе для файловых дескрипторов;
-c — подсчитывать количество ошибок, вызовов и время выполнения для каждого системного вызова;
-O — добавить определённое количество микросекунд к счетчику времени для каждого вызова;
-S — сортировать информацию выводимую при опции -c. Доступны поля time, calls, name и nothing. По умолчанию используется time;
-w — суммировать время между началом и завершением системного вызова;
-e — позволяет отфильтровать только нужные системные вызовы или события;
-P — отслеживать только системные вызовы, которые касаются указанного пути;
-v — позволяет выводить дополнительную информацию, такую как версии окружения, статистику и так далее;
-b — если указанный системный вызов обнаружен, трассировка прекращается;
-f — отслеживать также дочерние процессы, если они будут созданы;
-ff — если задана опция -o, то для каждого дочернего процесса будет создан отдельный файл с именем имя_файла.pid.
-I — позволяет блокировать реакцию на нажатия Ctrl+C и Ctrl+Z;
-E — добавляет переменную окружения для запускаемой программы;
-p — указывает pid процесса, к которому следует подключиться;
-u — запустить программу, от имени указанного пользователя.

ldd — показывает список совместно используемых библиотек ELFфайла

$ cat ~/script.sh
while inotifywait -e modify \
/var/log/apache2/error.log;
do
tail -1 /var/log/apache2/error.log | \
notify-send "Apache needs love!"
done

incrontab:
Формат заданий:
<путь> <событие> <команда> (с разделением через пробел)

Самые интересные события:
IN_ACCESS — файл был прочитан
IN_ATTRIB — изменились метаданные файла/каталога
IN_MODIFY — файл был изменен
IN_CREATE — файл или каталог был создан в отслеживаемой директории
IN_DELETE — файл или каталог был удален в отслеживаемой директории
IN_DELETE_SELF — отслеживаемый файл или каталог был удален
IN_MOVE — файл был перемещен из отслеживаемого каталога или в него
IN_ALL_EVENTS — все события
В описании команды можно использовать внутренние переменные. Самые полезные:

$@ — полное имя отслеживаемого файла/каталога
$# — относительное имя файла, вызвавшего событие (только при мониторинге каталога)
$% — название события

https://xakep.ru/2011/01/13/54477/ (pdf)

более современные инструменты:
https://github.com/iovisor/bcc/blob/master/docs/tutorial.md
BCC is a toolkit for creating efficient kernel tracing and manipulation programs, and includes several useful tools and examples. It makes use of extended BPF (Berkeley Packet Filters), formally known as eBPF, a new feature that was first added to Linux 3.15. Much of what BCC uses requires Linux 4.1 and above.

Wireguard VPN added to 5.6 kernel

https://www.opennet.ru/opennews/art.shtml?num=52636

Представлен знаковый выпуск VPN WireGuard 1.0.0, который отметил собой поставку компонентов WireGuard в основном составе ядра Linux 5.6 и стабилизацию разработки. Включённый в состав ядра Linux код прошёл дополнительный аудит безопасности, выполненный независимой фирмой, специализирующейся на подобных проверках. Аудит не выявил каких-либо проблем.

Напомним, что VPN WireGuard реализован на основе современных методов шифрования, обеспечивает очень высокую производительность, прост в использовании, лишён усложнений и хорошо зарекомендовал себя в ряде крупных внедрений, обрабатывающих большие объёмы трафика. Проект развивается с 2015 года, прошёл аудит и формальную верификацию применяемых методов шифрования. Поддержка WireGuard уже интегрирована в NetworkManager и systemd, а патчи для ядра входят в базовый состав дистрибутивов Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph и ALT.

Размещённые на сайте проекта результаты тестирования охватывают старую обособленную реализацию WireGuard и отмечены как недостаточно качественные. Со времени проведения тестов код WireGuard и IPsec был дополнительно оптимизирован и теперь работает быстрее. Более полное тестирование, охватывающее интегрированную в ядро реализацию, пока не проведено. Тем не менее, отмечается, что WireGuard в некоторых ситуациях по-прежнему обгоняет IPsec в силу многопоточности, в то время как OpenVPN остаётся очень медленным.

Mikrotik IPSec + Android PSK XAuth

quick and dirty, по мотивам https://wiki.mikrotik.com/wiki/Manual:IP/IPsec :

/ip ipsec peer
add name=mobile passive=yes
/ip ipsec profile
set [ find default=yes ] enc-algorithm=camellia-192,aes-128,3des
/ip ipsec proposal
set [ find default=yes ] enc-algorithms=camellia-192,aes-128-cbc,3des
/ip pool
add name=ipsec ranges=private.ip.range/mask #ip range, "выдаваемый" подключенным клиентам Read More

How to return your 3dprinting back: quick step guide

Быстрый возврат к печати:
1. Фиксируем высоту в миллиметрах или номер слоя (осторожно, если есть поддержка — там мешанина с количеством слоёв), печатаемый исходник;
2. Открываем исходник, считаем высоту, не забывая коррекцию (в самом начале что-то типа: G1 Z0.550 F6000.000), ищем строчку с первой записью «Zxx.xxx» по подсчитанной высоте;
3. Выше этой строчки обязательно должна быть запись «G92 E0». Оставляем всё, что ниже, включая эту запись;
4. Перезапускаем хост, нагреваем хотенд (!!!ВАЖНО, если он остыл, иначе всё порвёт!!!), стол, кулер, скорость печати в рабочий режим;
5. Калибруем x y z. Вставляем G-code начиная с «G92 E0». Поехали!