суббота, 27 декабря 2008 г.

Обновление ubuntu и debian

Если во время обновления apt-get update (wajig update) возникает ошибка типа:

W: GPG error: NO_PUBKEY

то проблема решается следующим образом:

1.Устанавливается дополнительный пакет gnupg:
wajig install gnupg

2. Производится импорт ключа с сервера subkeys.pgp.net:
# gpg --keyserver subkeys.pgp.net --recv-keys много_цифр_и_букв
# gpg --armor --export много_цифр_и_букв | sudo apt-key add -

понедельник, 4 августа 2008 г.

Принтеры Hp Laserjet 10xx (1000 1005 1018 1020) в Linux

Принтеры Hp Laserjet 10xx (1000 1005 1018 1020) в Linux

Принтеры HP LaserJet 1000, 1005, 1018 и 1020 сразу после включения питания не имеют в себе прошивку (firmware, arm binary). Операционная система при обнаружении принтера должна "залить" в него необходимую прошивку и после этого работать как с обычным принтером. (Именно этим объясняется тот факт, что если не выключая принтер перезагрузиться из известной нам операционной системы от MS в Linux, принтер будет работать).

Как происходит "заливка" прошивки?

В современном Linux события о появлении новых устройств обрабатывает специальная служба udev. Правила обработки событий, т.е. что будет происходить при обнаружении новой железки, находятся в /etc/udev/rules.d/. В Ubuntu правила для принтеров обсуждаемых в данной статье находятся в файле /etc/udev/rules.d/85-hplj10xx.rules (пример для Ubuntu Gutsy).
Если правила в udev есть, почему принтер не работает?

Дело в том, что правила есть, а самих прошивок нет. Причины этого не понятны, но и не особо интересны. Мы можем скачать их сами и положить туда, где udev, в соответствии с правилами, их найдёт.
Как скачать прошивки?

В Ubuntu по умолчанию установлен пакет foo2zjs, которые содержит необходимые нам утилиты:

* getweb - утилита которая "сливает" прошивки с foo2zjs.rkkda.com (вызывается следующим образом: getweb 1020 - скачает прошивку для HP LaserJet 1020)
* arm2hpdl - утилита, которая добавляет необходимые заголовки для принтера HP к бинарному файлу arm (смотрите man arm2hpdl), после добавления заголовков прошивку можно заливать в принтер (этим и занимается udev)

Для проверки можно залить прошивку вручную следующим образом: cat sihp1020.dl > /dev/usb/lp0, где /dev/usb/lp0 нода устройства принтера. Нода может быть и другой, например /dev/usblp0, чтобы узнать наверняка, можно посмотреть dmesg|tail -20 после включения принтера.
Куда их положить?

Положить нужно в /usr/share/foo2zjs/firmware/
А теперь готовое решение в виде скрипта

Проверенно в Ubuntu 7.04 и 7.10


#!/bin/bash
printers="1000 1005 1018 1020"
cd /tmp
for prn in $printers; do
img="sihp${prn}.img"
dl="sihp${prn}.dl"
getweb $prn
if [ -f $img ]; then
arm2hpdl $img > $dl
sudo cp $dl /usr/share/foo2zjs/firmware/$dl
rm $img $dl
fi;
done



Чем данное решение лучше других, которые можно найти в интернет?

Другие решения помимо основной задачи, а именно, установки прошивок, выполняют другие лишние действия, например, заново устанавливают foo2zjs (который уже есть в системе), но не из deb-пакета, а из исходных кодов. Это не даёт преимуществ, но может создать проблемы при обновлении системы.

четверг, 26 июня 2008 г.

Уменьшение времени запуска программ в Ubuntu при помощи prelink и preload

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


aptitude install prelink
/etc/cron.daily/prelink


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

aptitude install preload

Как правило конфигурация по умолчанию (/etc/preload.conf) не требует изменений,
но при желании можно обратить внимание на опции:

model.cycle (по умолчанию 20 сек) - как часто будет инициирован анализ состояния системы и обновление кэша;

model.halflife ( по умолчанию 168 часов) - через какое время данные в кэше будут считаться устаревшими
(каждый halflife степень актуальности данных в кэше будет уменьшена на 50%);

model.minsize (по умолчанию 2000000 байт) - минимальный объем данных прошедший через системные вызовы,
необходимый для начала оптимизации приложения. Позволяет использовать preload только для крупных приложений.

model.memtotal (-10%), model.memfree (100%), model.memcached (30%) - директивы определяющие степень использования ОЗУ для хранения кэша.
Размер кэша рассчитывается по формуле:
model.memtotal * размер ОЗУ
+ model.memfree * размер свободной памяти во время запуска preload
+ model.memcached * размер памяти отведенной под системный кэш (Cached).

Состояние работы preload можно оценить через файл /var/lib/preload/preload.state

Если prelink, как правило, запускается раз в день и модифицирует ELF файлы,
то preload оформлен в виде программы-демона,
постоянно наблюдающего за интенсивностью запуска программ и на основании
собранной статистики загружающего компоненты в память.
Выигрыш от использования prelink для OpenOffice.org и Firefox около 15-20%, для preload - 50%.

opennet.ru

четверг, 5 июня 2008 г.

Домашний десктоп



Xubuntu 8.04

Настройка tkabber

Устанавливаем дополнительные пакеты для поддержки SSL:
wajig install tcltls

Редактируем vi ~/.tkabber/config.tcl
set show_splash_window 0
set load_default_xrdb 0
set font "-misc-fixed-medium-r-semicondensed-*-*-120-*-*-c-*-iso10646-1"
option readfile "~/.tkabber/custom.xrdb" userDefault

hook::add finload_hook {
set ::loginconf(usessl) 1
}

set autologin 0
set loginconf1(profile) "название_профиля1"
set loginconf1(user) аккаунт
set loginconf1(password) пароль
set loginconf1(server) сервер1.ru
set loginconf1(stream_options) encrypted
set loginconf1(replace_opened) 0

set loginconf2(profile) "название_профиля2"
set loginconf2(user) аккаунт
set loginconf2(password) пароль
set loginconf2(server) сервер2.ru
set loginconf2(stream_options) encrypted
set loginconf2(replace_opened) 0

proc postload {} {
set sound::options(mute) 1
set ft::options(download_dir) "~"
set ::webbrowser "mozilla %s"
set ::tls_warnings 0
}

Редактируем vi ~/.tkabber/custom.xrdb
Tkabber.geometry: 780x520
Tkabber.mainRosterWidth: 150
Tkabber.chatRosterWidth: 100
*Scrollbar.width: 10
*font: -monotype-arial-medium-r-normal-*-12-*-*-*-*-*-iso10646-1

пятница, 9 мая 2008 г.

Создание Ubuntu Live-CD

UCK - Ubuntu Customization Kit

http://uck.sourceforge.net/

четверг, 28 февраля 2008 г.

Полезный софт

  1. wajig - управление пакетами (дополнение к apt)
  2. screen - виртуальная консоль
  3. thunar - файловый менеджер xfce4
  4. mozilla - браузер
  5. thunderbird - почтовый клиент
  6. tkabber - jabber клиент
  7. psi - jabber клиент
  8. kkbswitch - индикатор раскладки
  9. unclutter - убирает курсор мыши во время бездействия
  10. aria2 - консольный даунлоадер с поддержкой многопоточности (аналог wget)
  11. rdesktop - подключение к удалённому рабочему столу windows
  12. partimage - создание образов разделов (поддерживает ntfs)

Запись на DVD

growisofs -speed=2 -Z /dev/cdrw1 -D -l -L -N -R -J /путь && eject

Конвертация тегов mp3 в правильную кодировку utf8

Необходим пакет: python-mutagen
find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1

вторник, 26 февраля 2008 г.

Мои настройки коньков (.conkyrc)

background no
update_interval 1
double_buffer yes

use_xft yes
xftfont Lucida Grande:pixelsize=9
xftalpha 0.2

own_window yes
own_window_transparent yes
own_window_colour 56769f
own_window_type normal
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

minimum_size 1272 4
draw_shades no
draw_outline yes
draw_borders yes
draw_graph_borders no
stippled_borders 0
border_margin 3
border_width 0

default_color white
default_shade_color black
default_outline_color black

alignment top_left
gap_x 3
gap_y 2

no_buffers yes

TEXT
${color white}CPU${color white}:${color white} ${cpubar 6,80} | ${color white}MEM${color white}:${color white} ${membar 6,80} | ${color white}SWP${color white}:${color white} ${swapbar 6,80} ${alignr 2}| ${time %A, %d %B} ${color}${time %H:%M}