/[smeserver]/rpms/e-smith-lib/sme9/e-smith-lib-2.4.0-dont_use_kudzu_to_probe_nics.patch
ViewVC logotype

Annotation of /rpms/e-smith-lib/sme9/e-smith-lib-2.4.0-dont_use_kudzu_to_probe_nics.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Thu Jan 31 17:33:44 2013 UTC (11 years, 4 months ago) by vip-ire
Branch: MAIN
CVS Tags: e-smith-lib-2_4_0-18_el6_sme, e-smith-lib-2_4_0-9_el6_sme, e-smith-lib-2_4_0-11_el6_sme, e-smith-lib-2_4_0-12_el6_sme, e-smith-lib-2_4_0-7_el6_sme, e-smith-lib-2_4_0-4_el6_sme, e-smith-lib-2_4_0-6_el6_sme, e-smith-lib-2_4_0-3_el6_sme, e-smith-lib-2_4_0-17_el6_sme, e-smith-lib-2_4_0-2_el6_sme, e-smith-lib-2_4_0-15_el6_sme, e-smith-lib-2_4_0-16_el6_sme, e-smith-lib-2_4_0-13_el6_sme, e-smith-lib-2_4_0-14_el6_sme, e-smith-lib-2_4_0-8_el6_sme, e-smith-lib-2_4_0-5_el6_sme, e-smith-lib-2_4_0-10_el6_sme, HEAD
* Thu Jan 31 2013 Daniel Berteaud <daniel@firewall-services.com> 2.4.0-2.sme
- Stop using kudzu for NIC detection [SME: 3596]

1 vip-ire 1.1 diff -Nur e-smith-lib-2.4.0/root/usr/share/perl5/vendor_perl/esmith/ethernet.pm e-smith-lib-2.4.0-nokudzu/root/usr/share/perl5/vendor_perl/esmith/ethernet.pm
2     --- e-smith-lib-2.4.0/root/usr/share/perl5/vendor_perl/esmith/ethernet.pm 2013-01-25 17:09:11.000000000 +0100
3     +++ e-smith-lib-2.4.0-nokudzu/root/usr/share/perl5/vendor_perl/esmith/ethernet.pm 2013-01-31 18:22:05.610588921 +0100
4     @@ -9,6 +9,7 @@
5     #----------------------------------------------------------------------
6    
7     use strict;
8     +use File::Basename;
9    
10     =head1 NAME
11    
12     @@ -37,36 +38,52 @@
13    
14     sub probeAdapters ()
15     {
16     - my @devs;
17     - my $r;
18     - local $ENV{PATH} = "/bin:/sbin:/usr/bin:/usr/sbin";
19     - unless (open(HWC, "/usr/sbin/kudzu --probe --class network|"))
20     - {
21     - warn "Could not run kudzu probe: $!";
22     - return "";
23     - }
24     - while (<HWC>)
25     - {
26     - if (/^-/)
27     - {
28     - $r = {};
29     - push @devs, $r;
30     - }
31     - if (/(.+): (.+)/)
32     - {
33     - $r->{$1} = $2;
34     - }
35     - }
36     - close HWC;
37     -
38     - my @nics = grep { $_->{device} && $_->{device} =~ /^eth/ } @devs;
39     - my $adapters = '';
40     + opendir(my $dh, "/sys/class/net") or die "Couldn't open /sys/class/net: $!";
41     + my @nics = grep { $_ !~ m/^\./ } readdir($dh);
42     + closedir($dh);
43     + my $adapters = '';
44     my $index = 1;
45     - foreach my $nic (@nics)
46     - {
47     - $adapters .=
48     - "EthernetDriver" . $index++ . "\t" . $nic->{driver} . "\t"
49     - . $nic->{'network.hwaddr'} . "\t" . $nic->{desc} . "\n";
50     + foreach my $nic (@nics){
51     + next if (
52     + # skip loopback
53     + $nic eq 'lo' ||
54     + # skip non links
55     + !-l "/sys/class/net/$nic" ||
56     + # skip wireless nics
57     + -d "/sys/class/net/$nic/wireless" ||
58     + -l "/sys/class/net/$nic/phy80211" ||
59     + # skip bridges
60     + -d "/sys/class/net/$nic/bridge" ||
61     + # skip vlans
62     + -f "/proc/net/vlan/$nic" ||
63     + # skip bonds
64     + -d "/sys/class/net/$nic/bonding" ||
65     + # skip tun/tap
66     + -f "/sys/class/net/$nic/tun_flags" ||
67     + # skip dummy
68     + -d "/sys/devices/virtual/net/$nic"
69     + );
70     + # Now we should be left only wth ethernet adapters
71     + open HW, "/sys/class/net/$nic/address";
72     + my $mac = join("", <HW>);
73     + chomp($mac);
74     + close HW;
75     + my $driver = basename (readlink "/sys/class/net/$nic/device/driver");
76     + my $bus = basename (readlink "/sys/class/net/$nic/device/subsystem");
77     + my $desc = $nic;
78     + if ($bus eq 'pci'){
79     + my $dev = basename (readlink "/sys/class/net/$nic/device");
80     + $desc = `/sbin/lspci -s $dev`;
81     + # Extract only description
82     + $desc =~ m/^.*:.*:\s+(.*)\s*/;
83     + $desc = $1;
84     + }
85     + elsif ($bus eq 'virtio'){
86     + $desc = 'Virtio Network Device';
87     + }
88     + # TODO: we should also try to get the description of USB devices
89     + $adapters .= "EthernetDriver" . $index++ . "\t" . $driver . "\t" .
90     + $mac . "\t" . "\"$desc\"" . "\n";
91     }
92     return $adapters;
93     }

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed