Continuando a cumprir as promessas de sexta-feira, vamos agora aos detalhes da configuração do Sony Ericsson W200 no OpenBSD.
Comentando o telefone, primeiramente, estou bastante satisfeito até o momento: por cerca de R$150 (pelo menos foi quanto eu paguei nele), você leva um telefone com uma interface de usuário consistente, bons recursos para registro de contatos e eventos e um MP3 player bastante aceitável. O cartão de memória de 256M que o acompanha é suficiente para algumas poucas músicas, mas o upgrade para o de 1G pode se tornar necessário, talvez até antes do que eu estivesse esperando.
Downsides, há vários: a câmera VGA, como era de se esperar, é inútil, porém esforçada. Há alguma latência entre um menu e outro, deixando a navegação um pouco lenta. Além disso, quando conectado à USB, o telefone pára de receber chamadas, ficando em modo ‘file-transfer’ apenas, o que é ruim. No Sony Ericsson W800i, por exemplo, isso não acontecia. Mas, por esse preço, não tinha como esperar muito mais que isso, não é?
Vamos à configuração. Ao conectar o telefone à USB (e esperar cerca de vinte a trinta segundos), o dmesg (OpenBSD 4.4 -current GENERIC.MP #34) nos apresenta o telefone:
umodem0 at uhub2 port 3 configuration 1 interface 1 "Sony Ericsson Sony Ericsson W200" rev 2.00/0.00 addr 2
umodem0: data interface 2, has CM over data, has break
umodem0: status change notification available
ucom0 at umodem0
umodem1 at uhub2 port 3 configuration 1 interface 3 "Sony Ericsson Sony Ericsson W200" rev 2.00/0.00 addr 2
umodem1: data interface 4, has CM over data, has break
umodem1: status change notification available
ucom1 at umodem1
ucom0 detached
umodem0 detached
ucom1 detached
umodem1 detached
umass0 at uhub2 port 3 configuration 1 interface 0 "Sony Ericsson Sony Ericsson W200" rev 2.00/0.00 addr 2
umass0: using ATAPI over Bulk-Only
scsibus1 at umass0: 2 targets, initiator 0
sd0 at scsibus1 targ 1 lun 0: <SEMC, Int.Memory, 0000> ATAPI 0/direct removable
sd0: drive offline
umass1 at uhub2 port 3 configuration 1 interface 1 "Sony Ericsson Sony Ericsson W200" rev 2.00/0.00 addr 2
umass1: using ATAPI over Bulk-Only
scsibus2 at umass1: 2 targets, initiator 0
sd1 at scsibus2 targ 1 lun 0: <SEMC, Mem-Stick, 0000> ATAPI 0/direct removable
sd1: drive offline
Tudo OK até aí. Temos dois dispositivos ucom(4) via umodem(4), dando suporte a modem USB, e dois dispositivos sd(4) via umass(4), que corresponde a um USB Mass storage device.
Observe que há dois dispositivos sd(4): sd0 e sd1. Depois de montá-los ambos, percebi que o primeiro corresponde à memória interna do aparelho, e o segundo ao memory stick do mesmo. Podemos intuir isso através do output do df para o sd0 (atente para o Size 27.3M):
# mount /dev/sd0i /w200i/
# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/wd0a 1008M 40.7M 917M 4% /
/dev/wd0d 1008M 10.0K 958M 0% /tmp
/dev/wd0e 6.9G 1.1G 5.5G 16% /usr
/dev/wd0f 9.5G 6.1G 2.9G 68% /var
/dev/wd0k 73.3G 18.2G 51.4G 26% /mnt
/dev/sd0i 27.3M 15.0K 27.2M 0% /w200i
E sd1 (agora, Size 228M):
# mount /dev/sd1i /w200i/
# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/wd0a 1008M 40.7M 917M 4% /
/dev/wd0d 1008M 10.0K 958M 0% /tmp
/dev/wd0e 6.9G 1.1G 5.5G 16% /usr
/dev/wd0f 9.5G 6.1G 2.9G 68% /var
/dev/wd0k 73.3G 18.2G 51.4G 26% /mnt
/dev/sd1i 228M 112M 116M 49% /w200i
Relembrando para quem esqueceu: a montagem foi feita a partir da partição i (sd0i, sd1i) devido ao output do disklabel(8) para os dispositivos. A partição c corresponde ao dispositivo todo (assim como em HDs IDE ou SATA convencionais), e não deve ser montada. Já a partição i corresponde aos dados propriamente ditos. Veja o output do disklabel(8) para o sd0, para tirar a dúvida:
# disklabel sd0
disklabel: warning, DOS partition table with no valid OpenBSD partition
# /dev/rsd0c:
type: SCSI
disk: SCSI disk
label: SEMC Int.Memory
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 3
total sectors: 55994
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0
16 partitions:
# size offset fstype [fsize bsize cpg]
c: 55994 0 unused 0 0
i: 55973 1 MSDOS
Beleza, vamos continuar. Coloquei uma entrada no /etc/fstab para facilitar o trabalho de montagem a cada vez que o dispositivo é plugado, montando a partição de dados do memory stick em /w200i:
/dev/sd1i /w200i msdos rw,noauto 0 0
Vamos montar e ver o que tem lá dentro, então:
# mount /w200i/
# ls /w200i/
dcim memstick.ind mp3 mssemc mstk_pro.ind
Sem problemas! Ao que parece, a pasta mp3 é utilizada para guardar as músicas do mp3 player (óbvio, não?), e a pasta dcim, as fotos da câmera VGA do celular. Para adicionar arquivos, basta copiar, mover e remover normalmente como qualquer outro sistema de arquivos montado. Eu já coloquei algumas músicas, como os senhores podem ver:
# ls -R /w200i/mp3/
katyperr seuro193
/w200i/mp3/katyperr:
fingerpr.mp3 ifyoucan.mp3 imstillb.mp3 mannequi.mp3 selfinfl.mp3 ursogay.mp3
hotncold.mp3 ikisseda.mp3 lost.mp3 oneofthe.mp3 thinking.mp3 wakingup.mp3
/w200i/mp3/seuro193:
baddesir.mp3 hungup.mp3 neverend.mp3 smegamix.mp3 tryme.mp3
doctorlo.mp3 ikeike.mp3 numberon.mp3 spaceboy.mp3 videokil.mp3
hotvampi.mp3 lookabom.mp3 saveapra.mp3 tooyoung.mp3
Algumas dicas finais: o telefone lê as ID3 tags dos arquivos MP3, portanto é uma boa idéia deixá-las certinhas antes de copiar para o memory stick, assim os nomes aparecerão corretamente no MP3 player do celular. Um programa bem simples para cumprir essa tarefa, e disponível nos packages do OpenBSD, é o id3ed:
# pkg_info | grep id3ed
id3ed-1.10.4 interactive console id3 tag editor
Outra dica: algumas vezes, arquivos MP3 possuem uma qualidade excessivamente alta, o que acarreta muito espaço ocupado no filesystem. Muito embora isso normalmente não seja um problema em desktops, no caso de celulares passa a ser uma variável importante. Para compactar os arquivos e economizar preciosos megabytes, o LAME pode se mostrar uma ferramente valiosa, e também está disponível nos packages do OpenBSD. Ele possui muitos parâmetros de configuração, consulte lame(1) para a lista completa.
# pkg_info | grep lame
lame-3.98.2 lame ain't an MP3 encoder
Cheers!