nixp.ru v3.0

23 мая 2017,
вторник,
17:53:04 MSK

DevOps с компанией «Флант»
Longobard написал 3 декабря 2003 года в 21:16 (511 просмотр) Ведет себя как мужчина; открыл 291 тему в форуме, оставил 2499 комментариев на сайте.

Я тут пишу прогу для записи болваней под Линь, она юзает SCSI generic. Пока пишу модуль, который в обьект класса Bolvan загоняет всю инфу о болванке, которую пользователь захотел изувечить моей прогой :). Насобачился доставать всю инфу, вот только проблема со скоростью чтения/записи с/на эту(ой) болванку. Есть команда GET DISK INFO, там есть поле OPC, где я могу доастать текущую скорость (Kb/sec). Но я не могу достать максимальную. Конечно можно с помощью команды SET CD SPEED сперва максимально притормозить болвань, измерить скорость (из OPC) , затем разогнать и снова измерить оба показателя (скорости чтения и записи). Но на это тратится слишком много времни. Чего делать?

P.S.: Прошу без комментариев по типу (а зачем тебе изобретать велосипед, когда есть cdrecord и туева хуча оболочек к нему). Отвечаю сразу: просто мне интересно, кроме того я хочу досканально все это изучить, а кроме того мне влом парится с cdrecord :)

P.P.S.: Если кто хочет доки почитать:

www.opennet.ru/docs/HOWTO/SCSI-Generic-HOWTO/index.html

/*это дока про принципы SCSI-generic кодинга*/

http://www.t10.org/ftp/t10/drafts/mmc4/mmc4r02f.pdf

/*Это дока называется MMC-4, там 627 страниц английского текста :), но там описаны все команды и стандарты для CD/DVD приводов. */

blacklion

cdrecord выдает скорость. что мешает покопаться в его сорцах?

Longobard

Копался. Там в сишниках — только интерфрейс. Реализация команд в обьектниках

blacklion

да ну. проект в сорцах. кросплатформенный. копай еще

Anarchist
LONGOBARD
Копался. Там в сишниках — только интерфрейс. Реализация команд в обьектниках

Где именно копался?

Скорее всего до сырцов с нужным тебе примером ты просто не добрался.

Longobard

Копался два дня. Нашел даже нужную функцию. Но реализация этой функции — в обьектнике, к которому нету сорца.

Anarchist
LONGOBARD
Копался два дня. Нашел даже нужную функцию. Но реализация этой функции — в обьектнике, к которому нету сорца.

Т.е КАК нету?

Происхождение и описание сырцов, в которых ты рылся?

Longobard

Не помню откуда взял, но это тарболл cdtools 2.00 в котором часть файлов — сырцы, а чать — уже скомпиленный обьектники.

blacklion

возьми оригинал с ftp авторов. линк могу найти если сам не справишься

Longobard

Ну линк должен быть в COPYING/README, но кто гарантирует что у авторов на ftp лежит все в сырцах, не в обьектниках?

blacklion

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

http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/man/README/README-2.0

Longobard

Возможно. cdrecord юзает SCSI generic драйвер, он общий во всех никсах. Т.е. именно низкоуровневая реализация команд вполне может быть в обьектнике.

P.S.: Сайт у девелоперов немецкий, не понятно ни хрена. Но я думаю что вряд ли кто-нибудь будет брать дистр cdrecordа, компилить чать сишников в обьектники и класть обратно в инет.

blacklion

да по..ть на низкоуровневость скази. есть такая штука как линковка. в том числе с системными либами. е..ать…

Longobard

Ну и в какой же либе есть SCSI API??

blacklion

SCSI апи — смешно =) я про то что программа которая собирается и работает под кучу платформ не может содержать объектники. ибо это сделает ее к примеру неработоспособной на платформе с разным порядком следования старших\младших байтов памяти.

скорость записывается в служебном секторе болванки. на заводе

Longobard

Ну и где же этот сектор? По идее он должен быть на lead-in, там вся инфа о сидюке. Но про скорость там ни слова.