Архив метки: Linux

Ограничение пропускной ширины канала (шейпинг) средствами Linux

В последнее время, грань между рабочим/домашним компьютером стирается. Все эти облака, концепции BYOD (bring your own device), а так же тотальное покрытие 3G/4G делает пользователей не разборчивыми в своих желаниях. И если, он нашел интересное видео, то почему бы его не скачать на телефон, что бы просмотреть со смартфона, стоя в пробке? Но корпоративные каналы не всегда могут поспевать за такими “потребностями” пользователей. Читать

Wine для игр. Мой рецепт. Linux Mint/Ubuntu.

Предисловие.

Количество нативных игр для Linux растёт с каждым днём и это очень радует! Но существует так же полно хороших игр для Windows, которые либо ещё не портировали на Linux, либо не будут портировать на него вообще. К счастью есть WINE, который неумолимо и активно развивается и в нынешнем своём состоянии позволяет абсолютно комфортно, играть в большинство Windows игр. В этой заметке я не буду описывать его установку, настройку и решение проблем запуска конкретных игр — всё это подробно описано на официальном сайте и обсуждалось на многочисленных форумах. Я же опишу пару приёмов, выполняя которые можно превратить абсолютно не играбельную «из коробки» игру в конфетку! Две основные проблемы, не дающие наслаждаться графически «тяжёлыми» играми под WINE — это скорость, с которой исполняется игра, в не зависимости от мощности «железа» (в частности напрягающие «рывки») и заикающийся/трещащий/щёлкающий звук, сопровождающий аудио составляющую игры. Обе эти проблемы решаемы! Начнём.

Повышаем скорость. Запуск игры в отдельном X-сервере.

Этот приём позволяет сильно повысить скорость исполнения игры, убрать или ощутимо сгладить «рывки», которые убивают всё удовольствие от игры. Работает не зависимо от используемой видеокарты, версии драйверов или окружения рабочего стола.
Итак, нужно активировать возможность запуска X-сервера от имени любого пользователя, а не только пользователя root:

# dpkg-reconfigure x11-common

Добавить пользователя, от имени которого запускается WINE в группу audio:

# gpasswd -a username audio

Где, username — имя пользователя.

Подготовительная работа закончена. Перезагружаем компьютер или перелогиниваемся и переходим непосредственно к запуску игры в новом X-сервере. За это отвечает команда xinit. Синтаксис:

$ xinit /usr/bin/command1 /usr/bin/command2 — :1

Где, :1 — номер дисплея.
Обратите внимание, что команды, выполняемые xinit должны обязательно содержать абсолютные пути к файлам, иначе выполняться не будут.
Пример запуска игры Mass Effect 3 в новом X-сервере:

$ xinit /usr/bin/wine ~/.wine/drive_c/Mass Effect 3/Binaries/Win32/MassEffect3.exe — :1

Преимуществом запуска игры в отдельном X-сервере, так же является то, что при этом WINE не сможет изменить разрешение экран на основном рабочем столе (которое он иногда забывает вернуть назад), что спасёт Ваши нервы, а так же появляется возможность безопасного переключения между рабочим столом и игрой по сочетания клавиш: ctrl+alt+F8 — рабочий стол, ctrl+alt+F9 — игра. В основных редакциях Ubuntu этот процесс проходит гладко, а вот в Mint приводит к падению DE. Не страшно, но и не приятно. Как этого избежать, я пока не нашёл.
Стоит так же отметить, что запуская игру в новом X-сервере, возможна ситуация, когда изображение выводится с сильным смещением и большая часть изображения смещается за пределы экрана. Это лечится заданием в утилите winecfg размера виртуального рабочего стола:

Исцеляем щёлкающий/хрипящий/заикающийся звук в игре.

Думаю, люди не далёкие от Linux догадываются, что проблемы со звуком в WINE вызваны всеми любимым Pulse Audio 🙂 И исцелить «щелкунчика», можно указав WINE, что нужно использовать ALSA вместо PULSE AUDIO. Делается это просто:

$ winetricks sound=alsa

После этого перезагружаемся и наслаждаемся тем, как прекрасно WINE запускает Windows игры 🙂

Автор: Yar4e

Неприемлемый 406 Not Acceptable при использовании curl

Столкнулся со следующей проблемой, иногда curl возвращает ошибку «406 Not Acceptable» answer:

# curl http://domain.com/curl.php

<html><head><title>406 Not Acceptable</title></head><body><h1>Not Acceptable</h1><p>An appropriate representation of the requested resource /curl.php could not be found on this server.</p><p>Additionally, a 404 Not Founderror was encountered while trying to use an ErrorDocument to handle the request.</p></body></html>

Способ решения проблемы найден достаточно быстро — использование громкого имени Mozilla в качестве User agent:

# curl http://domain.com/curl.php -A «Mozilla»Curl worked!

Start_Linux_Wine.v2.x / Gnome / Zenity

Обновлена версия скрипта Linux Games Start (LGS)…
Скрипт для организации и управления Wine префиксами / игры.

Версия для Kdialog (KDE) …
http://crimea-karro.org.ua/download/Start_Linux_Wine.v1.2.sh.tar.gz 

Версия для Zenity (Gnome) …
http://crimea-karro.org.ua/download/Start_Linux_Wine.v2.x.sh.tar.gz

***

Start_Linux_Wine.v2.1

* Добавлено ведение логов.
* Дополнительные переменные для кода скрипта.
* Переход на Zenity.
* Добавлена ссылка в меню для обновления скрипта.
* Небольшие игры с  notify-send.
* Добавлен диалог (стёб) «Exit script»?
* function main не дописана.

Версия для Zenity (Gnome) …
http://crimea-karro.org.ua/download/Start_Linux_Wine.v2.x.sh.tar.gz

Автор: AugustuS Karro
Дата публикации: 2014-10-18T08:01:00.000+08:00

Генерация случайных паролей / Linux консоль

Первый метод использует SHA для хеширования даты, «прогоняется» через base64, а затем отображаются первые 32 символа:

date +%s | sha256sum | base64 | head -c 32 ; echo

Этот метод использует встроенную возможность /dev/urandom и оставляет только те символы, которые обычно используются в паролях. Отображаются 32 символа.

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;

Следующий метод использует функцию rand из openssl, котоырй может быть не установлен на вашей системе.

openssl rand -base64 32

Этот метод во многом схож с прошлым методом через urandom, но делает все наоборот:

tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1

Вот ещё один пример, который производит фильтрацию с помощью команды strings и отображает печатные символы из файла: в нашем случае это urandom:

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d 'n'; echo

Вот ещё более простая версия метода через urandom:

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6

Этот метод использует очень полезную команду dd:

dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev

Если вы собираетесь использовать какую-нибудь команду все время, возможно, стоило бы поместить её в функцию. В данном случае, вы сможете использовать randpw все время, когда вы захотите сгенерировать новый пароль. Это нужно будет поместить в ваш файл ~/.bashrc:

randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}

Вы можете использовать тот же синтаксис, чтобы использовать любой из примеров как функцию — просто замените команду внутри символов { }.

И, наконец, вот самый простой способ создания пароля из командной строки. Это простая контрольная сумма MD5 от текущей даты:

date | md5sum

Автор: AugustuS Karro
Дата публикации: 2014-10-15T05:15:00.000+08:00

Интеграция скриптов,ярлыков в панель Unity / Ubuntu 14.xx / Linux

Все ярлыки находятся в папке /usr/share/applications/

$ cd /usr/share/applications/

Создаем ярлык для скрипта с вашем названием…

$ sudo gedit hacker_run.desktop

Файл должен содержать следующие подпункты…

[Desktop Entry]
Name=
Comment=
GenericName=
Keywords=
Exec=
Terminal=false
Type=Application
Icon=
Path=
Categories=
NoDisplay=false

***

Name- имя приложения, которое будет отображаться под иконкой в Главном меню;
Keywords- слова, по которым будет искаться данный ярлык в Главном меню;
Exec- строка запуска приложения;
Terminal- (true или false)- запускать или нет приложение в окне терминала4);
Type- определяет «раздел» в Главном меню, где будет находится ярлык приложения;
Icon- путь или общесистемное название иконки;
Path- путь к рабочему каталогу приложения);
Categories- категории, к которым будет относится ярлык вашего приложения при выборе в Главном меню фильтров. Проще всего подсмотреть в ярлыке другого приложения, категория которого вам подходит.
NoDisplay(true или false)- Не отображать иконку в Главном меню(если true);

***

Нам будут полезны Name,Keywords,Exec.

Достаточно заполнить Name и Exec.
Прописываем в Name то имя, которое хотим, чтобы отображалось в меню Dash Unity.
В поле Icon прописываем путь до нашей иконки (полностью).
В поле Exec прописываем путь до скрипта (полностью).

***

Обратите внимание, если у вас не стоит автомонтирование дисков в fstab, и приложение или скрипт находятся на не смонтированных носителях, иконка (приложение) пропадает с панели.

Автор: AugustuS Karro
Дата публикации: 2014-10-15T04:56:00.000+08:00