понедельник, 19 января 2015 г.

Если у вас падает PDFXchange Viewer под вайном

Если вы пользуетесь используете PDFXchange Viewer в линуксе под вайном, то, возможно, вы сталкивались с надоедливой проблемой: при сохранении PDFXchange Viewer падает. Равно как и при попытке открыть несколько файлов в нескольких вкладках и переключиться между ними. Важное условие: данное лекарство подходит только для 64-битных систем.

Итак, поехали:

  1. Запустите установку и удаление программ wine и удалите там имеющийся PDFXchange Viewer.
  2. Скачайте 32-битную MSI-версию программы:
    wget http://www.tracker-software.com/downloads/PXCViewer_x86.msi -O /tmp/PXCViewer32.msi
  3. Установите её в новую wine-бутылку с 32битной архитектурой:
    WINEARCH="win32" WINEPREFIX=$HOME/.wine-pdfxchange32 wine msiexec /i /tmp/PXCViewer32.msi
Если ассоциации с pdf-файлами не заработают, запустите программу, используя ярлык на рабочем столе. Можно также зайти в настройки программы и установить файловые ассоциации для открытия в PDF Xchange Viewer.

Теперь всё должно работать стабильно и без вылетов.

понедельник, 6 октября 2014 г.

Ubuntu 14.04: Продлеваем время работы ноутбука от аккумулятора

У меня в блоге уже была заметка на эту тему. Но в Ubuntu 14.04 кое-что изменилось и старые советы не работают. Поэтому, если вы хотите продлить время работы от аккумулятора вашего ноутбука, можно выполнить следующие шаги:

  1. Установите пакет tlp (вместо laptop-mode. Если был установлен он - удалите).
  2. Теперь этот пакет нужно настроить. Файл конфигурации находится в /etc/default/tlp. Для правки в gedit его можно открыть так: gksu gedit /etc/default/tlp. Если перед какой-то настройкой стоит #, то сначала удалите её, таким образом раскомментировав. Многие параметры в этом файле двойные - есть две версии, одна оканчивается _ON_AC, другая - _ON_BAT. Первая относится к ситуации работы от сети, вторая - от аккумулятора. Что можно настроить:
    1. CPU_SCALING_GOVERNOR_ON_BAT=powersave эта настройка приведёт к тому, что при работе от аккумулятора ваш процессор будет работать в энергосберегающем режиме. Лично меня это полностью устраивает. Но если для вас на каких-то задачах при работе от аккумулятора ноутбук будет как-то страшно тормозить, то можно оставить значение этого параметра ondemand, но, например, поменять параметр ниже, CPU_SCALING_MAX_FREQ_ON_BAT задав там максимальную частоту, на которую может разгоняться ваш процессор при работе от батареи. Возможные варианты значений для этого поля можно посмотреть так:
      sudo tlp-stat | grep -m1 'scaling_available_frequencies'
    2. Настройка времени отключения дисков. При настройке дисков нужно помнить следующее: режимы энергосбережения, параметр SPINDOWN и подобны применительно к SSD в большинстве случаев лишены всякого смысла. Если у вас SSD - просто не заморачивайтесь. Тут есть ряд настроек, начинающихся с DISK_. Итак:
      • DISK_DEVICES - список дисков. То какие диски у вас есть в системе и какие у них идентификаторы, которые нужно добавить сюда через пробел можно узнать командой tlp diskid. Все последующие команды тоже вводятся в таком же формате: через пробел, каждое значение соответствует диску, указанному в поле DISK_DEVICES.
      • DISK_APM_LEVEL_ON_BAT - уровень энергосбережения. Установите его равным 127 для того, чтобы стала возможной остановка диска во время простоя.
      • DISK_SPINDOWN_TIMEOUT_ON_BAT - период, через который диск будет останавливаться. Значения от 1 до 240 - это периоды в секундах, умноженных на 5. То есть, если вы хотите установить остановку диска через 60 секунд бездействия, установите это значение равным 12. Значения от 241 до 251 позволяют настроить задержку от 30 минут до 5,5 часов (с шагом в 30 минут). Тут важно помнить, что установка больших таймаутов на основном диске лишена смысла. Система регулярно обращается к диску, и если у вас таймаут 10 или даже 5 минут, то с большой долей вероятности диски не будут останавливаться никогда. С другой стороны, важно помнить, что слишком малое время может привести к постоянным остановкам/раскручиванию диска, что тоже мало полезно для привода.
    3. Если вы при работе от аккумулятора будете пользоваться каким-то USB устройством и обнаружите, что оно через какое-то время перестаёт работать и начинает работать только с подключением к сети или переподключением к порту, то вам нужно внести это устройство в список исключений. Это параметр USB_BLACKLIST. Используйте команду lsusb, чтобы получить идентификатор нужного устройства. Идентификатор выглядит примерно так: 0bda:0139. Если устройств несколько, добавьте идентификаторы через пробел.
  3. После внесения изменений в конфигурацию tlp его нужно перезапустить:
    sudo service tlp stop
    sudo service tlp start
  4. Если вы пользуетесь разными индикаторами аппаратных датчиков, для отображения температуры дисков - отключите их (достаточно просто отключить вывод данных дисков), если вы хотите, чтобы ваши диски засыпали и не просыпались каждую минуту.
  5. Если у вас есть дискретная графическая карта, которой вы не пользуетесь (при повседневной работе в большинстве случаев за глаза хватает интегрированных в процессор графических контроллеров), то её можно полностью отключить. Как? смотрите совет в прошлой статье. Добавлю только, что для того, чтобы оно заработало в 14.04 нужно сделать следующее:
    1. В файле /etc/default/grub в параметр GRUB_CMDLINE_LINUX_DEFAULT добавить modeset=1 hybridopts=ON,IGD,OFF и, если у вас AMD, то ещё добавить radeon.runpm=0.
    2. Выполнить sudo grub-update
    3. Перезагрузить систему. После этого вновь станет доступно полное отключение дискретной графики.

среда, 21 мая 2014 г.

Ubuntu 14.04: апгрейд и проблемы с раскладкой

Я обновил свою систему до Ubuntu 14.04, и этот апгрейд прошёл на удивление безболезненно. Всё то, что мешало жить, раздражало и в итоге вынудило откатиться с 13й ветки на 12.04, здесь исправлено и никак не мешает.

Есть правда одна проблема. И проблема эта связана с тем, что я не просто пользователь убунты, я пользователь который привык определённые вещи настраивать под себя. Так, например, я не пользуюсь юнити, т.к. не смог с ней ужиться по ряду причин (дело не столько в привычках, а в том, что некоторых функций там нет а заменить их она сильно мешает), и использую то, что раньше называлось Gnome Fallback, а в 14.04 называется Gnome Flashback.

Но особенно важно для меня, чтобы адекватно работала клавиатура.
 

среда, 12 февраля 2014 г.

Если не работает VPN через роутер

Убил кучу времени на решение проблемы, так что опишу решение здесь.

Итак, картина маслом по хлебу: при смене провайдера перестал работать VPN (securityKISS, kebrum) в Ubuntu. Соединения настроены через Network Manager. Однако, обнаружилось, что если подключить кабель к ноутбуку напрямую, а не через роутер, то всё работает.

Схема такая: Интернет → Провайдер → PPPoE → Роутер (Zyxel Keenetic Lite) → Компьютеры с Ubuntu (12.04.4 64 бита).

До этого провайдер не использовал PPPoE и всё работало.

Итак, тут есть сразу две проблемы. Во-первых, нужно проверить, включен ли проброс пакетов в ядре:
cat /proc/sys/net/ipv4/ip_forward
Ответом должно быть "1". Если ответ "0", то нужно включить проброс пакетов на постоянной основе (будет действовать после перезагрузки):
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
Но перезагружаться не обязательно, можно включить проброс пакетов в текущей сессии:
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
Но это только полбеды. Если у вас заработал VPN - поздравляю. Если нет - читаем дальше. Проблема тут в том, что провайдер использует PPPoE. А это значит, MTU (максимальный размер пакета) уменьшается. Роутер его тоже уменьшит. Проверяем:
$ traceroute --mtu 8.8.8.8
Ответом будет что-то вроде:
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 65000 byte packets
1  192.168.1.1 (192.168.1.1)  0.868 ms F=1400  0.740 ms  0.669 ms
2  x.x.x.x (x.x.x.x)  1.722 ms  1.684 ms  1.582 ms
Вот там есть F=1400 это и есть наш MTU. Заходим в свойства соединения с роутером в Network Manager и меняем MTU на это число.

Собственно, всё, после этого VPN должен работать.

воскресенье, 23 июня 2013 г.

Продлеваем время работы от аккумулятора на ноутбуке с Ubuntu

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

1. Установите пакет laptop-mode. Этот пакет содержит в себе комплект утилит, которые проводят тонкую настройку разных параметров системы так, чтобы всё работало как можно дольше. Настройки хранятся в /etc/laptop-mode/ - если владеете английским можно поковыряться в настройках и ещё больше оптимизировать работу. Хотя и этого хватает.

UPD: Как оказалось, по умолчанию для работы от аккумулятора не меняется режим работы процессора. Это можно изменить, открыв от администратора файл /etc/laptop-mode/conf.d/cpufreq.conf:
gksu gedit /etc/laptop-mode/conf.d/cpufreq.conf
И заменив там BATT_CPU_GOVERNOR=ondemand на BATT_CPU_GOVERNOR=powersave.

2. Если у вас имеется дискретная карта и вы по большому счёту ей не пользуетесь (не играете в тяжёлые игрушки) - её можно отключить. Расскажу на примере своего ноутбука Lenovo G570 - там имеется дискретная карта AMD Radeon HD 6300, но интегрированной Intel HD 3000 мне хватает за глаза.

Я не устанавливал проприетарных драйверов для AMD, использую открытые, которые поставляются вместе с системой. Поэтому отключается всё очень просто, командой вроде (запускать нужно от администратора):
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
Для того, чтобы эта команда выполнялась при каждой загрузке системы, её можно добавить в файл /etc/rc.local, перед строчкой exit 0;

Однако, тут возникает проблема, которая проявляется, по крайней мере на моей системе (но не только на моей). Проблема заключается в том, что при выходе из ждущего режима система просто зависает. Чтобы этого избежать, нужно всего лишь включать дискретную видео карту (в данном случае Radeon) перед уходом в ждущий режим и затем включать обратно при выходе из него. Для этого создайте файл /etc/pm/sleep.d/77_amd_toggle со следующим содержимым:
#!/bin/bash
# Script to disable and enable the discrete graphics card before suspend and after resume

case "${1}" in
suspend)
  # We turn it on before suspend to prevent bugs
  echo ON > /sys/kernel/debug/vgaswitcheroo/switch
  ;;

resume)
  # We turn it off after resume to save energy
  # Your GFX would freeze if you turn off discrete card immediately, that's why this delay:
  sleep 3
  echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
  ;;
esac
Итого: система работает от аккумулятора около 5 часов в режиме активной работы в IDE, с кучей открытых вкладок в Chrome, с непрерывно играющей музыкой.

четверг, 10 января 2013 г.

Если падает PDFXchange Viewer под вайном

Популярный просмотрщик/редактор PDF файлов PDFXchange Viewer стал падать при работе в Linux под вайном. Обычно это происходит на 64битных системах в момент сохранения документа или переключения с вкладки на вкладку.

Пока разработчики вайна это не поправили, можно воспользоваться обходным вариантом:
  1. Скачайте Portable-версию PDFXchange Viewer с сайта производителя (справа выберите Portable ZIP | 8 MB).
  2. Распакуйте содержимое в папку, где установлен PDFXchange Viewer (обычно это ~/.wine/drive_c/Program Files/Tracker Software/PDF Viewer).
  3. Наслаждайтесь эффектом.

вторник, 9 октября 2012 г.

Простой способ начать пить 2 литра воды в день

Многие люди знают тот простой факт, что мы зачастую пьём слишком мало воды. Известно, что пить нужно не менее 2 литров в день (речь идёт только о простой воде, различные напитки и супы тут не считаются).

Решившись на этот подвиг люди зачастую сталкиваются с тем, что очень сложно заставить себя пить много воды. Это трудно, об этом постоянно забываешь и всё такое. Я и сам много раз пытался начать пить воду, но ничего не получалось.

А потом простой рецепт обнаружился как бы сам собой. Месяц я жил и работал в другом месте и там появилась привычка с утра набирать чистую воду в полуторалитровую бутылку и брать её с собой в офис. Я ставил её на стол, а рядом ставил кружку. Удивительно, но незаметно для себя я обнаружил, что к вечеру бутылка оказывалась пустой.

Объяснение тут простое: когда мы не отказываем организму в удовлетворении естественных позывов, они становятся более ощутимыми для нас. И вот сейчас, например, я пью воду уже не потому, что на столе стоит бутылка с водой, а потому что я чувствую жажду — я не игнорирую позывы организма и он напоминает мне о том, что нужно естественным образом.

Таким образом, если вы хотите начать пить воду, обеспечьте, чтобы питьевая вода (а не чай и кофе) были у вас всегда под рукой. Если вы работаете в одном месте — пусть рядом всегда будет бутылка с чистой водой, а если много передвигаетесь — обзаведитесь маленькой бутылочкой и регулярно пополняйте запасы. Дальше организм сделает своё дело. Просто не мешайте ему.

Кстати. похожая ситуация со сном. Когда мы реагируем на вечерние просьбы организма отправиться ко сну, а не пытаемся как-то взбодриться, то это только поможет раньше вставать и лучше высыпаться.

Итак, сейчас утром я фильтрую 2 литра воды и ставлю их себе на стол, а рядом ставлю кружку. Легко и непринуждённо к утру следующего дня бутылка оказывается пуста. И это помимо чая и прочих жидкостей выпиваемых за день.

Пейте воду и будьте здоровы!

среда, 12 сентября 2012 г.

Оптимизируем работу Linux с помощью zram

То, что может ощутимо замедлять работу любой системы - это обращение к swap-файлу. Когда системе не хватает оперативной памяти, она начинает сбрасывать некоторые страницы из памяти на диск, в swap файл (или в случае линукса, чаще в swap-раздел диска).

Проблема в том, что swap системе нужен, хотя бы для гибернации (поэтому отключать его вообще - не очень хорошее решение), а когда он есть, то данные в любом случае будут со временем туда складываться, вне зависимости от того, сколько у вас свободной оперативной памяти.

И вот бывает так, что памяти ещё немало, а система начинает ощутимо работать с диском из-за swap. И кому-то пришла гениальная идея - а что, если создать виртуальный swap-файл и разместить его в оперативной памяти?

С одной стороны, у системы остаётся нужный ей swap, а с другой, этот swap-файл крайне быстрый, быстрее любого диска. К тому же, поскольку он в памяти, можно применить простейшее сжатие, так что в него поместится заметно больше данных.

Ну это же Линукс, верно? Так что сказано — сделано. Что же нужно сделать, чтобы включить это чудо? На самом деле, все необходимые инструменты уже есть в вашей системе, нужно только включить. Но даже это уже сделано за вас. Нужно просто установить один пакет из PPA:
sudo add-apt-repository ppa:shnatsel/zram
sudo apt-get update
sudo apt-get install zramswap-enabler
Результатом установки этого пакета станет то, что в вашу систему будет добавлен init-скрипт, который будет при каждой загрузке создавать такой swap файл, автоматически подбирая оптимальный размер.

В итоге, пока размер данных swap будет меньше размеров этого виртуального swap файла, вы даже не заметите никакого замедления, т.к. диск система вообще не будет трогать.

суббота, 30 июня 2012 г.

Если не работает Google Chrome 20 в Linux

Вышел Google Chrome 20 для Linux, поставил я его на Ubuntu 12.04, а он не работает.

Дело в том, что одним из новшеств этой версии является Flash обновлённый  до версии 11.3 и использующий Pepper - новый программный интерфейс для плагинов. В этой версии Flash явно должен работать быстрее, т.к. он использует SSE2.

Тут и корень проблемы. Получается, если у вас процессор до уровня Pentium III или Athlon XP и ниже, то Flash 11.3 в Линуксе не заведётся. А вместе с ним не будет работать и Хром. Хотя, он мог бы в такой ситуации повести себя и как-нибудь получше, как, например, поступают Опера или Firefox.

суббота, 16 июня 2012 г.

Ubuntu 12.04 и внутренние DNS при использовании VPN

Допустим, для доступа в сеть предприятия вы используете VPN. В сети предприятия поддерживаются свои сервера доменных имён (DNS) для внутренних адресов, например, вида *.intranet или *.krutaya.firma, ну или ещё какие.

Так вот, Network Manager в Ubuntu 12.04 - это прекрасное и простое средство для управления подключениями, в том числе по VPN, т.е. как раз наш случай. Проблема в том, что в Ubuntu 12.04 в нём произвели значительные улучшения - подключили resolvconf и dnsmasq, которые, в принципе, работают неплохо. Но вот в этой связке Network Manager + resolvconf + dnsmasq + VPN случается проблема, которая не позволяет работать с локальными адресами. Об этой проблеме разработчикам известно, они работают над исправлением.

А что же делать пока проблема не решена?