Если во время обновления 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 -
суббота, 27 декабря 2008 г.
понедельник, 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-пакета, а из исходных кодов. Это не даёт преимуществ, но может создать проблемы при обновлении системы.
Принтеры 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
путем оптимизации на уровне структуры 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 г.
Настройка 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
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 г.
четверг, 28 февраля 2008 г.
Полезный софт
- wajig - управление пакетами (дополнение к apt)
- screen - виртуальная консоль
- thunar - файловый менеджер xfce4
- mozilla - браузер
- thunderbird - почтовый клиент
- tkabber - jabber клиент
- psi - jabber клиент
- kkbswitch - индикатор раскладки
- unclutter - убирает курсор мыши во время бездействия
- aria2 - консольный даунлоадер с поддержкой многопоточности (аналог wget)
- rdesktop - подключение к удалённому рабочему столу windows
- partimage - создание образов разделов (поддерживает ntfs)
Конвертация тегов mp3 в правильную кодировку utf8
Необходим пакет: python-mutagen
find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1
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}
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}
Подписаться на:
Сообщения (Atom)