17.03.2021

GPIO

 Если ты начнёшь гуглить, как добраться до пинов Кубика? то тебя ждут крекс-пекс-фекс. И не делай это с собой. Но если ты всё же решишься на это колдунство, то тебе придётся гуглить, почему в Armbian нету соответствующих ингридиентов? И так ты попадёшь в зазеркалье. Астанавись! Лучше делай так

1. Подключись к пину (кликабельно)


2. Найди его в таблице - https://linux-sunxi.org/A20/PIO

Предположим, это будет PG09 (201)

3. Проверяемся. Берём английский алфавит и калькулятор, подсчитываем номер пина по формуле: (G-1)*32+9=201, где G - порядковый номер этого символа в алфавите. Получилось значение, как в таблице? Отлично! Теперь PG09 мы отныне будем звать 201


 

 4. Пишем скрипты

#!/bin/bash
# PG9 - (G-1)*32+9=201

PIN=$1	# 201
PIN_STRING="gpio$PIN"

# Выведем красиво пин, с которым будем работать
echo -e "\033[0;32m"	# Зелёненьким
echo -e "\n"
echo $PIN - $PIN_STRING
echo -e "\n"
tput sgr0	# Вернуть настройки терминала

# Активация пина
echo $PIN > /sys/class/gpio/export
# Проверка
ls /sys/class/gpio/
# Инициализация направления пина
echo out > /sys/class/gpio/$PIN_STRING/direction
# Прочитать пин
cat /sys/class/gpio/$PIN_STRING/value
# Установить пин
echo 1 > /sys/class/gpio/$PIN_STRING/value
# Проверить пин
cat /sys/class/gpio/$PIN_STRING/value
5. Что творится у нас по пинам?
gpiodetect
gpioinfo | grep "\[used\]"
И в качестве бонуса запрограммируем светодиоды. Сначала узнаем, какие есть триггеры. Далее задаём триггер светодиоду. В примере камень и флешка.
# All Trigers
cat /sys/class/leds/cubieboard2:blue:usr/trigger
# Set Blue LED
echo cpu > /sys/class/leds/cubieboard2:blue:usr/trigger
# Set Green LED
echo mmc0 > /sys/class/leds/cubieboard2:green:usr/trigger

16.03.2021

Port Forwarding -> VPN

 Были времена, когда на Белтелекомовском домашнем роутере можно было сделать проброс портов, придти на работу и попасть по сети домой с использованием DynDNS. Это было давно и уже не правда. Сейчас всё за NAT-ами. Проброс на роутере совсем не актуален для домашнего использования. 

Мой Кубик на данный момент является точкой доступа из сети к домашним устройствам. Схема проста. 

  1. На Кубике поднят VPN (Hamachi).
  2. На кубике сделан проброс портов iptables. 

Эта тема более актуальна для специфических протоколов, так как для проброса HTTP из сети через кубик на домашнее устройство можно обойтись Webmin. Да у него есть такая возможность - редирект в домашней сети и прячется во вкладке HTTP Tunnel.

Если надо попасть в SSH или заходить на Webmin неудобно, то применим колдунство iptables

Однако, давай по порядку. Сначала VPN.



#!/bin/bash
E_MAIL=$1

# https://www.vpn.net/linux
wget https://www.vpn.net/installers/logmein-hamachi_2.1.0.203-1_armhf.deb
dpkg -i logmein-hamachi_2.1.0.203-1_armhf.deb
hamachi login
hamachi attach E_MAIL

Проще, наверное, и не бывает. Регистрируешься, смотришь версию, устанавливаешь, в webe подключаешь свои точки к сети и делаешь прочие настройки. Теперь твои устройства связаны в своей собственной сети. Бесплатный тариф ограничен пятью точками. Но ко всей домашней локальной сети можно достучаться с Кубика при поднятом Hamachi только на нём. Для удобства делаем проброс порта.

Сервер - это девайс в локальной сети, к которому мы стучимся из VPN (192.168.100.15).

Шлюз - это Кубик.

Неправильный порт - порт, по которому из VPN мы получим доступ к девайсу (90).

#!/bin/bash
EXT_IP="xxx.xxx.xxx.xxx" # внешний VPN, реальный IP-адрес шлюза 
INT_IP="xxx.xxx.xxx.xxx" # реальный IP-адрес шлюза в локальной сети
EXT_IF=ham0 # Внешний и внутренний интерфейсы.
INT_IF=eth0 # Для шлюза они вряд ли изменятся, поэтому можно прописать вручную.
FAKE_PORT=$1  # Вначале передаём скрипту "неправильный" порт на внешнем интерфейсе,
LAN_IP=$2     # затем - локальный адрес сервера
SRV_PORT=$3   # и в конце - реальный порт для подключения к серверу

iptables -t nat -A PREROUTING -d $EXT_IP -p tcp -m tcp --dport $FAKE_PORT -j DNAT --to-destination $LAN_IP:$SRV_PORT
iptables -t nat -A POSTROUTING -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j SNAT --to-source $INT_IP
iptables -t nat -A OUTPUT -d $EXT_IP -p tcp -m tcp --dport $SRV_PORT -j DNAT --to-destination $LAN_IP
iptables -I FORWARD 1 -i $EXT_IF -o $INT_IF -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j ACCEPT

Пример использования скрипта

port_forward.sh 90 192.168.100.15 80
Теперь, если мы постучимся в кубик по его VPN-адресу на порт 90, то мы попадём на 80-ый порт по адресу в локальной сети 192.168.100.15

Это колдунство взято из этой статьи - Проброс и перенаправление портов в iptables 

Сохранить таблицы и восстановить после пеерзагрузки:

apt-get install iptables-persistent
systemctl enable netfilter-persistent
iptables-save > /etc/iptables/rules.v4

Motion Eye



 

Есть замечательная обёртка на Python для Motion - MotionEye.

# Эти ребята замутили даже дистрибутив - MotionEyeOS

В Wiki установка расписана уже с установкой самого Motion. Больше никакого колдовства для Motion не потребуется, всё остальное мышкой через web-интерфейс. Совушка уже сама будет запускать демона с заботливо подготовленным конфигом, который будет лежать здесь - /etc/motioneye/motion.conf

На данный момент у меня Armbian Focal и установка по мануалу для Ubuntu. Стоит отметить, что MotionEye не запускается под Python3, только Python2.

Соберу в удобное для себя с некоторыми актуальными правками и b

apt-get install ssh curl motion ffmpeg v4l-utils -y
# reboot
apt-get install python2 -y
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
python2 get-pip.py
apt-get install libffi-dev libzbar-dev libzbar0 -y
apt-get install python2-dev libssl-dev libcurl4-openssl-dev libjpeg-dev -y
apt-get install python-pil -y
pip2 install motioneye

# Default config
mkdir -p /etc/motioneye
cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf

# Work Dir - Yandex.Disk
# mkdir -p /mnt/ya.disk

# autostart
cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service
systemctl daemon-reload
systemctl enable motioneye
systemctl start motioneye

# check
netstat -tulpn | grep :8765 

# update
pip2 install motioneye --upgrade
systemctl restart motioneye

 

 

В MotionEye встроена уже загрузка фото/видео в некоторые облака и работа по добавлению новых сервисов ведётся... Ну а я добавлю ЯндексДиск.

apt install davfs2
mkdir /mnt/ya.disk
chmod -R 777 /mnt/ya.disk
usermod -aG davfs2 user

# Сохранить пароль для автостарта
nano /etc/davfs2/secrets    
# https://webdav.yandex.ru login password

# Монтирование диска
nano /etc/fstab             
# webdaveu.yandex.ru /mnt/ya.disk davfs users,rw,_netdev 0 0

# При поднятии сети примонтировать (на всякий случай)
nano /etc/network/if-up.d/yadisk_mount
#   #! /bin/sh
#   mount -a
chmod +x /etc/network/if-up.d/yadisk_mount

mount -a
# check
df -h | grep /mnt
ls /mnt/ya.disk

 

 

Добавим уведомление на почту. 

Первым делом идём сюда и включаем доступ для ненадёжных приложений. Далее забиваем поля в соответствующей вкладке.

  • SMTP Server: smtp.gmail.com
  • SMTP Port: 587
  • TLS: ON

 

17.11.2017

SDCard

Вылавилась мне из ибея карточка
SanDisk 16GB Ultra A1 Micro SD SDHC Card 98MB/s UHS-I C1


Уж не знаю, при каких условиях она выдаст под 98MB/s, но протестировать необходимо.
Первым делом и с лёгкостью:
hdparm -t /dev/mmcblk0
Далее устанавливаю FIO и делаю benchmark:
fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread --bs=4k --direct=0 --size=512M --numjobs=16 --runtime=240 --group_reporting
// Тотальный размер равен SIZE x JOBS
При таком задании (8Gb) получил результат:
5401KB/s
1350 IOPS

Теперь хочу сравнить NAND с CDCard
fio --name=randread --ioengine=libaio --iodepth=1 --rw=randread --bs=4k --direct=0 --size=512M --numjobs=8 --runtime=240 --group_reporting

FIO может оставлять файлы в домашней директории. Для поиска лишнего хорошо подходит визуальная утилита Baobab


Под Windows 7 x64

Собственно, предъявить как бы и нечего. По скорости Class 10, A1 как бы соответствуют 10 MB/s. Но душа не спокойна.
А что с I/O Perfomance ?
IOPS = (MBps Throughput / KB per IO) * 1024 (convert)
И в случае с CrystalDiskMark 6.0.0 x64 минимальные слегка округлённые в большую сторону значения получаются:
Read (4K) = 950 IOPS
Write (4K) = 460 IOPS

ATTO Disk Benchmark Tool показывает: 

Read (4K) = 990 IOPS
Write (4K) = 685 IOPS

А должно быть 1500 и 500 соответственно. A1 и да и нет...

Далее ищем лого
и узнаём от самого SanDisk, что это некая максимальная призрачная величина для этикетки и рекламы. Отличная техническая спецификация! Так что, вроде как, снова не обманули ))
А если надо быстрее, то вот картинка


SanDisk Extreme соответствует 30MB/s

16.11.2017

В кучку

Любая информация, размещенная в этом блоге, предназначена только для свободного изучения. Содержание блога предназначено только для общих целей. Автор не даёт гарантий и не несет ответственности за точность и полноту сведений, приведенных на данном сайте. Ни при каких обстоятельствах автор не несет ответственности за какой-либо прямой, непрямой, особый или иной косвенный ущерб в результате использования информации в этом блоге или на любом другом сайте, на который имеется гиперссылка с этого блога, возникновение зависимости, снижения продуктивности, увольнения или прерывания трудовой активности, а равно и отчисления из учебных учреждений, за любую упущенную выгоду, приостановку хозяйственной деятельности, потерю программ или данных в Ваших информационных системах или иным образом, возникшие в связи с доступом, использованием или невозможностью использования Сайта, Содержимого или какого-либо связанного интернет-сайта, или неработоспособностью, ошибкой, упущением, перебоем, дефектом, простоем в работе или задержкой в передаче, компьютерным вирусом или системным сбоем, даже если автор будет явно поставлена в известность о возможности такого ущерба. Используя данный блог, Вы выражаете свое согласие с «Отказом от ответственности» и установленными Правилами и принимаете всю ответственность, которая может быть на Вас возложена.
  1. Железо + редизайн
  2. DEBUG
  3. Install Cubieez + другие образы
  4. Подключаю монитор 
  5. Tune Cubiezz
  6. Install Software
  7. Backup++
  8. WAR
  9. ARMBIAN 

Что умеет мой сервер на данный момент?
  1. Подтягивать из дропбокса торрент-файлы и автоматом начинать их закачку трансмиссией в файлопомойку.
  2. Файлопомойка Samba и FTP с хранением на винте SATA
  3. Выдавать видео-поток в сеть, складывать в дропбокс скриншоты движения.
  4. Играть музыку и транслировать её в сеть.
  5. Показывать картинки ))
В планах прикрутить большие красные кнопки для управления музлом и прочим. Благо пинов есть

sudo apt update && sudo apt upgrade


15.11.2017

Armbian

Я тут внезапно решил, что Armbian лучший вариант:
  • обновляется
  • десктоп + сервер
  • прилизан и красив
  • умеет играть мультимедию
  • присутствует в коробке скрипт установки в NAND
Но, поскольку он универсальный, то приходится допиливать. И после горячо мною полюбившегося Cubieez-nand есть не очевидные моменты.

Во-первых, не стоит слепо вестись на подсказку и запускать команду UPGRADE. Может поломаться.

2. NET

Из под пользователя не поменяешь настройки сети, ни в графике, ни через armbian-config, который вроде как и требует привилегий. Лезешь в /etc/network/interfaces и там всё красиво, но не работает ))

3. ROOT-NODM

Видео может не играть из под пользователя. Жмякать в консоли sudo startx для просмотра видосика ломает. И я сломаю идеологию и буду работать из под root-а. Для этого надо подправить autologon. Правлю в файле /etc/default/nodm параметр NODM_USER=root


4. APT

Установка всего и сразу
Тут сразу интересный момент, это apt vs apt-get
Для более удобного разрешения и в след за рекомендациями использовать aptitude vs apt
А теперь всё вместе и подробно Команды aptitude, apt-get и apt




sudo nano /etc/apt/sources.list
>> deb http://download.webmin.com/download/repository sarge contrib
>> Ctrl-O, Ctrl-X
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc
apt update
apt install gparted cryptkeeper memtester filezilla firefox samba webmin python-pip mpd mpc ario xfce4-mpc-plugin transmission-daemon transmission-remote synaptic -y

5. SOFT

Подправляю статьи для transmission и mpd

6. Bluetooth 

7. RUS

Русификация (ещё не делал)

29.04.2016

Редизайн

И снова редизайн, очередной.

Была барсетка
Фото-рамка в системнике
Была почти универсальная упаковка стяжками - Барсетка v2
И вот теперь сканер разума

Блок питания от ноутбука даёт 19В при 3,42А. Далее два DC-DC на 5В и на 12В. Радиаторы в этих режимах не очень то и нужны, но были прилеплены на КПТ-8 эпоксидкой. Термоклей так и не купил, но нашлась 10-ти минутная эпоксидка, да.

На 5В повесил две банки по 4700 мкФ. А на 12В - шесть банок по 4700 мкФ и даже этого мало.
Винт заводится со второй-третьей попытки при напряжении в 13В. На старте блинов просаживает питание до 10В. Или питатель LM2596 совсем говно, или винт сумасшедший.
Температурный режим с этим безумным винтом тоже впечатляет


Ещё в "сканере разума" встроен свитч на три живых порта и вафелька китайская. Так уж удачно случилось, что вафелька, приехав из Китая, честно отработала пол часа и откинулась по питанию. Я на неё повесил ещё 2200 мкФ и радиатор. И теперь мой кубик в сеть может выходить, как по кабелю, так и по эфиру. Причём, эфир вокруг ещё и репитится. А в USB можно всадить не открывая корпус сканера, через прорезь. Для сурового USB-гэнгбэнга приобретён 3.0 хабик на 4 порта, но в корпус сканера он пока не встал, м.б. со временем. Со временем и куллер появится, к лету.



27.03.2016

Барсетка v2

Барсетка сшита стяжками.
Имеет блок питания,
USB 3.0
и SATA 2.5




Остановка демона


















Что может быть проще?
/etc/init.d/transmission-daemon stop
В Ubunte (Armbian Legacy Ubuntu Trusty) так остановить не получится. Даже не поможет
killall transmission-daemon
start-stop-daemon -Kvx /usr/bin/transmission-daemon
Бесполезно так же закрывать через PID:
ps axu | grep transmission-daemon
pidof transmission-daemon
kill 12012 
В таком случае используем команду:
service transmission-daemon stop
Можно почитать аск How to enable or disable services?

А вот с тем же дистрибутивом Armbian Ubuntu и пакетом unbound ситуация иная - юзай killall в придачу.

Power supply

Вопрос питания затрагивался в посте Падает
Статистика собрана здесь Cubieboard power usage with SATA из которой следует, что общее потребление Кубика с SATA во время копирования большого файла 1,1А. Закладываю 1,5А

 

 

16.03.2016

DNSLeak - DNSCrypt-proxy

Установить его можно, конечно, очень легко:
add-apt-repository ppa:anton+/dnscrypt
apt-get update
apt-get install dnscrypt-proxy
и он сразу заработает на адресе 127.0.0.2
Причесать можно в файле конфигурации
/etc/default/dnscrypt-proxy
Но я для надёжности хочу две копии процесса на разные DNSCrypt-сервера.
Поэтому пойдём более сложным путём.


Установка

Для работы dnscrypt-proxy нужна библиотека Sodium crypto, установим её предварительно: 
Установка LIBSODIUM

Установка расписана в документации

В таких делах, разумеется, лучше перебздеть и установить крайнюю версию.
git clone https://github.com/jedisct1/dnscrypt-proxy.git 
cd dnscrypt-proxy 
./autogen.sh
./configure && make -j2
make install

Но у меня не получилось с GitHub-а, тогда можно, как вариант, зная желаемую версию, установить вот так:

wget http://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.6.1.tar.gz -O - | tar -xz

cd dnscrypt-proxy-1.6.1/
./configure && make -j2
make install
>>>???>>> cp dnscrypt.conf /etc/init/
cd ..
rm -rf dnscrypt-proxy*

В попытках запустить две копии с разными конфигами всякое непотребное творил. Приходилось полностью удалять установленные пакеты:
dpkg --purge --force-depends dnscrypt-proxy


Запуск

Пробуем запустить:
/usr/local/sbin/dnscrypt-proxy -R 4armed --local-address=127.0.0.1:40 --daemonize --pidfile=/run/dnscrypt-proxy40.pid 

Задать можно и другие опции.
При этом, dnscrypt-proxy подсматривает в файл:
 /usr/local/share/dnscrypt-proxy/dnscrypt-resolvers.csv
 /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv
где сопоставлены имена серверов с их адресами и портами, ключами и всё такое - БД. Это сделано для нашего удобства! В качестве аргумента даём просто имя. Но и не забываем оберегать этот файл от изменений злыдней.

Запускается, сообщает радостные вести, но не демонизируется.
[INFO] + DNS Security Extensions are supported
[INFO] + Provider supposedly doesn't keep logs


DNSCrypt-Loader


Тыркался и нашёл DNSCrypt-Loader
Установка и запуск расписаны там.
Но при попытке запуска с заданным резолвером ошибка: Loading failed.
Конфиги в директории /etc/dnscrypt-loader/ пустые.
Из исходников стало ясно, что конфиги сохраняются, если процесс запущен и работает. А из текстово-графического интерфейса стало понятно, что dnscrypt-loader не может грамотно распарсить файл /usr/local/share/dnscrypt-proxy/dnscrypt-resolvers.csv
Пришлось открыть вопрос #5

Наткнулся ещё на предупреждение, что
Please note that on Linux systems (kernel >= 3.9), multiples instances of dnscrypt-wrapper can run at the same time. Therefore, in order to switch to a new configuration, one can start a new daemon without killing the previous instance, and only kill the previous instance after the new one started.
И понял, что устал от Ubuntu и решил, что пора перебираться на ванильный Дебиан, пожертвовав графикой.

Установил Ванильный и всё заработало.

Всяческие проверки

Список открытых портов:
netstat -lntu
netstat -anp | grep dnscrypt-proxy

Посмотрим на зашифрованный запрос
tcpdump -i eth0 port 443


Косяки


1. При запуске dnscrypt-proxy получаем ошибку:
loading shared libraries: libsodium.so.4: cannot open shared object file: No such file or directory

Решение (via):
Если libsodium был установлен без ошибок, но проблема возникает, то выполняем:
# ./configure --libdir=/usr/local/lib
Если проблема остается то выполняем:
# ln -s /usr/local/lib/libsodium.so.4 /usr/lib/libsodium.so.4

2. При выполнении service dnscrypt start получаем:
# service dnscrypt start
dnscrypt stop/waiting
Скрипт dnscrypt-proxy находится в /usr/local/sbin/dnscrypt-proxy, а скрипт его ищет в /usr/sbin/dnscrypt-proxy.

Решение (via):
# ln -s /usr/local/sbin/dnscrypt-proxy /usr/sbin/dnscrypt-proxy

The Sodium crypto library








В таких делах, разумеется, лучше перебздеть и установить крайнюю версию.
git clone https://github.com/jedisct1/libsodium.git 
cd libsodium 
./configure && make && make check
make install
ldconfig


Или, как вариант, зная желаемую версию, можно установить вот так:
apt-get update
apt-get install build-essential

wget http://download.libsodium.org/libsodium/releases/libsodium-1.0.8.tar.gz -O - | tar -xz

cd libsodium-1.0.8/
./configure && make && make check
make install
ldconfig
cd ..
rm -rf libsodium*

Установка в документации Sodium

DNSLeak - Unbound

Установка


apt-get install unbound
cd /etc/unbound
wget ftp://ftp.internic.net/domain/named.cache # Это список корневых DNS-серверов
unbound-control-setup # генерируем ключи
chown unbound:root unbound_* # хозяин
chmod 440 unbound_*
cp /usr/share/doc/unbound/examples/unbound.conf /etc/unbound/unbound.conf.default
nano /etc/unbound/unbound.conf

 

 

 

Конфигурация

/etc/unbound/unbound.conf
include: "/etc/unbound/unbound.conf.d/*.conf"
module-config: "validator iterator"

server:
  identity: "DNS" 
 version: "1.0" 
 hide-identity: yes 
 hide-version: yes 
 harden-glue: yes

 num-threads: 1 # Количество потоков
 msg-cache-size: 32m # размер кеша полученных DNS ответов
 rrset-cache-size: 64m #        кеша DNS записей
 key-cache-size: 20m # размер памяти для хранения DNSSEC ключей
 cache-max-ttl: 2678400 # максимальный срок жизни записей в кеше (24ч.*31)
 # сколько одновременных клиентских запросов сможет обработать один поток
 num-queries-per-thread: 1024
 # срок жизни записей из внутреннего кеша "неработающих" и "неправильных" DNS серверов
 infra-host-ttl: 60 
 infra-lame-ttl: 120
 # сколько различных случайных портов может использовать при проведении запросов
 outgoing-range: 512 

 verbosity: 1 # Степень вывода логов 1-4
 logfile: "/var/log/unbound.log"
 use-syslog: no

#Кому разрешено посылать рекурсивные запросы (пользоваться кешем)
access-control: 0.0.0.0/0 allow
private-address: 10.0.0.0/24 
port: 53
interface: 127.0.0.1                 # Интерфейс на котором будем слушать 53-й порт
interface: 10.10.10.10               #
interface-automatic: no              # Определять интерфейсы автоматически
outgoing-interface: 10.10.10.10      # ip адрес интерфейса, который подключен к интернет
do-not-query-localhost: no 
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: yes

forward-zone: 
    name: "." 
#    forward-addr: 127.0.0.1@40 # dnscrypt-proxy
#    forward-addr: 127.0.0.1@41 # dnscrypt-proxy
    forward-addr: 8.8.8.8@53    # google
    forward-addr: 77.88.8.8@53  # yandex

remote-control: 
    control-enable: yes 
    control-interface: 127.0.0.1 
#    control-interface: 10.10.10.10 
    control-port: 953

server-key-file: "/etc/unbound/unbound_server.key"
server-cert-file: "/etc/unbound/unbound_server.pem"
control-key-file: "/etc/unbound/unbound_control.key"
control-cert-file: "/etc/unbound/unbound_control.pem"



Запуск и всяческие проверки

unbound-checkconf /etc/unbound/unbound.conf
service unbound restart
ps auxw | grep unbound      # процесс
netstat -anp | grep unbound # порты
nslookup mail.ru 10.10.10.10
drill -D mail.ru @127.0.0.1
drill india.com @10.10.10.10 ### 1-ое обращение
# Обращаем внимание на "Query time" при первом и последующем запуске
drill india.com @10.10.10.10 ### 2-ое обращение
elinks ya.ru    # браузер
dig ya.ru       # и как там чё?
unbound-control status
unbound-control lookup mail.ru
unbound-control stats
unbound-control dump_cache /tmp/DNS_cache.txt
unbound-control list_forwards
unbound-control forward


DNSSEC

Unbound, умеет DNSSEC, а 8.8.8.8, как и очень многие другие, в свою очередь, умеют и DNSSEC и верифицировать записи, что означает, что в случае невалидной подписи они не резолвят адреса. И тут есть подвох. Включая эту опцию (а зачем от неё отказываться?), мы должны проследить за тем. что бы наш резолвер умел работать с DNSSEC. 
dig -t any +dnssec 8.8.8.8
Отключить DNSSEC в Unbound можно следующим образом:
  1. server:        val-permissive-mode: yes 
  2. Убрать запись auto-trust-anchor-file: "/var/lib/unbound/root.key", которая находится в файле /etc/unbound/unbound.conf.d.root-auto-trust-anchor-file.conf
  3. server:        module-config: "iterator"
Плагин для Firefox: DNSSEC/TLSA Validator

 

 Косяки

И тут нас ждал косяк. Список форвардов (две крайние команды) - пуст.
А вернее, получаем вот такой ответ:
# unbound-control forward
off (using root hints)

Оказалось, что необходимо проделать следующее:
chmod -x /etc/resolvconf/update.d/unbound
Или установить RESOLVCONF_FORWARDERS=false в /etc/default/unbound

Ага, список в самом верху - это надежда выудить где и как прячется тот самый false или true, отвечающий за включение форварда. Можно сделать кастыль, отредактировав  
/etc/init.d/unbound и добавив в секцию start строку
unbound-control forward 8.8.8.8 8.8.4.4
Но окончательно психанув, я решил напрячь других, как "настоящий взрослый мужчина".
Там то мне и подсказали.

Ну и ещё при запуске демона можем получить предупреждение:
Warning: /etc/resolv.conf is not a symbolic link to /run/resolvconf/resolv.conf
Избавимся от него:
rm /etc/resolv.conf
ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

10.02.2016

DNS Leak

Кто твой первый советник, тёмный лорд?    >>>    DNS Leak Test

Злоумышленник может не просто вычислить тебя по айпишнику и набить морду, но и подменить IP-адрес сайта при твоём запросе к DNS серверу. Поэтому лучше, на всякий случай, спрячем наши запросы.

Для шифрования DNS-трафика будем использовать dnscrypt-proxy. Когда я обращаюсь к более далёким товарищам с вопросом, да ещё и шифрую этот диалог, то чётко понимаю, что скорость снижается. Поэтому очень хочется кэшировать. А dnscrypt-proxy этого, естественно, не делает. Для кэширования DNS-запросов есть выбор: Dnsmasq и Unbound (и ещё плюс всякого, конечно). Первый - комбайн. Берём второй. Unbound ещё и быстр! А кэш у него хранится целиком в памяти. Вот и получается прослойка:

WAR

Готовимся к войне с хакерами
  1. Смена пароля на роутере
  2. Смена адресации локальной сети (настройка DHCP) и статического локального адреса самого роутера
  3. Маскировка DNS
  4. Transmission Blocklist
  5. VPN или SSH

02.02.2016

Обновление дистрибутива



Обновление дистрибутива Cubian до последней версии Debian на Allwinner A10/A20

sudo su
cat /etc/*release*
ntpdate-debian 
apt-get -y install debian-keyring 
apt-get update 
apt-get -y install debian-archive-keyring 
apt-get update 
apt-get install -y git
git clone https://opensourceclient@bitbucket.org/opensourceclient/prepare-cubian.git
./prepare-cubian/cubian_update-1.sh
./prepare-cubian/cubian_update-2.sh
./prepare-cubian/cubian_update-3.sh
cat /etc/*release*









Upgrade Ubuntu 12.10 (Linaro 13.04) to Ubuntu 13.10 (Linaro 14.01) and later to Ubuntu 14.04 LTS

13.04.2015

Трансляция звука из Windows 7 на Cubieboard в USB-SND PCM2704

1. PCM2704

dmesg
mpd.config

2. PulseAudio


3. Windows 7

  1. WinESD
  2. VLC-player
  3. LineInCode



Ещё
Микширование звука в Cubian
Streaming Audio from Windows to PulseAudio Server
Liveincode + SSH + PulseAudio Server DONE!
Stream sound from Windows to Linux with LiveInCode and PulseAudio 
Centralized PulseAudio setup

simplified version with plink from PuTTY in place of Cygwin:
linco -B 16 -C 2 -R 44100 | plink user@mediaserver "pacat --playback"

Фоторамка

Рамка деревянная. Выступает на 15 мм - этого достаточно спрятать толстый экранированный кабель витой пары. Для производства была задействована ленточная пила, шлифовальная машинка, фреза, а углы делались на торцовочной. Яхтный лак, клей. Фоторамка прижилась до ремонта. Отодрать не повредив не возможно ))




11.02.2015

Backup and other service

Поскольку, кубик мой периодически падает, то APT отвалится, то ещё чего. Как на NAND, так и на SD... То озаботился я бэкапом. При грамотном бэкапе восстановление системы сводится к заливке образа на карточку и запуску скрипта. По идее )))

Значит пошёл я на https://github.com/mycubieserv/Service-Scripte

Упор сделан на сохранении Трансмиссии, mpd, cron, системных и сетевых настройках. APT будет выведен в отдельный пункт. В планах управление выводом на тот или иной дисплей.

Всё ещё в весьма жидком состоянии. Очень жидком! Так что не откажусь от советов и рекомендаций. 

25.11.2014

Обновлённый дизайн

Было не сильно минимальнинько, но эротично. А сейчас запихнул я всё в стандартный системник, взятый с помойки. Все кто видит дико ржёт: такая плата в таком системнике!
Да, отменное рукожопство получилось ))


Изменения:
  1. Выход VGA напаял прямо на видокарточку. Шлейф получился даже цветной и с чётким соответствием. На видеокарточке уже распаяны резисторы. Помех особо не наблюдается, картинка чёткая. Разъём всёж при включении стоит придерживать, плата болтается без матери.
  2. LVDS распаял на LPT-планку. Саму матрицу хочу прикрутить к системнику - получится лапать-топ ))
  3. Системник закрывать не планирую пока, да и нечем. Системник был без крышки. В Кубик воткнут 2,4G ресивер на беспроводные клавиатуру и мышку.
  4. Большинство кабелей уже присутствуют и прикручены к корпусу стяжками: Ethernet, USB, HDMI, HDMI-DVI.


Дальше ещё фотки

05.11.2014

Играюсь с образами

Что у нас стоит, можно посмотреть здесь: Версии

Оконные образы

  1. Cubieez 1.1 (A20) - Debian 7.5 Wheezy with kernel 3.4.79 - LXDE - 192.168.1.124 - password: cubieboard - 4GB SD card
  2. Cubieez Reloaded  - Debian 7.5 Wheezy with kernel 3.4.43, DHCP - password: cubieez. На первый взгляд показался топорным. Ядро отстаёт.
  3. Cubian X1 Desktop - MATE, kernel 3.4.79. Всё аккуратненько, но притормаживает интерфейс. Однако, это единственный образ мною опробованный, который взял и просто показал картинку ещё и правильного разрешения на переходнике HDMI-DVI.
    http://cubian.org/downloads/
  4. aRUNTU 1.001 Desktop  Kernel 3.4.101
  5. CUBIUNTUX MEGA TRIPLE O.S. CT/CB2 SIMON TRIBUTE  Kernel 3.4.79 Скрипты настройки видеовыхода и запуска конкретно одной из трёх сборок: CUBIUNTU + 2x Qbee-X. Три в одном - очень и очень интересный вариант, оперативный в плане переключения между образами.
  6. Сubiuntu A20 1.001 CT SD
  7. QBee-X_TMC: nand  nand-v2 (different trackers)
    QBee-X_TMC: sd  sd-v2 (different trackers)
  8.  

Отдельно остановлюсь на Armbian (Igor Pečovnik)

Начать знакомство можно с Micro home server, который становится на Debian Wheezy. Где же взять этот Debian Wheezy? Игорь представляет 6 вариантом образов для Cubieboard2. Во-первых, все образы делятся на два типа ядра:
  • Legacy  - лучше для мультимедии, акселерация видео и всё такое. И оно 3.4.110
  • Vanilla - стандартное официальное "ванильное" ядро лучше для сервака или лёгких десктопов. Это будет 4.4.3

Для каждого типа ядра есть три дистрибутива:
  1. Wheezy - Уизи - Debian 7
  2. Jessie - Джесси - Debian 8, т.е. текущая версия
  3. Trusty - Ubuntu 14.04 LTS
    Из всего этого многообразия есть только один графический образ: Legacy Ubuntu Trusty и он обозначен соответствующим значком. И ещё есть всякие полезности в виде FAQ


    Обновления


    Обновление дистрибутива

     



    Рейтинг образов





    P.S.
    Мне так же пригодилось: Реставрация фейковых Micro SD
    Как переформатировать китайскую флешку
    // на 1Гб приходится 2101670 секторов



    18.08.2014

    Photo Frame

    При благополучном подключении матрицы нужно её занять. Есть желание Photo Frame с текущим временем и забортовой температурой или даже прогнозом.
    В Cubieez уже есть xscreensaver. Его настроить можно, глядя сюда: How Do I Use a Photos Directory as my Screensaver?

    Я опробовал Ripples. Удивился надписям Loading...
    И задумался, почему в 21 веке я её наблюдаю? Предзагрузка? Не, не слышали )))

    Да и подтягивать иХсы я вроде пока не собирался. Поэтому своё внимание сюда: Digital Picture Frame (feh)


    apt-get install feh unclutter
    

    #!/bin/bash
    # This file is located at /usr/local/bin/slideshow.sh
    #
    # Copyright 2004 Adam Franco
    # Licensed under the GNU GPL v1.2+ (http://www.gnu.org/licenses/gpl.html)
    
    killall feh unclutter
    
    unclutter &
    
    feh -zZFr -D 300 /home/afranco/Photos/
    

    Running slideshow.sh from the command-line without an X-session

    #!/bin/bash
    # I put this file at /usr/local/bin/reloadslideshow.sh
    #
    # Copyright 2004 Adam Franco
    # Licensed under the GNU GPL v1.2+ (http://www.gnu.org/licenses/gpl.html)
    
    # make sure none of our parts are running and are in the way.
    killall feh unclutter X kdm;
    
    #run the slideshow
    /usr/bin/X11/xinit /usr/local/bin/slideshow.sh & 

    И так далее.....


    19.05.2014

    Кубик рубика

    День Кубика Рубика


    Это не нормальный блог. Не подписывайтесь на него. 
    Здесь старые посты редактируются, а новые появляются задней датой.