Problemas com o Bluetooth

Atualizei o kernel da caninos ( sei que foi atualizado porque comandos adicionados na atualização estão funcionando perfeitamente) no entanto o bluetooth ainda não continua funcionando, tentei alguns tutoriais mas foi sem sucesso e por isso resolvi criar esse post.
O problema do bluetooth foi quebrado em sub problemas que tive na qual estarei citando aqui:

É importante deixar registrado antes que comandos como " systemctl status bluetooth " e " sudo /etc/init.d/bluetooth start " informam que o bluetooth está ativo.

  • bluetoothctl diz No default controller available para qualquer comando que eu tente.

  • Sudo rfkill list para tentar dar um unblock no bluetooth diz “cannot open /dev/rfkill: No such file or directory” mesmo baixado pelo sudo apt-get install.

  • hcitool scan informa “Device is not available: No such device”.

@ruschigo

@StarLord , pelo que você citou, apenas atualizou o kernel correto?

Levando isso em consideração o bluetooth do chip Rtl8723bs é um pouco complicado de ser ativado, pois utiliza um software próprio, que é responsável por fazer o download do firmware para o chip entre muitas outras coisas.

você citou que seguiu alguns tutoriais, seguiu esse tutorial?Instalando o Bluetooth sem alterar o sistema .

No tutorial acima que ficou subdividido, poderia por favor seguir ele e colocar os resultados aqui? assim terei mais informações para lhe ajudar.

Dica: O bluetooth é realmente cansativo para ser ativo, caso não seja muito penoso para você recomendo utilizar a imagem que disponibilizamos e reinstalar o sistema inteiro. Por que aí já deixei um script junto ao sistema que faz todo o processo de inicialização do bluetooth, além claro dos softwares e firmware do mesmo.

Esse tutorial que você me passou é pra seguir à risca? Porque algumas pastas que o tutorial segue não existem na minha caninos (por exemplo, cd /src/mchp/). Com relação a instalação da imagem, você diz esse tutorial aqui?: https://wiki.caninosloucos.org.br/index.php/Labrador/Configurações/Kernel/ e qual seria a imagem que possui esse script, pois eu tinha baixado a [Kernel4_v0.10.img.7z].
Agradeço o esclarecimento.

@StarLord, boa tarde!

o caminho /src/ quer dizer o source(fonte), ou seja, é o caminho onde você tem os arquivos que quer alterar.

No caso especifico deste tutorial, dito no item 2.3 de https://wiki.caninosloucos.org.br/index.php/Labrador/Configura%C3%A7%C3%B5es/Bluetooth
“Faça o download para o diretório /…qualquer diretório…/src/mchp/”, ou seja, crie um diretório /src/mchp em qualquer lugar, se vc baixou, por exemplo, diretamente na labrador, poderia criar uma pasta chamada src em /home/caninos/Downloads/ e dentro dela criar outra mchp, onde você faria o download do firmware da Microchip.

Talvez no item 2.4, no comando;
“$cd /src/mchp/”
deveria ser um pouco mais detalhado, pois de fato este comando não irá funcionar, no caso seria
“$cd /local onde criou a pasta src/src/mchp”

Seguindo o tutorial que você citou, ele apenas troca o Kernel do sistema, desta forma o script não estará junto. O tutorial de troca do sistema é este aqui, a imagem que você citou é a correta e você pode baixar ela dentro do diretório kernel_4_image deste link http://downloads.caninosloucos.org.br/

Desta forma não precisará fazer mais nada, uma vez que iniciar a Labrador, o script que deverá então estar em /etc/init.d/wifi_bt_start.sh, será automaticamente chamado na inicialização do sistema e o bluetooth deve ser iniciado.

Caso você decida seguir o tutorial de troca de kernel mais o de instalação do Bluetooth e não a de instalação do sistema, vou ver como disponibilizo o script para você, mas pode me mandar um email em igor.lima@lsitec.org.br que te envio por ele junto a um readme para executar o script.

Att,

Igor Ruschi

Esse script não se encontra na minha caninos mesmo eu tendo feito o tutorial da troca do sistema duas vezes (porque a caninos não informa se foi atualizado ou não, então eu quis ter uma garantia), isso quer dizer que o sistema não foi atualizado?

O problema me parece é que o bluetooth está ativado como mostra a foto em anexo, no entanto os outros aparelhos não conseguem detectá-lo e ao mesmo tempo eu não consigo configurar utilizando o bluetoothctl ou blueman.

@StarLord, bem se o arquivo wif_bt_start.sh não se encontra no diretório /etc/init.d então com certeza sua labrador não me parece atualizada.

Na verdade ela indica sim, porem é necessário um conversor SERIAL-USB(TTL), acho que sua baseboard deve ser a v1.0a correto?

Se for, no lado onde a core-board fica encaixada, próximo ao botão ADFU você encontrará a serial da labrador, a disposição da serial é mostrada próximo ao escrito LSITEC;

    GND | GND
   ADC0 | RX
ADC_COM | TX

com isso conecte o gnd do seu ttl com o pino gnd da labrador, depois conecte o RX do ttl no TX da labrador e o TX do ttl no RX da labrador, no se pc use algum programa como TeamTerra, Screen, ou PUTTY para realizar a leitura, configure a velocidade destes programas para 115200 ( e tenha certeza sobre a USB com a qual se conectou), com isso quando realizar o procedimento de troca de sistema verá o progresso em porcentagem da atualização do sistema, algo como 0%… 1%… 100%

quando chegar em 100 %, desligue a labrador, remova o cartão e quando ligar tudo deverá estar ok.

Obs: isso quando estiver em processo de instalação, quando estiver rodando normal deverá mostrar os Logs do sistema pela serial…
Abaixo alguns testes que você pode realizar, para ter certeza se está tudo ok, antes de instalar o sistema, ou mesmo sem um TTL…

pegue a imagem que baixou, instale ela em um cartão SD, utilize algum software pare realizar essa instalação…
@thalyson, qual software você utiliza para passar a imagem para o cartão usualmente?

para testar e saber se está tudo ok, você pode inserir este cartão na labrador, desligue a labrador da fonte, ligue novamente já com o cartão inserido, desta forma o sistema buscará automaticamente fazer boot pelo sistema contido no cartão.

use o comando;

$ lsblk

Ele listará todas as unidades do sistema, poste o resultado aqui…

deverá aparecer algo como;

mmcblk0 …
-mmcblk0p0 …
-mmcblk0p2 …
mmcblk2 …
-mmcblk2p0 …
-mmcblk2p2 …

Se tudo estiver correto neste sistema, o bluetooth já deve iniciar automaticamente, e você também pode procurar o arquivo wifi_bt_start.sh em /etc/init.d que deverá estar lá.

Isso indicará que a imagem está correta para a instalação na sua placa, daí basta realizar o processo de troca do sistema, mantenha o cartão na placa, desligue a placa, mantenha pressionado o botão na core-board, ligue a labrador novamente, espere uns 2 segundos e solte o botão na core-board, com isso o processo será iniciado de troca de sistema…

caso tenha algum problema, pode postar os resultado do ttl…

Bom dia,

Normalmente utilizo o Rufus para copiar o sistema para um cartão SD.

Tentarei novamente atualizar a caninos pois me parece ser mais simples do que pelo outro tutorial e estarei relatando o que eu fiz para fins de documentação:

Sim, está escrito Labrador Base-M v1.0a.
Estarei utilizando a CP2102 Serial RS232 para mostrar o progresso.
Baixei e descompactei a versão Kernel4_v0.10 pesando aproximadamente 7.6Gb
Como recomendado, utilizei o Rufus para baixar no SD ( segue em anexo).


Conectei o TTL com a caninos como indicado, no entanto ao utilizar o putty com a caninos ligada não apareceu nenhum logo no putty e sim uma tela preta
Coloquei o cartão desliguei e liguei a caninos logo após digitei o comando lsblk , o resultado:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 14.5G 0 disk
mmcblk0p1 179:1 0 32M 0 part
mmcblk0p2 179:2 0 7.3G 0 part
mmcblk2 179:256 0 14.6G 0 disk
mmcblk2p1 179:257 0 32M 0 part /media/caninos/BOOT
mmcblk2p2 179:258 0 7.3G 0 part /

Sem sucesso em mostrar o progresso utilizando o TTL e também de atualizar a caninos ( duas tentativas).

@StarLord, que bom que postou seus resultados, assim realmente pude constatar algumas coisas;

Sua labrador não montou a unidade do cartão SD automaticamente, o que é um comportamento inesperado, como vimos quando você executou o comando lsblk;

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 14.5G 0 disk
mmcblk0p1 179:1 0 32M 0 part
mmcblk0p2 179:2 0 7.3G 0 part
mmcblk2 179:256 0 14.6G 0 disk
mmcblk2p1 179:257 0 32M 0 part /media/caninos/BOOT
mmcblk2p2 179:258 0 7.3G 0 part /

mas observo que apesar de não ser montado, o cartão SD foi reconhecido, por favor execute o comando;

$uname -a

com isso saberemos mais sobre a versão do kernel que está na sua placa.

monte manualmente as unidades do cartão SD com os seguintes comandos;
Comando: mount /dispositivo para montar/ /local onde deve ser montado/
$mkdir /tmp/BOOT
$mkdir /tmp/SYS
$sudo mount /dev/mmcblk0p1 /tmp/BOOT
$sudo mount /dev/mmcblk0p2 /tmp/SYS

  • eu indiquei o caminho /tmp/BOOT e /tmp/SYS, mas caso tenha algum problema, crie 2 pastas em /home/caninos/Documents, com mkdir se necessário e passe estes diretórios que criou ao invés de usar os caminhos /tmp/…

  • caso tenha algum problema com esse passo, recomendo verificar se seu cartão SD, plugue ele em um computador, ele deverá montar automaticamente(mesmo no Windows) pelo menos a unidade ‘BOOT’…

Vamos verificar se a imagem montada é a correta, execute o comando;

$ls /tmp/SYS/etc/init.d/

Que listará todos os arquivos dentro de init.d, que deverá conter o script do wifi…

Rode também;

$ls /tmp/BOOT/

O resultado devem ser 3 arquivos,

  • uImage
  • uEnv.txt
  • kernel.dtb

Abra o arquivo uEnv.txt, e compare com o que está na sua placa em /media/caninos/BOOT/uEnv.txt, caso tenha alguma divergência entre ambos poste o conteúdo de ambos aqui explicitando cada arquivo e seu conteúdo.

Somente faça os passos a seguir se tudo correu bem até aqui, faça o seguinte;

Vamos trocar atualizar o kernel da sua placa, utilizando o kernel da imagem que montamos no passo anterior;

$sudo cp -r /tmp/SYS/lib/modules /lib/
$sudo cp /tmp/BOOT/uImage /media/caninos/BOOT/
$sudo cp /tmp/BOOT/kernel.dtb /media/caninos/BOOT/
$sudo reboot

  • caso ela não reinicie automaticamente retire a fonte e ligue novamente, significa que seu kernel ainda não tinha driver para o reboot, a partir deste momento com o kernel atualizado, o reboot deverá funcionar também…

Com isso ao menos o kernel da sua placa deve estar correto, utilize novamente o comando uname para verificar se o kernel está correto

$uname -a

com a placa reiniciada, rode novamente o comando lsblk e veja se todas as unidades desta vez foram montadas automaticamente;

$lsblk


Quanto ao CP2102 Serial RS232 ele deve funcionar normalmente, qual sistema operacional você está utilizando?
Eu utilizo o PUTTY no Debian 10 e nunca tive problemas; utilizo nestas configurações;

Faça um checagem se o RX da labrador está ligada no TX do Conversor, e se o TX da labrador está ligada no RX do conversor…

Att,

Igor Ruschi

Eu utilizei o comando e obtive como resposta:

Linux debian-armhf 4.14.13 #1 SMP PREEMPT Tue Aug 13 17:16:41 -03 2019 armv7l GNU/Linux

Com os 4 comandos de montagem não obtive nenhum problema.
com o comando ls /tmp/BOOt/ teve os 3 arquivos indicados mais uma pasta chamada System Volume Information, nela contêm dois arquivos chamados IndexerVolumeGuid e WPSettings.
A minha caninos está indicando duas BOOTs (BOOT e BOOT1), não sei se era pra está assim então estou relatando de qualquer forma, mas nessas duas boots o arquivo uEnv.txt são os mesmos e por isso estarei progredindo:

com o comando "sudo cp /tmp/BOOT/uImage /media/caninos/BOOT/ " obtive uma resposta inesperada da caninos:

cp: ‘/tmp/BOOT/uImage’ and ‘/media/caninos/BOOT/uImage’ are the same file

e “sudo cp /tmp/BOOT/kernel.dtb /media/caninos/BOOT/”

cp: ‘/tmp/BOOT/kernel.dtb’ and ‘/media/caninos/BOOT/kernel.dtb’ are the same file

Após reiniciar a caninos utilizando o comando reboot e colocando o comando uname-a obtive:

Linux debian-armhf 4.14.13 #1 SMP PREEMPT Mon Sep 30 15:08:38 -03 2019 armv7l GNU/Linux

Com o comando lsblk:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 14.5G 0 disk
├─mmcblk0p1 179:1 0 32M 0 part /media/caninos/BOOT1
└─mmcblk0p2 179:2 0 7.3G 0 part /media/caninos/SYSTEM
mmcblk2 179:256 0 14.6G 0 disk
├─mmcblk2p1 179:257 0 32M 0 part /media/caninos/BOOT
└─mmcblk2p2 179:258 0 7.3G 0 part /

Em relação ao Serial RS232, o problema era que precisava soldar os componentes que vieram, agora está funcionando perfeitamente.

Ao tentar atualizar a caninos, tive como resposta:
ttl

@StarLord, bem apesar da falha inesperada na troca dos arquivos kernel.dtb e uImage, ao menos agora me parece que as unidades do cartão SD foram montadas automaticamente.

Sobre as unidades BOOT1 e BOOT, isso está ok, como no cartão SD existe exatamente outro sistema, e o sistema monta automaticamente as unidades, como já existe uma unidade BOOT, ele monta a segunda como BOOT1.

Mas ainda há algo que acho estranho, pelo resultado do seu comando lsblk, a Labrador ainda está montando o sistema na memória interna primeiro mesmo com o cartão inserido. O que deveria acontecer era o oposto, poderia por favor postar o conteúdo do arquivo uEnv.txt da sua labrador, que está em /media/caninos/BOOT/uEnv.txt (de preferencia sem o cartão inserido, para evitar qualquer possível problema)

Mas agora com o resultados de log da serial acho que já sei qual é o problema, a labrador realiza 2 tipos de inicialização, a normal quando o botão ADFU(na core-board) não está pressionado;

  • Neste estado ela buscará montar as unidades e realizar o boot normalmente, e trazer o sistema ao estado de operação convencional.

E um segundo modo de inicialização é o que realizará a gravação do sistema pelo que estiver no cartão SD, este modo é ativo quando ;

  • o sistema é iniciado com o botão ADFU pressionado, contudo o botão não pode ficar pressionado por um tempo muito longo, que gera o resultado postado por você na ultima figura enviada, quando você tentou atualizar a caninos.

Em resumo, sua operação de atualização falhou pois manteve tempo demais o botão ADFU pressionado, o tempo em geral é menor que 2 segundos, mas o mais preciso é observar a tela da saída serial, quando os primeiros logs surgirem solte o botão. Depois disso, o processo pode levar próximo de 1h30min para ser concluído.

Como pode ser observado na última linha de log, o processo de Boot foi abortado. Entendo que este método não é muito prático e nem intuitivo, mas nas novas cores com systema x64 já estamos com um processo melhor.

@thalyson, poderia por favor, providenciar uma imagem da saída da serial quando o o processo de flash estiver em andamento?

Att,

Igor Ruschi

Bom dia. Segue o resultado da saída serial após o término do flash:

Nesse momento já é seguro desligar a Labrador, retirar o cartão SD e ligar novamente, agora para utilizar com o sistema atualizado.

O arquivo uEnv.txt contém:

uenvcmd=setenv ramdisk_addr_r -; setenv os_type linux;
bootargs=scandelay root=/dev/mmcblk2p2 rw console=tty0 loglevel=0 rootwait

Eu reinstalei o kernel no SDCard e por curiosidade dei um lbsk e as ordens ficaram trocadas em relação ao anterior, não sei se era isso que vcs quis dizer:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk2 179:0 0 14.6G 0 disk
├─mmcblk2p1 179:1 0 32M 0 part /media/caninos/BOOT
└─mmcblk2p2 179:2 0 7.3G 0 part /
mmcblk0 179:256 0 14.5G 0 disk
├─mmcblk0p1 179:257 0 32M 0 part /media/caninos/BOOT1
└─mmcblk0p2 179:258 0 7.3G 0 part /media/caninos/SYSTEM

Consegui atualizar a caninos, agradeço a vocês dois por terem me ajudado com isso e agora poderei prosseguir com os testes.

@StarLord, que ótima noticia!

Sobre o lsblk estava olhando especificamente para o ponto de montagem, a referência a mmcblk2 se refere a memória interna da labrador, e a referência mmcblk0 se refere ao cartão SD.

A sua labrador continua entrando pela memória interna, vou fazer um teste e depois posto aqui.

Obrigado por postar os resultados.

E o bluetooth deu certo a inicialização dele?

1 Curtida

Então, utilizando a caninos com o monitor sim, mas ao utilizar por um ssh o icone do bluetooth não aparece como mostrado nas imagens a seguir:
Essa é a foto da tela inicial utilizando um monitor:

Essa é tirada pelo putty, como pode-se ver sem o icone do bluetooth.

Só um adendo que agora eu consegui solucionar esse pequeno problema, antes o blueman nem estava entrando com o putty mas dando um update tudo está funcionando perfeitamente e consegui testar com um HC-05 inclusive.

Particularmente, nunca fiz esse teste de executar o bluetooh via ssh ou rs232, mas que bom que deu certo para os seus testes.

Qualquer dúvida ou resultado interessante que conseguir pode sempre postar aqui no fórum.

Obrigado por compartilhar.

Att,

Igor Ruschi

1 Curtida