[slackware-pk] udev - problemas

  • From: Piter PUNK <piterpk@xxxxxxxxxxxx>
  • To: slackware-pk@xxxxxxxxxxxxx
  • Date: Fri, 11 Aug 2006 18:34:16 -0300

Oi povo,

        Estou tendo alguns problemas com o udev. Hmmm... falando melhor,
eu não tenho problema nenhum, quem tem são alguns usuários e eles falam
com o Patrick (e aí eu tenho problemas).

        Para quem não sabe, o udev é um daemon em userspace que escuta
eventos de kernel (via netlink) e gerencia esses eventos. Usando um
kernel 2.6.15+ e udev acima de uma versão que eu não lembro mais, ele
gerencia tanto a criação dos devices no /dev como o carregamento dos
módulos. Quem usa o kernel 2.6 que vem no slackware-current e o udev
que está no current (096) já está com tudo OK para fazer o sistema
funcionar.

        Se quiserem ajudar no teste, atualizem as máquinas de vcs
para o current -;) Sobrescrevam todos os /etc/rc.d/rc.{S,M,udev}
com os novos que vêm nos pacotes novos e coloquem o script que
esta anexado nesse e-mail em /lib/udev/ -;)

                                        Boa Sorte!

                                                        Piter PUNK
--
    |        E-Mail: piterpk@xxxxxxxxxxxx        (personal)
   .|.               roberto.batista@xxxxxxxxxxx (professional)
   /V\
  // \\      UIN:116043354  Homepage:www.openslack.org/~piterpk
 /(   )\
  ^`~'^         ----> Slackware Linux - The Best One! <----
 #105432
#!/bin/sh
if [ -z $udev_root ]; then
          . /etc/udev/udev.conf
fi

getlock() {
        while [ -r $LOCKFILE ]; do 
                sleep 1 
        done
        touch $LOCKFILE 
}

givelock() {
        rm -f $LOCKFILE
}

# initiate some vars
LOCKFILE=${udev_root}cd-lockfile
OPTICAL_DEVICE=$1
ID=${PHYSDEVPATH##*/}
let `/lib/udev/cdrom_id --export ${udev_root}${OPTICAL_DEVICE}`

if ! [ -z $ID_CDROM ]; then
        getlock

        if ! [ -e /etc/udev/rules.d/cd-devices.rules ]; then
                cat <<EOF > /etc/udev/rules.d/cd-devices.rules          
# Local CD/DVD rules to make the symlinks for your CD/DVD devices.
# These rules were generated by cdrom-symlinks.sh, but you can customize
# them if needed.
#
# If you delete this file, /lib/udev/cdrom-symlinks.sh will try to
# generate it again the next time udev is started.

EOF
        fi

        MATCH="BUS==\"$PHYSDEVBUS\", ID==\"$ID\""
        NUMBER=`grep -c "SYMLINK+=\"cdrom." /etc/udev/rules.d/cd-devices.rules`

        if ! grep "$MATCH" /etc/udev/rules.d/* &>${udev_root}null ; then
                cd $udev_root
                if [ "$NUMBER" = "0" ]; then
                        CDROM=", SYMLINK+=\"cdrom cdrom0\""
                        ln -sf $OPTICAL_DEVICE cdrom
                        ln -sf $OPTICAL_DEVICE cdrom0
                else
                        CDROM=", SYMLINK+=\"cdrom${NUMBER}\""
                        ln -sf $OPTICAL_DEVICE cdrom${NUMBER}
                fi
                echo ${MATCH}${CDROM} >> /etc/udev/rules.d/cd-devices.rules
        
                if [ -n "$ID_CDROM_DVD" ]; then
                        if [ "$NUMBER" = "0" ]; then
                                DVDROM=", SYMLINK+=\"dvd dvd0\""
                                ln -sf $OPTICAL_DEVICE dvd 
                                ln -sf $OPTICAL_DEVICE dvd0
                        else
                                DVDROM=", SYMLINK+=\"dvd${NUMBER}\""
                                ln -sf $OPTICAL_DEVICE dvd${NUMBER} 
                        fi
                        echo ${MATCH}${DVDROM} >> 
/etc/udev/rules.d/cd-devices.rules
                        if [ -n "$ID_CDROM_DVD_R" ] || [ -n "$ID_CDROM_DVD_RAM" 
]; then
                                if [ "$NUMBER" = "0" ]; then
                                        DVDRW=", SYMLINK+=\"dvdrw dvdrw0\""
                                        ln -sf $OPTICAL_DEVICE dvdrw
                                        ln -sf $OPTICAL_DEVICE dvdrw0
                                else
                                        DVDRW=", SYMLINK+=\"dvdrw${NUMBER}\""
                                        ln -sf $OPTICAL_DEVICE dvdrw${NUMBER} 
                                fi
                                echo ${MATCH}${DVDRW} >> 
/etc/udev/rules.d/cd-devices.rules
                        fi      
                fi

                if [ -n "$ID_CDROM_CD_RW" ]; then
                        if [ "$NUMBER" = "0" ]; then
                                CDRW=", SYMLINK+=\"cdrw cdrw0\""
                                ln -sf $OPTICAL_DEVICE cdrw
                                ln -sf $OPTICAL_DEVICE cdrw0
                        else
                                CDRW=", SYMLINK+=\"cdrw${NUMBER}\""
                                ln -sf $OPTICAL_DEVICE cdrw${NUMBER} 
                        fi
                        echo ${MATCH}${CDRW} >> 
/etc/udev/rules.d/cd-devices.rules
                fi
        fi
        givelock
fi

Other related posts:

  • » [slackware-pk] udev - problemas