Há várias formas de se monitorar uma conexão Bluetooth, no Linux.
Normalmente, você obtém todo o feedback gráfico necessário durante as transferências de conteúdo.
Mas… e quando a transferência é de áudio ou se trata de uma conexão de rede?
Como obter informações sobre o fluxo de dados nestes casos?
Já demonstramos o uso dos utilitários de linha de comando hciconfig e hciutils, no artigo sobre como determinar a versão do Bluetooth de seus dispositivos. Recomendo esta leitura, caso você queira saber mais sobre este assunto.
O padrão de comunicação de dados Bluetooth foi lançado pela empresa sueca Ericsson, em 1994. Mas já vinha sendo desenvolvido desde 1989.
O utilitário hciconfig pode ser usado para obter várias informações sobre o dispositivo interno do seu notebook.
Use a opção ‘-a’, para obter alguns dados preliminares sobre ele:
hciconfig -a
A informação que nos interessa, aqui, é que se encontra na 4a e 5a linhas — taxas de recepção e transmissão (RX/TX):
O comando watch é muito usado para fazer monitoramento no Linux de arquivos ou de resultados de comandos.
No exemplo, abaixo, vamos monitorar a saída do hciconfig e exibir apenas as linhas que contenham dados que sofram alterações (a cada 2 segundos):
Os exemplos, acima, mostram o monitoramento do fluxo de audio Bluetooth.
Você pode fazer a mesma coisa para monitorar uma conexão à Internet via Bluetooth, também.
Dispositivos Bluetooth são muito comuns em notebooks e são extremamente úteis para a comunicação de dados — troca de arquivos, conexão à Internet etc.
No entanto, a tecnologia tem tido várias versões, desde o início de seu desenvolvimento (no fim da década de 80).
Cada nova versão tem incorporado novos recursos — para transmissão/recepção de dados e correção de problemas.
Saber qual a versão do Bluetooth suportada pelo dispositivo instalado no seu notebook ou desktop PC é importante para saber exatamente quais as suas capacidades — ou seja, saber o que verdadeiramente pode ser feito com ele.
Use o hciconfig para obter informações sobre os dispositivos bluetooth presentes no seu sistema
O hciconfig é uma ferramenta de configuração de dispositivos Bluetooth.
Você pode usá-lo para se referir especificamente a um dispositivo, usando o termo ‘hciX’. Caso esta referência não seja suprida, o utilitário irá buscar e exibir informações sobre todos os dispositivos que forem encontrados.
Ao usar o hciconfig sem qualquer parâmetro ou opção, ele retornará informações básicas sobre os diapositivos locais.
O prefixo HCI são as iniciais para Host Controller Interface ou interface de controle do hospedeiro.
E LMP corresponde a Link Management Protocol ou protocolo de gestão de link — usado para controlar a conexão de rádio entre os dispositivos envolvidos.
Como obter informações sobre dispositivos Bluetooth conectados
Se você tem dispositivos conectados de versões diferentes, os recursos disponíveis serão reduzidos aos da versão mais antiga.
Por este motivo, pode ser mais interessante saber qual é a versão do dispositivo ao qual o meu notebook está conectado.
Use o utilitário hcitool, para obter informações sobre os aparelhos conectados via Bluetooth ao seu notebook:
hcitool con
O comando acima vai mostrar informações, tais como o endereço MAC do dispositivo Bluetooth pareado ao notebook. Veja:
De posse do endereço de hardware, acima, já posso inquirir o dispositivo diretamente. Veja como:
hcitool info 5C:51:88:EB:9F:B1
Requesting information ...
BD Address: 5C:51:88:EB:9F:B1
OUI Company: Motorola Mobility LLC, a Lenovo Company (5C-51-88)
Device Name: Wintermute
LMP Version: 4.1 (0x7) LMP Subversion: 0x7d3
Manufacturer: Qualcomm (29)
...
Por exemplo, se o notebook usa um dispositivo Bluetooth 4.2 e se conecta ao smartphone com a versão 4.1, é seguro contar apenas com os recursos disponíveis na versão deste último.
Há vários outros comandos no Linux, que podem ajudar a obter informações importantes sobre o seu sistema. Para saber mais, leia Como obter informações sobre o seu sistema.
Quando você precisa relatar algum problema, para conseguir ajuda, pode ser necessário inquirir o seu sistema para saber exatamente qual o modelo de dispositivo em uso.
Você pode obter informações detalhadas sobre a sua placa de vídeo, seja ela dedicada, separada ou integrada ao restante do hardware, com os comandos lspci e lshw.
Se quiser entender melhor o funcionamento do lshw, leia este artigo.
Ambos podem ser usados para obter informações sobre diversos aspectos do seu hardware. Neste post, vou me concentrar em obter dados apenas do hardware de vídeo.
O comando grep, neste caso, é essencial para filtrar as informações obtidas e exibir apenas o que interessa. Se tiver dúvidas, leia mais sobre ele aqui.
Como obter informações sobre a placa de vídeo com o comando lspci
O comando é um utilitário voltado para exibir informações sobre o os buses PCI presentes no sistema, bem como os dispositivos conectados a eles.
Com o uso de algumas opções, na linha de comando, é possível obter um saída mais resumida.
É possível também obter uma saída de informações mais verbosa — voltada para hackers mais experientes.
Alguns dados do hardware podem estar disponíveis apenas para usuários com privilégios administrativos — nestes casos, use o comando su ou sudo.
Nos exemplos dados, neste artigo, os comandos são executados pelo superusuário.
Você pode usar o comando lspci, acompanhado das opções ‘-v’, ‘-vv’ ou ‘-vvv’ para obter um resultado cada vez mais abundante de informações. A primeira opção ativa a verbosidade, a segunda aumenta e a última ativa o nível máximo de informações.
Veja um exemplo:
lspci -v | grep -A 20 -i display
04:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Topaz XT [Radeon R7 M260/M265] [1002:6900]
Subsystem: Dell Device [1028:0643]
Physical Slot: 4
Flags: fast devsel, IRQ 7
Memory at b0000000 (64-bit, prefetchable) [disabled] [size=256M]
Memory at c0000000 (64-bit, prefetchable) [disabled] [size=2M]
I/O ports at 3000 [disabled] [size=256]
Memory at c2000000 (32-bit, non-prefetchable) [disabled] [size=256K]
Expansion ROM at c2040000 [disabled] [size=128K]
Capabilities: [48] Vendor Specific Information: Len=08 <?>
Capabilities: [50] Power Management version 3
Capabilities: [58] Express Legacy Endpoint, MSI 00
Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
Capabilities: [150] Advanced Error Reporting
Capabilities: [270] #19
Capabilities: [2b0] Address Translation Service (ATS)
Capabilities: [2c0] #13
Capabilities: [2d0] #1b
Use um número maior para a opção ‘-A’, caso desconfie que haja mais algumas linhas de informações sobre o dispositivo.
As primeiras linhas costumam ser mais do que suficiente para informar o modelo exato de placa de vídeo em uso no sistema.
Como obter informações da placa de vídeo com o comando lshw
Como ele demora um pouco para pesquisar o hardware, costumo guardar suas informações em um arquivo texto, que posso ler sem a necessidade de “invocar superpoderes” e com mais rapidez:
sudo lshw > lshw.log
Para obter informações exclusivamente sobre a classe display, use o comando assim:
De posse deste resultado, é possível procurar informações sobre a sua placa gráfica no Google ou em fóruns específicos usando os nomes nos campos product e vendor.
No caso de uma placa de vídeo integrada à placa-mãe, você provavelmente só irá conseguir obter informações úteis se informar o modelo da placa-mãe.
Alguns fabricantes não disponibilizam informações ou manuais sobre a placa de vídeo, em separado, nestes casos.
O comando, a seguir, oferece os dados referentes à placa mãe ou motherboard:
lshw -class bus
Busca do google por nome do dispositivo
Como obter informações da placa de vídeo com o comando dmidecode
O dmidecode pode parecer redundante, depois de falarmos do lshw — uma vez que este último também pesquisa na tabela DMI.
A saída é dada em formatos diferentes, contudo. Vale a pena abordar este comando também.
Veja como obter dados da placa — útil, quando a placa de vídeo é integrada:
dmidecode -t baseboard | grep -B 2 -i product
Base Board Information
Manufacturer: Dell Inc.
Product Name: 0YDTG3
Ou use a opção que segue para obter informações mais detalhadas da placa mãe:
dmidecode --type 2
# dmidecode 2.12
SMBIOS 2.7 present.
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: Dell Inc.
Product Name: 0YDTG3
Version: A02
Serial Number: .SF5WERT3.GR9983062FS132.
Asset Tag: Not Specified
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Type2 - Board Chassis Location
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
Dispositivos on board podem ser exibidos com a seguinte opção:
dmidecode --type 10
Sua lista pode ser maior do que a minha:
# dmidecode 2.12
SMBIOS 2.7 present.
Handle 0x0018, DMI type 10, 6 bytes
On Board Device Information
Type: Video
Status: Disabled
Description: Intel Video Graphics Controller
Use a opção ‘–type 41’, para obter uma relação maior.
Há inúmeras ferramentas, no Linux, disponíveis para os usuários obterem informações sobre as conexões USB presentes no seu sistema.
Neste post, vou falar de algumas, que podem ser úteis para conseguir informações sobre dispositivos conectados a uma destas portas.
O utilitário usb-devices pode ser usado para exibir na tela do terminal detalhes, com bastante informações, sobre BUSes USB no seu sistema, mesmo que não haja algo conectado.
Se houver, contudo, ele irá mostrar informações sobre o device conectado.
O usb-devices é um shell script (bash) desenvolvido para exibir informações e detalhes dos “buses” USB presentes no sistema, bem como, dos dispositivos anexados
A saída do script é similar ao conteúdo do arquivo de sistema usb/devices que, usualmente, fica sob o diretório /proc/bus:
Outro arquivo do sistema, relacionado às informações de dispositivos ou sistemas de arquivos USB (caso estejam montados) é o /sys/kernel/debug/usb/devices. Este, contudo, nem sempre está disponível para usuários sem privilégios administrativos:
O script usb-devices não requer privilégios administrativos para retornar informações úteis sobre os dispositivos USB conectados ao seu hardware.
Como limitação, o script só lista as interfaces ativas — aquelas marcadas com um ‘*’ no arquivo /sys/kernel/debug/usb/devices:
Os métodos listados acima, podem trazer informações detalhadas voltadas para desenvolvedores.
O utilitários lsusb é mais útil para quem deseja um conjunto de informações mais sucinto:
lsusb
Bus 002 Device 003: ID 413c:2501 Dell Computer Corp.
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 04f2:b1d8 Chicony Electronics Co., Ltd
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Para obter uma relação mais detalhada, use a opção ‘–verbose’:
lsusb --verbose | less
Se for executado com privilégios administrativos, o lsusb poderá exibir mais informações.
Como sempre, use o comando grep para filtrar os dados de acordo com suas necessidades:
sudo lsusb --verbose | grep -i bcdusb
O comando acima, irá exibir as versões USB disponíveis no seu sistema.
Veja o que obtive no meu computador de testes (ele é velhinho…):
Como obter informações sobre dispositivos USB em ambiente gráfico
Quem prefere o ambiente gráfico, pode instalar o usbview:
sudo apt install usbview
Este aplicativo irá retornar um conjunto de informações mais extenso, se for executado com privilégios administrativos:
sudo usbview
O utilitário usbview exibe as informações obtidas de /sys/kernel/debug/usb/devices — por isto, requer ser executado como super usuário.
Conheça o usbhid-dump
O utilitário usbhid-dump lança o stream de dados vindos de dispositivos USB.
O padrão é monitorar o fluxo de todos os dispositivos.
Mas você pode restringir a um só.
No exemplo que segue, o utilitário irá exibir o fluxo vindo do teclado USB (se você tiver um).
Tenha cuidado: você vai perder o controle do teclado USB, ao executar este comando:
sudo usbhid-dump -es
Para interromper o aplicativo, tecle ‘Ctrl + C’ no teclado nativo do seu notebook.
O que este programa faz é desconectar os drivers do kernel, relacionados ao(s) dispositivo(s) em questão — assim, nenhum outro programa vai conseguir captar as entradas a partir daquele(s) dispositivo(s).
Se você não conseguir interromper a desconexão, com ‘Ctrl + C’, basta aguardar o tempo padrão de 60 segundos, para recuperar o controle sobre seu dispositivo USB.
Leia mais em Como obter mais informações sobre as portas USB no Linux.
Mesmo um computador usado, jogado no canto da casa, pode estar escondendo uma placa de som de boa qualidade.
Recentemente, descobri algumas coisas bem interessantes no meu notebook Samsung Series 5 Ultra, brincando com a placa — com o objetivo de ver o que dava para extrair dela.
A surpresa foi agradável.
Vamos o que você tem por aí?
Abra um terminal e me acompanhe.
Como descobrir a capacidade do seu hardware de som
Há várias formas de obter informações sobre o hardware de uma máquina no Linux. Neste caso, uma das mais simples é usar o comando aplay.
Com ele é possível ver a relação de dispositivos de som e os recursos disponíveis no seu sistema.
Veja como:
aplay -L
Esta é a minha lista resumida:
default
Playback/recording through the PulseAudio sound server
null
Discard all samples (playback) or generate zero samples (capture)
pulse
PulseAudio Sound Server
sysdefault:CARD=PCH
HDA Intel PCH, ALC269VC Analog
Default Audio Device
surround50:CARD=PCH,DEV=0
HDA Intel PCH, ALC269VC Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
HDA Intel PCH, ALC269VC Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
HDA Intel PCH, ALC269VC Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
...
Como você pode ver, o sistema do exemplo acima pode reproduzir até em 7.1 surround.
Claro que isto não é possível a partir das caixas de som do próprio notebook — não vamos nos iludir 😉
Para usufruir de todo este desempenho da placa de áudio é necessário ligar o notebook a um receiver 7.1 via HDMI.
Ou seja, você precisa ter um equipamento de home theater para se conectar a ele.
Como testar o sistema de som no Linux
No painel de configurações de qualquer distribuição, é possível abrir a sessão de configuração do som e iniciar um teste.
Mas você pode fazer isto no terminal também. Veja:
speaker-test -c 6 -l 1
Este comando testa os 6 canais de som (5.1) presentes no seu sistema. Você pode testar menos ou mais canais, basta alterar o valor de ‘-c 6’.
Playback device is default
Stream parameters are 48000Hz, S16_LE, 6 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 32 to 349525
Period size range from 10 to 116509
Using max buffer size 349524
Periods = 4
was set period_size = 87381
was set buffer_size = 349524
0 - Front Left
4 - Center
1 - Front Right
3 - Rear Right
2 - Rear Left
5 - LFE
Time per period = 11,028587
O último item ‘LFE’ se refere ao subwoofer, caso você tenha um presente no sistema.
Se prefir ouvir voz humana durante o teste, experimente usar o parâmetro ‘-t’:
speaker-test -c 6 -l 1 -t wav
Por fim, faça a experiência com seus fones de ouvido. O fone padrão do Motorola Moto G 3 consegue simular razoavelmente o som surround.