Majordomo - SrFatCat/LinuxHelp GitHub Wiki
sudo vcgencmd measure_volts
# напряжение ядра
sudo vcgencmd measure_temp
#температура
уменьшить размер образа
sudo rpi-eeprom-update -d -a
sudo nano /boot/config.txt
#Configure a GPIO pin to control a cooling fan.<br />
#Load: dtoverlay=gpio-fan,<param>=<val><br />
#Params: gpiopin GPIO used to control the fan (default 12)<br />
# temp Temperature at which the fan switches on, in<br />
# millicelcius (default 55000)<br />
# hyst Temperature delta (in millicelcius) below<br />
# temp at which the fan will drop to minrpm<br />
# (default 10000)<br />
dtoverlay=gpio-fan,temp=65000
wget -qO btop.tbz https://github.com/aristocratos/btop/releases/latest/download/btop-armv7l-linux-musleabihf.tbz
sudo tar xf btop.tbz
cp btop/bin/btop /usr/local/bin/
rm btop.tbz
rm -R -f btop/
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
sudo raspi-config
При помощи первого пункта данного окна можно сменить пароль пользователя.
N2 вводим идентификатор беспроводной сети
I1 change locale
[*] ru_RU.UTF-8 UTF-8
I2 Change Timezone
I4 Change Wi-fi Country:
qq A1 Expand Filesystem
P2 SSH
sudo dpkg-reconfigure console-setup
Управлять в меню вам будут мешать «квадраты», устанавливаем
Используемая кодировка в консоли: UTF-8
Используемая таблица символов:
Определение оптимального набора символов (последний пункт)
Консольный шрифт:
Fixed или Позволить системе выбрать подходящий шрифт (последний пункт)
Размер шрифта: 8x16
Finish
cat /proc/filesystems #проверка установленных FS
sudo modprobe cifs #установка файловой системы
sudo ls /lib/modules/$(uname -r)/kernel/fs/cifs/cifs.ko #проверка что версия системы соответствует версии ядра (uname -r)
sudo apt reinstall raspberrypi-kernel && sudo apt reinstall raspberrypi-bootloader && sudo reboot #обновление версии ядра
sudo apt install samba samba-common-bin smbclient cifs-utils #установка cifs
sudo mount.cifs //192.168.0.50/Volume_1 /home/rasberry/nas_x -o user=Alex,password=marus14kaW7,vers=1.0,iocharset=utf8
sudo nano /etc/fstab
//192.168.0.50/Volume_1 /home/rasberry/nas_x cifs rw,username=Alex,password=marus14kaW7,vers=1.0,iocharset=utf8 0 0
sudo apt install samba
sudo nano /etc/samba/smb.conf
...
[<ресур>]
comment = Shared OPi folder
path = </home/opi/opi_samba>
browseable = no
writeable = Yes
only guest = no
create mask = 0777
directory mask = 0777
public = no
sudo smbpasswd -a <username> #системного пользователя. не существующего добавлять нельзя
sudo service smbd restart
sudo apt install nfs-kernel-server
sudo nano /etc/exports
/home 192.168.0.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check)
#для указания конкретного адреса вроде надо писать 192.168.0.1/255.255.255.255
#специальные шары создаются с chown nobody:nogroup и тогда no_root_squash нужно не указывать, в обычных папках указывать обязательно
#если async - можно открывать уже занятые файлы, иначе нельзя двже открыть открытые на хосте для чтения
sudo systemctl restart nfs-kernel-server
В винде NFS Client устанавливать Приложения -> Дополнительные компоненты -> Другие компоненты Windows -> Службы для NFS
Для записи в обычные шары под админом в реестре HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default создать
DWORD32 AnonymousUid = 0 и AnonymousGid = 0 (запись будет под рутом) и перезапустить службу "Клиент для NFS из оснастки 'Службы для NFS' (nfsmgmt.msc)"
Подключать сетевой диск из windows необходимо под anon с пустым паролем или mount -o anon \\KOM-FS01\mnt\vdo-vd1\ovirt-iso-domain I:
Чтобы писать под пользователем
sudo nano /etc/exports
/home 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check,all_squash,anonuid=1000,anongid=1000)
#где uid:gid под кем писать можно посмотреть cat /etc/passwd
Нужно ли при этом ковырять реестр в винде - не знаю.
sudo apt install ntp
sudo nano /etc/ntp.conf
pool ru.pool.ntp.org iburst
server ntp2.vniiftri.ru iburst prefer
server 0.ru.pool.ntp.org
server 1.ru.pool.ntp.org
server 2.ru.pool.ntp.org
server 3.ru.pool.ntp.org
...
restrict 192.168.0.0 mask 255.255.255.0
broadcast 192.168.0.255
broadcast 224.0.1.1
sudo systemctl restart ntp
sudo apt install mosquitto mosquitto-clients
sudo mosquitto_passwd -c /etc/mosquitto/passwd <user>
#!!! других юзеров добавлять без -c
прописать:
sudo nano /etc/mosquitto/mosquitto.conf
вначале <br /> per_listener_settings true <br /> #в середине или в конце <br />
allow_anonymous false
listener 1883
password_file /etc/mosquitto/passwd
sudo apt install openjdk-11-jdk-headless -y
sudo apt install openjdk-11-jdk -y
java -version #см. последнюю версию
wget "https://github.com/blynkkk/blynk-server/releases/download/v0.41.13/server-0.41.13-java8.jar"
wget "https://github.com/Peterkn2001/blynk-server/releases/download/v0.41.17/server-0.41.17.jar"
mkdir Blynk
java -jar server-0.41.17.jar -dataFolder /home/bogdan/Blynk &
sudo nano /etc/rc.local
java -jar /home/bogdan/Blynk/server-0.41.17.jar -dataFolder /home/bogdan/Blynk &
crontab -e
@reboot java -jar /home/bogdan/Blynk/server-0.41.17.jar -dataFolder /home/bogdan/Blynk &
sudo apt-get install -y pptp-linux #Установим пакет pptp-linux
sudo pptpsetup --create vpnki --server msk.vpnki.ru --username <имя туннеля> --password <пароль туннеля> # Создадим соединени #Подключим туннель
sudo pon vpnki updetach
ifconfig -s #Проверим что создался интерфейс ppp0
ping 172.16.0.1 # Проверим пинг адреса VPNKI
sudo poff vpnki # Отключим туннель
ifconfig -s # Проверим отключение ppp0
sudo nano -B /etc/rc.local # Добавим установление PPTP туннеля при загрузке компьютера, открываем файл
И перед "exit 0" вставляем туда текст
vpn="on"
if [ $vpn = on ]; then
printf "\nVPN connection to VPNKI\n"
pon vpnki updetach &
sleep 5
sudo route add -net "172.16.0.0/16" dev "ppp0" & #Маршрут к сети VPNKI
sudo route add -net "192.168.100.0/24" dev "ppp0" #Например маршрут к "другому" вашему туннелю (в домашнюю сеть 192.168.100.0/24)
printf "Netstat output of all PPTP sockets\n"
netstat -a | grep "/var/run/pptp/"
fi
sudo /etc/rc.local # Тестируем работу local.rc без перезагрузки
sudo systemctl status rc-local # Тестируем работу local.rc без перезагрузки
sudo systemctl restart rc-local
sudo journalctl -u rc-local
sudo nano -B /etc/ppp/peers/vpnki # В случае обрыва связи нам потребуется автоматическая переустановка соединения, для этого откройте файл
#В конец файла добавьте
persist
maxfail 0
holdoff 10
sudo nano -B /etc/ppp/ip-up.d/routeadd # В случае обрыва связи и ее восстановлении нам также потребуется автоматически прописать маршруты к сети VPNKI и к вашей "другой" сети. Для этого создайте файл
#!/bin/sh -e
route add -net "172.16.0.0/16" dev "ppp0" #Маршрут к сети VPNKI
#route add -net "192.168.100.0/24" dev "ppp0" #Например маршрут к вашей "другой" сети 192.168.100.0/24 (если такая существует через сеть VPNKI)
sudo chmod 755 /etc/ppp/ip-up.d/routeadd # Измените права на исполнение файла при поднятии интерфейса ppp0
Установка в docker здесь
docker run -d --restart always --name RTL_433 --device /dev/bus/usb/001/004 hertzg/rtl_433 -X "n=PIR815K,m=OOK_PWM,s=352,l=1116,r=1180,g=0,t=200,bits=25,get=@0:{25}:id" -F "mqtt://192.168.0.60:1883,user=bogdan,pass=marus14kaMQT9,events=rtl_433"
# или из запущенного контейнера копируем файл конфигурации
Обычная установка
cd /usr/src
sudo apt install git git-core cmake libusb-1.0-0-dev
sudo git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr/ && sudo mkdir build && cd build/
sudo cmake ../ -DINSTALL_UDEV_RULES=ON
sudo make
sudo make install
sudo ldconfig
cd ../..
sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
sudo reboot
sudo nano /etc/modprobe.d/no-rtl.conf
blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830
sudo reboot
rtl_test -t
#если не исполняется скрипт (так и не понял о чем. У меня устройство находит, но пишет в конце абортед и он работает)
#lsusb
# получаем вида Bus 005 Device 003: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
#sudo nano /etc/udev/rules.d/rtl-sdr.rules
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", MODE:="0666"
#sudo service udev restart
#sudo reboot
sudo apt install libtool librtlsdr-dev rtl-433
#компиляция из исходников если в репе нет rtl-433
#cd /usr/src
#sudo git clone https://github.com/merbanan/rtl_433.git
#cd rtl_433/ && sudo mkdir build && cd build && sudo cmake ../ && sudo make
#sudo make install
cd /usr/local/etc/rtl_433
sudo cp rtl_433.exmple.conf rtl_433.conf
sudo nano rtl_433.conf
decoder n=PIR815K,m=OOK_PWM,s=352,l=1116,r=1180,g=0,t=200,bits=25,get=@0:{25}:id #добавляем поддержку ДД PIR815K
nano /home/bogdan/rtl433_test.sh
#!/bin/bash
if [[ "$(ps -A | grep rtl_433)" != *rtl_433* ]]; then
echo "exec"
sudo rtl_433 -c /home/bogdan/rtl_433.conf | mosquitto_pub -h 192.168.0.60 -u bogdan -P marus14kaMQT9 -t rtl_433 -l&
fi
crontab -e
@reboot /home/bogdan/rtl433_test.sh
*/1 * * * * /home/bogdan/rtl433_test.sh
sudo su # это важно!
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - #подключаем репозитарий, с первого раза не прошло и со второго пока sudo su не сделал
sudo apt install -y nodejs git make g++ gcc
node --version # Should output v14.X, V16.x, V17.x or V18.X
npm --version # Should output 6.X, 7.X or 8.X
sudo mkdir /opt/zigbee2mqtt
sudo chown -R ${USER}: /opt/zigbee2mqtt
git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
cd /opt/zigbee2mqtt
npm ci
#должно закончиться
#node-pre-gyp info ok
#added 383 packages in 111.613s
#сообщение типа 73 packages are looking for funding означает, что есть пакеты которые хотят твои деньги, платить по желанию
nano /opt/zigbee2mqtt/data/configuration.yaml
npm start
#Ctrl-c
sudo nano /etc/systemd/system/zigbee2mqtt.service
[Unit]
Description=zigbee2mqtt
After=network.target
[Service]
Environment=NODE_ENV=production
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
# Or use StandardOutput=null if you don't want Zigbee2MQTT messages filling syslog, for more options see systemd.exec(5)
StandardError=inherit
Restart=always
RestartSec=10s
User=bogdan
[Install]
WantedBy=multi-user.target
Оригинальная инструкция по установке
apt4 install mariadb-server mariadb-client -y
sudo mysql -uroot -e "CREATE DATABASE db_terminal;"
sudo mysql -uroot -e "CREATE USER 'majordomo'@'%' IDENTIFIED BY 'marus14kaMJD9';"
sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';"
sudo mysql -uroot -e "FLUSH PRIVILEGES;"
apt4 -y install nginx
sudo nano /etc/nginx/nginx.conf
events {
...
multi_accept on;
}
http {
...
#Богдан
keepalive_timeout 5s;
client_max_body_size 16m;
...
}
apt4 install php php-fpm php-cgi php-cli php-pear php-mysql php-mbstring php-xml -y
sudo nano /etc/nginx/sites-available/default
server {
...
#Богдан
access_log off; #отключаем лог подключений
error_log /var/log/nginx/error.log; #файл лога ошибок
...
location / {
rewrite pda$ /popup/pda.html redirect;
rewrite ^api/ /api.php;
if (!-e $request_filename){
rewrite ^(.*)$ /nf.php;
}
}
location /config.php {
deny all;
}
location /debmes.txt {
deny all;
}
location ~ [^/]\.php(/|$) { #обработка php
fastcgi_split_path_info ^(.+?\.php)(/.*)?$;
set $path_info $fastcgi_path_info;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; #путь к php-fpm
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
#подробное описание настроек выше можно прочитать по ссылке https://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html#fastcgi_split_path_info
#настройки ниже относятся к настройкам PHP
fastcgi_param PHP_VALUE "short_open_tag=on"; #разрешаем короткую форму записи (<? ?>) тегов PHP.
fastcgi_param PHP_VALUE "error_reporting=E_ALL & ~E_NOTICE"; #задаем уровни ошибок
fastcgi_param PHP_VALUE "max_execution_time=90"; #задаем максимальное время в секундах, в течение которого скрипт должен полностью загрузиться
fastcgi_param PHP_VALUE "max_input_time=180"; #задаем максимальное время в секундах, в течение которого скрипт должен разобрать все входные данные, переданные запросами вроде POST или GET
fastcgi_param PHP_VALUE "post_max_size=200M"; #задаем максимальный размер отправляемого через POST-запрос файла
fastcgi_param PHP_VALUE "upload_max_filesize=50M"; #задаем максимальный размер файла для закачки
fastcgi_param PHP_VALUE "max_file_uploads=150"; #задаем максимальное количество одновременных загрузок
}
}
sudo nginx -t #проверка ошибок в конф. файле
sudo systemctl restart nginx
apt4 install phpmyadmin -y
sudo nano /etc/nginx/sites-available/default
server {
...
location /phpmyadmin {
alias /usr/share/phpmyadmin/;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
fastcgi_ignore_client_abort off;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
access_log off;
log_not_found off;
expires 1M;
}
}
...
}
sudo nginx -t #проверка ошибок в конф. файле
sudo systemctl restart nginx
sudo apt install minidlna
sudo nano /etc/minidlna.conf
<#>media_dir=</media/DataY/Torrents>
<#>db_dir=...
<#>log_dir=...
port=8200
<#>friendly_name=OrangePi
<#>inotify=yes
<#>notify_interval=20
ip link set eth1 multicast on
ip link set lo multicast on
sudo service minidlna restart
Инструкция отсюда, здесь же смотреть оптимальные настройки.
Последнюю версию смотреть здесь
sudo mkdir /opt/torrserver
sudo chown -R $USER:$USER /opt/torrserver
wget https://github.com/YouROK/TorrServer/releases/download/MatriX.124/TorrServer-linux-arm7 -O /opt/torrserver/torrserver
sudo chmod o+x /opt/torrserver/torrserver
sudo nano /etc/systemd/system/torrserver.service
[Unit]
Description=torrserver
Wants=network-online.target
After=network-online.target
[Service]
User=root
Type=simple NonBlocking=true
WorkingDirectory=/opt/torrserver
ExecStart=/opt/torrserver/torrserver -p 8090
Restart=on-failure
RestartSec=58
[Install]
WantedBy=multi-user.target
export GODEBUG=madvdontneed=1
sudo systemctl daemon-reload
sudo systemctl enable --now torrserver