26 февраля 2015

Последняя попытка ввести security pin в смарткарте

Сегодня получил новые ощущения, когда вторая попытка ввести security pin в OpenPGP card закончилась неудачей. Еще одна неправильная попытка ввода security pin'а и карточка превратится в бесполезный кусок пластика, а вариантов пароля у меня штук 5.

User pin я помню хорошо, т.к. карточкой пользуюсь регулярно. А вот сегодня понадобилось изменить одну настройку и ой...

Дефолтные pin'ы на карту я менял вечером перед сном и похоже мало времени уделил заучиванию. В итоге карточкой пользоваться можно, но через год истекут ключи для подписи и шифрования и изменить настройки я уже не смогу.

Похоже пора заказывать новую карточку, пока эта еще работает.

+Viktar Siarhiejczyk подсказал, что OpenPGP card V2 можно сбросить к заводским настройкам, спасибо Verner Koch за рецепт.

UPDATE: Фортуна повернулась ко мне лицом! Я уже все подготовил для сброса карты на заводские настройки, но сначала нужно окончательно залочить карту. Вместо ввода произвольно админского пина я ввел один из возможных вариантов - и этот пин приняло! Оказалось, что изначально я ошибся всего в одном символе.

В итоге я вернул контроль над смарткартой малой кровью, но все еще не знаю возможно ли ее сбросить на заводские настройки... и как-то не тянет это проверять сейчас.

Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

25 февраля 2015

Подключение принтера HP LaserJet 1018 к Raspberry Pi

Пытаюсь скрестить Raspberry Pi Model B+, принтер HP LaserJet 1018 и сканер Mustek 1200CU и получить домашний МФУ, доступный через ethernet. Но вот засада - не получается пока каменный цветок.

Сначала не получалось запустить установку минимального raspbian, используя raspbian-ua-netinst. В конце концов оно заработало и я получил чистую систему без lxde и прочих излишеств. Настала очередь оживить принтер, который был "отломан" в процессе отказа от стационарного компа, ранее выполнявшего и роль сервера печати.

Подключаю принтер к USB порту и проверяю, что он теперь виден в системе:

# lsusb 
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 008: ID 03f0:4117 Hewlett-Packard LaserJet 1018

Теперь нужно установить cups и printer-driver-foo2zjs

# apt-get update
# apt-get install -o APT::Install-Recommends=false cups printer-driver-foo2zjs
# cupsctl --remote-admin
# cupsctl --remote-any
# getweb 1018

После установки можно зайти в интерфейс настройки CUPS (https://hostname:631/). Чтобы начать работу с принтером нужно загрузить в него прошивку - для этого проще всего выключить и включить принтер снова.

kernel: [ 7019.844894] usb 1-1.3: new high-speed USB device number 8 using dwc_otg
kernel: [ 7019.985104] usb 1-1.3: New USB device found, idVendor=03f0, idProduct=4117
kernel: [ 7019.992207] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: [ 7020.001092] usb 1-1.3: Product: HP LaserJet 1018
kernel: [ 7020.005933] usb 1-1.3: Manufacturer: Hewlett-Packard
kernel: [ 7020.011090] usb 1-1.3: SerialNumber: KP0EL9M
kernel: [ 7023.171201] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
kernel: [ 7023.197038] usbcore: registered new interface driver usblp
kernel: [ 7023.226501] usblp0: removed
kernel: [ 7023.245471] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
/usr/sbin/hplj1018: foo2zjs: loading HP LaserJet 1018 firmware /lib/firmware/hp/sihp1018.dl to CUPS USB device ...
kernel: [ 7023.321255] usblp0: removed
kernel: [ 7031.385407] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
kernel: [ 7031.404279] usb 1-1.3: usbfs: interface 0 claimed by usblp while 'usb' sets config #1
/usr/sbin/hplj1018: foo2zjs: usb://HP/LaserJet%201018?serial=KP0EL9M... download successful.

Пробую добавить принтер в CUPS и не вижу его в списке, при этом в логе появляется сообщение о проблемах с принтером:

[  654.542227] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
[  717.077527] usblp0: removed

Пробую перезагрузить принтер, но все повторяется. Похоже без дебага не обойтись - расчехляю мультиметр и первым делом проверяю напряжение в точках PP3 (ground) и PP1 или PP2 (vcc).


В отличии от rPi Model B, Model B+ не имеет привычных точек проверки напряжения TP1 и TP2, вместо этого у нее есть супервизор питания (отображается красным светодиодом на плате) и точки PP3, PP1/2 . У меня показало 4.93V, что очень хорошо - похоже дело не в питании.

Значит придется разбираться с софтом. Сначала пробую обновить firmware до последней версии:

# apt-get install rpi-update
# rpi-update
# sed -i -e 's/^/#/' /boot/config.txt
# reboot

Обновление firmware и ядра результат не улучшило - принтер все так же отваливается при попытке его определить. Попробовал снизить скорость USB порта до USB 1.1 (12MBit/s). Для этого нужно добавить параметр dwc_otg.speed=1 в файл /boot/cmdline.txt и перезагрузиться:

# lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/5p, 12M
        |__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 12M
        |__ Port 3: Dev 8, If 0, Class=print, Driver=usblp, 12M

Хотя скорость порта и снизилась, но принтер все же отваливается. Пока новых идей нету...

Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

24 февраля 2015

Проблемы с отрисовкой окон некоторых приложений в Debian Jessie

Коллега показал довольно необычный скриншот, сделанный в среде Mate в свежем Debian Jessie. В качестве видеокарты Radeon HD3000 со свободным драйвером.


Такая штука получилась при перетаскивании окна (не обращайте внимание на отсутствие надписей в pidgin - они удалены).

Похожая проблема (но уже внутри окна приложения) при скролинге в Iceweasel, Icedove, etc.


На проблемы видео драйвера не похоже, скорее всего связано с выбранным gtk-engine в Mate.

Кто-нибудь сталкивался с чем-то подобным?

Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

Пакетирование php pecl расширений в Debian

Пакетирую php pecl расширение yaml. Нагуглил хороший гайд как быстро и расово верно пакетировать эти вещи в Debian.

Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

23 февраля 2015

Будьте внимательны при апгрейде Nginx + PHP-fpm в Debian Jessie

При обновлении хоста с Debian Jessie столкнулся с полностью нерабочими PHP сайтами после завершения апгрейда сервера. На любой запрос php скрипта веб-сервер просто отвечает HTTP 200 и отдает пустую страницу. Никаких ошибок в логе Nginx не было.

Сайты содержали следующий кусок конфига:

location ~ \.php$ {

  # skipped lines

  fastcgi_pass unix:/var/run/php5-fpm.sock;
  fastcgi_index index.php;
  include fastcgi_params;
}

В процессе дебага выяснилось, что из файла /etc/nginx/fastcgi_params выкинули объявление параметра SCRIPT_FILENAME и из-за этого интерпретатору срывает крышу. Случилось это в районе версии 1.6.1-2:

  * debian/conf/fastcgi_params:
    + Sync with upstream and remove `SCRIPT_FILENAME` parameter.
      This change might break fastcgi sites. (Closes: #718639)
  + debian/conf/fastcgi.conf:
    + Ship upstream file.

Теперь в Nginx включен пример конфигурации для PHP-fpm (/etc/nginx/snippets/fastcgi-php.conf)

# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+\.php)(/.+)$;

# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;

# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;

fastcgi_index index.php;
include fastcgi.conf;

P.S. Особая благодарность создателям socat - он мой новый лучший друг в вопросах отладки. Достаточно запустить

socat -v UNIX-LISTEN:/tmp/php5-debug.sock UNIX-CONNECT:/var/run/php5-fpm.sock

и перенастроить Nginx на подключение к /tmp/php5-debug.sock, как становится виден процесс общения Nginx и PHP-fpm, а соответственно и суть проблемы.

Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

Нам недолго осталось до появления терминатора

Анонсировали ядро 4.0-rc1.


Судя по картинке из последнего терминатора - нам недолго осталось ждать (в терминале просматривается версия "4.1.15-1.1381_SKYN12nnmp).

Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

19 февраля 2015

Iceweasel под следствием

Сегодня убил пол-часа времени, пытаясь понять почему одна и та же страница на сайте по-разному отображается в у меня Iceweasel 35.0.1 и в Firefox 35.0.1 у соседа.

Вот так страницу видел я:



Обратите внимание на различия кнопки "Site >>" в верхнем и нижнем блоках.

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

Качаю Firefox 35.0.1 с сайта mozilla и получаю ровно ту же картину. Значит дело не в разнице Iceweasel/Firefox.

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

Продолжаю дебажить и попадаю в "Troubleshoting information"


Тут мое внимание привлекла кнопочка "Refresh Iceweasel". А чем черт не шутит?! Ведь бэкап все равно есть - жму и через пару секунд получаю полностью рабочий браузер в котором сохранились все закладки, пароли и даже залогиненые сессии не оборвались. Успех!

Интересно конечно, что же было исправлено, но главное что все работает. Делаю еще один скриншот и ради интереса открываю их рядом


и вот теперь до меня доходит, что один и тот же элемент на старом скриншоте крупнее, чем на новом - масштабирование?! Быстренько восстанавливаю профиль из бэкапа и жму Ctrl+0 - страница магически приходит в порядок. А чтоб вас с вашим userfriendly дизайном! Наверное я когда-то поскролил эту страницу, случайно зажав Ctrl и масштаб изменился. В новом дизайне не так то просто заметить, что страница масштабирована.

Короче смешанные чувства.

Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.