|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Eugene Grosbein 2:5006/1 10 Oct 2006 22:28:56 To : Eugene Grosbein Subject : Re: burncd blank -------------------------------------------------------------------------------- 10 окт 2006, вторник, в 21:57 KRAST, Eugene Grosbein написал(а): EG> Это, а я че-то не понял - burncd blank так и поломатый в шестерке? EG> Четверка на этом же железе работает замечательно, а в шестерке Ага, таки поломатый. Добавил отладочный вывод: - --- atapi-cd.c.orig Fri Sep 29 21:05:26 2006 +++ atapi-cd.c Tue Oct 10 23:12:48 2006 @@ -1234,6 +1234,10 @@ request->flags = ATA_R_ATAPI | ATA_R_READ; request->timeout = 30; ata_queue_request(request); + device_printf(dev, "error=%ld, u.atapi.sense.error=0x%x, ind=%d\n", + (long)(request->error), (unsigned)(request->u.atapi.sense.error), + (int)((request->u.atapi.sense.specific2 | + (request->u.atapi.sense.specific1 << 8)) * 100) / 65535); if (!request->error && request->u.atapi.sense.error & ATA_SENSE_VALID) *finished = ((request->u.atapi.sense.specific2 | (request->u.atapi.sense.specific1 << 8)) * 100) / 65535; Получаю при запуске burncd blank: acd0: error=0, u.atapi.sense.error=0x70, ind=2 acd0: error=0, u.atapi.sense.error=0x70, ind=4 acd0: error=0, u.atapi.sense.error=0x70, ind=6 acd0: error=0, u.atapi.sense.error=0x70, ind=9 acd0: error=0, u.atapi.sense.error=0x70, ind=11 acd0: error=0, u.atapi.sense.error=0x70, ind=13 acd0: error=0, u.atapi.sense.error=0x70, ind=16 acd0: error=0, u.atapi.sense.error=0x70, ind=18 acd0: error=0, u.atapi.sense.error=0x70, ind=20 И так далее вплоть до: acd0: error=0, u.atapi.sense.error=0x70, ind=90 acd0: error=0, u.atapi.sense.error=0x70, ind=92 acd0: error=0, u.atapi.sense.error=0x70, ind=95 acd0: error=0, u.atapi.sense.error=0x70, ind=97 acd0: error=0, u.atapi.sense.error=0x70, ind=100 acd0: error=0, u.atapi.sense.error=0x70, ind=100 acd0: error=0, u.atapi.sense.error=0x70, ind=100 acd0: error=0, u.atapi.sense.error=0x0, ind=0 acd0: error=0, u.atapi.sense.error=0x0, ind=0 acd0: error=0, u.atapi.sense.error=0x0, ind=0 И дальше только нули. То есть, на моем NEC request->u.atapi.sense.error будет вовсе не ATA_SENSE_VALID (0x80), а совсем даже 0x70. И вернуть работу процентиков и убрать "зависание" burncd практически ничего не стоит. Выкинуть нафиг этот ATA_SENSE_VALID и все дела: - --- atapi-cd.c.orig Fri Sep 29 21:05:26 2006 +++ atapi-cd.c Tue Oct 10 23:27:23 2006 @@ -1234,7 +1234,7 @@ request->flags = ATA_R_ATAPI | ATA_R_READ; request->timeout = 30; ata_queue_request(request); - if (!request->error && request->u.atapi.sense.error & ATA_SENSE_VALID) + if (!request->error && request->u.atapi.sense.error) *finished = ((request->u.atapi.sense.specific2 | (request->u.atapi.sense.specific1 << 8)) * 100) / 65535; else Тут же burncd начинает рисовать процентики и правильно выходит по окончании процесса. Eugene -- Открываются расписные ворота души, и несет оттуда вдруг такой тухлятиной, что хоть святых выноси... --- slrn/0.9.8.0 (FreeBSD) * Origin: Svyaz Service JSC (2:5006/1@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/260934db917ab.html, оценка из 5, голосов 10
|