3 # sysdump - dump /sys to a textformat
5 # Copyright 2005 David Schmitt <david@schmitt.edv-bus.at>
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 # Version 0.1: Initial prototype
29 #my $basedir = `systool -m`;
38 opendir(DIR, $dir) || die "can't opendir $dir: $!";
39 my @entries = grep { !/^\.\.?/ } readdir(DIR);
45 foreach my $entry (sort @entries)
47 dump_entry($level + 1, "$dir/$entry");
57 print $link, " -> ", readlink($link), "\n";
65 # ignore list: files that we can't read or are known to cause problems
71 /.*\/delete_device$/ ||
72 /.*\/drivers_probe$/ ||
82 /\/sys\/class\/gpio\/export$/ ||
83 /\/sys\/class\/gpio\/unexport$/ ||
84 /\/sys\/devices\/platform\/i8042\/serio[0-9]+\/drvctl$/ ||
85 /\/sys\/devices\/system\/clockevents\/clockevent[0-9]+\/unbind_device$/ ||
86 /\/sys\/devices\/system\/clocksource\/clocksource[0-9]+\/unbind_clocksource$/ ||
87 /\/sys\/devices\/system\/memory\/hard_offline_page$/ ||
88 /\/sys\/devices\/system\/memory\/soft_offline_page$/ ||
89 /\/sys\/devices\/system\/node\/node[0-9]\/compact$/ ||
90 /\/sys\/devices\/virtual\/graphics\/fbcon\/rotate_all$/ ||
91 /\/sys\/firmware\/efi\/vars\/del_var$/ ||
92 /\/sys\/firmware\/efi\/vars\/new_var$/ ||
93 /\/sys\/kernel\/debug\/.*/ ||
94 /\/sys\/kernel\/security\/apparmor\/revision$/ ||
95 /\/sys\/kernel\/tracing\/per_cpu\/cpu[0-9]+\/snapshot_raw$/ ||
96 /\/sys\/kernel\/tracing\/per_cpu\/cpu[0-9]+\/trace_pipe.*/ ||
97 /\/sys\/kernel\/tracing\/trace_pipe/ ||
98 /\/sys\/module\/md_mod\/parameters\/new_array$/ ||
101 print "ignoring file $file\n";
106 if (!open (FILE, "<$file")) {
107 print STDERR "can't open $file: '$!'\n";
114 $value = defined($value)?$value:"undef";
120 print $file, " = '", $value, "'\n";
128 return dump_link($level, $file) if -l $file;
129 return dump_dir($level, $file) if -d $file;
130 return dump_value($level, $file) if -r $file;
133 dump_dir(0, $basedir);