ЛЕСная полянка

Путевые и непутёвые заметки. То что родилось и то, что было найдено на задворках интернета, очень помогло и поэтому обязательно должно сохраниться.

Nvidia Optimus + Ubuntu 16.04 + CUDA

Наконец-то удалось запустить на ноутбуке с гибридной графикой (Intel+Nvidia) аппаратное ускорение и CUDA. Причём без неудобств типа optirun — просто Unity и все приложения изначально используют аппаратное ускорение графики.
Установленная видеокарта — GeForce 540M.
Начнём с драйвера и Prime. Т. к. ранее был установлен bumblebee — для начала его нужно удалить. Bumblebee и Prime между собой несовместимы.
Принудительно включаем видеокарту

sudo tee /proc/acpi/bbswitch <<<ON

Удаляем bumblebee

sudo apt-get purge bumblebee* bbswitch-dkms
sudo apt-get autoremove
sudo apt-add-repository -r ppa:bumblebee/stable
sudo apt-get update

Ранее был протестирован и работал драйвер nvidia-340 из официального репозитория. CUDA 8.0 требует минимум nvidia-367, поэтому пришлось обновить его. Это меня сильно напрягло, т. к. ранее (только не помню, до или после обновления с 14.04 до 16.04) 361 драйвер у меня полностью положил gui, т. к. отказался инициализировать видюху, сообщив в лог, что она не поддерживается. Я, по аналогии с Windows, предположил, что поддержка моей видеокарты уже канула в лету и откатывал до 340 в консоли. Но это было раньше. То ли помогло обновление до 16.04, то ли в 367 драйвере исправлены какие-то ошибки, но на этот раз всё сразу заработало как надо.

sudo apt-get install nvidia-367 nvidia-settings nvidia-prime

На этом установка выполнена. Перезагружаем ПК и картинка на экране начинает расплываться так, что тексты, в т.ч. в консоли, становятся почти нечитаемыми... Запускаем nvidia-settings и в разделе Antialiasing Settings снимаем галку Enable FXAA. После релогина в систему картинка пришла в норму.
Проверить работу 3D-ускорения можно с помощью приложений glxgears, glxspheres, glxspheres64 — в зависимости от установленного дистрибутива. Советую сравнить fps до и после установки Prime.
Итак, Prime установлен, очередь CUDA. Кто не знает — это технология использования шейдеров видеокарты для рутинных тяжёлых рассчётов, занимающих много процессорного времени. Достоинство метода — огромное (по сравнению с CPU) количество процессоров, недостатки — относительно медленная инициализация и одинаковые алгоритмы работы каждого из них. Технология с успехом применяется, например, для обработки фотографий и видео, где распараллеливается обработка пикселей изображения или аналогичных пакетов данных, обрабатываемых по одному алгоритму.
Команда

lspci -vnn | grep VGA

у меня показала только графику Intel. Nvidia увиделась по другой маске:

lspci -vnn | grep 3D

Устройство найдено, можно продолжать.
Скачиваем дистрибутив CUDA. Установил версию 8.0 (последнюю) с оф.сайта

chmod +x ./cuda_8.0.44_linux.run
sudo ./cuda_8.0.44_linux.run

Ответы на вопросы:

Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?
(y)es/(n)o/(q)uit: n
Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
 [ default is /usr/local/cuda-8.0 ]: 
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location
 [ default is /home/les ]: /usr/local/cuda-8.0/samples

Прописываем CUDA в системные переменные:
/etc/ld.so.conf.d/cuda.conf

export PATH=$PATH:/usr/local/cuda/bin

/etc/profile.d/cuda.sh

/usr/local/cuda/lib64

Сообщаем системе о новых библиотеках:

sudo ldconfig

CUDA 8.0 по умолчанию предполагает использование компилятора gcc 5 версии, поэтому правка /usr/local/cuda/include/host_config.h не требуется. В 8 версии это строка 119, при использовании компиляторов других версий (6 и выше, когда выйдет :-) ) её нужно закомментировать.

#error -- unsupported GNU version! gcc versions later than 5 are not supported!

На этом ПО CUDA установлено. Протестируем, скомпилировав какой-нибудь из приложенных примеров:

rsync -av /usr/local/cuda/samples .
cd ./samples/2_Graphics/simpleTexture3D/
make
cd ../../bin/x86_64/linux/release/
./simpleTexture3D

У меня компиляция с первого раза не прошла — получил сообщение об ошибке

/usr/bin/ld: cannot find -lglut

Решено командой:

sudo apt-get install freeglut3-dev

Теперь CUDA нормально работает безо всякого optirun-подобного шаманства в Darktable, Blender и, возможно, где-то ещё :-)
В blender для использования технологии CUDA нужно включить её в File — User Preferences — System — Compute Device (нужно переключить с None на CUDA) и всё работает.

Источники:
Алгоритм установки Nvidia Prime: http://help.ubuntu.ru/wiki/nvidia-prime
Алгоритм установки CUDA: http://techcave.ru/posts/63-ustanovka-cuda-7-5-na-ubuntu-16-04.html
Дополнение: https://ubuntuforums.org/showthread.php?t=1620635

NumLock в Ubuntu 14.04 LTS

Столкнулся с такой проблемой: самовольно в произвольные моменты времени отключается NumLock. Для включения режима цифр помогает двукратное нажатие клавиши NumLock.
Покопавшись в интернете, обнаружил, что с этой проблемой столкнулся не только я. Нашёл решение на форумах Ubuntu :

РАБОТАЕТ ТАКОЙ ВАРИАНТ:

name: Numlockx
command: sleep 20 && numlockx on

Это в автозагрузку.

Т. е. в Unity запускаем поиск по приложениям и находим приложение «автоматически запускаемые приложения», где добавляем новую запись с указанными параметрами. Приложение numlockx нужно дополнительно установить в менеджере либо с помощью apt-get.
Работает!

2016   linux   numlock   ubuntu

Секретные столовые в московских аэропортах

Кто не покупал в московских аэропортах бутылочку воды за 100 рублей? А о ценах на еду вообще не идёт речи. Пользователи Интернета поделились секретами, как дёшево и сытно поесть во Внуково, Домодедово и Шереметьево. Слегка запутанные инструкции, но оно того стоит, если Вам пришлось надолго задержаться в аэропорту, а голод не тётка. Полезная информация для всех, кто летает, сохраняйте себе!

  1. Внуково

Запоминаем маршрут: входим в терминал «Б», если стоять спиной ко входу в правом дальнем углу есть небольшой коридорчик, который ведет в соседний зал (я так понимаю это терминал «Д», вход в который закрыт с улицы), проходим по коридору мимо пустующих витрин и магазинчиков, поднимаемся по бетонной лестнице и находим столовую, обычную столовую, вход туда свободный, за полноценный обед (супчик, котлета/мясо с гарниром, салат и сок) рублей 200-250, для аэропорта цена более чем достойная.

  1. Домодедово

Если пойти по Берёзовой аллее (это дублёр главного Международного шоссе, проходит с левой стороны, если спиной стоять к вокзалу), то за автомобильными стоянками есть ангар. Метров 800 пешком. В нем есть кафе и столовая для АТБ. На 200 руб объешься.

  1. Шереметьево

Столовая в Шереметьево находится в Терминале F (старый международный терминал Шереметьево). Если вы стоите спиной к входу и лицом к табло, слева и справа от вас будут лифты. Вам нужны те, что слева от вас. Столовая как и другой относительно недорогой ресторан находится на 4 этаже. Когда вы зайдете в лифт, не удивляйтесь, что кнопки 4 этажа нет — просто нажимайте на 5 этаж и езжайте. Когда вы приедете на 5 этаж прямо напротив лифта вы должны будете увидеть музей Шереметьево (значит, вы на правильном пути), слева от вас будет лестница, по ней надо спуститься на 1 этаж

Далее налево — ресторан с видом на взлетное поле, а справа — та самая столовая.

В столовой все как в старые советские времена — берешь поднос и по реечкам едешь и ставишь на него все, что хочешь кушать. Выбор там был довольно большой — около 8 видов салатов, которые приятные девушки накладывают в одноразовые тарелки, взвешивают и прилепляют стикер с весом, несколько супов, несколько видов мяса (из того что я знаю было мясо по-француски, тефтели, котлеты по-киевски, что-то фаршированное), на гарнир была картошка нескольких видов, овощи, соки-вода-компот (настоящий!!!), хлеб.

Дополнение: Работает кнопка 4 этажа.
Называется «корпоративная столовая Аэропит». И рядом их же ресторан «5 океан», из него летное поле как раз видно. Раньше весь 4 этаж была столовая, а 5-й (где сейчас музей) — целиком ресторан. Но тогда терминалов D и E еще не было и тут трафик был ого-го.Сотрудники, кстати, еще дешевле столуются — скидка 40% так что обедать ходите со знакомыми сотрудниками.

Источник: Вконтакте

Буферы обмена в Xorg

В графической среде Xorg существует не один, а два буфера обмена: основной X/X11 и отдельно — Gnome/GTK. Из-за этого копирование-вставка информации между приложениями (например, из keepass2 в Mozilla Firefox) работает не всегда. Для исправления этого нужно установить приложение autocutsel — http://www.nongnu.org/autocutsel/ и прописать в ~/.bashrc следующие строки:

$ autocutsel &
$ autocutsel -s PRIMARY &

2015   copypaste   gnome   keepass   linux   mono

Шерстяной велопролёт

Флешмоб — он и в Москве флешмоб. Вопрос только — для народа или для его участников. Решили поучаствовать в «шерстяном велопробеге».
В четверг созвонился с организаторами — всё будет классно, спецы из велоклуба помогли с оргвопросами, спланировали маршрут любительского уровня, кататься будем примерно час.
Мы приехали, пообщались с народом — девушка на моноцикле, 3 байкера из велоклуба. Нам украсили велик, ведущий сказал со сцены речь, мы выстроились, нас сфоткали, пожелали счастливого пути, красиво проводили за шлагбаум, байкеры-профи пожелали нам удачи и скрылись за поворотом... Где маршрут? Какой маршрут? Нет маршрута... Перекресток, кругом машины, ни намёка на организацию... Расстроенные поехали домой. В общем, велооблом. Зато по московским улицам покатались.

Если CUPS не видит принтер...

Столкнулся с такой проблемой: CUPS перестал печатать на подключенных к нему МФУ Samsung SCX-4200 и струйнике Epson Stylus Photo P50. Попытался переустановить принтеры в CUPS — их нет в списке... Пробовал прописать в cupsd.conf — безрезультатно. Переустановка CUPS и foomatic* результата тоже не принесла. Увидел в системном логе ошибки colord — попытался подёргать её тоже. Безрезультатно...
Совершенно случайно наткнулся на решение. Пусть оно останется и здесь.
Помогло добавление принтеров в свежесозданный файл /etc/udev/rules.d/10-usbprinter.rules:

ATTR{idVendor}=="04e8", ATTR{idProduct}=="341b", MODE:="0666", GROUP:="lp"
ATTR{idVendor}=="04b8", ATTR{idProduct}=="0007", MODE:="0666", GROUP:="lp"

После рестарта udev и cupsd всё заработало как надо, принтеры нашлись.

2015   centos7   cups   udev   принтер

День Рождения

Сегодня, наконец, после долгой подготовки, портал стал доступен из интернета. Ура!

Эгея и HTTPS

На свою голову решил сразу всё сделать правильно. Организовать подключение к серверу только по HTTPS.
Долго мучился с настройкой безопасного подключения к эгее. Она всё время норовила формировать ссылки в формате

https://lebedevcloud.ru:80/

Оказалось, нужно всего лишь в директиве ServerName в apache указать не только адрес, но и порт 443. Т. е.:

ServerName lebedevcloud.ru:443

и переменная SERVER_PORT автоматически переназначилась на 443.
Оставалось всего лишь запретить подключение по http (а точнее, настроить редирект на https) на nginx и всё заработало как надо!

2015   apache   https   nginx   эгея

Почта

У нас заработала почта! Теперь ни одно письмо не останется непрочитанным!

2015  

День Рождения

Скоро, скоро, очень скоро! Во Всемирной Паутине рождается ещё один маленький, но, надеюсь, очень полезный бложег!
Осталось совсем немного!