Lm-sensors의 trunk버젼좀요

3.0.4부터 K10~K11.5아키텍쳐를 사용한 AMD씨퓨를 지원한다는데 일단 trunk버젼이라도 구하고 싶습니다.

아니면 lm-sensors홈페이지에 테스트 버젼이긴 하지만 3.0.3에 K10~K11.5 아키텍쳐를 지원하게 하는 패치를 올려놨던데 이건 어떻게 쓰는거에요??

급합니다.

[code:iw3hs233]
16:20:15<hanbin973> 분도님
16:20:17<hanbin973> 분도님
16:20:19<hanbin973> 나의 분도님 ㅜ
16:20:20<hanbin973> 도와주세요
16:20:35<강분도> 네.
16:20:47<hanbin973> http://lists.lm-sensors.org/pipermail/lm-sensors/2008-October/024308.html 이 패치 어떻게 적용시켜요??
16:21:12<hanbin973> http://lists.lm-sensors.org/pipermail/lm-sensors/2008-October/024308.html ㅜㅜ
16:22:07<hanbin973> 패치 적용법좀요 ㅜㅜ
16:22:09<hanbin973> 진지해요 분도님 ㅜ
16:24:07<강분도> hanbin973 커널 2.6.18 이상 에서 패치되 있습니다.
16:24:18<hanbin973> 흠..
16:24:19<강분도> 2.6.18 이상에서 패치되있음
16:24:24<hanbin973> 그런데 저는 왜 안되죠?? ㅜ
16:24:36<hanbin973> K10아키텍쳐에서 안먹혀요 ㅜ
16:24:54<강분도> 커널 공부 해보세요 hanbin973
16:24:59<hanbin973> 넴..
16:25:11<강분도> 자신에 맞는 맟춤 커널 해보심 알게 되겟죠
16:25:54<강분도> 2.6.21 이구나..
16:26:04<강분도> 적용이 잘 된것 커널이..
16:26:12<hanbin973> 저는 커널이 2.6.27-11-server인데..
16:26:23<강분도> 서버라 음
16:26:26<hanbin973> generic에서도 안먹음
16:26:44<강분도> acpi 하고 엘멤 센서 하고 커널이.. 음
16:27:16<강분도> 잠시 더 찻아 보고요
16:27:28<hanbin973> 쿨엔 콰이어트도 적용되고
16:27:33<hanbin973> ACPI도 잘되있음
16:27:35<hanbin973> 바이오스에서
16:30:38<강분도> hanbin973 lsmod | grep k8temp 해보요 나오나요?
16:30:44<hanbin973> 잠만요
16:31:13<hanbin973> 아래
16:31:16<hanbin973> 에러 안뜨면 괜찮은거에요??
16:31:50<hanbin973> 안보여요 ㅜ
16:32:01<강분도> 그럼 모둘로 적재가 안된거임
16:32:07<강분도> 모둘 적재 해보시길..
16:32:13<hanbin973> 어케요??
16:32:41<hanbin973> modprobe 하면 되요??
16:32:49<강분도> 네.. 잘 찻네..
16:33:01<강분도> modprobe k8temp
16:33:26<hanbin973> 이제 뜨네
16:33:29<hanbin973> 다시 해보자 아자아자
16:33:34<강분도> ^^
16:33:42<강분도> 한빈이
16:33:44<강분도> 근데 말에요
16:33:50<hanbin973> ??
16:33:56<강분도> 부팅하고 매번 그리 안치고 적재 하려면?
16:34:05<hanbin973> /etc/modules
16:34:06<hanbin973> 에서
16:34:08<hanbin973> 추가하면 됨?
16:34:11<강분도> 오케이
16:34:18<강분도> 고수네 한빈이
16:34:20<강분도> ^^
16:44:20<강분도> hanbin973 요즘은 그냥 sudo sensors-detect 로도 되네요
16:44:24<강분도> 찾아주고 모둘 적제 까지... [/code:iw3hs233]

나두 온도가 이상한데… 트렁크 버전 쓰면 될까요 한빈?
올만에 커널 뽀개?
[attachment=0:33er66m6]screenshot3.png[/attachment:33er66m6]

분도님. 이거 제가 뒷북 치는거 같지만 좀 웃기는 결론이 나왔습니다.

일단 k10temp모듈은 .27 커널에 안들어있다는군요. .28에도 없고… 그래서 .29에 들어올거라는 예기도 있구…

그리고 k8temp는 amdtemp로 바뀌어서 다른 엠디 씨퓨들까지 지원할거라고 하네요. 그런데 K10모듈이 존재하기는 해서 이걸 가져다가 커널에 넣고 컴파일해야되는데 이 파일을 어떻게 구하죠?? ㅜ

2008년12월25일 10시 30분 [url=http&#58;//ubuntu&#46;or&#46;kr/wiki/doku&#46;php?id=%EB%AA%A9%EC%B0%A8&#58;%EC%9A%B0%EB%B6%84%ED%88%AC%EC%B1%84%ED%8A%B8:1aeukf6u]한국 우분투 챈[/url:1aeukf6u] 대화중

[code:1aeukf6u]<hanbin973> 분도님
<강분도> 넹
<hanbin973> 모듈들은 어디에 모여있어요??
<hanbin973> 커널 모튤
<hanbin973> 모듈
<hanbin973> 어디에 들어있어요??
<강분도> /lib/modules
<hanbin973> 네
<강분도> 에 버전 별로
<Lv5드라키> ㅋㅋㅋ 레고
<hanbin973> 어째서 k10temp 는 없는거지 OTL
<강분도> 모듈만 컴파일 하기 쉬워요
<hanbin973> 어케해요??
<hanbin973> 가르쳐줘잉~~
<강분도> 커널 헤더만 있음 되요
<hanbin973> 흠..
<hanbin973> 문서같은거 있어요??
<hanbin973> 영어나 한글이면 됨
<강분도> 네 제 머리에..
<강분도> ㅋ
<hanbin973> 음;; ㅎㅎ
<강분도> 어 참고 할게..
<강분도> 찻아 볼께요 기다리셈
<hanbin973> 그리고 모듈은 따로 구해야해요??
<강분도> 네.. k10 소스 다운
<강분도> hanbin973 http://www.cyberciti.biz/tips/compiling-linux-kernel-module.html
<강분도> 이글이 딱 맞는 군요 ^^
<hanbin973> 일단 안녕히..
<hanbin973> 자야할시간이에용
<hanbin973> 분도님은 구세주임
<hanbin973> ㅋㅋ

  • hanbin973 has quit (EOF from client)[/code:1aeukf6u]

hanbin973 외국까지 멀리도 가서 질문 하누먼… :roll:

http://ubuntuforums.org/showthread.php?t=1019418

음~ 영재라 그런지 영어도 잘하네요… ㅎㅎ

제가 freq드라이버를 재미로 다운받아서 컴파일 해보았습니다. 잘되더군요 .^^

그런데 문제는 amdtemp 모듈도, k10모듈도 대채 소스코드가 어디있는지 알수가 없습니다.

이럴때일수록 분도님 뇌가 탐나는 이유는??

일단 파일이라도 있어야 쇼를 하든 똥을 누든 할건데;; --ㅜ

한빈님, 여기는 강분도님 Helpdesk가 아닙니다. 커뮤니티가 커뮤니티를 돕기 위해 있는 곳이에요. 포럼에 - 특히 질답란에 새 글타래를 올리실땐 한 개인이 아니라 전체를 대상으로 말을 건다고 생각하시고 글을 올려 주셨으면 합니다.

[quote="Vulpes":k68aye9n]한빈님, 여기는 강분도님 Helpdesk가 아닙니다. 커뮤니티가 커뮤니티를 돕기 위해 있는 곳이에요. 포럼에 - 특히 질답란에 새 글타래를 올리실땐 한 개인이 아니라 전체를 대상으로 말을 건다고 생각하시고 글을 올려 주셨으면 합니다.[/quote:k68aye9n]
에이~~ 아직 어리잖아요~~
어느 정도 실수는 넓은 마음으로 이해해 주어야 한다고 생각합니다.

(한빈님, 그래도 포럼과 채팅을 혼동하시면 안됩니다. ^^ )

lm-sensor 최신 버전을 설치해볼것

http://www.phoronix.com/scan.php?page=s ... LM_Sensors

그래도 안되면 커널소스를 설치하고
아래 2.6.26 amd k10 temp 커널 패치를 참고 하여 수정 한후 모듈 컴파일 해보십시요
그리고 온도에 집착 하시면 그냥 시피유에 쿨러뻬고 손대고 있어도 되는데… :mrgreen:

[code:6gilejk7]
diff -Naupr linux-2.6.26.2/drivers/hwmon/Kconfig linux-2.6.26.2-k10temp/
drivers/hwmon/Kconfig
— linux-2.6.26.2/drivers/hwmon/Kconfig 2008-08-06
10:19:01.000000000 -0600
+++ linux-2.6.26.2-k10temp/drivers/hwmon/Kconfig 2008-08-18
22:50:04.155586212 -0600
@@ -165,6 +165,18 @@ config SENSORS_K8TEMP
This driver can also be built as a module. If so, the module
will be called k8temp.

+config SENSORS_K10TEMP

  •   tristate &quot;AMD Phenom temperature sensor&quot;
    
  •   depends on X86 &amp;&amp; PCI &amp;&amp; EXPERIMENTAL
    
  •   help
    
  •     If you say yes here you get support for the temperature
    
  •     sensor(s) inside your CPU&#46; Supported is whole AMD K10
    
  •     microarchitecture&#46; Please note that you will need at least
    
  •     lm-sensors 2&#46;10&#46;1 for proper userspace support&#46;
    
  •     This driver can also be built as a module&#46;  If so, the module
    
  •     will be called k10temp&#46;
    

config SENSORS_AMS
tristate "Apple Motion Sensor driver"
depends on PPC_PMAC && !PPC64 && INPUT && ((ADB_PMU && I2C = y)
|| (ADB_PMU && !I2C) || I2C) && EXPERIMENTAL
diff -Naupr linux-2.6.26.2/drivers/hwmon/Makefile linux-2.6.26.2-k10temp/
drivers/hwmon/Makefile
— linux-2.6.26.2/drivers/hwmon/Makefile 2008-08-06
10:19:01.000000000 -0600
+++ linux-2.6.26.2-k10temp/drivers/hwmon/Makefile 2008-08-18
22:50:26.118591131 -0600
@@ -45,6 +45,7 @@ obj-$(CONFIG_SENSORS_IBMAEM) += ibmaem.o
obj-$(CONFIG_SENSORS_IBMPEX) += ibmpex.o
obj-$(CONFIG_SENSORS_IT87) += it87.o
obj-$(CONFIG_SENSORS_K8TEMP) += k8temp.o
+obj-$(CONFIG_SENSORS_K10TEMP) += k10temp.o
obj-$(CONFIG_SENSORS_LM63) += lm63.o
obj-$(CONFIG_SENSORS_LM70) += lm70.o
obj-$(CONFIG_SENSORS_LM75) += lm75.o
diff -Naupr linux-2.6.26.2/drivers/hwmon/k10temp.c linux-2.6.26.2-k10temp/
drivers/hwmon/k10temp.c
— linux-2.6.26.2/drivers/hwmon/k10temp.c 1969-12-31
17:00:00.000000000 -0700
+++ linux-2.6.26.2-k10temp/drivers/hwmon/k10temp.c 2008-08-18
22:35:56.898587937 -0600
@@ -0,0 +1,191 @@
+/*

    • k10temp.c - Linux kernel module for hardware monitoring
    • Copyright (C) 2008 Rudolf Marek <r.ma...@assembler.cz>
    • Inspired from the k8temp driver.
    • This program is free software; you can redistribute it and/or modify
    • it under the terms of the GNU General Public License as published by
    • the Free Software Foundation; either version 2 of the License, or
    • (at your option) any later version.
    • This program is distributed in the hope that it will be useful,
    • but WITHOUT ANY WARRANTY; without even the implied warranty of
    • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    • GNU General Public License for more details.
    • You should have received a copy of the GNU General Public License
    • along with this program; if not, write to the Free Software
    • Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    • 02110-1301 USA.
  • */

+#include <linux/module.h>
+#include <linux/delay.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/jiffies.h>
+#include <linux/pci.h>
+#include <linux/hwmon.h>
+#include <linux/hwmon-sysfs.h>
+#include <linux/err.h>
+#include <linux/mutex.h>
+
+/* 1000 / 8 = 125 no mask because we shift from bit 31 */
+#define TEMP_FROM_REG(val) (((val) >> 21) * 125)
+#define REG_TEMP 0xa4
+
+struct k10temp_data {

  •   struct device *hwmon_dev;
    
  •   struct mutex update_lock;
    
  •   const char *name;
    
  •   char valid;             /* zero until following fields are valid
    

*/

  •   unsigned long last_updated;     /* in jiffies */
    
  •   /* registers values */
    
  •   u32 temp;               /* raw value */
    

+};
+
+static struct k10temp_data *k10temp_update_device(struct device *dev)
+{

  •   struct k10temp_data *data = dev_get_drvdata(dev);
    
  •   struct pci_dev *pdev = to_pci_dev(dev);
    
  •   u8 tmp;
    
  •   mutex_lock(&amp;data-&gt;update_lock);
    
  •   if (!data-&gt;valid
    
  •       || time_after(jiffies, data-&gt;last_updated + HZ)) {
    
  •           pci_read_config_dword(pdev, REG_TEMP, &amp;data-&gt;temp);
    
  •           data-&gt;last_updated = jiffies;
    
  •           data-&gt;valid = 1;
    
  •   }
    
  •   mutex_unlock(&amp;data-&gt;update_lock);
    
  •   return data;
    

+}
+
+/*

    • Sysfs stuff
  • */

+static ssize_t show_name(struct device *dev, struct device_attribute

  •                    *devattr, char *buf)
    

+{

  •   struct k10temp_data *data = dev_get_drvdata(dev);
    
  •   return sprintf(buf, &quot;%s\n&quot;, data-&gt;name);
    

+}
+
+
+static ssize_t show_temp(struct device *dev,

  •                    struct device_attribute *devattr, char *buf)
    

+{

  •   struct sensor_device_attribute_2 *attr =
    
  •       to_sensor_dev_attr_2(devattr);
    
  •   int core = attr-&gt;nr;
    
  •   int place = attr-&gt;index;
    
  •   struct k10temp_data *data = k10temp_update_device(dev);
    
  •   return sprintf(buf, &quot;%d\n&quot;,
    
  •                  TEMP_FROM_REG(data-&gt;temp));
    

+}
+
+/* core, place */
+
+static SENSOR_DEVICE_ATTR_2(temp1_input, S_IRUGO, show_temp, NULL, 0, 0);
+static DEVICE_ATTR(name, S_IRUGO, show_name, NULL);
+
+static struct pci_device_id k10temp_ids[] = {

  •   { PCI_DEVICE(PCI_VENDOR_ID_AMD, 0x1203) },
    
  •   { 0 },
    

+};
+
+MODULE_DEVICE_TABLE(pci, k10temp_ids);
+
+static int __devinit k10temp_probe(struct pci_dev *pdev,

  •                             const struct pci_device_id *id)
    

+{

  •   int err;
    
  •   u8 scfg;
    
  •   u32 temp;
    
  •   struct k10temp_data *data;
    
  •   if (!(data = kzalloc(sizeof(struct k10temp_data), GFP_KERNEL))) {
    
  •           err = -ENOMEM;
    
  •           goto exit;
    
  •   }
    
  •   data-&gt;name = &quot;k10temp&quot;;
    
  •   mutex_init(&amp;data-&gt;update_lock);
    
  •   dev_set_drvdata(&amp;pdev-&gt;dev, data);
    
  •   /* Register sysfs hooks */
    
  •   err = device_create_file(&amp;pdev-&gt;dev,
    
  •                      &amp;sensor_dev_attr_temp1_input&#46;dev_attr);
    
  •   if (err)
    
  •           goto exit_remove;
    
  •   err = device_create_file(&amp;pdev-&gt;dev, &amp;dev_attr_name);
    
  •   if (err)
    
  •           goto exit_remove;
    
  •   data-&gt;hwmon_dev = hwmon_device_register(&amp;pdev-&gt;dev);
    
  •   if (IS_ERR(data-&gt;hwmon_dev)) {
    
  •           err = PTR_ERR(data-&gt;hwmon_dev);
    
  •           goto exit_remove;
    
  •   }
    
  •   return 0;
    

+exit_remove:

  •   device_remove_file(&amp;pdev-&gt;dev,
    
  •                      &amp;sensor_dev_attr_temp1_input&#46;dev_attr);
    
  •   device_remove_file(&amp;pdev-&gt;dev, &amp;dev_attr_name);
    

+exit_free:

  •   dev_set_drvdata(&amp;pdev-&gt;dev, NULL);
    
  •   kfree(data);
    

+exit:

  •   return err;
    

+}
+
+static void __devexit k10temp_remove(struct pci_dev *pdev)
+{

  •   struct k10temp_data *data = dev_get_drvdata(&amp;pdev-&gt;dev);
    
  •   hwmon_device_unregister(data-&gt;hwmon_dev);
    
  •   device_remove_file(&amp;pdev-&gt;dev,
    
  •                      &amp;sensor_dev_attr_temp1_input&#46;dev_attr);
    
  •   device_remove_file(&amp;pdev-&gt;dev, &amp;dev_attr_name);
    
  •   dev_set_drvdata(&amp;pdev-&gt;dev, NULL);
    
  •   kfree(data);
    

+}
+
+static struct pci_driver k10temp_driver = {

  •   &#46;name = &quot;k10temp&quot;,
    
  •   &#46;id_table = k10temp_ids,
    
  •   &#46;probe = k10temp_probe,
    
  •   &#46;remove = __devexit_p(k10temp_remove),
    

+};
+
+static int __init k10temp_init(void)
+{

  •   return pci_register_driver(&amp;k10temp_driver);
    

+}
+
+static void __exit k10temp_exit(void)
+{

  •   pci_unregister_driver(&amp;k10temp_driver);
    

+}
+
+MODULE_AUTHOR("Rudolf Marek <r.ma...@assembler.cz>");
+MODULE_DESCRIPTION("AMD K10 core temperature monitor");
+MODULE_LICENSE("GPL");
+
+module_init(k10temp_init)
+module_exit(k10temp_exit)
[/code:6gilejk7]

그나저나 이 모듈도 만약 커널 업그레이드를 할경우 수정을 계속 해야하기 때문에 그냥 커널에 커널 버젼을 (uname -r) 로 지정할까요??

일단 커널버젼을 '(uname -r)'로 바꾸고 했는데 일단 예나 지금이나 계속 에러를 뿜내요. 그런데 커널 소스라니요??