Сентябрьский UNIX-поинт 2007 года



14 коммент.
Версия документа в формате PDF здесь (700 Кб).

Участники:

+ virens
+ SAV


Предисловие
Да, именно так - поинт получился UNIX-поинтом, поскольку в этот раз представителей Линукс и БСД было как раз поровну. А именно двое - я, Михаил aka virens, и Андрей aka SAV. Так получилось, что многие новопеределкинцы и солнцевцы, которые приходят часто, в этот раз прийти не смогли, а я по уважительной причине (участие в конференции "Голография-Экспо" с докладом на тему диссертации) не смог проанонсировать нашу встречу пораньше. Так что сколь мы не ждали и не агитировали в метро разный народ к нам присоединиться, нам пришлось проводить поинт вдвоём. Ничего - нас мало, но мы в тельняшках!



Приготовления
Собственно, мы быстренько отоварились в ``Перекрёстке'', взяв две вязанки берёзовых дров, сосиски, ГСМ/НСМ, хлеба и со всем этим провиантом двинулись в сторону новопеределкинского леска - нашего традиционного места проведения подобных мероприятий. По ходу мы обсуждали насущные проблемы и с интересом выясняли научные интересы друг друга. Быстро выяснилось, что мы оба используем gnuplot, наперекор сопротивлению наших научных руководителей - ибо автоматизация позволяет заменять тупой механический труд в офисных программах изящными скриптами и кучей тут же построенных красивых графиков. За этими интересными разговорами мы подошли к месту проведения встречи. Однако там обнаружилось, что на выбранное нами место скоро нагрянет весьма солидная компания не очень трезвых граждан, о чём нам сообщил их представитель. Оценив наши силы и взвесив все последствия, мы решили передислоцироваться - и нашли весьма привлекательное место.


Рис: Прометей SAV за работой - готовится извлечь огонь при некоторой поддержке ассистента virens




Собственно поинт
Разведению костра поспособствовали припасённый мною топорик, обилие сухих веток поблизости и наше горячее желание этот самый костёр разжечь. Костёр вначале немного сопротивлялся, так как в первая вязанка дров оказалась немного сырой - но в процессе дрова подсохли и всё пошло на лад.

Этот процесс сопровождался, естественно, обменом мнений и впечатлений. Я рассказывал Андрею про недавно вышедший PC-BSD 1.4, который мне очень понравился, он мне - про Убунту, на которую переходят его знакомые. Картина была просто идиллическая :-)



Рис: Небольшое усилие мысли - и костёр горит.


Так же я делился впечатлениями о работе в замечательной операционной системы Windows Vista - замечательна она прежде всего тем, что делает исключительную рекламу Linux и MacOS X. Особенно эффектно выглядит Убунта на одном винчестере с вистой - можно загружаться поочерёдно и сравнивать скорость и удобство работы. Желательно при этом для полноты эффекта в Убунте включить Compiz Fusion.

Говорили и о других системах, претендующих на десктопность. DesktopBSD и PC-BSD вполне подходят на эту роль, вот только написать графическую оболочку для установки софта. Я вспоминал своё первое знакомство с BeOS, о том, как был очарован Кноппиксом, с которого и начался мой долгий путь к Линукс.

Обсуждали МСВС, который есть Рэдхат какой-то бородатой версии, и о том, есть ли под неё вирусы. Хотя, как было верно отмечено, вирусы в никсах устанавливать сложно, особенно без патчей и документации... В каждой системе есть свои минусы. Особенно порадовало Андрея то, что в МСВС есть кнопки ``Есть'' и ``Отставить'' - ну а что, вполне себе военная локализация :-)

Сосиски жарились, и вот уже пошла вторая вязанка дров, а дело начало клониться к вечеру. За интересной беседой время летит быстро, и вот мы собираемся в обратный путь. Костёр затушен найденным рядом пивом, отчего в воздух поднялся дымок, тонкий ароматический букет которого высоко оценил SAV. Культурная программа мероприятия входит в эндшпиль, и мы идём по дороге обратно, глядя на очаровательный закат.



Напоследок
Друзья, коллеги и дорогие товарищи, которые не пришли - я не смогу вам передать, что и сколько вы пропустили. Ну, во-первых, совершенно изумительную осеннюю погоду: тепло, солнечно, лёгкий ветер, дым костра, жареные сосиски, хлебцы на огне...
А во-вторых, просто потрясающие по красоте закаты, фотографии которых лишь отчасти передают всю их прелесть. Общение с собратьями по никсам на этом фоне - просто удовольствие.

Рис: Красоты в Новопеределкино - закат.

Жаль, что вас не было... и надеемся, что зимой это удастся исправить.



Титры

Данный отчёт создан в системе LATEX, исходные тексты отчёта распространяются по лицензии GNU General Public License и совместимыми с ней.

При наборе и подготовке использовалась интегрированная оболочка Kile создания документов LATEX и текстовый процессор OpenOffice.org Writer. Изображения обрабатывались в GIMP и Cinepaint, обработка RAW-файлов производилась при помощи конвертера DCRAW. Использовались просмотрщики изображений GQView и Gwenview. Опубликовано на форумах с помощью броузера Mozilla Firefox. Возможно предоставление данного отчёта в любом открытом формате: PDF, ODT, TeX, HTML.

Ни одной проприетарной программы не было использовано.
Во время поинта ни один пользователь виндовс не пострадал.

Пользуясь случаем, автор этого текста, virens, выражает искреннюю признательность всем разработчикам дистрибутива Debian GNU/Linux, в котором и происходил набор и обработка материалов, посвящённых сентябрьскому UNIX-поинту.
Читать далее

Создание Linux: создаём загрузочный Linux LiveCD



17 коммент.
Несмотря на то, что загрузочных Linux дистрибутивов развелось огромное количество, так или иначе хочется создать Linux для личных нужд и конкретных целей. Способов для создания загрузочных дистрибутивов Linux имеется много, от LFS до Knoppix Customisation Kit. Но "мы пойдём другим путём"и будем создавать загрузочный Linux на основе собственного дистрибутива и с минимальными трудозатратами. Ниже описываются шаги на примере Debian GNU/Linux и live-scripts.


Необходимые приготовления для создания загрузочного Linux
Для начала нужно скачать скрипты для создания загрузочного диска Linux отсюда. Желательно так же скачать и ядро, которое уже подготовлено для работы - и если вы не гонитесь за какими-то рекордами. Можно собрать и собственное ядро, но его придётся не раз пропатчить...

Далее нужна уже установленная система. Можно создать загрузочный Linux диск на основе той системы, которая есть, но я поставил отдельно Дебиан в эмуляторе QEMU и установил там только те приложения, которые нужны.


Настраиваем систему
Для этого монтируем файл-образ с установленной и настроенной системой на петлевое устройство и затаскиваем туда необходимые скрипты и ядро (от рута):
mount -t ext3 debianEtch40Xorg71Xwm.img /cdrom -o loop,offset=32256
cp linux-2.6.21.5-i486-1.tgz /cdrom/root
umount /cdrom

Распаковываем архив с ядром, перемещаем получившиеся файлы в соответствующие директории (загрузочный образ в /boot, модули - в /lib/modules, утилиты squashfs в /usr/bin). Всё это делается от рута. Далее генерируем образ initrd:
mkinitramfs -o /boot/initrd.img-2.6.21.5 2.6.21.5
Версия ядра может измениться, так что команду нужно будет поправить. Заменяем дистрибутивное ядро новым, изменяем grub.list, обновляем загрузчик update-grub - это сэкономит нам ещё около 60 Мб.
Загружаем эмулятор вместе с файлом-образом получившейся системы, тестируем, пробуем.
qemu -kernel-kqemu -hda debianEtch40Xorg71Xwm.img
Настраиваем виртуальный дистрибутив под наши задачи, устанавливая нужные пакеты и удаляя лишние. Лично у меня есть некий базовый дистрибутив в сжатом виде, как образ QEMU, и в зависимости от задач я меняю состав его программ.

Обязательно проверьте, установлен ли mkisofs - иначе создать живой CD не удастся и вы (забегая вперёд) получите сообщение:

# /tmp/live_data_2865/virenslinux/make_iso.sh
Target ISO file name [ Hit enter for /linux-live-6.1.4.iso ]: virenslive.iso
/tmp/live_data_2865/virenslinux/make_iso.sh: line 25: mkisofs: command not found


Если mkisofs есть, переходим дальше.


Создание загрузочного
диска Linux
Снова монтируем файл-образ настроенной системы на петлю:
mount -t ext3 debianEtch40Xorg71Xwm.img /cdrom -o loop,offset=32256
Теперь согласно руководству, копируем в /cdrom/temp (куда прикручена система для liveCD) скрипты для создания диска. Скрипты будут работать только от рута, так что можно немножко покрасноглазить :-)

Настраиваем скрипты, для чего заходим в каталог /linux-live-версия на прикрученной системе и редактируем файл .config
В нём можно изменить название LIVECDNAME на то, которое больше нравится, и главное - изменить KERNEL на то, которое установлено в той системе (здесь это 2.6.21.5). Таким образом, строка будет выглядеть:
KERNEL=2.6.21.5
Сделайте это, иначе на следующем шаге скрипт ядро не найдёт.


Генерация файлов живого диска
Теперь переходим к точке монтирования нашей новой системы
cd /cdrom
и входим в неё:
chroot /cdrom
Теперь все действия будут выполняться рутом относительно той системы, а не в которой вы работаете. Переходим в каталог со скриптами:
cd /tmp/linux-live-6.1.4/
и даём команду собрать образ:
./build
Для того, чтобы всё прошло успешно, в ядре обязательно должна быть включена поддержка ext2, иначе при сборке всё закончится ошибкой.

Changing current directory to /tmp/linux-live-6.1.4
Name of your live distro [hit enter for virensLinux]:
Linux Live scripts were installed successfuly in /
Enter path for the kernel you'd like to use [hit enter for /boot/vmlinuz]:
Creating LiveCD from your Linux
some debug information can be found in /tmp/linux-live-debug.log
copying cd-root to /tmp/live_data_9345, using kernel from /boot/vmlinuz
creating initrd image...
Using kernel modules from /lib/modules/2.6.21.5
mount: /dev/loop6 has wrong device number or fs type ext2 not supported
Error mounting initrd! Not enough free loop devices?

Если всё на месте, отвечаем на несколько вопросов, и видим процесс генерации:

notebeast:/tmp/linux-live-6.1.4# ./build
Changing current directory to /tmp/linux-live-6.1.4
Name of your live distro [hit enter for virenslinux]:
Linux Live scripts were installed successfuly in /
Enter path for the kernel you'd like to use [hit enter for /boot/vmlinuz]:
Creating LiveCD from your Linux
some debug information can be found in /tmp/linux-live-debug.log
copying cd-root to /tmp/live_data_2865, using kernel from /boot/vmlinuz
creating initrd image...
Using kernel modules from /lib/modules/2.6.21.5
creating compressed images...
base/bin.lzm ...
[========================================================= ] 100/112 89%
base/etc.lzm ...
[================================================================] 709/709 100%
base/home.lzm ...
[==================================================================] 37/37 100%
base/lib.lzm ...
[==============================================================] 2161/2161 100%
base/opt.lzm ...

base/root.lzm ...
[====================================================================] 7/7 100%
base/usr.lzm ...
[========================================================== ] 21934/22313 98%
base/sbin.lzm ...
[========================================================= ] 95/106 89%
base/srv.lzm ...

base/var.lzm ...
[==============================================================] 2100/2100 100%
--------done----------

* run /tmp/live_data_2865/virenslinux/make_iso.bat to create ISO image
* or copy content of /tmp/live_data_2865 to your USB device
and run ./boot/bootinst.sh (from the device!) to setup boot sector

Now press Enter...


За это время можно выпить чашечку кофе, или принять ванну (в зависимости от мощи процессора). У меня это отнимает около 10 минут. После этого нужно создать ISO-образ нашего загрузочного живого пингвина.


Создание загрузочного Linux LiveCD
Осталось последнее - создать ISO образ живого диска и пропалить его на болванку. Для этого переходим в каталог, куда скрипты утоптали пингвина и выполняем:
notebeast:/tmp/live_data_16804/virensLinux# ./make_iso.sh
После этого поползут диагностические строчки, и пойдёт процесс компоновки диска:
Target ISO file name [ Hit enter for /tmp/virensLinux.iso ]:
genisoimage 1.1.2 (Linux)
Scanning ../.
Scanning .././virensLinux
Scanning .././virensLinux/rootcopy
Scanning .././virensLinux/tools
Scanning .././virensLinux/tools/WIN
Scanning .././virensLinux/modules
Scanning .././virensLinux/optional
Scanning .././virensLinux/base
Scanning .././boot
Scanning .././boot/dos
Scanning .././boot/isolinux
Scanning .././boot/syslinux
Writing: Initial Padblock Start Block 0
Done with: Initial Padblock Block(s) 16
Writing: Primary Volume Descriptor Start Block 16
Done with: Primary Volume Descriptor Block(s) 1
Writing: Eltorito Volume Descriptor Start Block 17
Size of boot image is 4 sectors -> No emulation
Done with: Eltorito Volume Descriptor Block(s) 1
Writing: Joliet Volume Descriptor Start Block 18
Done with: Joliet Volume Descriptor Block(s) 1
Writing: End Volume Descriptor Start Block 19
Done with: End Volume Descriptor Block(s) 1
Writing: Version block Start Block 20
Done with: Version block Block(s) 1
Writing: Path table Start Block 21
Done with: Path table Block(s) 4
Writing: Joliet path table Start Block 25
Done with: Joliet path table Block(s) 4
Writing: Directory tree Start Block 29
Done with: Directory tree Block(s) 12
Writing: Joliet directory tree Start Block 41
Done with: Joliet directory tree Block(s) 12
Writing: Directory tree cleanup Start Block 53
Done with: Directory tree cleanup Block(s) 0
Writing: Extension record Start Block 53
Done with: Extension record Block(s) 1
Writing: The File(s) Start Block 54
6.43% done, estimate finish Sat Aug 11 10:00:37 2007
12.85% done, estimate finish Sat Aug 11 10:00:37 2007
19.27% done, estimate finish Sat Aug 11 10:00:32 2007
25.70% done, estimate finish Sat Aug 11 10:00:41 2007
32.11% done, estimate finish Sat Aug 11 10:00:43 2007
38.54% done, estimate finish Sat Aug 11 10:00:45 2007
44.95% done, estimate finish Sat Aug 11 10:00:46 2007
51.39% done, estimate finish Sat Aug 11 10:00:47 2007
57.80% done, estimate finish Sat Aug 11 10:00:47 2007
64.23% done, estimate finish Sat Aug 11 10:00:48 2007
70.64% done, estimate finish Sat Aug 11 10:00:48 2007
77.07% done, estimate finish Sat Aug 11 10:00:47 2007
83.49% done, estimate finish Sat Aug 11 10:00:48 2007
89.92% done, estimate finish Sat Aug 11 10:00:48 2007
96.34% done, estimate finish Sat Aug 11 10:00:48 2007
Total translation table size: 2048
Total rockridge attributes bytes: 6393
Total directory bytes: 22528
Path table size(bytes): 168
Done with: The File(s) Block(s) 77653
Writing: Ending Padblock Start Block 77707
Done with: Ending Padblock Block(s) 150
Max brk space used 0
77857 extents written (152 MB)


Готово, будет создан (в моём случае) файл virensLinux.iso, который является загрузочным диском. Проверяю в QEMU:
qemu -cdrom virensLinux.iso
Работает! Вот, например, что в итоге получилось у меня:



Простой и строгий IceWM с одной из тем по умолчанию (Infadel2). Простенько, но со вкусом. Правда, при загрузке оно пишет Slax, но это уже другая история.
Теперь ISO-образ пропаливаем на болванку любимой программой прожига, и радуемся.


Ссылки
Собственно, это есть расширенное руководство к скриптам отсюда, на которых, в частности, создаётся Slax. Документация в комплекте к скриптам страдает отчаянным лаконизмом, и я решил это исправить.
Море ссылок на аналогичные ресурсы можно найти там, сям и тут. Так же опытом в живом дистростроительстве делится мой коллега здесь. Некоторые говорят, что нечто подобное (live-package) есть в Debian, но я пока не пробовал.
Мысли, трюки и собственные впечатления в комментариях приветствуются.
Читать далее

Wget - повелитель закачек, или Как использовать wget



51 коммент.
Задача: хочется Teleport Pro и FlashGet для Linux.
Решение: откройте для себя wget - это программа скачивания сайтов, которая позволит вам скачать сайт целиком.

Часто ищут прежде всего множество графических программ с несколькими кнопками - но есть одна утилита, способная заменить их и предоставляющая возможности, которых больше нигде нет. Это wget и всё, что на нём основано. Освоение этой утилиты требует некоторых усилий и хотя бы беглого прочтения руководства, но взамен вы получаете мощную утилиту, которая будет экономить ваше время и трафик. Кстати, есть wget для windows, так что wget можно пользоваться не только в nix-системах.

Стоит сказать, что man wget при первом взгляде производит сокрушительное впечатление, однако потом понимаешь, что далеко не все опции нужны при повседневном использовании. Ниже приводятся наиболее часто используемые мною опции.

Эпиграф
О любви wget так много песен спето,
Я спою, тебе спою, ещё одну...
(c) Романс из к/ф "Три друга"



Использование а-ля "FlashGet for Linux"
Нужно просто скачать файл и/или продолжить закачку, которая оборвалась. Это очень и очень легко сделать, написав в терминале несколько строчек.

Просто скачать файл wget-ом

wget ftp://vasya.pupkin.com/film.avi

Ещё вариант: часть файла скачана, закачка оборвалась.

Для продолжения файла закачки пишем:

wget -c ftp://vasya.pupkin.com/film.avi
или
wget -continue ftp://vasya.pupkin.com/film.avi
Вместо -с можно написать -continue, так как каждый ключ имеет короткую и длинную формы: длинные ключи проще запомнить, но дольше писать. Можно легко смешивать различные формы написания.

Чтобы выкачать файлы из списка, содержащего прямые ссылки:

wget -i pupkinlist
или
wget -input-file=pupkinlist
Здесь указывается только файл, в котором содержатся ссылки. Файл может так же быть HTML-страницей, в которой есть ссылки. Они будут выкачаны указанной выше командой.



Использование а-ля "Teleport Pro for Linux"
При скачивании веб-сайтов возможностей больше, и поэтому требуется больше ключей. Опять-таки, запоминать их все не обязательно, можно сделать скрипт (а лучше несколько - под разные случаи) и вызывать их.
Так вот, если имеется веб-сайт, и хотелось бы иметь его локальную копию на компьютере, чтобы, отключившись от сети, можно было не торопясь его почитать.

Зеркалирование сайтов на локальную машину:

wget -m http://www.vasyapupkin.com/

Замечу, что при этом ссылки останутся абсолютными - то есть, будут указывать на Интернет-адреса, и удобно просматривать на локальной машине будет затруднительно.

Копирование сайта для локального просмотра:
wget -r -l0 -np -k http://www.vasyapupkin.com/

При этом будет включена рекурсивная выгрузка (ключ -r, --recursive), то есть не только файлы с главной страницы, но и все остальные, на которые ведут ссылки (ключ -l0 бесконечная вложенность ссылок). Имена ссылок будут переконвертированы в локальные для удобства просмотра (ключ -k). Так же при помощи ключа -np (no-parrent) можно запретить wget подниматься выше начального адреса при рекурсивной загрузке, то есть если вы копируете http://home.vasyapupkin.com/ то по ссылкам с основного сайта http://www.vasyapupkin.com/ скопированы не будут.

И несколько других полезных ключей
Включение и исключение файлов при загрузке
-A acclist | -accept acclist

-R rejlist | -reject rejlist
Задаёт разделяемые запятыми шаблоны имён файлов, которые следует загружать (acclist) или игнорировать (rejlist).

-k | -convert-links
Превращает абсолютные ссылки (типа http://www...) в относительные (типа file///home/vasya/www/index.html) для удобства локального просмотра. Чтобы локально в броузере просмотреть скачанный сайт, открываете файл index.html в броузере и бродите по ссылкам точно так же, как если бы вы были подключены к Интернету.



-H
--span-hosts

Разрешает wget скачивать данные с любого адреса, на который есть ссылка в запрашиваемом документе.

-p --page-requisites

Загружать все файлы, которые нужны для отображения страниц HTML. Например: рисунки, звук и каскадные стили. После завершения загрузки конвертировать ссылки в документе для просмотра в автономном режиме. Это касается не только видимых ссылок на другие документы, а ссылок на все внешние локальные файлы.


Ограничение канала загрузки –limit-rate=значение в кб. Например:

wget --limit-rate=50k http://www....

Это приведет к тому, что скорость загрузки не будет превышать указанных в примере пятидесяти килобайт/сек.

Siteget - простой скрипт для скачивания сайтов
Если вам надоели все эти премудрости с ключами wget и нужно просто скачать сайт, то siteget вам определённо понравится. Это довольно простой скрипт с необходимыми параметрами для загрузки сайта.
Взять скрипт можно тут, использование очень простое:
siteget http://www.vasyapupkin.com/
Большое спасибо за ссылку jetxee, который писал об этом здесь.


Ссылки:
Их очень много. Вот здесь лежит простое описание возможностей wget, здесь часть ключей с интересными комментариями. Что-то взято отсюда и отсюда. Ну и конечно это не отменяет прочтение руководства man wget, в том числе на русском.
Читать далее

Настройка WiFi в Linux на примере беспроводной карты WiFi Intel PRO/Wireless на ноутбуке Asus M5200AE



17 коммент.
Здесь я уже писал о том, что на моём ноутбуке Asus M5200AE всё играет и поёт. А не так давно, в связи с приобретением Nokia N800, потребовалось настроить WiFi в Linux. Тут я вспомнил, настройка WiFi прошла как-то слишком просто - сейчас, думаю, с полпинка всё и настрою. Полпинка вылились в небольшое пешее эротическое путешествие со счастливым концом :-)






На всякий случай, в BIOS на Asus M5200AE можно попасть с помощью кнопки  <F2> при загрузке. Если же мы хотим увидеть меню выбора загрузочных устройств (Boot Menu), нужно нажать кнопку <ESC> при появлении экрана BIOS. Доступны варианты загрузки с USB drive, CD-ROM и жёсткого диска.




Настройка WiFi в Linux на примере Intel PRO/Wireless 2200Адаптер от Интел, так что проблем быть по определению не должно. Их, собственно, и нет: качаем firmware отсюда, распаковываем и кидаем её в /usr/share/firmware







Как говорят здесь, WLAN works with the driver ipw2200 from IPW2200's homepage. To use it with 2.6.13, you need these patches:

    ieee80211-for-2.6.13
    ipw2200-for-2.6.13
    ipw2200-suspend2-fix

But still, there is a problem with the RF-Kill switch. According to /sys/bus/pci/drivers/ipw2200/0000:01:05.0/rf_kill, it is hardware-controlled, but Fn+F2 does not do anything. The driver from the project RFSwitch does not work either.



Кроме того, следует поставить пакеты для работы с беспроводными сетями:

aptitude install wireless-tools, kwifimanager, kwirelessmonitor-net kwirelessmonitor kwrapper
А так же ставим пакеты для работы с ACPI, если они ещё не установлены:
aptitude install acpi-support acpid laptop-mode-tools
После этого у вас будет запущен демон acpid и в /etc/acpi добавится много полезных и нужных скриптов.

И если всё правильно сделано, то при загрузке в логах будет видно вот что:
ieee80211_crypt: registered algorithm 'NULL'
ieee80211: 802.11 data/management/control stack, 1.1.14
ieee80211: Copyright (C) 2004-2005 Intel Corporation
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.1.3dmprq
ipw2200: Copyright(c) 2003-2006 Intel Corporation
ACPI: PCI Interrupt 0000:01:05.0[A] -> GSI 18 (level, low) -> IRQ 17
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: Radio Frequency Kill Switch is On:
Kill switch must be turned off for wireless networking to work.
ipw2200: Detected geography ZZM (11 802.11bg channels, 0 802.11a channels)
Всё здорово, и вроде как работает, но смущают строчки, которые я выделил красным. Что за Kill Switch и почему нельзя подключиться к сети, если он включён?


Аппаратный убийца радиопередатчика

Есть такая комбинация клавиш на ноутбуке, которая включает и выключает радиопередатчик wifi-чипа. Эта комбинация называется "Kill Switch" - если вы не нажали эти клавиши и не включили передатчик, никакие ваши шаманства не помогут.

Проверяется это так: в /proc должен быть файлик с названием rf_kill. Лежать он может в директории, в которой находятся сведения о беспроводной карте. Для того, чтобы проверить положение Kill Switch, выводим его содержимое:
# cat /sys/bus/pci/drivers/ipw2200/0000\:01\:05.0/rf_kill
2
Согласно документации, имеем:
rf_kill
read -
0 = RF kill not enabled (radio on)
1 = SW based RF kill active (radio off)
2 = HW based RF kill active (radio off)
3 = Both HW and SW RF kill active (radio off)

Всё, аппаратный переключатель включён, радио выключено. Это видно и в выводе iwconfig:

eth3 radio off ESSID:"virens"
Mode:Ad-Hoc Frequency:2.412 GHz Cell: Not-Associated
Bit Rate:0 kb/s Tx-Power=off Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Как правило, комбинация для включения\отключения Kill Switch - Fn+F2 но у вас она может быть другой.



Для того, чтобы она работала, нужно, чтобы в ядре была включена поддержка ACPI, причём само ACPI монолитно, а драйверы для событий - модульно. При этом должна быть выключена поддержка Asus Extras (если у вас ноутбук Asus, конечно).
Странно, но именно так - поддержка дополнительных возможностей должна быть отключена, чтобы заработала единственная кнопка Fn+F2. Необычно, но медицинский факт - с ней не работает...
Если у вас ядро дистрибутивное и там всё включено - я очень за вас рад, можете это пропустить. Тем, кто собирает ядра под свои машины - шпаргалка.

Итак, в ядре должно быть:

Power management options (ACPI, APM) --->
[*] Power Management support ---->
[*] ACPI Support:
<М> AC Adapter
<М> Battery
<М> Button
<М> Video
<М> Fan
<М>Processor
<М>Thermal Zone
< > ASUS/Medion Laptop Extras
<--- в положении ВЫКЛЮЧЕНО!
Теперь идём дальше и включаем поддержку Radio Frequency Kill Switch

Networking --->
[*] Networking support -->
Improved wireless configuration API
--- Wireless extensions
<М> Generic IEEE 802.11 Networking Stack (mac80211)
[ ] Enable debugging output
<М>Generic IEEE 802.11 Networking Stack
[ ] Enable full debugging output
--- IEEE 802.11 WEP encryption (802.1x)
<М> IEEE 802.11i CCMP support
<М> IEEE 802.11i TKIP encryption
<М> Software MAC add-on to the IEEE 802.11 networking stack
[ ] Enable full debugging output

Там же, в Networking, включаем:
<*> RF switch subsystem support --->
<*> Input layer to RF switch connector
Наверняка потребуется NAT для того, чтобы беспроводные устройства могли выходить в Интернет по проводному \ модемному соединению. Поэтому включаем всё, что относится к NAT и Masquerading:

Networking --->
[*] Networking support -->
Networking options --->
[*] Network packet filtering framework (Netfilter) --->
Core Netfilter Configuration --->

<*> Netfilter netlink interface
...
<*> Netfilter connection tracking support

IP: Netfilter Configuration --->
<*> IPv4 connection tracking support (required for NAT)
[*] proc/sysctl compatibility with old connection tracking
<*> IP tables support (required for filtering/masq/NAT)
<*> IP range match support
<*> TOS match support
<*> recent match support
<*> ECN match support
<*> AH match support
<*> TTL match support
<*> Owner match support
<*> address type match support
<*> Packet filtering
<*> REJECT target support
<*> LOG target support
<*> ULOG target support
<*> Full NAT
<*> MASQUERADE target support
<*> REDIRECT target support
<*> NETMAP target support
<*> SAME target support
...
<*> Packet mangling
<*> TOS target support
<*> ECN target support
<*> TTL target support
Приведённые настройки - не догма, а руководство к действию. Но всё, что касается NAT и Masquerade включать обязательно.

Идём дальше, нам нужно включить поддержку нашей интеловской карты. Нужен раздел в корне под названием Device Drivers, оттуда мы продолжим успешное наступление на беспроводные сети.

Device Drivers ---->
Network device support --->
[*] Network device support
.................
Wireless LAN --->

[*] Wireless LAN (IEEE 802.11)
<М> Intel PRO/Wireless 2200BG and 2915ABG Network Connection
<------- это наш драйвер, его делаем модулем.
[*] Enable promiscuous mode
--- Enable radiotap format 802.11 raw packet support
[*] Enable creation of a RF radiotap promiscuous interface
[*] Enable QoS support
[*] Enable full debugging output in IPW2200 module.

Включаем поддержку загрузки firmware:
Device Drivers ---->
Generic Driver Options ---->
Hotplug firmware loading support

Должно уже быть либо отмечено, либо поставлен прочерк - значит, всё в порядке, загрузка firmware обеспечивается.

Для шифрования соединения нужна поддержка алгоритмов шифрования:
Cryptographic options ->
<*>ARC4 cipher algorithm
<*>Michael MIC keyed digest algorithm
<*>AES cipher algorithms (i586)

И ещё вот это:
Library routines ->
<*>CRC32 functions


Ну и наконец включаем поддержку LED-ов, чтобы лампочками можно было мигать при включении WiFi. Там же, в Device Drivers, ищем внизу:

Device Drivers ---->
LED devices --->
[*] LED Support
<*> LED Class Support
--- LED drivers
--- LED Triggers
Поздравляем себя, ещё раз проверяем, не пропустили ли от счастья какие-нибудь подлые грабли, собираем ядро, ставим его в загрузку, перезагружаемся.


Ключ на старт!Всё готово для нашего беспроводного счастья. Собственно, оно должно наступить ещё при загрузке: ядро обнаружит ACPI-возможности ноутбука и включит лампочку беспроводного соединения. Подгрузится модуль ipw2200, ieee80211 и ieee80211_crypt.

Теперь нажимаем Fn+F2 и смотрим, загорается \ потухает ли лампочка. Если да - мои поздравления, аппаратный переключатель в наших руках. Снова проверяем состояние Kill Switch, выводим его содержимое:
# cat /sys/bus/pci/drivers/ipw2200/0000\:01\:05.0/rf_kill
0
Всё, радио включено. Теперь смотрим вывод:
# iwconfig
lo no wireless extensions.

eth1 no wireless extensions.

Warning: Driver for device eth3 has been compiled with version 22
of Wireless Extension, while this program supports up to version 20.
Some things may be broken...

eth3 unassociated ESSID:"virens"
Mode:Ad-Hoc Frequency=2.412 GHz Cell: Not-Associated
Bit Rate:0 kb/s Tx-Power=20 dBm Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Заработало! Остался сущий пустяк - настроить сеть. Для начала лучше настроить простую Ad-Hoc сеть (то есть точка-точка). Лучше назначить сетевые адреса, и, если сеть маленькая - статические.

В /etc/network/interfaces пишем что-то вроде:

auto eth3
iface eth3 inet static
address 10.106.146.1
netmask 255.255.255.0
wireless-mode ad-hoc
wireless-channel 1
wireless-rate auto
wireless-essid virens

Теперь настраиваем саму карту:
iwconfig eth3 mode Ad-Hoc channel 1 essid virens
Всё, теперь у вас есть простая одноранговая беспроводная сеть с идентификатором virens (настройка сети приведена, естественно, на моём рабочем примере). Прочитать о том, что такое essid и прочие заумные тонкости беспроводной связи можно в этой изумительной статье.
Читать далее

Вертикальная конкатенация двух файлов



9 коммент.
Обработанные экспериментельные данные часто представляют собой ряды чисел, по которым затем небходимо строить графики. Иногда требуется склеить данные из двух источников так, чтобы новые данные были дополнительными столбцами в уже существующих данных.

Задача:
Есть данные A:
$ cat RAWMAXmeasurementresult
2.7100000e+02 2.8300000e+02 2.8000000e+02
2.7300000e+02 2.8700000e+02 2.8400000e+02
2.7400000e+02 2.9600000e+02 2.9000000e+02
2.7800000e+02 3.0400000e+02 2.9800000e+02

Есть другой файл с данными B, полученный обработкой результата эксперимента в другой программе:
$ cat shutter
.00024414062500000000
.00031661600810536980
.00037652020030874656
.00048828125000000000

Нужно сделать так, чтобы в результате получился файл типа:
2.7100000e+02 2.8300000e+02 2.8000000e+02 .00024414062500000000
2.7300000e+02 2.8700000e+02 2.8400000e+02 .00031661600810536980
2.7400000e+02 2.9600000e+02 2.9000000e+02 .00037652020030874656
2.7800000e+02 3.0400000e+02 2.9800000e+02 .00048828125000000000
Так проще строить графики в гнуплоте, что в скриптах реализуется сравнительно просто.

Условия:
1. Ряды A и B можно перемещать, но нежелательно менять местами данные в ряде А.
2. Решение должно предполагать автоматизированную обработку (данных очень много, Ексель \ ОпенОфис Calc отпадают).
3. Ряд B получается не напрямую, сделать всё в одной программе нельзя.
4. Разделители - пробелы (количество неважно).
5. Задача не надуманная.

Что требуется:
Скрипт\программа, делающая такую конкатенацию, максимально кроссплатформенная (никаких вижуал васиков), ориентированная на *nix-среду.


Решение:
Изумительное по краткости и лаконичности: использование команды paste.
$ paste -d " " RAWMAXmeasurementresult shutter > ourendresult
И вся любовь.

Первоначально найденное решение:
Скрипт на Perl делающий всё это:

#! /usr/bin/perl
use strict;
use warnings;

my $kmvSourceFileName="RAWMAXmeasurementresult"; ## File that will be expanded by adding data
my $kmvTargetFileName="shutter";## File to be added to source file

my @kmvSourceFile =`cat $kmvSourceFileName`; ## file content
my @kmvTargetFile =`cat $kmvTargetFileName`;

my $kmvMaxIndexSourceFile = scalar @kmvSourceFile; ## how many elements in massive?

for (my $ii=0; $ii<$kmvMaxIndexSourceFile; $ii++)
{
if (index($kmvSourceFile[$ii], "\n")>0) ## if there is end-of-line symbol - remove it from source line
{
chop $kmvSourceFile[$ii];
}
$kmvSourceFile[$ii] = $kmvSourceFile[$ii]." ".$kmvTargetFile[$ii];
}

my $kmvResultFileName = $kmvSourceFileName.$kmvTargetFileName;

open(DATA, "+>$kmvResultFileName");##Открываем файл, куда пишем тестовые результаты
print (DATA @kmvSourceFile); ## Сюда пишем тестовые результаты
close(DATA); ##Закрываем файл, куда пишем тестовые результаты

Скрипт есть и он работает, но з
олотые мои анонимные комментаторы предложили решение, изумительное по краткости и лаконичности: использование команды paste.
Читать далее

Продвинутые средства анализа изображений в nip2



7 коммент.
Некоторое время назад я уже писал об этом замечательном графическом редакторе nip2 для огромных изображений - сейчас я хочу записать методы обработки изображений в нём. По роду текущей деятельности приходится иметь дело с 12-битными изображениями (конвертированные RAW-файлы при помощи dcraw в полностью документальный режим), так что просматривать и работать с такими картинками в обычных редакторах (типа GiMP или Krita) не удобно. Зато в nip2 можно и просматривать изображения любой битности, и выполнять весьма изощрённые методы обработки. Об этом ниже и будет говориться.


Несколько слов об интерфейсе
Способ взаимодействия с пользователем у nip2 весьма оригинален, и к нему требуется привыкнуть. Это своеобразная таблица, каждая следующая ячейка которой - результат операции с предыдущей. И так далее: таким образом, конечный результат зависит от результатов обработки на предыдущих шагах, и при изменении любого шага автоматически пересчитывается.
Это одна из изюминок nip2. Например, вы создали некую последовательность фильтров, откадрировали и хотите быстро посмотреть фурье-спектр, но для другого изображения вместо загруженного сейчас. Легко и просто: щёлкаем правой кнопкой мыши по ячейке с исходным изображением (как правило, левое верхнее), и выбираем "Replace from file".
После этого результаты всей цепочки фильтров и преобразований быстро пересчитаются для нового изображения. Это бывает очень полезно при анализе результатов экспериментов.

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


Изменение масштаба яркости при просмотре
Очень полезная функция для просмотра изображений.

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


Быстрое масштабирование
Для того, чтобы изменить масштаб, совсем не обязательно искать на панели инструментов какую-то кнопку: достаточно, удерживая клавишу CTRL на клавиатуре, покрутить колёсиком мыши - и изображение в окне будет менять свой масштаб. Естественно, на оригинальном файле это не отразится.


Быстрое выделение области
Если нужно быстро выделить область интереса на изображении, достаточно зажать клавишу CTRL на клавиатуре и начать выделять мышью нужную область. Тут же будет создана новая область с названием, соответствующем текущему ряду и последнему свободному номеру ячейки (например, если ряд B и ячейка 14 последняя - новая будет называться B15).


Быстрое перемещение по изображению
Колёса продолжают рулить! Колесом мыши можно скроллить изображение вверх-вниз, а если зажать SHIFT и использовать колесо мыши - скроллинг будет в направлениях "влево-вправо". Очень удобно перемещаться так без использования полос прокрутки.


Горячие клавиши в nip2
Если вы часто используете какую-то функцию, есть смысл поставить на неё горячую клавишу. Для этого открываем меню, доходим до нужной нам функции кнопками клавиатуры, подсвечиваем её (или нажимаем её кнопкой мыши и держим для подсветки) и наживаем к примеру сочетание клавиш CTRL+M - и теперь эту функцию можно вызвать по нажатию CTRL+M.



Анализ изображений в nip2

С помощью nip2 можно проводить довольно сложный анализ изображений: Фурье-анализ, корреляционный анализ, свёртка, low-pass/high-pass фильтры и прочее.

Фурье-анализ в nip2
Часто бывает необходимо видеть Фурье-спектр изображения, особенно тогда, когда к нему применяются методы обработки. Для этого идём в Toolkits - Math - Fourier - Forward для прямого фурье-преобразования. Считается оно в первый раз довольно долго, зато потом будет пересчитываться быстро.

Там же, в nip2, можно выполнить и обратное фурье-преобразование. Для этого идём в Toolkits - Math - Fourier - Reverse и получаем назад своё изображение.

Гистограмма изображения в nip2
Гистограмма это зависимость количества пикселей одного уровня яркости от яркости изображения - она даёт представление о том, пикселей какой яркости на изображении больше или меньше. Функция чрезвычайно полезная при анализе изображений, и, разумеется, она присутствует в nip2. Для этого выделяем изображение, которое собираемся анализировать, и идём в меню Toolkits - Histogram - Find - One Dimension.
В результате, как на скриншоте выше, имеем красивую и информативную гистограмму изображения.



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

Кадрирование
Есть и эта операция, причём её можно делать и визуально, и имея точные координаты.
Точное кадрирование можно осуществить, либо когда вам известны координаты области, либо используя nip2 в поточном режиме (для этого следует использовать команду vips и мануал к ней). Отмечаем ячейку с изображением, которое необходимо кадрировать, и идём в Toolkits - Image - Crop. После этого появится ещё одна ячейка ниже, и
потребуется указать координаты среза.

Визуальное кадрирование можно применить к изображению, открыв изображение на просмотр в окне, идём в меню File - New - New Region. Теперь меняем размер области и её положение по вкусу.
А можно сделать и ещё проще: для кадрирования в nip2 достаточно, зажав клавишу CTRL, выделить желаемую область на изображении - и в следующей ячейке сразу же появится желаемая область выделения.


Порог
Казалось бы, простая вещь - есть в любом уважающем себя графическом редакторе. В nip2 это тоже есть, но не так очевидно. Мне пришлось некоторое время поломать голову и проявить немного сообразительности: порог, как выясняется, можно сделать в два этапа. В nip2 есть простые статистические операции: среднее, минимум, максимум и прочее. Выделяем изображение и находим, например, среднее (Toolkits - Math - Statistics - Mean). В следующей ячейке появится число:
Теперь выделяем, зажав Shift, сначала ячейку с числом, а потом ячейку с картинкой. После чего идём в математику (Toolkits - Math) и ищем Relational (Соотношения). Выбираем Less than - это ли не порог? Отлично, в следующей ячейке появится чёрно-белое изображение с порогом. На скриншоте выделено полупрозрачным.
Обновлено: оказывается, всё проще - в nip2 недавно появилась специальная функция порога, которая упрятана в меню Toolkits - Image - Select - Threshold.

Склеивание изображений в nip2.
Чтобы склеить несколько изображений в одно, вовсе не нужен фотошоп - с этим прекрасно и быстро справляется nip2. Причём справляется тем лучше, чем больше изображений или фотографий нужно склеить. Например, если у вас имеются снимки со сканирующего микроскопа и нужно склеить десяток снимков - это лучше сделать в nip2. Для этого идём в меню Toolkits - Image - Join - Left to Right если хотим склеить изображения по горизонтали (левый край к правому краю) или Top to Bottom (если нужно склеить верхний край изображения к нижнему краю). Вот что при этом получается:


Пользуясь Toolbox - Image - Join, легко склеить несколько больших изображений в одно для последующего просмотра и анализа.


Корректировка перекоса яркости (tilt brightness)
Следует отметить, что при научных съёмках часто на изображениях появляется перекос яркости: когда одна часть изображения освещения сильнее другой (меняющаяся яркость от края изображения к середине). Этот достаточно неприятный эффект можно устранить в nip2 так: Tools - Filters - Tilt brightness.
Это позволит восстановить освещённость на изображении. А используя табличное свойство nip2, вы получаете возможность оперативно перерисовать большое изображение с учётом скорректированной яркости.

Вывод посчитанных данных
Вывод посчитанных значений из nip2 делается так: открываем меню View / Workspace Definitions, и пишем:
main = A1;
нажимаем "Process". После этого сохраняем Now save the workspace as "test.ws" and at the
command-line run:
$ nip2 -bp test.ws
и получите свои данные в консоли.

Резюме
Здесь я привёл несколько наиболее часто используемых мной возможностей nip2 для просмотра и анализа изображений. На всякий случай, особенности сборки последних версий nip2 в Linux описаны в этом посте.

Читать далее

Юмор: Линус Торвальдс теперь с нами



15 коммент.
Один из разработчиков Дебиан, Филип Хендс (Philip Hands), сфотографировал Линуса, когда он примерял новую футболку.

На блоге the debian user в комментариях Линуса призывают присоединиться "к тёмной стороне Силы".
И хотя Линус говорил о том, что ему нравится Федора и даже Мак - мы-то теперь располагаем неопровержимыми данными о том, какой же дистрибутив ему нравится на самом деле :-)
Читать далее

Новый метод масштабирования растровых изображений с учётом их содержимого Liquid Rescale



12 коммент.

На блоге Александра Артёменко aka Большой 40ваттный Светляк появилось описание замечательного плагина для GiMP - Liquid Resize. Этот плагин - реализация алгоритма, который анализирует изображение перед изменением размеров на предмет "важных" и "неважных" областей. При изменении размера "неважные" области сдавливаются, что приводит к сохранению на изображении существенных деталей и, до разумных пределов, пропорции этих деталей.

На странице автора, Ариэля Шамира, есть статьи в PDF, поясняющие работу алгоритма. Но лучше всего посмотреть это видео:


Плагин для GiMP доступен для скачивания и установки здесь в виде пакета Дебиан (собрано для Etch), нужно лишь подключить репозиторий. После установки плагина, в меню "Изображение" появляется строчка "Liquid Resize". Далее появляется простой диалог для изменения размера:

Плагин работает, но требователен к ресурсам, довольно медленный и имеет небольшой баг:

«Умершее дополнение может испортить внутреннее состояние GIMP. Возможно, для обеспечения безопасности стоит сохранить изображения и перезапустить GIMP

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

Тем не менее, интересные возможности плагина стоят того, чтобы пару раз перезапустить GiMP :-)

Сейчас скачал статью Шамира и сижу читаю. Прочитал - принцип в общих чертах понятен.

Принцип работы

Итак, нужно изменить размер изображения - например, сделать его меньше. Для этого алгоритм ищет функцию энергии изображения - например, градиент. Те участки, которые имеют наибольший перепад по яркости, считаются важными частями изображения, а там, где градиент низкий - наименее важными. На видео это хорошо показано, только надо посмотреть его ещё раз :-)

Далее, нужно создать кривую, от верхнего края картинки до нижнего и от правого края до левого - попавшие на эту кривую пиксели будут убраны для уменьшения масштаба. Такая своеобразная "обрезка по шву".
Это не так просто: нужно кривую подобрать так, чтобы она проходила по "неважным" пикселям - тем, которые не являются градиентом. Пиксели с резким переходом будут удаляться такими кривыми в последнюю очередь - вот что обеспечивает сохранение пропорций важных объектов!

Может, я немного мутно излагаю - поясню на примере. Вот у нас есть картинка с морем и детьми.
Нужно её сжать в горизонтальном направлении, сделать уже. Что делает алгоритм? Он находит градиент, и начинает создавать вертикальные швы - швы, которые обходят контрастные детали (дети, резкие края берега моря, силуэты гор). При этом удаляются детали воды и облака - а так как швы не просто прямые линии, а непрерывные кривые, пропорции "важных" деталей сохраняются. Получается что-то вроде прореживания.

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


Чтобы стало совсем всё понятно, откройте в GiMP изображение, найдите от него градиент ("Фильтры" - "выделение края" - "Лаплас") и попробуйте изменить масштаб при помощи этого фильтра.

В оригинальной статье (20Мб, PDF) всё это рассказано с формулами и выкладками, а я попытался это изложить на пальцах - если кому интересно.
Читать далее

Первый взгляд на Nokia N800



41 коммент.
Сравнительно недавно я стал обладателем этого устройства нездешней выделки. Подкупило наличие большого и яркого экрана, возможности быстро просматривать PDF-документы и - главный хит - устройством управляет Debian GNU/Linux, такой привычный и удобный. Практически сразу, когда я узнал, что недалеко от меня есть официальный салон Нокиа, пошёл туда, поигрался с N800 и отдал на разграбление свою кредитку. И вот что из этого вышло...

Много есть обзоров N800, и там его, как правило, нахваливают. А я его немного поругаю, благо есть за что.

Старый друг лучше новых двух
Был и есть у меня Palm T3 - замечательная вещь, шедевр карманного машиностроения. Стильный, лаконичный, безупречный дизайн, продуманный до мелочей, фантастически отзывчивая PalmOS, яркий экран. Множество приложений, подобранных и установленных, позволяли мне делать почти всё.

Всё, кроме:
- комфортного просмотра PDF, DjVu;
- хождение по интернету (все броузеры, которые я перебрал, что-то важное не умели)
- wifi-подключения к беспроводным сетям (это КПК всё-таки).

Мелочи, а неприятно. И тут я узнаю, что до наших степей наконец-то добралось чудо инженеров из Нокиа под названием "Интернет-планшет Nokia N800". Внутри какая-то "Internet Tablet OS", которой нет и никогда не было. Только потом я узнаю - ба, да это же Дебиан!

Ещё больше интриги - из чтения всё того же ресурса InternetTablet узнаю, что на N800 можно поставить Evince, который позволяет просматривать PDF и DjVu, а также можно полноценно пользоваться интернетом и беспроводными сетями. Ну что - пришёл, посмотрел, поигрался. Когда в списке приложений увидел "Читать PDF" и запустил - на меня глянул xpdf. Это окончательно покорило сердце старого дебианщика :-) И вот он у меня в кармане...


Фестиваль идиотских инженерных решений
Простите меня за такой заголовок, но других приличных слов у меня нет. Особенно после Palm T3 - кто знает, о чём я, тот поймёт, остальным объяснять бессмысленно: просто положите рядом эти два устройства и вы поймёте, какая разница между Моцартом (Plam T3) и Димой БиланомСальери (N800). Итак, начнём.

1. Переносная ручка, закрывающая USB-штекер.
Это самое глупое решение вообще из всех, что мне довелось видеть. Я даже не уверен, что это - ручка или подставка? В любом случае, если это лёгкое мобильное устройство, зачем ему ручка, которая снизу? Если подставка - тем более зачем?
Но то, что невозможно положить плашмя устройство экраном вверх и просто подключить к нему USB-провод для доступа к картам - это феерическая глупость. Обязательно нужно ставить на подставку. Ситуация становится ещё смешнее, если при этом одновременно карту нужно вынуть: конструкция крепежа из дешёвой резинки ставит устройство в 167 позу из Кама-сутры.

2. Стилус "как-ни-возьми-всё-равно-неудобный".
Парад продолжает велосипед с трёхгранными колёсамитрёхгранный стилус. Если кто-то из Нокиа прочтёт эти строки: ребята, великие гении из Apple и Palm вас опередили лет на 15. Они изобрели Удобный Стилус - и он имеет цилиндрическую форму. Даже если он запатентован, придётся взять его конструкцию, иначе "благодарные пользователи" отловят автора этой ереси и сотворят с ним нечто ужасное при помощи того трёхгранного стилуса. Думаю, даже опытный проктолог не спасёт...
Не знаю, кому как, а мне пользоваться стилусом неудобно. Не до желания швырнуть его оземь, но так и хочется посмотреть автору этого издевательства в его однопиксельные глаза и задать пару вопросов.
Кроме того, стилусом не только неудобно управлять машинкой, но и трудно его обратно вслепую вставить. Излишне говорить, что гениальная цилиндрическая конструкция от Palm таких косяков не имеет.

3. Кнопки управления
Номер раз: они расположены кучей, весьма непродуманно, только под одну руку - между прочим, левую. На удобстве управления устройством правшой это сказывается отрицательным образом.
За кнопки изменения громкости нужно просто расстрелять создателей. Нет, они неплохи - они просто находятся не там.
Ситуация: вы слушаете музыку через наушники, N800 в кармане, в чехле. Нужно изменить громкость. Внимание, вопрос: где должны быть кнопки изменения громкости? Правильно, рядом с наушниками. Вопрос номер два: а где они на N800? В противоположном углу. И вам нужно вытаскивать устройство из кармана, искать кнопки, менять громкость, засовывать обратно устройство в чехол и всё это в карман.
Взвод, пли!
Номер два: кнопки просто не подогнаны к корпусу. Это просто без комментариев: бракоделы из Нокиа вообще в институте КПУ изучали? Слова "посадка", "зазор" и "квалитет" им знакомы? В устройстве за 500$ между кнопкой и корпусом зазоры в несколько миллиметров... Это просто не называется приличными словами.

Справедливости ради скажу: единственная кнопка, которая находится где надо, быстро ищется и выполняет свои функции на 100% - кнопка управления питанием.

4. Тугие разъёмы
Вообще, как и вся механика, сделано паршиво - опять-таки по сравнению с Palm. Если USB-штекер вынимается и вставляется с ощутимым усилием, то наушники пришлось в первый раз вбивать, поставив N800 на одну из граней. Может быть, это следствие "механического ремонта", который мне делали в гарантийке, но и с зарядником та же история. Вставляется туго и вынимается не без труда.
Этих проблем снова нет в Palm - там и стилус легко вынимается, и наушники входят легко.

Крышка, закрывающая аккумуляторный отсек и внутреннюю флешку, телепается при использовании - вот её-то можно было и потуже подогнать.

Я уже не говорю, что извлечение аккумулятора из N800 - весьма оригинальная задача, особенно если вы не блондинка с длинными ногтями. Хорошо хоть не часто требуется...

Короче, за всю механику инженерам из Нокиа чистый НЕУД. Так нельзя делать устройства.
Знаете, что я скажу вам на все возражения? Создателей устройств нужно приговорить пользоваться полгода только тем устройством, которое они создали. Вплоть до увольнения без выходного пособия - пусть они на себе испытают все неуклюжести и глупости созданного ими устройства. Вот тогда у нас с вами больше не будет Windows Mobile, идиотских стилусов, болтающихся кнопок, расположенных неведомо где и зачем, и тугих разъёмов, в которые нужно забивать штекеры. Не говоря уже о мобильных телефонах с дизайном дешёвых детских игрушек.

Ложка мёда в бочку дёгтя
Чтобы не было мучительно больно за потраченные деньги, нокиевцы расщедрились на две просто превосходные вещи:
+ большой, яркий и чёткий экран, даже ярче пальмовского, и днём с огнём на нём можно даже что-то рассмотреть :-)
+ wifi-чип - уж не знаю, что они там нашаманили, но принимает сигнал он явно лучше даже моего ноутбучного Intel Pro/Wireless 2200.

Это в плюс. Остальная механика - откровенный позор.


Что внутри?
Внутри Дебиан - и вот его испоганить индусам из нокиа было сложнее всего.
Не очень понятно, зачем пакетная система Дебиана понадобилась на мобильном устройстве: вот уж где статическая сборка особенно привлекательна, дабы не забивать пользователю голову поиском зависимостей.
Да, если вы подключены к Интернету с планшеткой - проблем почти не будет. Всё сделано довольно грамотно. Со сторонними репозиториями вы легко можете хлебнуть лиха и искать зависимости, которые криворукий автор не доложил.
Совсем кошмар - это когда вы вынуждены ставить программы off-line. Приготовьтесь к red-pill mode, почувствуйте себя Избранным и вперёд, качать репозитории и прописывать их в кривые строчки графической оболочки. Короче говоря, N800 без Интернета не жилец.

Но ещё раз: если вы подключены к интернету - почти всё гладко.

Процедура обновления - это сказка: городить огороды с пакетной системой и разом плюнуть слюной на всю утончённую систему APT. Обновление идёт так: всё сносим под корень и ставится чистая система... Да, есть способы сохранить настройки и список программ. Так что, ребята из Нокии слабы в колене на apt-get distr-upgrade?

В остальном это нормальный привычный Дебиан. Лично я туда первым делом поставил xterm, gainroot, MC и ViM - по этому замечательному руководству. Также поставил туда SSH сервер и клиент, но пока не пользовался. В общем, привычное окружение :-)


И всё-таки нравится
Даже несмотря на все механические софтверные глупости - N800 в целом неплох. То есть это совершенно точно не Palm, а такая трудовая лошадка: таскать в кармане, читать PDF-ники, ходить по Интернету (только не увлекаться и не пытаться смотреть сайты с Ajax :-)), временами слушая музыку и даже посматривая фильмы. Увлекаться wifi и фильмами не стоит - быстро дохнет батарея, но при чтении книжек в FBreader и Evince её хватает на 4-5 часов умеренного использования.

Плюс можно заделаться рутом и вдоволь покрасноглазить, пугая окрестных подоконников. Софт тот же, что и на большой машине - и это очень приятно: Evince, Mplayer, xpdf, Sdict, xterm, mc, vim, ssh... Можно ставить через графику, можно dpkg и apt-get.

Так что если решили прикупить себе удобный просмотрщик документов с возможностью выхода в Интернет по беспроводной сети - и при этом не жалко 15000 рублей... N800 пока на безрыбье. В конце концов, недостатки конструкции не катастрофичны, софт хорошо подогнан, система достаточно отзывчива. Главное - не класть её рядом с Palm. А так неплохо.

Ссылки
Прежде всего, отмечу этот замечательный ресурс - http://internet-tablet.com/
Если купите N800 - вам точно сюда, причём желательно прямо с таблетки, чтобы можно было сразу ставить нужные приложения. Но об этом в другом посте.
Читать далее

Сетевая печать из Linux на Windows принтер используя SAMBA



32 коммент.
Задача: есть принтер, подключённый к машине Windows по локальной сети, и есть компьютер с Linux и установленной там системой печати CUPS. Нужна печатать с Linux-машины на Windows-машину.
Решение: с помощью веб-формы CUPS добавляем принтер в Linux и указываем логин guest для печати на Windows машину.

Рассматривать будем на рабочем примере: есть компьютер под Windows XP по адресу 192.168.1.1, на нём по SAMBA виден расшаренный принтер LaserJet 1200, который имеет сетевое имя HPLaserJ. С других машин под Windows печать на него идёт, но через CUPS при попытке отправить задание на печать вылезает ошибка.

При использовании SMB протокола пишет:
Connection failed with error NT_STATUS_ACCESS_DENIED

Если пытаюсь печатать через IPP, получаю:
Unable to connect to SAMBA host, will retry in 60 seconds...foomatic-rip version $Revision$ running...

Пароля на принтеры нет.

Решение проблемы просто до смешного. Добавляем в веб-форме CUPS принтер, как сказано здесь, выбираем способ подключения Windows printer via Samba. Далее в строке адреса пишем:
smb://guest@192.168.1.1/HPLaserJ

И всё! Печать пошла!

И почему в гигантской, хотя и бестолковой, документации CUPS это не выделено ярким шрифтом?

В приложениях KDE нужно выставить адрес службы печати на локальный: 127.0.0.1:631.

Если же в вашей Windows-машине используется
авторизация через домен, то надо в строке адреса указывать пароль и имя пользователя.
smb://usrername:userpassword@domainname/computername/printername
Во избежание излишних нервных перенапряжений, не рекомендую пользоваться именами принтеров с пробелами и кириллицей.

Ссылки:
Решение было найдено, страшно сказать, на ЛОРе. Что поражает, так это то, что такую простую вещь никто нигде не освещает. Надеюсь, это поможет кому-то ещё.
Читать далее

Репозитории Debian и другие ресурсы o Debian GNU/Linux



30 коммент.

Пост подвергался чистке и правке после публикации:
Автор заходил править этот пост 5 января 2013 года.

В этом посте перечислены репозитории для Debian и другие интересные ресурсы о Linux, которые могут быть интересны и поклонникам других дистрибутивов.

Репозитории пакетов для Debian GNU/Linux

Основные репозитории:

  • http://ftp.debian.org --- главный репозиторий Debian.
    • deb http://ftp.debian.org/debian/ squeeze main contrib non-free
  • www.backports.org --- пакеты для стабильных версий Debian из версий testing (в основном) и unstable, которые будут работать в вашем стабильном дистрибутиве.
    • deb http://backports.debian.org/debian-backports squeeze-backports main

Неофициальные и прочие репозитории:

  • http://dotdeb.org/ --- Бэкпорты свежих версии PHP/MySQL/Percona/Nginx для серверов на Linux.
    • deb http://packages.dotdeb.org squeeze all
  • http://www.apt-get.org/ --- a resource for Debian and Ubuntu users seeking unofficial packages and Apt repositories.
  • http://www.debian-multimedia.org/ --- пакеты для работы с видео (mplayer, mythtv, avidemux) а так же RealPlayer, Acrobat Reader, libdvdcss2, win32 кодеки .
    • deb http://www.deb-multimedia.org squeeze main non-free
  • http://debian.nsu.ru/sources/ много несвободных пакетов java, mplayer.
    • deb http://linux.nsu.ru/debian squeeze main contrib non-free
  • http://oss.oracle.com/debian/ - Пакеты Oracle Express Edition для Debian.
  • http://deb.opera.com/opera - Репозиторий для Браузера Opera под Debian.
    • deb http://deb.opera.com/opera/ squeeze non-free
  • http://www.os-works.com/debian - Репозиторий десктоп-окружения Xfce - the Xfce Desktop Environment.
    • deb http://www.os-works.com/debian testing main
  • http://www.debian-desktop.org/pub/linux/debian/ - Репозиторий проекта Debian-Desktop (xorg, kde, xfce, mplayer, lame)
  • http://frickelplatz.de --- Мультимедийный софт типа deadbeef, qmmp, gimp, shutter.
    • deb http://frickelplatz.de/debian sid main contrib non-free
  • http://notesalexp.org --- репозиторий с cuneiform (распознавание символов, аналог FineReader для Linux) и yagf (графическая оболочка для cuneiform).
    • deb http://notesalexp.org/debian/squeeze/ squeeze main
  • http://www.pvv.ntnu.no/~knuta/xmms/ --- Старый добрый XMMS, если кому надо.
    • deb http://www.pvv.ntnu.no/~knuta/xmms/squeeze ./
  • http://aptosid.com --- aptosid (бывший sidux) это самый свежий LiveCD, а так же репозиторий с последними версиями ядра и утилит.
    • deb http://aptosid.com/debian/ sid main fix.main
  • http://www.google.com/linuxrepositories/ --- Программы от Google такие как Google Chrome и Google Earth.
  • http://mozilla.debian.net/ --- Сборки браузера Firefox (Iceweasel) .
    • deb http://mozilla.debian.net/ squeeze-backports iceweasel-release
  • http://www.liquorix.net/ --- Ядро Linux, заточенное под десктоп: Debian kernel built on top of the zen kernel sources. The configuration is optimized for a practical desktop experience and features not currently maintained in Linus's mainline kernel are included.
    • deb http://liquorix.net/debian sid main

Новости и анонсы, связанные с Debian GNU/Linux

На английском:

  • http://www.debian.org/ --- официальный сайт проекта Debian. Практически все страницы портала переведены на русский язык.
  • http://wiki.debian.org/ --- официальная страница энциклопедии Debian.
  • http://www.debian-news.net/ --- анонсы новостей Debian.

Справочные руководства и полезная информация о Debian GNU/Linux

Англозязычные:

  • http://www.debianadmin.com/ --- много документации и справочных материалов по настройке и обслуживанию сетей под управлением Линукс вообще и Дебиана в особенности.
  • http://www.debianhelp.org/ --- Сайт с морем документации и справочного материала.
  • http://www.aboutdebian.com/ --- справка и дополнительная информация по Дебиан.
  • http://www.debian-administration.org/ --- информация для системных администраторов, работающих с операционной системой Debian GNU/Linux.
  • http://wooledge.org/\~greg/sidfaq.html ---Debian Sid часто задаваемые вопросы.

Книги о Debian

  • Debian Administrators Handbook - перевод на английский замечательной книги по администрированию Debian.
  • http://qref.sourceforge.net/ --- прекрасный справочник по операционной системе Debian GNU/Linux, где можно найти ответы на большинство вопросов по администрированию, установке системы, базовым командам Bash и т.д.

Заключение

В основу была положена коллекция Homo Adminus и эта замечательная подборка по репозиториям Дебиан.
Если вы нашли битую ссылку, очепятку или ресурс о Дебиан, который я пропустил и не включил сюда - пишите в комментарии.
Читать далее