É normal que um modalias combine com vários dispositivos?

3

Recentemente, outro usuário perguntou por que eles estavam carregando o fjes module . Enquanto eu estava tentando entender essa questão, percebi que o Linux também está carregando o mesmo módulo para mim.

Agora, esta é a informação do módulo de acordo com modinfo :

filename:       /lib/modules/4.8.0-2-amd64/kernel/drivers/net/fjes/fjes.ko
version:        1.1
license:        GPL
description:    FUJITSU Extended Socket Network Device Driver
author:         Taku Izumi <[email protected]>
srcversion:     3411C5E01C7BDA50105EEE7
alias:          acpi*:PNP0C02:*
depends:        
intree:         Y
vermagic:       4.8.0-2-amd64 SMP mod_unload modversions 
signat:         PKCS#7
signer:         
sig_key:        
sig_hashalgo:   md4

Eu acho isso estranho. Meu adaptador de rede é uma placa Realtek PCI Express e é suportado pelo módulo r8169 .

A primeira coisa que verifiquei foi se esse módulo foi adicionado por qualquer pacote em particular. Eu estou no teste Debian, então eu verifiquei esse arquivo com dpkg -S . É fornecido pelo próprio pacote de imagens do kernel:

# dpkg -S /lib/modules/4.8.0-2-amd64/kernel/drivers/net/fjes/fjes.ko
linux-image-4.8.0-2-amd64: /lib/modules/4.8.0-2-amd64/kernel/drivers/net/fjes/fjes.ko

Notei que os modalias para este módulo parecem muito genéricos. Nem sequer especifica um fornecedor. Então, decidi ver quais dispositivos em /sys/devices teriam um modalias correspondente a essa string. Eu tenho cinco resultados, então eu escrevi um pequeno script para imprimir um pouco mais de informação sobre eles. Isso é o que eu consegui:

./devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/PNP0C02:03
    modalias:      acpi:PNP0C02:
    path:          \_SB_.PCI0.PDRC
    physical_node -> ../../../../pnp0/00:08

./devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:00/PNP0C02:01
    modalias:      acpi:PNP0C02:
    path:          \_SB_.PCI0.LPCB.SIO1
    physical_node -> ../../../../../pnp0/00:04

./devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:00/INT3F0D:00
    modalias:      acpi:INT3F0D:PNP0C02:
    path:          \_SB_.PCI0.LPCB.CWDT
    physical_node -> ../../../../../pnp0/00:03

./devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:00/PNP0C02:02
    modalias:      acpi:PNP0C02:
    path:          \_SB_.PCI0.LPCB.RMSC
    physical_node -> ../../../../../pnp0/00:06

./devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:00/PNP0C02:00
    modalias:      acpi:PNP0C02:
    path:          \_SB_.PCI0.LPCB.LDRC
    physical_node -> ../../../../../pnp0/00:01

Os dados acima são um despejo dos arquivos em /sys/devices/... . As linhas modalias e path são o conteúdo desses arquivos e physical_node é o destino desse link simbólico para um diretório em /sys/devices .

Cada um deles está de fato associado a um dispositivo físico diferente, mas não tenho idéia do que eles são. Tudo o que posso dizer é que nenhum outro módulo de driver instalado no meu sistema possui um alias que corresponda a acpi:PNP0C02: .

Estas são as questões que me restam:

  1. Qual é o significado de PCI0.LPCB na árvore da ACPI? Eu deduzi do FAQ do Ubuntu sobre truques e dicas ACPI que pode ser (ou devo inferir que deve ser ?) relacionado a uma bateria. No entanto, este é um PC desktop, não um laptop;
  2. Por que eu tenho três dispositivos diferentes, todos alias para a mesma coisa? Isso não incomoda o kernel?
  3. O módulo fjes está configurado incorretamente para ter tais modalias? Um bug deve ser aberto?
por giusti 06.01.2017 / 01:08

0 respostas