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

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

Nvidia Optimus + Ubuntu 16.04 + CUDA

23 декабря, 2:14

Наконец-то удалось запустить на ноутбуке с гибридной графикой (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

19 февраля 2016, 9:24

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

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

name: Numlockx
command: sleep 20 && numlockx on

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

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

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

18 декабря 2015, 10:18

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

  1. Внуково

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

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

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

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

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

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

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

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

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

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

21 сентября 2015, 18:35

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

$ autocutsel &
$ autocutsel -s PRIMARY &

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

15 июня 2015, 15:44

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

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

21 апреля 2015, 10:03

Столкнулся с такой проблемой: 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 всё заработало как надо, принтеры нашлись.

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

4 апреля 2015, 13:25

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

Эгея и HTTPS

4 апреля 2015, 12:10

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

https://lebedevcloud.ru:80/

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

ServerName lebedevcloud.ru:443

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

Почта

23 марта 2015, 20:43

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

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

23 марта 2015, 17:41

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