📘 MAC0470/5856 - Desenvolvimento de Software Livre (2026)

Dois Tutoriais: Enviando Patches e Explorando o IIO

Capa

Tutorial 1: Enviando Patches com Git e E-mail USP

O primeiro tutorial abordou: como enviar patches por e-mail utilizando uma conta USP (Gmail) com git send-email. O problema central é que contas USP não permitem a criação de App Passwords (pois exigem 2-Step Verification, indisponível para essas contas) e, desde ataques de segurança em 2025, o acesso via Less Secure Apps também foi bloqueado.

A solução apresentada foi utilizar OAuth 2.0 para autenticação.O tutorial detalhou duas opções:

  • Opção A: Usar o git credential com o helper git-credential-gmail. Isso envolveu instalar o helper, gerar um token de acesso OAuth e configurar o git send-email para usar autenticação OAUTHBEARER.
  • Opção B: Utilizar um proxy de e-mail (email-oauth2-proxy) rodando em um container Docker. O proxy autentica via OAuth e escuta em localhost:2587, agindo como um relay SMTP.

Testei a configuração com o kw send-patch, primeiro com a flag --simulate para verificar os destinatários e, depois, enviando efetivamente um commit de teste.

Tutorial 2: O iio_simple_dummy

O segundo tutorial foi sobre Industrial I/O (IIO) do kernel, usado para drivers de sensores. O foco foi o driver iio_simple_dummy, um driver focado em ajudar a entender a estrutura do IIO.

A análise começou pela estrutura struct iio_chan_spec, que descreve os canais de um dispositivo IIO. O tutorial detalhou campos como:

  • .type: tipo de medição (ex: IIO_VOLTAGE, IIO_ACCEL).
  • .indexed e .channel: para diferenciar múltiplos canais do mesmo tipo.
  • .info_mask_separate: atributos específicos do canal, como raw, offset e scale.
  • .scan_index e .scan_type: relacionados a buffer de dados para captura contínua.

Em seguida, o tutorial explorou as funções iio_dummy_read_raw() e iio_dummy_write_raw(), que implementam a leitura e escrita dos valores dos sensores. Ambas usam mutex_lock() para proteger o acesso à estrutura iio_dummy_state, que armazena o estado do dispositivo.

Lições Aprendidas

  • Autenticação OAuth é fundamental para contas USP em ferramentas como git send-email.
  • O subsistema IIO é complexo. O driver iio_dummy é bom pra entender a estrutura de drivers de sensores no kernel.