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

Experimentando o IIO Dummy

Capa do post - FLUSP

Habilitando e Carregando o Módulo

O primeiro passo foi habilitar o iio_dummy no .config do kernel usando o nconfig. As opções CONFIG_IIO_SIMPLE_DUMMY e CONFIG_IIO_DUMMY_EVGEN precisavam estar ativas.

Com o módulo compilado, carreguei o modprobe iio_dummy e verifiquei sua presença com lsmod. A confirmação final veio ao listar /sys/bus/iio/devices/, onde apareceu o diretório iio:device0 .

Explorando o sysfs e o configfs

O tutorial mostrou como o configfs permite criar dispositivos IIO dinamicamente. Montei o configfs em /mnt/iio_experiments/ e criei um novo dispositivo com:

sudo mkdir /mnt/iio_experiments/iio/devices/dummy/my_glorious_dummy_device

Isso fez com que um novo iio:device0 aparecesse no sysfs. Dentro dele, atributos como in_accel_x_raw e in_voltage0_raw já estavam disponíveis para leitura.

Um ponto importante: ao tentar descarregar o módulo com o dispositivo ainda ativo, recebi o erro modprobe: FATAL: Module iio_dummy is in use. A solução foi remover o diretório criado no configfs antes de descarregar.

Lições Aprendidas

  • O sysfs: atributos como *_raw e *_scale são a interface padrão para leitura de sensores no IIO.
  • configfs: permite criar dispositivos IIO em tempo de execução, sem precisar reiniciar o kernel.
  • Cuidado com índices: ao adicionar novos canais, é essencial garantir que .scan_index seja único. O uso de um enum ajuda a evitar conflitos.