SP Flash Tool Linux: стопорится на загрузке DA (Download Agent)

Прошивал телефон LG (Android) через SP Flash Tool с Linux (Ubuntu), SP Flash Tool запускал от root на всякий случай, хотя достаточно добавить пользователя в группу dialout: sudo adduser `whoami` dialout и перезайти в сеанс/перезагрузиться, чтобы root не требовался для работы с COM-портом.


Никаких драйверов в Linux устанавливать не нужно… То есть пропускаем огромное полотно инструкций для виндузятнигов!

Для запуска SP Flash Tool на Linux без терминала, мышкой:
Открываем папку с распакованным архивом SpFlashTool, правой мышью на файл flash_tool.sh, Свойства, ставим галку, что он исполняемый, ок, нажимаем на него 2 раза — программа прошивки запустилась.

Для запуска через терминал:
1) в терминале переходим в папку с распакованным архивом SpFlashTool:
cd "путь к папке в кавычках"
2) выполняем bash flash_tool.sh для запуска от пользователя или
su
bash flash_tools.sh
для запуска от root.
Все, программа запустилась!


Но при прошивке SP Flash Tool стопорился на «Download DA 100%», зависал, в консоли было написано:

connect DA end stage: 2, enable DRAM in 1st DA: 0
COM port is open. Trying to sync with the target...

Решение такое: Читать далее SP Flash Tool Linux: стопорится на загрузке DA (Download Agent)

Автоматическое обновление Ubuntu

UPD: приведенный ниже скрипт превратился в целую систему автообновлений с блокировкой выключения во время обновления: system-autoupdate


Замучился постоянно устанавливать обновления на сервер с Ubuntu, unnatended-upgrades не хочу конфигурировать, да и делает он не совсем то, что нужно, поэтому сделал автообновление системы скриптом. Его код ниже. Что делает скрипт, прописано в коде комментариями.
Читать далее Автоматическое обновление Ubuntu

Отключаем Plymouth в Ubuntu одной командой

for i in quite splash; do sudo sed -i "s/$i//g" /etc/default/grub; done; sudo update-grub
Это отключит графическую заставку при загрузке ОС, зато позволит легко попадать в консоль-tty (Alt+ctrl+F{1..12}) при незапуске иксов.

Проверяем работу прокси из командной строки Linux/UNIX

http_proxy="http://username:password@adress:port" https_proxy="http://username:password@adress:port" curl http://yandex.ru/internet | grep IP
(это команда в одну строку, где http_proxy, https_proxy — это переменные окружения)
Firefox (bug #1344551), Chromium, Lynx не умеют брать логин и пароль из переменной окружения.
Должен быть показан IP-адрес прокси-сервера.
можно прописать
export http_proxy="http://username:password@adress:port" https_proxy="http://username:password@adress:port"
в ~/.profile для задания параметров прокси для конкретного пользователя и в /etc/environment, чтобы их задать общесистемно.

Программы могут как читать эту переменную окружения, так и игнорировать ее. Различные графические конфигураторы прокси в KDE/Xfce/др. DE просто настраивают эту переменную окружения.
env | grep -i proxy — чтобы посмотреть текущие значения переменных окружения с параметрами прокси.

Настройка сети systemd-networkd (Ubuntu 18.04 и др.) на FirstVDS KVM

sudo 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=212.109.197.147/32
Peer=10.0.0.1

212.109.197.147 замените на IP-адрес своего виртуального сервера (VPS, VDS) с виртуализацией KVM на хостинге FirstVDS (1vds). Name=ens* — проверьте, что в выводе команды ip a сетевой интерфейс называется, например, ens3, а не eth0; если eth0, то тогда: Name=eth*
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd
Документация по systemd-networkd здесь.


Для простого DHCP (Ethernet-кабель от роутера) конфиг /etc/systemd/network/50-dhcp.network такой:

[Match]
Name=en*

[Network]
DHCP=yes
DNS=8.8.8.8
DNS=77.88.8.8
NTP=ntp.ubuntu.com

[DHCP]
UseDNS=no

UseDNS=no заставляет использовать только указанные DNS-сервера, иначе первым DNS-сервером будет полученный по DHCP, а последующими — указанные. Узнать список используемых DNS-серверов можно так: cat /etc/resolv.conf

Еще более простой конфиг:

[Match]
Name=en*

[Network]
DHCP=yes

Название интерфейсов (Name) смотрите в выводе /sbin/ip a.

Починил php на Ubuntu 18.04

Ubuntu 18.04, панель Vesta.
php -i
php --ini
По этим командам было видно, что из папок с симлинками на конфиги не подгружались конфиги, а все потому что при смене названия файлов в /etc/php/7.2/mods-available/ побились символические ссылки. Этот скрипт их пересоздает для всех установленных версий php, подключая все доступные расширения для модулей cgi, fpm и cli.

alias ls="/bin/ls"
for php_version in $(ls /etc/php/)
do
	rm -fv /etc/php/${php_version}/fpm/conf.d/* /etc/php/${php_version}/cli/conf.d/* /etc/php/${php_version}/cgi/conf.d/*
	for i in i in $(ls /etc/php/${php_version}/mods-available/)
	do
		ln -s /etc/php/${php_version}/mods-available/${i} /etc/php/${php_version}/fpm/conf.d/${i}
		ln -s /etc/php/${php_version}/mods-available/${i} /etc/php/${php_version}/cli/conf.d/${i}
		ln -s /etc/php/${php_version}/mods-available/${i} /etc/php/${php_version}/cgi/conf.d/${i}
	done
done

А ошибки были такого вида:
PHP Fatal error: Uncaught Error: Call to undefined function Symfony\Polyfill\Mbstring\iconv() in /usr/share/php/Symfony/Polyfill/Mbstring/Mbstring.php:534 (при запуске composer)

2018/03/28 23:51:08 [error] 11030#11030: *10 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function Symfony\Polyfill\Mbstring\iconv_strpos() in /home/admin/web/domain.com/public_html/vendor/symfony/polyfill-mbstring/Mbstring.php:363
Stack trace:
#0 /home/admin/web/domain.com/public_html/vendor/symfony/polyfill-mbstring/bootstrap.php(32): Symfony\Polyfill\Mbstring\Mbstring::mb_strpos('', '/json', 0, 'UTF-8')
#1 /home/admin/web/domain.com/public_html/vendor/laravel/framework/src/Illuminate/Support/Str.php(103): mb_strpos('', '/json')
#2 /home/admin/web/domain.com/public_html/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php(34): Illuminate\Support\Str::contains('', Array)
#3 /home/admin/web/domain.com/public_html/vendor/laravel/framework/src/Illuminate/Http/Request.php(339): Illuminate\Http\Request->isJson()
#4 /home/admin/web/domain.com/public_html/vendor/laravel/framework/src/Illuminate/Http/Request.php(367): Illuminate\Http\Request->getInputSource()
#5 /home/admin/we" while reading response header from upstream, client: 109.173.112.243, server: domain.com, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9002", host: "domain.com"

Как сделать настоящее время фотографирование временем создания файла на диске?

Задача: у нас есть операционная система Linux (Ubuntu, Mint, ROSA, Arch, Debian, …) и папка с фотографиями, в этой папке много подпапок с фотографями, в подпапках могут быть еще подпапки до неограниченного уровня вложенности. В EXIF-данных большинства фотографий записано время их снятия по данным фотокамеры, однако файловый менеджер думает, что файл был создан в другое время, например, когда вы его откуда-то скопировали. Это неудобно, например, нельзя отсортировать фотографии по дате создания не выходя из файлового менедежра. Читать далее Как сделать настоящее время фотографирование временем создания файла на диске?

Преимущества и недостатки отчественной ОС ALT Linux

Статья в разработке. Будет дополняться. Пишите в комментариях, чем дополнить.
Читать далее Преимущества и недостатки отчественной ОС ALT Linux

Уязвимости в Росе. Почему binfmt для Wine — небезопасно?

Решил собрать в одном месесте свои мысли о том, какие глобальные уязвимости есть в дистрибутиве ROSA Fresh. Обратите внимание, что речь идет о «десктопной» Росе, потомке Mandriva, а не их «серверных» дистрибутивах на базе CentOS. Читать далее Уязвимости в Росе. Почему binfmt для Wine — небезопасно?

deepin-screenshot для Ubuntu >= 17.10 (Qt >= 5.9)

На мой взгляд это самая удобная программа для снятия скриншотов в Linux!
Видеодемонстрация:

Установка на Ubuntu 18.04 / Mint 19

deepin-screenshot уже в репозиториях Debian и Ubuntu ≥18.04:
sudo apt install deepin-screenshot

sudo add-apt-repository ppa:mikhailnov/utils -y
sudo apt update
sudo apt install deepin-screenshot

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

wget -q -O- http://repo.dumalogiya.ru/keys/mikhailnov_pub.gpg | sudo apt-key add -
echo "deb http://repo.dumalogiya.ru/aptly/public artful main" | sudo tee /etc/apt/sources.list.d/dumalogiya-artful.list
sudo apt update
sudo apt install deepin-screenshot

Как вызывать deepin-screenhot клавишей PrintScreen или другой в XFCE (Xubuntu)?

Читать далее deepin-screenshot для Ubuntu >= 17.10 (Qt >= 5.9)