LINUX.ORG.RU

Пакетная запись на 2.6.11


0

0

Захотелось у себя орагнизовать на генте сабж.
По мотивам gentoo-wiki.com делал:

1) Вкомпилил поддержку УДФ в ядро (а не модулем)
2) сделал "emerge udftools"
3) 


   =======/etc/conf.d/cdrw========
        cdrw_list="/dev/hdc"
   ===============================

/dev/hdc - Это резак, собственно.



   ========/etc/init.d/cdrw=======
  #!/sbin/runscript
 # Copyright 1999-2003 Gentoo Technologies, Inc.
 # Distributed under the terms of the GNU General Public License v2
 # $Header: $
 depend() {
         need localmount
 }
 start() {
      # Starting with kernel 2.6.8 there is a different syntax 
 # for the pktsetup program. 
 kernel_major=$(( `uname -r | cut -d'-' -f1 | cut -d'.' -f2` )) 
 kernel_minor=$(( `uname -r | cut -d'-' -f1 | cut -d'.' -f3` )) 
         local i
         local minor=0
         local retval=0
         local last_result=0
         if [ ! -e "/dev/pktcdvd" ]
               then
                 /sbin/modprobe -a pktcdvd
    fi
         for i in ${cdrw_list}
         do
   ebegin "Enabling CD-RW packet writing on ${i}" 
 if [ ${kernel_major} -ge 6 ] && [ ${kernel_minor} -ge 8 ] 
                #then /usr/bin/pktsetup /dev/pktcdvd/${minor} ${i} >/dev/null 2>&1
                        then /usr/bin/pktsetup ${minor} ${i} >/dev/null 2>&1 
                #else /usr/bin/pktsetup /dev/pktcdvd${minor} ${i} >/dev/null 2>&1 
                        else /usr/bin/pktsetup pktcdvd${minor} ${i} >/dev/null 2>&1 
         fi 
       if [ -b /dev/pktcdvd/${minor} ] 
               then last_result=0 
               else last_result=1 
       fi
 retval=$(( ${retval} + ${last_result} ))
 minor=$(( ${minor} + 1 ))
 if [ ${last_result} -gt 0 ]
       then
                         ewend ${last_result} "Failed to enable packet writing on ${i}"
                 fi
         done
         eend ${retval}
 }
 stop() {
       # Starting with kernel 2.6.8 there is a different syntax 
 # for the pktsetup program. 
 kernel_major=$(( `uname -r | cut -d'-' -f1 | cut -d'.' -f2` )) 
 kernel_minor=$(( `uname -r | cut -d'-' -f1 | cut -d'.' -f3` )) 
       local i
       local minor=0
       local retval=0
       local last_result=0
       for i in ${cdrw_list}
       do
             ebegin "Disabling CD-RW packet writing on ${i}"
             umount /dev/pktcdvd/${minor} >/dev/null 2>&1 || true
 if [ ${kernel_major} -ge 6 ] && [ ${kernel_minor} -ge 8 ] 
                        #then /usr/bin/pktsetup -d /dev/pktcdvd/${minor} >/dev/null 2>&1 
                        then /usr/bin/pktsetup -d ${minor} >/dev/null 2>&1 
                        #else /usr/bin/pktsetup -d /dev/pktcdvd${minor} >/dev/null 2>&1 
                        else /usr/bin/pktsetup -d pktcdvd${minor} >/dev/null 2>&1 
                fi 
                if [ -b /dev/pktcdvd/${minor} ] 
                        then last_result=1 
                        else last_result=0 
                fi 
                retval=$(( ${retval} + ${last_result} )) 
                minor=$(( ${minor} + 1 )) 
                if [ ${last_result} -gt 0 ]
 then
                            ewend ${last_result} "Failed to disable packet writing on ${i}"
                fi
         done
         eend ${retval}
  }
   ===============================

4) сhmod +x /etc/init.d/cdrw && rc-update add default cdrw

Всё до этого пунтка сделалось без к.-либо ошибок.

5) Перезгрузился в новое ядро. 
 При загрузке строчка: "Enabling CD-RW packet writing бла-бла-бла"
 Всё вроде здорово.
 В /dev/pktcdvd : три файла "0", "setup", "ещё чё-то"
 В /etc/fstab'е строка:
      /dev/pktcdvd/0 /mnt/cdrw udf noauto,noatime,rw,users 0 0

6) Вставляю компашку (rw) в привод, делаю
 cdrwtool -d /dev/hdc -q

 все ОК.
 Но не монтируется :(
 Если в фстабе вместо /dev/pktcdvd/0 записать /dec/hdc
 то при попытке примонтировать:

 mount: wrong fs type, bad option, bad superblock on /de v/hdc,
       or too many mounted file systems

Всё,после этого резак начмнает что-то читать (писать?), и ни на что не реагирует :(

ВОПРОС: ГДЕ МОГУТ БЫТЬ ГРАБЛИ? ЧТО НЕ ПРАВИЛЬНО СДЕЛАЛ?
 

так с udftools же идёт /etc/init.d/pktcdvd
у меня:
crw-rw---- 1 root cdrw  10, 61 2006-06-06 12:41 control
brw-rw---- 1 root cdrw 253,  0 2006-06-06 10:52 hdd
brw-rw---- 1 root cdrw 253,  0 2006-06-06 10:52 pktcdvd0
dmesg что говорит?

kostian ★★★★☆
()

а так работает?

# pktsetup 0 /dev/cdrom
# mount -t udf /dev/cdrom /mnt/cdrw

anonymous
()

Эти скрипты только путают, попробуй без них. Типа:

modprobe pktcdvd
pktsetup pktcdvd0 /dev/cdrom1
mount -t udf /dev/pktcdvd0 /mnt/cdrw

mr ★★
()
Ответ на: комментарий от mr

$ pktsetup pktcdvd0 /dev/hdc

$ mount -t udf /dev/pktcdvd/0 /mnt/cdrw
mount: /dev/pktcdvd/0: can't read superblock


$ mount -t udf /dev/pktcdvd0 /mnt/cdrw
mount: /dev/pktcdvd/0: can't read superblock

$ mount -t udf /dev/hdc /mnt/cdrw
mount: block device /dev/hdc is write-protected, mounting read-only
mount: wrong fs type, bad option, bad superblock on /dev/hdc,
       or too many mounted file systems

когда пытаеь /dev/hdc присобачить, то начинает драйв что-то читать,
не реагирует ни на что :(


Ещё предложения? :/

pisun
() автор топика
Ответ на: комментарий от pisun

Блин, теперь так:

При попытке отформатировать диск под удф (cdrwtool -d /dev/hdc -q)

using device /dev/hdc
1082KB internal buffer
setting write speed to 12x
Settings for /dev/hdc:
        Fixed packets, size 32
        Mode-2 disc

I'm going to do a quick setup of /dev/hdc. The disc is going to be blanked and formatted 
with one big track. All data on the device will be lost!! Press CTRL-C to cancel now.
ENTER to continue.

Initiating quick disc blank
wait_cmd: Input/output error
Command failed: a1 01 00 00 00 00 00 00 00 00 00 00 - sense 03.0c.00
blank disc: Illegal seek

??? Причем cdrecord'ом компашка стирается/записывается.

$mount -t udf -o rw /dev/pktcdvd/0 /mnt/cdrw
mount: /dev/pktcdvd/0: can't read superblock
(видать потому что диск не такой как надо, потому что с форматированием косяк вышел)

Привод: какой-то Nec, довольно старенький.

В чем ещё может дело быть?

pisun
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.