mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-30 18:27:53 +00:00 
			
		
		
		
	 72712ff548
			
		
	
	72712ff548
	
	
	
		
			
			These scripts will now be publicly available in a git repo for easier shared development and change tracking.
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/perl -w
 | |
| use strict;
 | |
| use warnings;
 | |
| use diagnostics;
 | |
| 
 | |
| $|=1;
 | |
| package main;
 | |
| our $fan_util = "/usr/local/bin/f81866_fan";
 | |
| if ( ! -x $fan_util ) {
 | |
|    die "f81866_fan utility $fan_util not found\n";
 | |
| }
 | |
| 
 | |
| my @sensor_lines_a = `sensors`;
 | |
| chomp(@sensor_lines_a);
 | |
| my @sensor_lines_b = grep ! /^\s*$/, @sensor_lines_a;
 | |
| @sensor_lines_a = grep ! /^(Physical id|Core|coretemp|Adapter: ISA adapter)/, @sensor_lines_b;
 | |
| 
 | |
| #print ("Found: ".join("\n", @sensor_lines_a));
 | |
| my $found_a10k = 0;
 | |
| my $temp       = 0;
 | |
| my $maxtemp    = 0;
 | |
| for my $line (@sensor_lines_a) {
 | |
|    if ($line =~ /^ath10k_hwmon-pci.*/) {
 | |
|       #print "found a10k! $line\n";
 | |
|       $found_a10k = 1;
 | |
|    }
 | |
|    if ($found_a10k && $line =~ /temp1:\s+([^ ]+).*$/) {
 | |
|       #print "found a10k: $line\n";
 | |
|       if ($1 ne "N/A") {
 | |
|          ($temp) = $line =~ /[+](\d+\.\d+)/;
 | |
|          if (defined $temp && $temp > 40.0) {
 | |
|             $maxtemp = $temp if ($temp > $maxtemp);
 | |
|             #print "temp($temp) maxtemp($maxtemp)\n";
 | |
|          }
 | |
|          $temp = 0;
 | |
|       }
 | |
|       $found_a10k = 0;
 | |
|    }
 | |
| }
 | |
| 
 | |
| my $duty = 0;
 | |
| if ($maxtemp < 40) {
 | |
|    $duty = 0;
 | |
| }
 | |
| elsif ($maxtemp < 50) {
 | |
|    $duty = 50;
 | |
| }
 | |
| elsif ($maxtemp < 56) {
 | |
|    $duty = 55;
 | |
| }
 | |
| elsif ($maxtemp < 60) {
 | |
|    $duty = 60;
 | |
| }
 | |
| elsif ($maxtemp < 70) {
 | |
|    $duty = 70;
 | |
| }
 | |
| elsif ($maxtemp < 80) {
 | |
|    $duty = 80;
 | |
| }
 | |
| elsif ($maxtemp >= 80) {
 | |
|    $duty = 100;
 | |
| }
 | |
| 
 | |
| #print "[$maxtemp]C -> duty[$duty]\n";
 | |
| system("/usr/bin/logger -t fanctl_lf0312 'temp:$maxtemp C, duty:$duty'");
 | |
| exec("$fan_util $duty");
 | |
| 
 | |
| #
 |