From 4a19168dbd3949a4d5b7fd69fd6d646652f63ea3 Mon Sep 17 00:00:00 2001 From: Lyonel Vincent Date: Tue, 16 Aug 2016 23:34:44 +0200 Subject: [PATCH 11/43] report modalias information for PCI and network devices cf. http://www.linuxfromscratch.org/lfs/view/development/chapter07/udev.html --- src/core/network.cc | 1 + src/core/pci.cc | 5 +++++ src/core/sysfs.cc | 4 ++++ src/core/sysfs.h | 1 + 4 files changed, 11 insertions(+) diff --git a/src/core/network.cc b/src/core/network.cc index 15a961d..77233fc 100644 --- a/src/core/network.cc +++ b/src/core/network.cc @@ -337,6 +337,7 @@ bool scan_network(hwNode & n) string businfo = sysfs::entry::byClass("net", interface.getLogicalName()).businfo(); interface.setBusInfo(businfo); + interface.setConfig("modalias", sysfs::entry::byClass("net", interface.getLogicalName()).modalias()); //scan_mii(fd, interface); scan_ip(interface); diff --git a/src/core/pci.cc b/src/core/pci.cc index fab6fd2..f667f89 100644 --- a/src/core/pci.cc +++ b/src/core/pci.cc @@ -3,6 +3,7 @@ #include "pci.h" #include "osutils.h" #include "options.h" +#include "sysfs.h" #include #include #include @@ -1147,6 +1148,10 @@ bool scan_pci(hwNode & n) device->claim(); } + string modalias = sysfs::entry::byBus("pci", devices[i]->d_name).modalias(); + if(modalias!="") + device->setConfig("modalias", modalias); + if(exists(resourcename)) { FILE*resource = fopen(resourcename.c_str(), "r"); diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc index acc9d00..2b09554 100644 --- a/src/core/sysfs.cc +++ b/src/core/sysfs.cc @@ -298,6 +298,10 @@ entry entry::parent() const return e; } +string entry::modalias() const +{ + return get_string(This->devpath+"/modalias"); +} vector < entry > sysfs::entries_by_bus(const string & busname) { diff --git a/src/core/sysfs.h b/src/core/sysfs.h index a9dc573..d37e2d4 100644 --- a/src/core/sysfs.h +++ b/src/core/sysfs.h @@ -24,6 +24,7 @@ namespace sysfs string name() const; string businfo() const; string driver() const; + string modalias() const; entry parent() const; string name_in_class(const string &) const; -- 2.10.2