Linux e seu /dev/ [1]

Bom pessoal. Muita gente que começa a ver o terminal com outros olhos,desejam ter um controle total do hardware.suas funções e de sua administração. Algumas distribuições linux (Ubuntu,Kurumin) tratam por elas mesmas  todos os dispositivos plugados,tornando assim a vida do usuario final facil. Porem outras distribuições não o fazem(Slackware,ArchLinux). É crucial para ter controle do sistema,conhecer como trabalhar com ele. Para começarmos a aprender sobre isso,vamos iniciar com algo basico,montar um pendrive. Todo e qualquer dispositivo plugado ao computador,recebe um arquivo,chamado de device node,que fica no diretório /dev/. O primeiro passo é saber o que é o comando dmesg. O comando dmesg mostra todas as mensagems do kernel disponiveis dês de o momento do boot. Com ele podemos facilmente reconhecer quando um dispositivo é plugado. Como ele mostra muitas mensagens,e filtraremos em um curto espaço de tempo,podemos pegar as ultimas linhas do comando. Como fazer isso? O uso do comando tail,que pega da ultima,até x linhas de um texto,e o pipe,usado para redirecionar a saida de texto. Basicamente nosso comando vai ficar assim: dmesg|tail. O tail mostra 10 linhas por padrão,vamos aumentar para 20. dmesg|tail -n 20.

No tutorial,veja como está agora o meu dmesg.

[angelo@mlinux ~]$ dmesg|tail -n 20
[20839.283386] EXT4-fs (sda2): re-mounted. Opts: commit=0
[20839.287232] EXT4-fs (sda1): re-mounted. Opts: commit=0
[20839.672585] EXT4-fs (sda2): re-mounted. Opts: commit=0
[20839.705542] EXT4-fs (sda1): re-mounted. Opts: commit=0
[20839.751833] NMI watchdog enabled, takes one hw-pmu counter.
[20839.751979] NMI watchdog enabled, takes one hw-pmu counter.
[20839.752235] NMI watchdog enabled, takes one hw-pmu counter.
[20839.752318] NMI watchdog enabled, takes one hw-pmu counter.
[20839.891575] ehci_hcd 0000:00:1a.0: BAR 0: set to [mem 0x98405c00-0x98405fff] (PCI address [0x98405c00-0x98405fff])
[20839.891609] ehci_hcd 0000:00:1a.0: restoring config space at offset 0xf (was 0x100, writing 0x105)
[20839.891648] ehci_hcd 0000:00:1a.0: restoring config space at offset 0x1 (was 0x2900000, writing 0x2900002)
[20839.891740] ehci_hcd 0000:00:1a.0: PME# disabled
[20839.891752] ehci_hcd 0000:00:1a.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[20839.891759] ehci_hcd 0000:00:1a.0: setting latency timer to 64
[20840.044702] ehci_hcd 0000:00:1d.0: BAR 0: set to [mem 0x98405800-0x98405bff] (PCI address [0x98405800-0x98405bff])
[20840.044734] ehci_hcd 0000:00:1d.0: restoring config space at offset 0xf (was 0x100, writing 0x105)
[20840.044771] ehci_hcd 0000:00:1d.0: restoring config space at offset 0x1 (was 0x2900000, writing 0x2900002)
[20840.044869] ehci_hcd 0000:00:1d.0: PME# disabled
[20840.044881] ehci_hcd 0000:00:1d.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[20840.044888] ehci_hcd 0000:00:1d.0: setting latency timer to 64\
[angelo@mlinux ~]$

Vemos que as ultimas mensagems ANTES de plugar o dispositivo são sobre o module USB. Mensagems relativamente antigas. Agora ao plugar o dispositivo:

[angelo@mlinux ~]$ dmesg|tail -n 20
[20840.044771] ehci_hcd 0000:00:1d.0: restoring config space at offset 0x1 (was 0x2900000, writing 0x2900002)
[20840.044869] ehci_hcd 0000:00:1d.0: PME# disabled
[20840.044881] ehci_hcd 0000:00:1d.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[20840.044888] ehci_hcd 0000:00:1d.0: setting latency timer to 64
[21276.981574] usb 2-1.1: new high speed USB device number 4 using ehci_hcd
[21277.257160] usbcore: registered new interface driver uas
[21277.270673] Initializing USB Mass Storage driver...
[21277.270876] scsi5 : usb-storage 2-1.1:1.0
[21277.271231] usbcore: registered new interface driver usb-storage
[21277.271234] USB Mass Storage support registered.
[21278.300377] scsi 5:0:0:0: Direct-Access     Kingston DataTraveler 2.0 PMAP PQ: 0 ANSI: 0 CCS
[21278.300828] sd 5:0:0:0: Attached scsi generic sg2 type 0
[21280.465981] sd 5:0:0:0: [sdb] 3905536 512-byte logical blocks: (1.99 GB/1.86 GiB)
[21280.466553] sd 5:0:0:0: [sdb] Write Protect is off
[21280.466563] sd 5:0:0:0: [sdb] Mode Sense: 23 00 00 00
[21280.466569] sd 5:0:0:0: [sdb] Assuming drive cache: write through
[21280.470053] sd 5:0:0:0: [sdb] Assuming drive cache: write through
[21280.511544]  sdb: sdb1
[21280.513203] sd 5:0:0:0: [sdb] Assuming drive cache: write through
[21280.513211] sd 5:0:0:0: [sdb] Attached SCSI removable disk
[angelo@mlinux ~]$

Percebe-se varias novas informações sobre o dispositivo:

usb 2-1.1: new high speed USB device number 4 using ehci_hcd

Um novo dispositivo USB foi encontrado.

[21277.270876] scsi5 : usb-storage 2-1.1:1.0

Tipo armazenamento USB detectado

[21278.300377] scsi 5:0:0:0: Direct-Access     Kingston DataTraveler 2.0 PMAP PQ: 0 ANSI: 0 CCS

Marca e Modelo do produto detectados

[21280.465981] sd 5:0:0:0: [sdb] 3905536 512-byte logical blocks: (1.99 GB/1.86 GiB)

Aqui, dados cruciais. Detectado o tamanho do dispositivo e
seu device-node (sdb). Você já pode encontra-lo no diretório /dev/. Porem,esse é todo o dispositivo,você não pode acessalo diretamente,ele tem que ter uma partição,que é definida aqui:

[21280.511544]  sdb: sdb1

/dev/sdb1 é a partição. Para monta-lá em qualquer diretório (nesse caso, /mnt/):

mount /dev/sdb1 /mnt/

Já podemos ver os arquivos:

[angelo@mlinux ~]$ ls /mnt/
ABBA  Bee Gees  Mega Dance 1  Pink Floyd  Van Halen  Various Artists
[angelo@mlinux ~]$

Para desmontar:

umount /dev/sdb1

[angelo@mlinux ~]$ ls /mnt/
[angelo@mlinux ~]$

Advertisements

About barklome

This is angelox's (or barklome) personal blog. Talking about Embedded Linux things,Free Software Things,and tutorials about how-to-use free software.
This entry was posted in Portuguese. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s