13 заметок с тегом

Инструкции

Всякие разные мелкие (и не очень) инструкции, как сделать что-то (скорее всего, связанное с программированием, обслуживанием ОС/железа или музыкой).

Позднее Ctrl + ↑

Как собрать Netatalk 3 для Ubuntu

Если вы вдруг не доверяете моему PPA для Netatalk, этот гайд для вас, мои дорогие параноики ;-)

Для начала идём на актуальную страницу вики проекта Netatalk, в котором указан порядок сборки программы, без сборки пакета. На момент написания поста актуальная версия этой инструкции — здесь.

На момент написания этого поста актуальный список зависимостей сборки устанавливался таким образом:

# apt-get install build-essential libevent-dev libssl-dev libgcrypt-dev libkrb5-dev libpam0g-dev libwrap0-dev libdb-dev libtdb-dev libmysqlclient-dev avahi-daemon libavahi-client-dev libacl1-dev libldap2-dev libcrack2-dev systemtap-sdt-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev tracker libtracker-sparql-1.0-dev libtracker-miner-1.0-dev

За описанием, что зачем надо — ссылка на вики выше. Она на английском, но там всё предельно просто.

Дальше устанавливаем devscripts — коллекцию утилит для правильной сборки пакета Debian, а так же некоторые служебные пакеты для сборки:

# apt-get install devscripts
# apt-get install cdbs debhelper dh-buildinfo d-shlibs

Создаём у себя где-нибудь директорию для всего этого хлама, который нам предстоит собрать. В эту директорию кладём тарболл с исходниками Netatalk (брать на официальном ресурсе проекта), и debian sources для пакета (брать, например у меня в PPA). Распаковываем архив исходников:

$ tar jxfv netatalk-3.1.8.tar.bz2

Переходим в распакованную директорию, и копируем туда исходник дебиановского пакета. Пишем что-нибудь осмысленное в чейнджлог:

$ dch -v 3.1.10 -D xenial

Проверяем необходимость накладывания патчей (актуален на данный момент лишь патч 114_fix_macusers_ps_parsing.patch):

$ vim debian/patches/series

Правим зависимости — они должны совпадать с теми, что есть в вики Netatalk:

$ vim debian/control

Правим сборочный скрипт для пакета — нам нужны опции configure, как в вики!

$ vim debian/rules

Теперь можно собирать сам пакет. Команда debuild — один из вариантов запуска сборки пакета. Другие варианты можно посмотреть, например, здесь.

$ debuild

Если сборка прошла нормально, то вы должны получить кучу файлов, среди которых будет собранный пакет для вашей системы. Если вы хотите поделиться пакетом со всеми, используйте debuild -S для сборки файла исходников, и dput для загрузки файла на сервера Launchpad-а.

Здесь возможен небольшой подводный камень. Так как, вероятно, пакет собирается впервые, то у вас нету OpenGPG-ключа. Он нужен для правильной сборки пакета, например, если вы хотите поделиться им с другими пользователями посредством собственного PPA. Можно использовать мануал типа этого. Подписывание пакета необязательно, если вы его собираетесь использовать исключительно для себя.

Данный мануал и собранный пакет основаны на работе Jay R. Wen, за что ему большое спасибо.

2017   Netatalk   Ubuntu   Инструкции

Firefox для настоящего параноика

Сегодня вышел в свет Firefox 29, чему посвящён топик на ЛОРе. В этом топике один анонимус выложил список опций в about:config, влияющих на приватность. Весьма интересный и полезный, как мне кажется (особенно в нынешних российских условиях), список размещён под чертой.


media.peerconnection.enabled = false

— запрещает поддержку протокола WebRTC, текущая реализация которого позволяет незаметно для пользователя получить список IP-адресов в его локальной сети (с помощью JavaScript), что повышает уникальность пользователя. Пруф.

browser.safebrowsing.enabled = false
browser.safebrowsing.malware.enabled = false

— отключает передачу информации о посещаемых веб-сайтах Гуглу, база которого используется для предупреждений о мошеннических сайтах (какая ирония — называть опцию, сливающую данные «налево» — safe browsing…).

browser.search.suggest.enabled = false

— отключает передачу текста, набираемого в окне поиска, поисковой системе без явного подтверждения со стороны пользователя. Лишаемся предложений от поисковой системы по мере набора запроса, но зато, если вы вдруг начали набирать запрос и передумали — он не отправится до нажатия Enter.

dom.enable_performance = false

— отключает передачу браузером информации о времени начала и окончания загрузки страницы. Анализ этих данных позволяет определить факт использования прокси-сервера.

network.dns.disablePrefetch = true

— запрещает предварительное разрешение имён DNS для всех ссылок на веб-странице (пока пользователь сам не нажмёт на ссылку). Это может привести к утечке DNS-трафика при работе через анонимизирующий прокси-сервер.

network.proxy.socks_remote_dns = true

— отправлять DNS-запросы через прокси при использовании прокси. Иначе они пойдут напрямую и могут привести к раскрытию реального IP-адреса.

network.seer.enabled = false

— отключить Seer. Seer — механизм, включенный в Firefox 29, который отслеживает сайты, посещаемые пользователем. Например, при заходе на http://example.com/index.html браузер запоминает, что веб-страница запросила загрузку http://images.example.com/image.jpg, http://styles.example.com/style.css и http://scripts.example.com/jquery.js. При следующем посещении этого сайта браузер сразу откроет соединение с images.example.com, styles.example.com, и scripts.example.com, что позволит сократить время загрузки страницы. Важно заметить, что Seer не занимается предзагрузкой контента (предварительная загрузка управляется другой настройкой — network.prefetch-next, которую можно отключить с целью повышения уровня приватности), а лишь устанавливает соединение (включая предварительно разрешение имён через DNS и SSL-handshake). Кроме того, отслеживание не производится для https-соединений и в режиме приватности. Активность Seer и размер списка посещённых страниц можно регулировать с помощью настроек network.seer.enabled и network.seer.max-db-size (по умолчанию, размер файла seer.sqlite может достигать 150 мегабайт). Теоретически, владелец сайта может отслеживать время загрузки страниц браузером пользователя и использовать эту информацию, как дополнительный источник данных для составления более четкого «отпечатка браузера».

network.security.ports.banned = 4444,9050,9051

— запрещает сайтам установку соединений на критически важные порты, занятые I2P и Tor. Людям, которые данными сетями не пользуются, ставить данную опцию необязательно.

dom.battery.enabled = false

— запрещает отслеживать состояние батареи (уровень паранойи: расширенный).

dom.network.enabled = false

— запрещает определять параметры соединения с сетью (при этом передаётся тип соединения: LAN, Wifi, 3G и так далее).

network.proxy.no_proxies_on = (пустое значение)

— запрещает сайтам обращение к локальной машине, что позволило бы им анализировать список открытых портов. Подсмотрено у разработчиков Tor. Возможны проблемы при обращении на адреса типа ​http://127.0.0.1:631, используемые для конфигурации принтеров через CUPS и прочих устройств.

webgl.disable-extensions = true webgl.min_capability_mode = true

— тоже подсмотрено у Tor. Запрещает передачу сайтам подробной информации о графических возможностях системы.

browser.cache.disk.capacity = 0
browser.cache.disk.enable = false
browser.cache.disk.smart_size.enabled = false
browser.cache.disk_cache_ssl = false
browser.cache.memory.enable = false
browser.cache.offline.capacity = 0
browser.cache.offline.enable = false
dom.indexedDB.enabled = false
media.cache_size = 0
network.http.use-cache = false

— полное отключения кэширования. Анализируя время загрузки страницы, можно узнать, посещал ли пользователь этот сайт. Если посещал — часть файлов будет взята из кэша, что отразится на времени загрузки.

dom.storage.enabled = false

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

general.appname.override = Netscape
general.appversion.override = 5.0 (Windows)
general.oscpu.override = Windows NT 6.1
general.platform.override = Win32
general.useragent.override = Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0
general.productSub.override = 20100101
general.buildID.override = 20100101
browser.startup.homepage_override.buildID = 20100101
```

— маскировка браузера под версию 24 LTS и самую распространённую платформу. Не забываем обновлять по мере выхода очередных LTS (и очередных виндов) (уровень параноий: расширенный).

app.update.auto = false
app.update.enabled = false
app.update.mode = 0
app.update.service.enabled = false

— отключает автообновление браузера (по большей части актуально для Windows и OS X).

browser.search.update = false

— отключает автообновление поисковых плагинов.

datareporting.healthreport.service.enabled = false
datareporting.healthreport.uploadEnabled = false
datareporting.policy.dataSubmissionEnabled = false

— не отправлять данные о производительности в Mozilla.

Дополнительные рекомендации анонимуса:

Для борьбы со скриптами и куками рекламных сетей рекомендуются подписки адблока (Enhanced Trackers List), Social List), расширение NoScript (режет все скрипты, пользователь может разрешать скрипты доверенным сайтам, например, разрешить скрипты, лежащие лишь на linux.org.ru, а гуглоаналитику на том же лоре — нет), расширение Cookie Monster (точно также режет все куки, кроме явно одобренных пользователем). К использованию рекомендуется и HTTPS Everywhere от Фонда электронных рубежей, форсирующее использование HTTPS на большом количестве сайтов (только придется рукаи отключить правило для Google services, поскольку оно ломает ютуб после того, как ютуб поменял дизайн).

Возможно, для кого-то эта информация будет полезной. Если у вас есть какие-то свои размышления на тему параноидального использования современной техники в эпоху АНБ — милости прошу в комментарии.

2014   Firefox   Инструкции   Прайвеси

Asus EeePC 1011cx и костыли с подсветкой

В моём хозяйстве появилась маленькая железка для ведения логов лекций и прочего рукописного стаффа: я из того поколения людей, которым проще печатать, чем писать. Собственно, железко на Яндекс.Маркете — характеристики и прочую отзывоту можете прочитать там. Я же вам расскажу о костылях с Linux-ом.

UPD: описанные далее костыли актуальны для версии ядра Linux 3.8. В ядре 3.9 сделали что-то, и теперь изменение яркости работает “искаропки” на данном девайсе (то есть адекватно воспринимается, например, xfce4-power-manager-ом). Необходимость нижеописанного костыля ставится под сомнение (если у вас не Debian ;))

Начнём с того, что железка 32-хбитная: в 2013-м году это выглядит ужасающе, но пока что Arch не выкинул поддержку i686 из своих реп (да и Xilitra свою бету таки выкатит летом), так что это не столь печально. А вот четырёхядерный (привет гипертредингу!) тридцатидвухбитный проц — это заставляет шаблоны трещать аки жёсткие диски 90-х годов под Windows XP без сервиспаков ;) Что интересно — про гипертрединг в рекламных материалах к данному ноутбуку не говорится ни слова, не удивлюсь, если под виндой его выключают.

Wi-Fi модуль и прочие стандартные вещи любой современный Linux на этом нетбуке подхватит “искаропки”. Тачпад мимикрирует под PS/2 мышь, и его функционал напрямую зависит от настроек вашего дистрибутива, DE, машины времени и фазы луны (и установленности пакета xf86-input-mouse). Батарейки даже без особой настройки в режиме “юзаем как печатный станок и тестируем всё, что тестируется” хватает на 6 с половиной часов — как раз на учебный день или около того. Всё бы ничего, но есть у этого нетбука беда — и это его серьёзная и главная беда.

Главная беда в этой железке — видео. Обычно Intel славится своими открытыми дровами ко всему своему железу, но это — печальное исключение: чип Cedar Trail разработан не ими, так что об официальных открытых дровах под этот наш пингвин можно забыть. Об официальных закрытых драйверах тоже можно забыть — они рассчитаны на древние ядро, Xorg и Mesa. Но у сообщества таки хватило сил накатать нечто вроде драйвера, о чём мы сейчас и поговорим.

Под Arch пакет с данным драйвером называется xf86-video-modesetting и не требует дополнительной настройки (в арче: ваш дистрибутив может обладать иными представлениями о действительности). Судя по названию, я могу предположить, что это generic-драйвер, юзающий KMS в качестве опоры для работы — но я могу ошибаться. Учтите, что если у вас стоит драйвер vesa — без дополнительной настройки грузиться будет он, а не modesetting, из-за чего производительность упадёт ниже плинтуса (именно этим объясняются тормоза Ubuntu 13.04 LiveCD). Про этот драйвер следует знать следующее:

  1. Аппаратное ускорение видео не будет работать (пока кто-то не сподобится написать нормальный драйвер или открыть и пофиксить проприетарный), так что этот ваш mplayer будет декодить видео на процессоре, и о FullHD можно забыть (хотя кто будет смотреть FullHD-видео на десятидюймовом экранчике с разрешением 1024х600?)
  2. Все аппаратные клавиши, связанные с экраном (яркость, переключение на VGA/HDMI) не работают из коробки изменение яркости не работает штатными средствами.
    Подчёркиваю, штатными средствами. Ибо есть костыль, который я честно стырил из арчевики (правда, там говорилось про ноутбук Samsung с похожей проблемой), и применил под свои нужды.

Код костыля:

#!/bin/bash
var1=`setpci -s 00:02.0 F4.B`
var1d=$((0x$var1))
case "$1" in
       up)
               #calculate new brightness
               var2=`echo "ibase=10; obase=16; a=($var1d+16);if (a < 255) print a else print 255" | bc`
               echo "$0: increasing brightness from 0x$var1 to 0x$var2"
               setpci -s 00:02.0 F4.B=$var2
               ;;
       down)
               #calculate new brightness
               var2=`echo "ibase=10; obase=16; a=($var1d-16);if (a > 15) print a else print 15" | bc`
               echo "$0: decreasing brightness from 0x$var1 to 0x$var2"
               setpci -s 00:02.0 F4.B=$var2
               ;;
       set)
               #n.b. this does allow "set 0" i.e. backlight off
               echo "$0: setting brightness to 0x$2"
               setpci -s 00:02.0 F4.B=$2
               ;;
       get)
               echo "$0: current brightness is 0x$var1"
               ;;
       toggle)
               if [ $var1d -eq 0 ] ; then
                       echo "toggling up"
                       setpci -s 00:02.0 F4.B=FF
               else
                       echo "toggling down"
                       setpci -s 00:02.0 F4.B=0
               fi
               ;;
       *)
               echo "usage: $0 {up|down|set |get|toggle}"
               ;;
esac
exit 0

Данный скрипт использует очень ценную и полезную для нас утилиту setpci для нужной нам цели — регулировки яркости. Яркость регулируется на самом “нижнем” уровне: эксперименты с этой утилитой могут привести к беде, так что не советую особо баловаться с этой тулзой. В нашем же случае эта тулза шлёт в соответствующий регистр видюхи сигнал об установлении яркости ниже/выше/на определённый уровень, например (допустим, что наш скрипт назван backlight.sh; все действия идут от суперпользователя):

  • backlight.sh up — поднимает яркость экрана
  • backlight.sh down — опускает яркость экрана
  • backlight.sh toggle — включает экран (яркость 100%) или выключает экран (яркость 0%, аналогично команде vbetool dpms off)
  • backlight.sh set [шестнадцатеричная цифра, например 0f] — задаёт яркость, 00 — минимум (выключенный экран), ff — максимум
  • backlight.sh get — выплёвывает текущую яркость.

Теперь на кнопки Fn+F4 и Fn+F5 можно повесить команды backlight.sh down и backlight.sh up соответственно (озаботьтесь тем, чтобы они запускались от суперюзера правильно!) средствами вашего DE. Да, пока что это не решение по автоматической регулировке яркости, но уже что-то: /me в поисках чего-нибудь типа power manager-а, к которому можно будет прикрутить данный скрипт :) Надеюсь, данный скрипт сэкономит вам немного нервов.

Данный пост написан на Asus EeePC 1011cx, на котором установлен Archlinux и Xfce вместо DE.

2013   Arch Linux   Asus EeePC   Инструкции