helio.loureiro.eng.br
  • Home
  • Unix
  • Linux
  • Blog
  • Python
  • Programação
  • Tudo
  • Suécia
  1. You are here:  
  2. Home
  3. Unix
  4. Linux

Os artigos mais lidos de 2024

  • linux-br.org num ritmo mais lento
  • Criando um serviço de relay de DNS-over-HTTPS
  • Minha palestra sobre a história do Unix na IX BSD Day
  • Pedal forte de 2023 em dados do Google
  • Linux vs GNU/Linux

Resolvendo o problema de conexão ssh travando no raspberry pi

Details
Written by: Helio Loureiro
Category: Linux
Published: December 16, 2023
Hits: 2545

 

Resolvi dar aquele tapa de fim de ano no raspberry pi que tenho, versão 3 e talvez B mas não tenho certeza.  E fiz upgrade pro Bookworm, último release do Debian.

O site não recomenda fazer isso e sim reinstalar o sistema operacional.  Mas eu sempre tento o upgrade primeiro e guardo a opção de reinstalar pro último caso.

Acabei perdendo acesso ao wifi durante o upgrade e precisei tirar ele da janela e mexer aqui na mesa.  Nada demais e aparentemente deu certo.

Aparentemente...

Toda vez que eu tentava algum comando que mandasse muitos dados como "dmesg" ou "journalctl -b -1", a conexão travava.  E como fica ali na janela, sem cabo de rede perto, eu nunca soube se era problema do ssh ou do wifi ou que simplesmente travava.  Apenas sabia que depois que travava eu não conseguia mais conectar.

Junto a isso as fotos da janela começaram a sair muito ruins.  Com muita exposição.

No fim acabei botando de novo aqui na mesa e mexendo pra ver se acertava a parte do ssh.

Achei uma dica em "https://discourse.osmc.tv/t/solved-ssh-connection-sometimes-hangs/76504" pra alterar o "/etc/ssh/sshd_config" e adicionar as seguintes linhas:

IPQoS cs0 cs0

E reiniciando o sshd.  Realmente deu certo.  A conexão passou a ficar estável.  O segredo foi mudar o ToS pra best effort com cs0.

Eu também mudei o /etc/rc.local pra rodar e deixar o wifi sem power management e evitar qualquer problema de conexão que esse pudesse causar.

iwconfig wlan0 power off

A parte da câmera eu não consegui acertar aqui na mesa.  Simplesmente não consegui abrir o programa gráfico pra isso.  No fim fiz ajustes no programa que uso com rpicam-still, que parece ser o novo programa pra usar.

Eu ainda não olhei como ficou a exposição da manhã, mas a de noite está bacana.

E no fim arrumei com o parâmetro "--shutter".

Quem quiser olhar ou re-usar o script, está aqui no github:

https://github.com/helioloureiro/snapshot-twitter-mastodon

Renderizando as fotos da GoPro em vídeo mpeg4 com ffmpeg e NVIDIA

Details
Written by: Helio Loureiro
Category: Linux
Published: April 16, 2023
Hits: 1761

Eu já tinha descrito como usar aceleração de hardware pra juntar imagens jpeg e criar um vídeo em usando a GPU para renderizar vídeo.  Mas o texto todo abordou apenas os testes que fiz no laptop que tinha na época, com GPU integrada Intel.

E como fazer o mesmo com NVIDIA?

Aqui está a receita de bolo direta:

ffmpeg -hwaccel cuda -hwaccel_output_format cuda -r 1 -i G%04d.JPG -c:v h264_nvenc -b:v 5M -pix_fmt cuda output.mp4

Simples assim ele gera uma grande image output.mp4, que depois eu uso no kdenlive.

Claro que não é assim tão simples.  É preciso ter os arquivos da GoPro gerados no padrão G0000.JPG, G0001.JPG, etc.

O que faço então é copiar todos os arquivos que vou precisar dentro do mesmo diretório (uso Gwenview pra isso).  E depois eu rodo o seguinte script:

#! /usr/bin/env bash

counter=0
for img in G*.JPG
do
  serial=$(printf "%04d" $counter)
  new_name="G${serial}.JPG"
  echo "$img => $new_name"
  mv $img $new_name
  counter=$((counter++))
done

ffmpeg -hwaccel cuda -hwaccel_output_format cuda -r 1 -i G%04d.JPG -c:v h264_nvenc -b:v 5M -pix_fmt cuda output.mp4

E pronto.  Imagem gerada em output.mp4 pra ser usada no kdenlive.

Como eu não consegui fazer o kdenlive funcionar bem com a placa NVIDIA, é mais rápido fazer essa primeira geração assim via ffmpeg mesmo.

O script está disponível no GitHub:

https://github.com/helioloureiro/homemadescripts/blob/master/render-video-from-gopro-photos.sh

Reconectando por software um dispositivo USB no Linux

Details
Written by: Helio Loureiro
Category: Linux
Published: March 19, 2023
Hits: 1758

Por algum motivo bizarro meu mouse passou a não funcionar quando ligo meu PC.  A propósito, para fazer minha parte quanto à crise energética na europa, eu passei a deixar meu PC desligado.  Só o ligo quando vou usar, e depois desligo novamente.  Algo que não fazia há algumas décadas.

Mas voltando ao assunto mouse, por algum motivo bizarro o mouse parou de funcionar.  Ao desconectar e reconectar na USB, ele passava a funcionar.

Então resolvi fazer isso por software, num script que botei no /etc/rc.local, uma vez que rodo o rc-local no systemd.

MOUSE_PRODUCT="G203 Prodigy Gaming Mouse"

cd /sys/bus/usb/devices || \
  die "It seems /sys interface isn't available."

echo "Detecting mouse:"
mouse_id=""
for d in *
do
  if [ ! -f "$d/product" ]; then
    continue
  fi
  echo -n " * $d: "
  product=$(cat $d/product)

  if [ "$product" = "$MOUSE_PRODUCT" ]; then
    echo "$product (DEVICE FOUND)"
    mouse_id="$d"
  else
    echo $product
  fi
done

if [ -z "$mouse_id" ]; then
  die "device not foud"
fi

echo "Restarting $mouse_id ($MOUSE_PRODUCT)"
echo " * unbinding"
echo "$mouse_id" > /sys/bus/usb/drivers/usb/unbind
sleep 3
echo " * binding"
echo "$mouse_id" > /sys/bus/usb/drivers/usb/bind

Esse foi o código inicial que usei, mas descobri logo que dar um reset no mouse não era o suficiente.  O mais efetivo era dar um reset no hub USB em que está conectado.  Assim alterei pra usar "USB2.0 Hub".

O resultado:

helio@goosfraba ~> sudo homemadescripts/restart_mouse.sh
Detecting mouse:
 * 1-4: CSR8510 A10
 * 2-5: Lexmark MC3224dwe
 * 5-1: PLAYSTATION(R)3Conteroller
 * 8-1: USB2.0 Hub
 * 8-1.1: HyperX Quadcast
 * 8-1.2: HD Pro Webcam C920
 * 8-1.3: G432 Gaming Headset
 * 8-1.4: USB2.0 Hub
 * 8-1.4.1: Keychron C1
 * 8-1.4.4: G203 Prodigy Gaming Mouse (DEVICE FOUND)
 * 9-1: USB3.0 Hub
 * 9-1.4: USB3.0 Hub
 * usb1: OHCI PCI host controller
 * usb2: EHCI Host Controller
 * usb3: EHCI Host Controller
 * usb4: EHCI Host Controller
 * usb5: OHCI PCI host controller
 * usb6: OHCI PCI host controller
 * usb7: OHCI PCI host controller
 * usb8: xHCI Host Controller
 * usb9: xHCI Host Controller
Restarting 8-1.4 (USB2.0 Hub)
 * unbinding
 * binding

e temos um mouse funcionando :)

O código está no github: https://github.com/helioloureiro/homemadescripts/blob/master/restart_mouse.sh

Mantendo pacote no AUR

Details
Written by: Helio Loureiro
Category: Linux
Published: January 13, 2023
Hits: 2041

Logo que passei a usar o archlinux, que descrevi em A era do Arch Linux, descobri rapidamente que existe um repositório chamado AUR, ArchLinux User Repository.

O AUR é basicamente um respositório de repositórios com código fonte pra criar pacotes pro archlinux criado pros usuários.  Não é preciso criar muito vínculo com o projeto e basta puxar seu pacote lá.

Em um desses dias, durante um upgrade com pacman, apareceu pra mim que um pacote python estava desatualizado, marcado como órfão.  Então decidi arregaçar as mangas pra enviar um patch de atualização pro pacote.

Li a documentação de como gerar os pacotes no archlinux, que é muito, mas muito, muito fácil.  O sistema é fácil pra descomplicar a vida.  É praticamente um Makefile que você configura e bota pra rodar.  E tudo é controlado com git.

Então meio que adotei o pacote e o tenho mantido atualizado desde então: https://aur.archlinux.org/packages/python-pytelegrambotapi

A desburocracia é imensa.  Foi só clonar o repositório, alterar, testar e mandar um push com o update.

O lado ruim da coisa é que qualquer coisa pode ser enviada pra um desses repositórios.  Não há verificação.  Na verdade parte da ideia do AUR é essa mesmo: pouca burocracia, mas você é responsável pelo que usa.  Então é por sua conta e risco pegar pacotes de lá e assume-se que deu uma boa olhada no PKGBUILD, que é a instrução de como o pacote é gerado.  Pra esse pacote do pytelegrambotapi por exemplo o arquivo é esse aqui:  https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=python-pytelegrambotapi

Só de olhar esse arquivo dá pra perceber o porquê adotei o pacote AUR: é muito fácil manter.  Muito.

Mais um ponto positivo pro archlinux.

E você?  Ainda não migrou pra ele?

Google passou a exigir SPF1 configurado no servidor de e-mail

Details
Written by: Helio Loureiro
Category: Linux
Published: January 03, 2023
Hits: 2100

Hoje, tentando baixar um substituto pro Disqus no Linux-BR, descobri que meus e-mails pra @hl.eng.br não estavam mais funcionando.

Então fui fuçar nos logs do postfix pra ver a razão.

Jan  3 13:22:02 truta postfix/smtp[1984]: B300F11F304: to=, orig_to=<***** AT hl.eng.br>, relay=aspmx.l.google.com[2607:f8b0:4001:c58::1b]:25, 
delay=13, delays=12/0.01/0.64/0.57, dsn=5.7.1, status=bounced (host aspmx.l.google.com[2607:f8b0:4001:c58::1b] 
said: 550-5.7.1 [2605:2700:0:17:a800:ff:fe3e:bc97] Our system has detected that this 550-5.7.1 message does not meet IPv6 sending guidelines regarding 
PTR records 550-5.7.1 and authentication. Please review 550-5.7.1  
https://support.google.com/mail/?p=IPv6AuthError for more information 550 5.7.1 . z23-20020a056638001700b00358317a21c3si22106554jao.145 - gsmtp 
(in reply to end of DATA command))

tl;dr: Google passou a exigir configuração de SPF desde novembro de 2022.  Então já desde essa época que nada funciona.

O motivo, claro, é que recebo tudo no servidor onde está o blog e envio pra minha conta loureiro.eng.br que fica no Google.

Nada como começar o ano olhando alguns logs.

  1. 2023 - o ano do Linux no desktop
  2. 30 anos de Linux
  3. Rodando openwrt virtualizado
  4. Pendrive da FSF com Arch

Page 3 of 20

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Estatísticas

  • Users 2
  • Articles 454
  • Articles View Hits 3214356

Imagem aleatória