3 декабря 2009 г.

Убираем щелчки в колонках!

У меня звуковая карта C-Media CMI9880. После обновления убунты 9.04 с тестовой до релизной до 9.10, при любом обращении к звуковой карте - происходил громкий щелчек в колонках, что очень раздражало при довольно таки хороших колонках.  До этого у меня такой проблемы вроде бы не возникало, только при загрузке\остановке системы, когда звуковуха подключается\отключается вот и подумалось... Что после простоя звуковой карты в течении 10сек. она отключалась, а потом с этим самым щелчком включалась при обращении к ней. Чтобы избежать щелчка проделываем следующее:
  1. Открываем для редактирования файл 'alsa-base.conf':
    sudo vim /etc/modprobe.d/alsa-base.conf
  2. Ищем там строку:
    options snd-hda-intel power_save=10 power_save_controller=N
    Закомментируем ее, поставив перед строкой "#":
#options snd-hda-intel power_save=10 power_save_controller=N
    или меняем значение на другое (если вам нужно, чтобы звуковая все таки отключалась по истечении определенного времени), но тогда щелчки останутся, просто такой "эффект" будет происходить реже...
  1. Сохраняем файл и при следующей загрузке системы стрельбы больше не будет :-)
P.S. Хотя это конечно и костыль, ведь звуковая карта при простое должна отключаться, но делать вкл.\откл. как-то тихо и не заметно, а то ведь с непривычки заикой можно стать. IMHO. Если знаете как это провернуть, пожалуйста, напишите. Заранее благодарен.


27 ноября 2009 г.

sid

Всегда интересовался вопросом, почему на сайте абиворда свежие и стабильные сборки только для виндузятников, которые даже не подозревают о существовании абиворда, а для остальных только исходники (не всем охота и не все умеют пакеты собирать!)? На РРА одно старье лежит, не нужно туда посылать и я не скажу вам куда идти... Надоело мне из sid'a вручную вытягиваеть свежие сборки abiword'а и gnumeric'а и я подключил репозиторий:

deb http://ftp.de.debian.org/debian sid main

установил пакет: abiword 2.8.1 так как он официально и давно объявлен разработчиками как стабильный, но вот только сейчас появился пакет в sid, а в убунте им даже и не пахнет, ни в кармик ни далее...  Наверное ждали пока в sid соберут, чтобы к себе переложить... IMHO.
Так как у меня locale: LANG=ru_UA.UTF-8 необходимо сделать символическую ссылку для русификации абиворда:

ln -s /usr/share/abiword-2.8/strings/ru-RU.strings /usr/share/abiword-2.8/strings/ru-UA.strings

Так всегда приходится делать, ведь сборщикам пакета "лень" (не знаю причин) сделать ссылку в самом пакете... :-(

Alacarte - редактор главного меню Гнома: "Как востановить меню?"

Иногда бывает, что меню Гнома пропадает из-за работы с ним Alacarte (редактор меню), помогает восстановить меню по умолчанию удаление:

$ rm -f ~/.config/menus/applications.menu

или ручное копирование файла applications.menu из deb-пакета gnome-menus. Однако alacarte по -прежнему ругается и фейлит меню Приложений при удалении некоторых подменю. Такое решение правда удаляет в все созданные вручную пункты, но лучше так, чем вообще без них... :-) IMHO.

6 ноября 2009 г.

Конвертирование файловой системы ext3 в ext4

Теперь в Убунту есть поддержка ext4, если не ошибаюсь с 9.04 в 9.10 уж точно есть, начиная с ядра  2.6.28. Так как вся система была в ext3, а все говорят что файловая система ext4 более продвинутая и работает быстрее и т.д. не вдаваясь в подробности, захотелось и мне с этим поэкспериментировать... Но не было жгучего желания переустанавливать всю систему только ради этого. На форуме убунту многие считаю, что после каждого чиха нужно систему переустанавливать да еще и форматнуть диск - мелочные пережитки виндузятников, которые пытаются внедрить, в данном случае, в Убунту... ;-) Но мы же знаем, что это не нужно.

Монтрование ext3 как ext4 без конвертации
Монтировать ext2, ext3 и ext4 файловые системы как ext4, что дает использовать оптимизированные полезности фс. При этом физически на диске ничего не изменится, давая возможность вернутся обратно на ext3. В /etc/fstab ext3 меняем на ext4...

Конвертирование в ext4
Но если мы хотим использовать новые возможности фс ext4, такие как extents, которые меняют физический формат хранения данных, но и дают большой выигрыш в производительности. Необходимо включить новые возможности на вашей ext3 файловой системе:
ВНИМАНИЕ! Как только вы запустите следующую команду, файловая система больше не будет монтироваться как ext3.
sudo tune2fs -O extents,uninit_bg,dir_index /dev/<раздел>

Стартуем с dvd\cd-live и выполняем команду для корневого sda2 и домашнего раздела sda3 (в моем случае). После этого нас попросят выполнить проверку фс  с помощью fsck:

sudo e2fsck -pDf /dev/<раздел>  # мне пришлось выполнять без -р или -а

Далее правим /etc/fstab и перезагружаемся.

Монтирование раздела ext4: mount -t ext4 /dev/<раздел> /<путь>

Примечание: есть некоторые новые возможности, которые можно получить, только заново отформатировав раздел, например, flex_bg и поддержка разделов размером больше 16 терабайт. Но для меня это не критично, ведь и винта такого никогда не будет ;-)
После включения экстентов, новые файлы будут создаваться с их использованием, но со старыми ничего не случится и они продолжат лежать на диске в старом формате. В разных статьях встречал упоминание об утилите defrag2fs, которая все старые файлы тоже переводит в новый формат, но ее пока страшно использовать...

Отдельного раздела /boot у мене никогда не было и с ext4 все нормально загружается у меня и у друга, которому я поставил 9.10 (пусть пробует, пока есть желание изучать линукс). Единственное, с чем еще не до конца разобрался, так это необходимо ли добавить к загрузчику опцию rootfstype=ext4. Необходимо посмотреть в свежеустановленной убунте.


12 октября 2009 г.

Распознование текста (OCR) в линукс

Cuneiform for Linux - Cистема оптического распознавания (OCR), портированная для использования в POSIX-совместимых операционных системах, с открытыми исходными текстами.

Возможно многие из вас сталкивались с необходимостью/желанием отсканировать текст и для этого необходимо было держать форточки с FineReader или же с ним но под wine'ом. В линуксе с OCR було просто ужасно! Проектов много, но понимающих кириллицу не встречал (gocr и т.д.). Давно читал ибо следил за этой темой об  Cuneiform (даже как-то видел под форточками)...

Из истории: Система оптического распознавания OCR CuneiForm создана российским разработчиком программного обеспечения Cognitive Technologies, что был организован в 1993 году на базе лаборатории искусственного интеллекта Института Системного Анализа РАН.

Первоначально система CuneiForm была разработана компанией Cognitive Technologies как коммерческий продукт. CuneiForm поставлялся с некоторыми моделями сканеров. Однако после нескольких лет перерыва разработки, 12 декабря 2007 года анонсировано открытие исходных текстов программы, которое состоялось 2 апреля 2008 года Для распространения программы выбрана лицензия BSD (Berkeley Software Distribution). Подробнее на WIKI

Версия для "Линукс" этой программы на текущий момент представляет собой исключительно движок распознавания без каких-либо дополнительных сервисов и функций. Работа осуществляется через командную строку. Это, в свою очередь, даёт возможность оценить уровень именно алгоритмов распознавания. В настоящее время идет активное портирование Cuneiform на Linux и другие Unix-платформы.

Released:  2009-09-02   cuneiform-linux-0.8.0.tar.bz2
Можно скачать *.deb на http://www.mediafire.com/alexp там же и  yagf (GUI - qt-морда).

Сначала скачал пакет для ubuntu_jaunty, но он на нарушение зависимости libMagick++1 так как он есть в репозитории 9.04, но нет в 9.10 (осмелюсь напомнить, что давно тестирую Ubuntu 9.10 Karmic, официальный релиз будет через дней 18).

sudo ln -s /usr/lib/libMagick++.so.2 /usr/lib/libMagick++.so.1

решает эту проблему и все работает до первого updete/upgrade/install пакет при котором автоматически удаляется cuneiform+yagf. Пришлось пойти на ленивые хитрости, что человек не сделает, чтобы только трафик сэкономить?! ;-) Возникло желание пересобрать, чем баловался впервые, пакет с изменением зависимости без исходных кодов или как-то так... ;-)

paulul@ubuntolog:~$ mkdir ~/temp/someprog
paul@ubuntolog:~$ dpkg -x /home/paul/temp/cuneiform_0.8.0~bzr412-1_jaunty_i386.deb ~/temp//someprog
paul@ubuntolog:~$ mkdir ~/temp/someprog/DEBIAN
paul@ubuntolog:~$ dpkg -e /home/paul/temp/cuneiform_0.8.0~bzr412-1_jaunty_i386.deb ~/temp/someprog/DEBIAN

vim ~/temp/DBIAN/control  --> libmagick++1 заменил на libmagick++2

paul@ubuntolog:~$ dpkg -b ~/temp/someprog ~/temp/cuneiform_0.8.0~bzr412-1karmic_i386.deb
dpkg-deb: сборка пакета cuneiform в файл /home/paul/temp/cuneiform_0.8.0~bzr412-1karmic_i386.deb.

После установки этого пакета таки ошибка о нарушении зависимости и последующем удалении файла таки пропала, но все таки приходилось делать симлинк:

sudo ln -s /usr/lib/libMagick++.so.2 /usr/lib/libMagick++.so.1

Конечно можно было поступить проще и доустановить на karmic три пакета c dvd_jaunty (libmagick++1, libmagickwand1, libmagickcore1), проверив что так таки тоже работает все режил еще пострадать, благо время и желание было. снес...

И любопытсво и желание не иметь, по возможности, таки лишних/дублирующих пакетов скачал таки сборку для debian_sid (cuneiform_0.8.0~bzr412-1_sid_i386.deb) - установка и использование под KARMIC не требует телодвижений, просто установите...

CuneiForm работает из командной строки. Приложению нужно указать графический файл, язык перевода и формат вывода:

$ cuneiform[-l languagename -f format -o result_file imagefile

Список поддерживаемых языков можно вывести командой cuneiform -l
paul@ubuntolog:~$ cuneiform -l
Cuneiform for Linux 0.8.0
Supported languages: eng ger fra rus swe spa ita ruseng ukr srp hrv pol dan por dut cze rum hun bul slo lav lit est tur.

а список форматов вывода - командой cuneiform -f
paul@ubuntolog:~$ cuneiform -f
Cuneiform for Linux 0.8.0
Supported formats:
    html         HTML format
    hocr         hOCR HTML format
    native       Cuneiform 2000 format
    rtf          RTF format
    smarttext    plain text with TeX paragraphs
    text         plain text

Изображения документов перед распознаванием должны быть подготовлены по всем типовым правилам, этим у меня занят Gimp+Xsane: разрешение при сканировании должно быть 300 dpi, файлы по одной странице (иначе у меня не получалось). Хотя Yagf может обрабатывать и разворот книги, если выделять по одной странице (таже морока, но другим боком)

В итоге, можно сказать, что линуксоидов, понимающих язык Пушкина и Шевченко, вполне можно поздравить с появлением, отличного свободного инструмента для распознавания текста. Особенно если сравнить с gocr, hocr и т.д. Подождем пока они его доведут до уровня приложения существующего под виндовс, ну а потом и лучше! :-) Одним словом ждем ещё большего усовершенствования самого движка распознавания CuneiForm. С надеждой жду, когда он станет лучше wine FineReader 8.0. Но уже начал с ним работать, ибо что после FineReader'a, что после CuneiForm'a нужно править/форматировать текст руками о ОпенОфисе, но так как-то: Free software for free people!

Конечно рядовым пользователям и для десктопа важен графический интерфей GUI (хотелось бы gtk или уж qt, но без привязки с КДЕ!, что очень часто потом начинают делать) с автоматизацией подготовки изображений к распознаванию, хорошего встроенного редактора и поддерживающего все функции имеющиеся в самом движке (например форматы).

Оболочка YAGF (читайте больше по ссылке!) предоставляет графический интерфейс для консольной программы распознавания тектов cuneiform на платформе Linux. Кроме того, YAGF позволяет управлять сканированием изображений, их предварительной обработкой и собственно распознаванием из единого центра. Программа YAGF также упрощает последовательное распознавание большого числа отсканированных страниц.



Новейшая версия YAGF - 0.8.1, обновлена 14 августа 2009 года. Еще есть Cuneiform-Qt, но YAGF более продвинутый.

Распознавание простого текста (жирный, курсив) практически без ошибок, но таблицы и сложное оформление не понимает вообще (будем надеяться, пока...). Не пытайтесь подсовывать не подготовленные изображения cuneiform'y, а потом писать, на форумах и сайтах, что он вообще не работает. Я никуда не писал, но сначала тоже был озадачен когда пытался перевернутые страницы распознать... Не повторяйте чужих ошибок :-)

--
P.S. в процессе поисков и вопросов, pehser собрал и сделал нормальные пакеты (работает как 8.04 так и 9.04) и выложил в свой репозитарий, а так же для  любителей всего самого свежего, то в репе лежит пакет cuneiform-svn это cuneiform bzr420 собраный в debian sid
так что по зависимостям без проблем становится и должен работать в karmic (YAGF 0.8.1 и cuneiform 0.8.0)
deb http://debway.org.ua/repository/ unstable main

Спасибо alexp за его сборки, которые я использовал и pehser за сборки, которые буду использовать из репа, ведь так удобнее.

--
N.B. Всего этого можно было бы избежать (хотя бы лишних телодвижений), если сам бы учился собирать deb-пакеты (возможно, когда-нибудь...), но все же было интересно и познавательно... Вот за что и люблю линукс! :-)

--
P.P.S. пока мучался с это статейкой, alexp, собрал пакеты и для karmic :-) cuneiform_0.8.0+bzr420-1_karmic_i386.deb

14 августа 2009 г.

Включаем framebuffer в Ubuntu

Насколько я понял, в Karmic - framebuffer выключен по умолчанию и его нужно сначала включить, потому что простой ввод параметра vga=792 при загрузке ядра как было раньше не помогает...

1. Открываем файл /etc/modprobe.d/blacklist-framebuffer

sudo vim /etc/modprobe.d/blacklist-framebuffer.conf

закомментируем строку:

#blacklist vesafb

и сохраняем файл.

2. sudo vim /etc/initramfs-tools/modules

добавляем строчки:

fbcon

vesafb

и сохраняем файл.

3. Пересобираем initramfs image: sudo update-initramfs -u

4. Правим меню загрузки grub2: sudo vim /boot/grub/grub.cfg

добавляем vga=792, примерно будет так:

linux /boot/vmlinuz-2.6.31-5-generic root=UUID=c2aad69d-ee87-455d-b39f-807b168a4381 ro quiet vga=792 #splash

5. Не обязательно, но при обновлениях ядра не нужно будет делать пункт 4 (действительно для grub2)

sudo vim /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet vga=792 #splash"

GRUB_GFXMODE=1024x768

6. Наслаждаемся решением одной проблемы!!! ;-) А с vga=normal (как многие советуют на форуме убунты) пусть сидят unnormal-user...

13 августа 2009 г.

HowTo: НАДЕЖНЫЙ и простой способ поднять VPN (pptp) в ЛИНУКСЕ!!!

У меня Ubuntu Linux настроенной сетью и pptp (сначала нужно установить пакет pptp-linux и если нужно, то network-manager-pptp). Поднимал VPN в два способа: А. скриптами (еще на 7.04, до этого локалки не было) и В. через network-manager с версии 0.7.1 на u_9.10, который очень удобен если вы работаете в Гноме.

A. Консольный способ

1. Запускаешь в консоли 'sudo network-admin' (это Система-Администрирование-Сеть) и настраиваешь Статический IP, можно и DHCP.
2. В /etc/ppp/peers/ создаем файлик trion в котором записано:
mtu 1416
mru 1500
persist
usepeerdns
maxfail 0
lcp-echo-interval 60
lcp-echo-failure 4
defaultroute
#pty "pptp vpn.trion --nolaunchpppd"
pty "pptp 10.1.9.254 --nolaunchpppd" #(сервер VPN)
name <твое имя для VPN>
remotename PPTP
#require-mppe-128
file /etc/ppp/options.pptp
ipparam trion
replacedefaultroute
noipdefault 50
    2.а В /etc/ppp/options.pptp прописать:
lock
noauth
refuse-pap
refuse-chap
nobsdcomp
nodeflate
3. в /etc/ppp/pap-secrets и в /etc/ppp.chap-secrets вписываешь логин и пароль для VPN
<логин> PPTP <пароль> *

4. создаем скрипт ip-up.local и ip-down.local

paul@ubuntu:/etc/ppp$ cat ip-up.local

#!/bin/sh
# pppd ip-up script for all-to-tunnel routing

# name of primary network interface (before tunnel)
PRIMARY=eth0

# address of tunnel server
SERVER=vpn.trion

# provided by pppd: string to identify connection aka ipparam option
CONNECTION=$6
if [ "${CONNECTION}" = "" ]; then CONNECTION=${PPP_IPPARAM}; fi

# provided by pppd: interface name
TUNNEL=$1
if [ "${TUNNEL}" = "" ]; then TUNNEL=${PPP_IFACE}; fi

# if we are being called as part of the tunnel startup
if [ "${CONNECTION}" = "trion" ] ; then

# direct tunnelled packets to the tunnel server
route add -host ${SERVER} dev ${PRIMARY}

# direct all other packets into the tunnel
route del default ${PRIMARY}
route add default dev ${TUNNEL}

fi


paul@ubuntu:/etc/ppp$ cat ip-down.local
#!/bin/sh
# pppd ip-down script for all-to-tunnel routing

# name of primary network interface (before tunnel)
PRIMARY=eth0

# provided by pppd: string to identify connection aka ipparam option
CONNECTION=$6
if [ "${CONNECTION}" = "" ]; then CONNECTION=${PPP_IPPARAM}; fi

# provided by pppd: interface name
TUNNEL=$1
if [ "${TUNNEL}" = "" ]; then TUNNEL=${PPP_IFACE}; fi

# if we are being called as part of the tunnel shutdown
if [ "${CONNECTION}" = "trion" ] ; then

# direct packets back to the original interface
route del default ${TUNNEL}
route add default dev ${PRIMARY}

fi

5. в консоли пишем sudo pon trion, а для выключения sudo poff trion

P.S. Можно и графическими утилитами настраивать, например VPN Connection Manager или pptpconfig, но мне нравиться так больше...

N.B. Для последних изменений в Трионе нужно закоментировать в п. 2 строки: #defaultroute и #replacedefaultroute и прописать nodefaultroute. А также не создавать или сделать неисполняемыми скрипты: ip-up.local ip-down.local


B. Способ настройки VPN соединения через Network Manager для Триона

Все настраиваем через DHCP. Создаем соединение VPN нажав правой кн.мыши и войдя в пункт "Изменить соединения..." Далее во вкладке VPN добавляем свою уч.запись с данными шлюза, логина и пароля. Во вкладке "Параметры IPv4" -> "Маршруты..." устанавливаем галочку на "Использовать это соединение только для ресурсов этой сети". Если включено, это соединение никогда не будет использоваться как сетевое соединение по умолчанию. На значке NM левой кнопкой мыши ... тык..тык..тык и вы в сети...

Устанавливаем deb пакет (на данный момент - linuxdcpp 1.0.3+bzr333 для lenny, squeeze, sid, jaunty, karmic. Aрхитектуры: amd64, i386)  c блога "Записки Alex_P" и в локальный "бой", если оно вам конечно нужно... ;-)