21 ноября 2007 г.

Пакетная запись UDF в linux

Как многим известно, я давно озаботился процессом записи крупных файлов (более 2 Гб) под Linux. В начале тернистого пути, который я прошел, было: debian etch 4.0 с ядром 2.6.18.

Что происходило в это случае. Ужасная работа с UDF. UDF диск, записанный в windows читался, но копировался не полностью, потом вообще переставал читаться, не говоря про запись.



Для начала, поймем что такое UDF. википедия пишет, что "UDF (Universal Disk Format - универсальный формат диска) - новая файловая система на CD, с поддержкой для текущего поколения компакт-дисков типа CD-RW и DVD-ROM. Стандартные CD-ROM обычно форматируются с использованием ISO 9660. Большинство компьютерных систем может читать ISO 9660 CD-ROM и CD-R диски, так как имеют встроенную поддержку ISO 9660. Однако, ISO 9660 имеет некоторые ограничения, которые делают его несовместимым с DVD, CD-RW и другими новыми форматами дисков. UDF разработан так, чтобы избавить от этих ограничений. UDF позволяет дозаписывать файлы на CD-R или CD-RW дисках, один файл одновременно, без существенных потерь дискового пространства, используя метод пакетной записи. Также UDF учитывает возможность выборочного стирания некоторых файлов на перезаписываемых носителях CD-RW, освобождая место на диске. В стандарте ISO 9660 такое не предусмотрено. UDF также лучше подходит для DVD, так как имеет лучшую поддержку для дисков большого объёма."

А также, что "ОС Linux также поддерживает данную файловую систему. Монтироваться она должна без проблем, для создания диска с данной ФС нужно использовать пакет udftools."

Что ж. Вначале я попробовал создать UDF в k3b. Но выяснилось что k3b создает все-таки ISO9660 с структурой UDF (я не стал вникать в подробности сего процесса, и решил что все таки ISO мне не подходит так как k3b в любом случае не даст писать файлы более 4 Гб да и после того как я попробовал записать файл более 1 Гб - он у меня не прочитался) .

Далее, я решил сначала исправить ошибку чтения UDF дисков. Эта ошибка решается компиляция нового ядра - последнее на данный момент 2.6.23. Для этого при конфигурировании включаем поддержку UDF и поддержку пакетной записи (она пригодится нам позже). Обновив ядро мы смело копируем диск UDF с файлом более 4 Гб.

Но на запись ISO с поддержкой UDF (k3b с помощью mkisofs и cdrecord) это к сожалению это к сожалению не влияет:

man mkisofs

" -udf Include UDF filesystem support in the generated filesystem image. UDF support is
currently in alpha status and for this reason, it is not possible to create UDF-
only images. UDF data structures are currently coupled to the Joliet structures,
so there are many pitfalls with the current implementation. There is no UID/GID
support, there is no POSIX permission support, there is no support for symlinks.
Note that UDF wastes the space from sector ~20 to sector 256 at the beginning of
the disc in addition to the space needed for real UDF data structures."

После пришлось искать альтернативные программы записи. Нашлось - udftools.
А вот собственно как писать UDF в режиме пакетной записи:

1) В файле /etc/default/udftools раскомментировать DEVICES="/dev/hd?" (у меня /dev/hdb)
2) Вставляем диск.
3) Форматируем RW. - #dvd+rw-format -f /dev/hdb
4) Создаем на диске UDF fs - #mkudffs /dev/hdb
5) Запускам пакетную запись: #/etc/init.d/udftools start
6) Создать папку для монтирования: # md /mnt/udf
7) Монтируем диск (через пакетное устройство) #mount -t udf -o utf8,noatime /dev/pktcdvd/0 /mnt/udf
8) Используем диск как дискету
9) Отмонтируем диск #umount /mnt/udf
10) Останавливаем пакетную запись: #/etc/init.d/udftools stop
11) eject

Как насчет DVD-R пока не знаю, расскажу позже. Или может в комментах кто расскажет.

ЗЫ. Сегодня принимаю поздравления с 25-летием :)

19 ноября 2007 г.

Смотрим кино напрямую с домашнего фтп на Nokia N800

Как говорится, голь на выдумки хитра. Нет у меня пока большой флешки SD для моей Nokia N800, а кино посмотреть хочется (точнее, хочется посмотреть, как смотрится кино на ней).

Что нам требуется: Непосредственно сама Нокия :), точка доступа WiFi (или карточка WiFi, точка, ес-но предпочтительней), комп соединенный с точкой доступа, и Линукс на компе :).

Операции проводились на софте: Debian Etch 4.0, на Нокии IT OS2007.


Для начала установим конвертор видео на десктоп. Говорят можно и не кодируя смотреть - но не все, я решил что конвертор все таки нужен.
Качаем отсюда media convertor под Линукс. Это есть архив с .jar файлом, для запуска которого необходима Ява машина и mencoder. Побродив по интернету, обнаружил что ее как таковой нет для Debian, и ее надо качать с сайта sun. Но покопавшись в дистрибутиве etch'а обнаружил, что все-таки есть альтернатива - пакет java-gcj-compat, который неплохо справляется с конвертором. Указываем чтобы наш .jar файл запускался с помощью java runtime.

mencoder входит в состав mplayer, но почему то не входит с состав etch (хоть и mplayer входит). Для его установки можно попробовать скомпилировать mplayer, а можно поставить из репозитория http://www.debian-multimedia.org/ (придется скачать около 5 мегабайт).

Media Convertor запустился без проблем и работать начал тоже без проблем.

В роли ftp сервера использовал proftpd. Настройки у него в одном файле и простые, так как комп в локальной сети - заморачиваться по поводу авторизации не стал - использовал гостевой доступ. Настройки простые - в инете на каждом шагу.

Отлично. У нас есть кодированый фильм и доступ к нему по фтп (настройки wifi в точке доступа тоже простые).

Далее. Нам нужен mplayer и терминал на таблетке (так называют интернет-планшет в обиходе)/

Терминал ставиться без особых проблем отсюда http://maemo.org/downloads/product/osso-xterm-advanced/
mplayer тоже http://maemo.org/downloads/product/mplayer/ (он сразу и ставит некий launcher для иксов)

И тут начинается самое интересное. Устанавливаем wifi соединение, заходим на ftp (например, ftp://192.168.1.2) браузером, копируем ссылку на фильм, открываем xterm и пишем - $mplayer ftp://192.168.1.2/film.avi

Приятного просмотра! ;)

12 ноября 2007 г.

Бой с микрософтскими офисными add ins

Вспомнили. Писал прогу год назад. Тогда не было ни ClickOnce, ни .NET 2.0, ни студии 2005.

Прога переводит данные из таблицы Excel на печать (спецификации - таки оформленные несколько страничные таблички) или оформляет рисунком в АвтоКаду. Написана на C#.
Все бы ничего, да после того как я ее закончил ни один сотрудник, который реально составляет спецификации программу и не пробовал.

А смысл вообще в чем. Заказчику спецификация нужна в формате Excel , чтобы тамошние счетоводы смогли быстренько посчитать, все что им нужно (в AutoCad же так не сделаешь).

А начальник новоиспеченного отдела оживился (ну, знаете, когда человека переводят на новую должность, или он меняет работу - он начинает видеть перспективу и начинает активную творческую деятельность). Нас тут просят, грит, в Excel. Отвечаю - надо тестить. Он: поставим всем и потестим (ужос!).

Но дело даже не в этом. Программку пришлось перекатить на VS2005 чтобы закинуть в ClickOnce (довольна неплохая технология автоматического апдейта программы(и установки соот-но)). Но обнаружились два "но" от Микрософт...

Первое. Чтобы сделать установочный пакет для clickonce необходим проект с исполняемым файлом (а add-ins - они .dll), на что пришлось создать новые проект в солюшене чисто запускаюищий msi пакет.

И второе. Самое страшное... Перерыл пол инета.. Ошибка была соб-но в чем - не запускался add-in на машине разработчика :))))))) . На всех запускается - на машине со студий нет... Как ТАК умудрились в офттопике?! Это уму непостижимо))) Проблема решилась установкой KB - какого, не скажу ибо сейчас дома. Потрачена неделя копания в инете - сначала в рунете, потом в com. Вот так вот связываться с офттопиком.

11 ноября 2007 г.

Первое сообщение :) Как обычно самое дурацкое.

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