Показаны сообщения с ярлыком ubuntu. Показать все сообщения
Показаны сообщения с ярлыком ubuntu. Показать все сообщения

Установка KIOSK для отображения web страницы

 Делаем простой киоск отображающий веб-страницу

* необходимо, чтобы видеокарта поддерживала 3d, иначе будет тупо серый (в mir-kiosk оранжевый и потом черный) экран (в virtualbox включить /в qemu на vds не работает)


Ставим Ubuntu Server 22.04, убеждаемся в работе ssh-сервера, далее всё ставим через него, используется в качестве основы ubuntu-frame (также есть устаревший mir-kiosk, но на его замену пришел ubuntu-frame)


Далее заходим по ssh и выполняем установку ubuntu-frame

snap install ubuntu-frame

snap set ubuntu-frame daemon=true


#snap start ubuntu-frame (данный снап сам запускается после хука для daemon=true)


экран светится серым - всё хорошо, вейланд запустился


Ставим webkit приложение которое будет работать в ubuntu-frame

snap install wpe-webkit-mir-kiosk

snap connect wpe-webkit-mir-kiosk:wayland


snap set wpe-webkit-mir-kiosk daemon=true

snap set wpe-webkit-mir-kiosk url=https://mir-server.io


snap start wpe-webkit-mir-kiosk


Смотреть логи

snap logs wpe-webkit-mir-kiosk


Настроить разрешение экрана (если необходимо)

cp /var/snap/ubuntu-frame/current/frame.display /root/

vi /root/frame.display

mode:1920x1080@60.0


snap set ubuntu-frame display="$( cat /root/frame.display )"


Настраиваем vnc-сервер (внимание, он без пароля, слушает localhost)

snap install ubuntu-frame-vnc

/snap/ubuntu-frame-vnc/current/bin/setup.sh

snap set ubuntu-frame-vnc daemon=true


Делаем доступным vnc из вне (без пароля!)

sysctl -w net.ipv4.conf.all.route_localnet=1

iptables -t nat -I PREROUTING -p tcp --dport 5900 -j DNAT --to 127.0.0.1:5900


echo "net.ipv4.conf.all.route_localnet=1" >> /etc/sysctl.conf

apt install iptables-persistent

iptables-save > /etc/iptables/rules.v4


Полезные ссылки

https://www.opennet.ru/opennews/art.shtml?num=55933
https://mir-server.io/docs/make-a-secure-ubuntu-web-kiosk
https://mir-server.io/docs/how-to-use-remote-assistance-with-ubuntu-frame
https://superuser.com/questions/661772/iptables-redirect-to-localhost
https://linuxconfig.org/how-to-make-iptables-rules-persistent-after-reboot-on-linux

Удаляем старые версии snap пакетов

Как известно, в новых Ubuntu некоторый софт ставится из snap

Данное ПО автоматически обновляется и старые версии занимают место

# df -h
/dev/loop0       56M   56M     0 100% /snap/core18/2066
/dev/loop2      9.2M  9.2M     0 100% /snap/canonical-livepatch/98
/dev/loop1      100M  100M     0 100% /snap/core/10958
/dev/loop3      9.2M  9.2M     0 100% /snap/canonical-livepatch/99
/dev/loop4       99M   99M     0 100% /snap/core/11081
/dev/loop5       56M   56M     0 100% /snap/core18/1997

Как их удалить?

Получаем список с ключем --all

# snap list --all
Name                 Version    Rev    Tracking       Publisher   Notes
canonical-livepatch  9.6.1      98     latest/stable  canonical✓  disabled
canonical-livepatch  9.6.2      99     latest/stable  canonical✓  -
core                 16-2.49.2  10958  latest/stable  canonical✓  core,disabled
core                 16-2.50    11081  latest/stable  canonical✓  core
core18               20210309   1997   latest/stable  canonical✓  base,disabled
core18               20210507   2066   latest/stable  canonical✓  base

И удаляем snap пакеты которые помечены как disabled указывая ключ --revision=

# snap remove canonical-livepatch --revision=98
canonical-livepatch (revision 98) removed
# snap remove core --revision=10958
core (revision 10958) removed
# snap remove core18 --revision=1997
core18 (revision 1997) removed

Также настраивается политика хранения версий

# snap set system refresh.retain=1
# snap get system refresh.retain
1

Необходимо на системах с малым количеством места в /snap

https://forum.snapcraft.io/t/managing-updates/7022

The refresh.retain value can be a number between 2 and 20. The default is refresh.retain=3 on Ubuntu Core systems and refresh.retain=2 on classic Ubuntu systems, such as those running Ubuntu 18.04 LTS (Bionic Beaver) and Ubuntu 16.04 LTS (Xenial Xerus).

Отключить обновления

# snap set system refresh.metered=hold

Включить обновления

# snap set system refresh.metered=null

Установка на Ubuntu 16.04 нового ядра

Новые ядра требуют openssl 1.1 которого нет в системе, поэтому перед установкой с https://kernel.ubuntu.com/~kernel-ppa/mainline/ следует его поставить


wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb

sudo dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb


и, также, необходимо поставить пакет для сборки драйверов Nvidia, если используете

sudo apt install libelf-dev

Правильный /tmp в ubuntu 16.04 desktop на ramdisk

sudo cp /usr/share/systemd/tmp.mount /etc/systemd/system/tmp.mount
sudo systemctl enable tmp.mount
sudo systemctl start tmp.mount

disable wakeup by usb mouse / как отключить выход из спящего режима по движению мышки

1. Отключить в BIOS пробуждение по USB портам
Если нет - писать "костыль"

Смотрим какие USB девайсы есть

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 174f:116a Syntek
Bus 001 Device 004: ID 0cf3:e500 Atheros Communications, Inc.
Bus 001 Device 002: ID 248a:8367 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


Вытыкаем втыкаем мышь - видим что 248a исчезает

Идем в /sys/bus/usb/devices/ - выткаем втыкаем мышь - видим что 1-1 исчезает

user@note:/sys/bus/usb/devices$ ls -l
итого 0
lrwxrwxrwx 1 root root 0 ноя 30 12:22 1-0:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-0:1.0
lrwxrwxrwx 1 root root 0 ноя 30 12:22 1-1 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1
lrwxrwxrwx 1 root root 0 ноя 30 12:22 1-1:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0
lrwxrwxrwx 1 root root 0 ноя 30 12:22 1-1:1.1 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.1


Провряем что тот девайс

user@note:/sys/bus/usb/devices/1-1$ cat idVendor
248a


Кладем скрипт который будет прописывать disabled

#! /bin/sh

if [ ! -f /sys/bus/usb/devices/1-1/power/wakeup ]; then
    exit 0
fi
    echo disabled > /sys/bus/usb/devices/1-1/power/wakeup



Недостаток - если воткнуть в другой порт - скрипт работать не будет


Полезная ссылка https://askubuntu.com/questions/252743/mouse-movement-wakes-computer-from-suspend-how-to-disable-this

Быстрая установка графического интерфейса на Linux с доступом по VNC

Установка графического интерфейса на CentOS 7


Добавляем репозиторий epel
yum install epel-release

Затем устаналиваем X Window system
yum groupinstall "X Window system"

Устанавливаем MATE
yum groupinstall "MATE Desktop"

Настраиваем доступ по VNC штатными средствами X-сервера
yum install tigervnc-server-module

Раскоментировать запуск
vi /etc/X11/xorg.conf.d/10-libvnc.conf

Укажем пароль доступа по VNC (сохранится в /root/.vnc/passwd)
vncpasswd

Отройте порт VNC сервера
firewall-cmd --zone=public --add-port=5900/tcp --permanent
firewall-cmd --reload


Добавьте пользователя
useradd -m user -s /bin/bash
passwd user


Указываем загрузку графического интерфейса:
systemctl set-default graphical.target

Запустите X
systemctl isolate graphical.target
или перезагрузитесь

Русификация
MATE использует для отображения интерфейса системную локаль, поэтому достаточно выполнить
localectl set-locale LANG="ru_RU.UTF-8"

Далее при логине в систему выбирается на окне lightdm в правом верхнем углу и в параметрах клавиатуры добавляется раскладка и клавиша переключения уже через VNC интерфейс


Установка графического интерфейса на Debian 9


Установка производится одной командой
apt install task-mate-desktop

Настраиваем доступ по VNC штатными средствами X-сервера
apt install tigervnc-xorg-extension

Добавим данное расширение при запуске X сервера

vi /usr/share/X11/xorg.conf.d/99-vnc.conf

Section "Module"
    Load  "vnc"
EndSection
Section "Screen"
    Identifier "Screen0"
    DefaultDepth 16
    Option "SecurityTypes" "VncAuth"
    Option "PasswordFile" "/root/.vnc/passwd"
EndSection


Укажем пароль доступа по VNC (сохранится в /root/.vnc/passwd) 
vncpasswd

Добавьте пользователя
useradd -m user -s /bin/bash
passwd user


graphical.target будет включен автоматически поэтому
systemctl isolate graphical.target
или ребут
Полезная ссылка как это работает - https://www.thegeekdiary.com/rhel-centos-7-how-to-set-default-target-replaced-runlevel/

Русификация MATE выполняется в  /etc/default/locale прописать
LANG="ru_RU.UTF-8"
и затем выполнить
locale-gen

Либо достаточно выполнить dpkg-reconfigure locales и выбрать нужные локали в псевдографическом интерфейсе

Далее в параметрах клавиатуры добавляется раскладка и клавиша переключения уже через VNC интерфейс

Ubuntu 18.04 firstvds настройка сети netplan systemd

Сеточка подымается в Ubuntu 18.04 через netplan как-то так на vkvm

# cat /etc/netplan/13-alj.yaml
network:
    version: 2
   renderer: networkd
   ethernets:
       ens3:
           dhcp4: no
           dhcp6: no
           addresses: [92.61.107.21/32,62.10.12.12/32,62.33.22.22/32,'2a01:230:2:47::161/64']
           gateway6: 2a01:230:2:47::1
           routes:
           - to: 0.0.0.0/0
             via: 10.0.0.1
             on-link: true
           nameservers:
               addresses:
               - 1.1.1.1
               - 8.8.8.8
               - 2606:4700:4700::1111
               search:
               - domain.com
           optional: true
   version: 2


И потом

netplan try
netplan apply


Через systemd (я лично против такого) есть статья https://nixtux.ru/506 - тупо копипаста ниже
nano /etc/systemd/network/50-1vds.network
 
[Match]
Name=ens*
[Network]
DHCP=no
# ping to Google DNS 8.8.8.8 is less than to Yandex 77.88.8.*
DNS=8.8.8.8
DNS=77.88.8.8
DNS=77.88.8.1
DNS=9.9.9.9
NTP=ntp.ubuntu.com
Gateway=10.0.0.1
[Address]
Address=21.109.197.147/32
Peer=10.0.0.1
 
212.109.197.147 замените на IP-адрес своего виртуального сервера (VPS, VDS) с виртуализацией KVM на хостинге. Name=ens* — проверьте, что в выводе команды ip a сетевой интерфейс называется, например, ens3, а не eth0; если eth0, то тогда: Name=eth*
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd

Добавлю что резолверы FirstVDS которые в ДЦ у них находятся
188.120.247.2
188.120.247.8
82.146.59.250

Запретить локальному пользователю перезагружать систему

В системах которые используют systemd локальный пользователь может перезагружать систему без авторизации командой reboot (он же alias для /bin/systemctl, он же systemctl reboot)
Что может привести к незапланированной перезагрузке, например, если ошибиться окном терминала
Чтобы это отключить в Ubuntu 16.04 создайте файл конфигурации

/etc/polkit-1/localauthority/50-local.d/99-disallow-shutdown.pkl

и в нем пропишите следующее:

[Disallow shutdown]
Identity=unix-group:*
Action=org.freedesktop.login1.reboot;org.freedesktop.login1.reboot-multiple-sessions;org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions
ResultAny=auth_admin_keep
ResultInactive=auth_admin_keep
ResultActive=auth_admin_keep



Полезные ссылки:
https://wiki.archlinux.org/index.php/Polkit_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
http://rus-linux.net/MyLDP/sec/PolicyKit_pr1.html

Высокая нагрузка на cpu от процессов kidle_inject

Иногда бывает, что система практически висит, а в top наблюдается картина вида

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6098 root -51 0 0 0 0 S 55,8 0,0 4:04.49 kidle_inject/1
6099 root -51 0 0 0 0 S 55,8 0,0 4:04.20 kidle_inject/2 


Процессы kidle_inject запускаются при throttling, как правило от перегрева, и не могут часто быть остановлены, есть баг https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1389077 который долгое время не могут исправить

Решение: отключить данный механизм снижения нагрузки на cpu (может привести в принципе к проблемам при перегреве

# rmmod intel_powerclamp
# echo "blacklist intel_powerclamp" > /etc/modprobe.d/disable-powerclamp.conf

Полезные ссылки:
https://wiki.ubuntu.com/Kernel/PowerManagement/ThermalIssues
https://lwn.net/Articles/528131/

Про новые ядра и xorg в Ubuntu 16.04 LTS

Desktop
1. Устанавливаем с образа 16.04 или 16.04.1 - получаем ядро 4.4.0 (метапакет linux-generic), которое будет постоянно с новыми security fixes всё время жизни дистрибутива

2. Устанавливаем с образа 16.04.2 и выше - получаем hwe ядро на сегодня 4.4.8 и выше (метапакет linux-generic-hwe-16.04) по модели rolling updates, то есть при выходе новых версий будет обновляться (на сегодня 4.4.10)

Xorg тоже ставится hwe (и ставить по идее надо с новым ядром всегда, а не одно ядро или иксы), пример команды для перехода
sudo apt-get install --install-recommends linux-generic-hwe-16.04 xserver-xorg-hwe-16.04

3. Устанавливаем пакет linux-generic-hwe-16.04-edge - получаем совсем свежее ядро 4.4.11 и все самое свежее (и, возможно, не тестированное)

Server
В инсталляторе при загрузке с iso присутствует выбор - ставить hwe или нет, по-умолчанию ставится 4.4.0
Можно обновить ядро перейдя на hwe
sudo apt-get install --install-recommends linux-generic-hwe-16.04

Полезные ссылки
https://wiki.ubuntu.com/Kernel/RollingLTSEnablementStack
https://wiki.ubuntu.com/Kernel/LTSEnablementStack
http://ubuntuhandbook.org/index.php/2017/02/install-remove-enablement-stacks-ubuntu-16-04/

Что ставить
Все же большинство десктопов, судя по всему, живут на свежих ядрах и свежем xorg, поэтому ставить hwe на десктоп и если используются несвободные драйвера, то иметь ввиду, что при апдейтах могут быть проблемы с графикой (но как правило, все решается через update-initramfs -u или переустановкой пакета типа nvidia-375 при загрузке в текстовом режиме), на сервер если всё работает, то скорее всего новые ядра вам не нужны, также kernel livepatch не поддерживает hwe

owncloud : docker не работает после включения хранилища devicemapper

owncloud требует хранилище типа devicemapper как написано тут https://linuxinsider.ru/server-collabora-online-s-nextcloud-na-ubuntu/
После его включения (лучше включать как написано в официальной документации  https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/ в /etc/docker/daemon.json приложение docker перестает работать, а docker ps зависает не дожидаясь ответа от dockerd

Решение - установить поддержку LVM в систему командой apt-get install lvm2

При этом также отмечу что появляется в /var/lib/docker spare file размером 100Gb который не занимает место на диске, но влияет при копировании сервера через rsync

pppd: The remote system (PPTP) is required to authenticate itself

При запуске pppd клиент на Ubuntu 16.04 выдает ошибку

# pppd call pptpserver
pppd: The remote system (PPTP) is required to authenticate itself
pppd: but I couldn't find any suitable secret (password) for it to use to do so.


Решение

# vi /etc/ppp/options

auth заменить на noauth

Или же указать в /etc/ppp/peers/pptpserver

Установка conky на Ubuntu

Поставим для облегчения визуальной настройки приложение Conky Manager http://www.teejeetech.in/p/conky-manager.html

sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install conky-manager


Выберем необходимый конфиг и внесем изменения так как необходимо
Мой файл конфигурации conky, который помимо нагрузки отображает также и другую информацию

Default background color Ubuntu терминал - Цвета фона по-умолчанию в терминале Ubuntu

Немного отталкивало меня от использование guake и других альтернативных терминалов другой цвета фона (непривычно)
Теперь с привычным цветом всё хорошо
Цвет
#300A24
В системе RGB (48, 10, 36)
Смотреть можно в  /usr/share/themes/Ambiance
Кстати, если использовать поиск google https://www.google.ru/search?q=%23300A24 то на главной будет виджет подбора цвета

Ubuntu удаляем старые ядра

sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1)

Остается только одно ядро, пользуюсь еще с версии 12.04

Настройка MySQL 5.7 на Ubuntu 16.04 под Bitrix

В MySQL 5.7 по-умолчанию включен innodb_file_per_table=1 и с ним вы нормальных «попугаев» по базе данных не получите

Поэтому первым делом делаем дамп базы, выключаем это в /etc/mysql/my.cnf и заливаем обратно

Ниже приведен конфиг на котором только что поставленный битрикс на core i5 выдает под 100 попугаев

root@ubuntu:~# cat /etc/mysql/my.cnf
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

[mysqld]
sql_mode = ""
performance-schema = false
table_open_cache = 1024
thread_cache_size = 4
query_cache_size = 32M
query_cache_type = 1
tmp_table_size = 128M
max_heap_table_size = 128M
#innodb_file_per_table = 0
innodb_buffer_pool_size = 1024M
innodb_flush_log_at_trx_commit = 2
#innodb_buffer_pool_instances = 2
innodb_flush_method = O_DIRECT
transaction-isolation = READ-COMMITTED

innodb-strict-mode = OFF

Больше там практически ничего не надо крутить что бы ни говорили различные тюнеры — приведет только к потери производительности, можно только увеличивать innodb_buffer_pool_size если база большая и памяти свободной много

Также требуется увеличить лимиты на число открытых файлов (иначе table_open_cache может просто не отрабатывать)

mkdir /etc/systemd/system/mysql.service.d/
printf '[Service]\nLimitNOFILE = infinity\nLimitMEMLOCK = infinity\n' >> /etc/systemd/system/mysql.service.d/limits.conf


И перезапустить mysql
systemctl daemon-reload
systemctl restart mysql


Также в рекомендую менять только
innodb_buffer_pool_size — для InnoDB
key_buffer_size — для MyISAM
Чтобы база входила в оперативную память, но при этом значение это должно быть меньше чем всего ram на сервере
Настройки всего остального в MySQL часто приносят прямо противоположный результат

Перепрошивка wifi модуля Intel 5100 ABG в 5100 AGN под Linux

Попал тут в руки старый ноутбук который не поддерживает 802.11n, что весьма печально, так как у меня на моем роутере включен только этот стандарт, а низкоскоростные отключены.
На windows есть драйвера которые «разблокируют» 802.11n, на Linux же придется перешивать
Как же это сделать? Очень просто, есть проект iwleeprom который все сделает за нас. Прошивка выполнялась под Ubuntu 16.04.1

wget https://github.com/0x90/iwleeprom/archive/master.zip
unzip master.zip
cd iwleeprom-master
make


Для работы с /dev/mem потребуются права суперпользователя

sudo -s

Теперь делаем бэкап EEPROM

./iwleeprom -o eeprom.orig

(выбираем карточку, у меня одна, нажимаем 1)

И патчим карточку (все будет сделано автоматически)

./iwleeprom -p

(выбираем карточку также нажав 1)

После reboot видим (в dmesg) что наш 5100 ABG превратился в 5100 AGN
* Всё на ваш страх и риск, как любая прошивка "железа"

Управление автозагрузкой сервисов в Debian и Ubuntu

Управление загрузкой сервисов с системой инициализации upstart

Проверить статус (отображение статуса всех сервисов)
service --status-all
Добавить в автозапуск
update-rc.d имя_сервиса defaults
Удалить из автозапуска
update-rc.d -f имя_сервиса remove

Управление загрузкой сервисов с системой инициализации systemd

Проверить статус (отображение статуса всех сервисов)
systemctl list-units --type service --all
Проверить включен ли сервис
systemctl is–enabled имя_сервиса
Добавить в автозапуск
systemctl enable имя_сервиса
Удалить из автозапуска
systemctl disable имя_сервиса

Как отключить окно оповещений об обновлениях в Ubuntu и не перезагружаться при обновлениях ядра

В Ubuntu довольно надоедливая система оповещений о наличии обновлений или необходимости перезагрузки после установки обновлений

Я же предпочитаю обновляться вручную при помощи команд

apt-get update && apt-get dist-upgrade

Как же отключить систему оповещений?

# cd /etc/xdg/autostart/
# sudo sed -i "/^Hidden=/{ s/false/true/ ; q }; $ aHidden=true" update-notifier.desktop


А чтобы было всегда свежее ядро без необходимости перезагрузки используйте Ksplice. Для Desktop версий Ubuntu и Fedora доступ к его репозиторию бесплатный.

После его установки необходимо включить автоматические обновления чтобы было меньше оповещений

# vi /etc/uptrack/uptrack.conf
autoinstall = yes