[oe] [meta-oe][PATCH] lmsensors: read cpu information fail on ppc

Changqing Li changqing.li at windriver.com
Thu Feb 28 02:33:02 UTC 2019


On 2/28/19 12:44 AM, Khem Raj wrote:
> On Wed, Feb 27, 2019 at 12:13 AM <changqing.li at windriver.com> wrote:
>> From: Dengke Du <dengke.du at windriver.com>
>>
>> The program sensors-detect in lmsensors can't read the cpu
>> information on ppc and arm arch, such as: fsl-t4xxx based on ppc.
>>
>> This is because the program sensors-detect design for the x86 and
>> x86-64, but weak on ppc and arm.
>>
>> So add the support for the ppc and arm, just add the correspond
>> field to read in sensors-detect.
>>
> the patch deserves to be upstreamed to lmsensors as well. Can you
> try doing that on the side ?

Yes,  I have send it to upstream lmsensors.

https://github.com/lm-sensors/lm-sensors/pull/168

>> Signed-off-by: Dengke Du <dengke.du at windriver.com>
>> Signed-off-by: Changqing Li <changqing.li at windriver.com>
>> ---
>>   ...fix-sensors-detect-can-t-read-the-cpu-inf.patch | 74 ++++++++++++++++++++++
>>   meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb  |  1 +
>>   2 files changed, 75 insertions(+)
>>   create mode 100644 meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch
>>
>> diff --git a/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch b/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch
>> new file mode 100644
>> index 0000000..2d5709f
>> --- /dev/null
>> +++ b/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch
>> @@ -0,0 +1,74 @@
>> +From dd9b40c54f160a44f1d78e5946d4cd00a8852802 Mon Sep 17 00:00:00 2001
>> +From: Dengke Du <dengke.du at windriver.com>
>> +Date: Wed, 21 Sep 2016 03:17:32 -0400
>> +Subject: [PATCH] lm-sensors: fix sensors-detect can't read the cpu information
>> + on fsl-t4xxx
>> +
>> +This is because two reasons:
>> +
>> +1. The sensors-detect program in lm-sensors depends on the file '/proc/cpuinfo',
>> +   different arch write different infomation to it. That program supports x86
>> +   and x86-64 well, but weak on ppc and arm.
>> +
>> +2. The sensors-detect program show the cpu information just design for intel's
>> +   cpu, when meets other arch, it can't output the correct information.
>> +
>> +So we need to add the ppc and arm support for this program:
>> +
>> +1. add the ppc cpu information field 'cpu' in initialize_cpu_list function.
>> +
>> +2. add the correspond case of ppc and arm when print cpu information in
>> +   print_cpu_info function.
>> +
>> +Upstream-Status: Pending
>> +
>> +Signed-off-by: Dengke Du <dengke.du at windriver.com>
>> +---
>> + prog/detect/sensors-detect | 11 ++++++++++-
>> + 1 file changed, 10 insertions(+), 1 deletion(-)
>> +
>> +diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect
>> +index 5f62405..ae4def1 100755
>> +--- a/prog/detect/sensors-detect
>> ++++ b/prog/detect/sensors-detect
>> +@@ -2833,6 +2833,7 @@ sub kernel_version_at_least
>> + # model name and stepping, directly taken from /proc/cpuinfo.
>> + use vars qw(@cpu);
>> +
>> ++# The added field 'cpu' is for support the ppc.
>> + sub initialize_cpu_list
>> + {
>> +       local $_;
>> +@@ -2848,7 +2849,7 @@ sub initialize_cpu_list
>> +                       };
>> +                       next;
>> +               }
>> +-              if (m/^(vendor_id|cpu family|model|model name|stepping|cpuid level)\s*:\s*(.+)$/) {
>> ++              if (m/^(vendor_id|cpu family|model|model name|stepping|cpuid level|cpu|revision)\s*:\s*(.+)$/) {
>> +                       my $k = $1;
>> +                       my $v = $2;
>> +                       $v =~ s/\s+/ /g;        # Merge multiple spaces
>> +@@ -2861,12 +2862,20 @@ sub initialize_cpu_list
>> +       push @cpu, $entry if scalar keys(%{$entry}); # Last entry
>> + }
>> +
>> ++# The field 'model name' is for ARM.
>> ++# The field 'cpu' is for ppc.
>> + sub print_cpu_info
>> + {
>> +       my $cpu = $cpu[0];
>> +       if ( $cpu->{'model name'} && $cpu->{'cpu family'} && $cpu->{model} && $cpu->{stepping} ) {
>> +               print "# Processor: $cpu->{'model name'} ($cpu->{'cpu family'}/$cpu->{model}/$cpu->{stepping})\n";
>> +       }
>> ++      elsif ( $cpu->{'model name'} ) {
>> ++              print "# Processor: $cpu->{'model name'}\n";
>> ++      }
>> ++      elsif ( $cpu->{'cpu'} && $cpu->{'revision'} ) {
>> ++              print "# Processor: $cpu->{'cpu'} $cpu->{'revision'}\n";
>> ++      }
>> +       else {
>> +               print "# Processor: There isn't enough cpu info for this arch!!!\n";
>> +       }
>> +--
>> +2.8.1
>> +
>> diff --git a/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb b/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb
>> index ffab5d6..4dbef73 100644
>> --- a/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb
>> +++ b/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb
>> @@ -12,6 +12,7 @@ SRC_URI = "https://github.com/groeck/lm-sensors/archive/V3-4-0.tar.gz \
>>              file://sensord.init \
>>              file://0001-lmsensors-sensors-detect-print-a-special-message-whe.patch \
>>              file://0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch \
>> +           file://0001-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch \
>>   "
>>   SRC_URI[md5sum] = "1e9f117cbfa11be1955adc96df71eadb"
>>   SRC_URI[sha256sum] = "e334c1c2b06f7290e3e66bdae330a5d36054701ffd47a5dde7a06f9a7402cb4e"
>> --
>> 2.7.4
>>
>> --
>> _______________________________________________
>> Openembedded-devel mailing list
>> Openembedded-devel at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

-- 
BRs

Sandy(Li Changqing)



More information about the Openembedded-devel mailing list