sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #93452
Re: skelne mellem forskellige USB porte
Kristian Nørgaard wrote:
Hvordan detekterer jeg hvilken konkret USB port i en PC at et givent
memory device er tilsluttet?
Jeg formoder det ikke kan lade sig gøre igennem en USB hub, men måske
når det er direkte ind i PC'en?
Det er ikke så interessant hvilken USB port et device
er tilsluttet.
lsusb viser busnummer og devicenummer, men det kan ikke
bruges til noget, hvis det drejer sig om at mounte en partition.
Man kan bruge fdisk -l, som viser hvilke partitions en
usbdisk har, men det skifter afhængig af rækkefølgen devices
bliver detekteret i.
Har man f.eks. to diske vil devicenavne blive /dev/sda og
/dev/sdb, men det er ikke entydigt hvilken disk der er sda
og hvilken der er sdb.
Det problem klares med udev.
Programmet udevinfo lister informationer om et device. Ved
at sammenligne informationer fra flere devices kan man finde
en information, der er unik for et givet device. Den
information kan så bruges i en udev-rule, som udev kan bruge
til at oprette et link til en aktuel partition.
Det er beskrevet i:
Writing udev rules
http://reactivated.net/writing_udev_rules.html
Jeg har en intern SCSI-disk, en ekstern USB-disk og en
kortlæser i multifunktions printer
SCSI-diske og USB-diske får devicenavne sda, sdb, sdc osv.
I Mandriva 2007 indgår alle disse disktyper i puljen til
tildeling af device-navne, således at heller ikke den
interne SCSI-disk altid får samme navn.
Det problem klarer udev.
I filen /etc/udev/rules.d/00.rules har jeg reglerne:
BUS=="scsi",ATTRS{vendor}=="QUANTUM",
KERNEL=="sd?1",NAME="%k",SYMLINK+="scsidisk"
BUS=="scsi",ATTRS{vendor}=="ST380011",ATTR{start}=="63",
KERNEL=="sd?1",NAME="%k",SYMLINK+="usbext3"
BUS=="scsi",ATTRS{vendor}=="ST380011",ATTR{start}=="131668803",
NAME="%k",SYMLINK+="usbvfat"
og
BUS=="scsi",ATTRS{vendor}=="HP ",
KERNEL=="sd?1",NAME="%k",SYMLINK+="cfcard"
fdisk -l giver:
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 8196 65834338+ 83 Linux
/dev/sda2 8197 9729 12313822+ 5 Extended
/dev/sda5 8197 9729 12313791 b W95
FAT32
Disk /dev/sdb: 32 MB, 32112640 bytes
4 heads, 32 sectors/track, 490 cylinders
Units = cylinders of 128 * 512 = 65536 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 489 31280 4
FAT16 <32M
Disk /dev/sdc: 36.7 GB, 36778545152 bytes
255 heads, 63 sectors/track, 4471 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 * 1 4472 35913591 83 Linux
Der er en 38GB SCSI-disk, en 80GB USB-disk med en ext3
partition og en FAT32 partition samt en kortlæser med et
32MB CF-card.
Udev har defineret flg. symbolske links:
/dev/scsidisk -> sdc1
/dev/usbext3 -> sda1
/dev/usbvfat -> sda5
/dev/cfcard -> sdb1
I /etc/fstab har jeg
/dev/scsidisk /mnt/scsidisk ext3 user,noauto 0 0
/dev/usbext3 /mnt/usbext3 ext3 user,noauto 0 0
/dev/usbvfat /mnt/usbvfat vfat user,noauto 0 0
/dev/cfcard /mnt/cfcard vfat user,noauto 0 0
Der er ikke automount, men flg. mount-kommandoer skal bruges:
mount /mnt/scsidisk
mount /mnt/usbext3
mount /mnt/usbvfat
mount /mnt/cfcard
--
Med venlig hilsen
Jørgen Heesche
mailto:heesche@xxxxxxxxxxx
Follow ups
References