2013-08-03 35 views
0

我得到這樣的日誌文件是什麼導致了這個問題以及如何解決..?在啓動我的linux內核時,從內核日誌中的警告中識別代碼

------------[ cut here ]------------ 
WARNING: at drivers/gpio/gpiolib.c:1423 0xa02147ab() 
Modules linked in: 
Backtrace: no frame pointer 
---[ end trace ccc3de96c2b87179 ]--- 
------------[ cut here ]------------ 
WARNING: at drivers/gpio/gpiolib.c:1423 0xa02147ab() 
Modules linked in: 
Backtrace: no frame pointer 
---[ end trace ccc3de96c2b8717a ]--- 
------------[ cut here ]------------ 
WARNING: at drivers/gpio/gpiolib.c:1423 0xa02147ab() 
Modules linked in: 
Backtrace: no frame pointer 
---[ end trace ccc3de96c2b8717b ]--- 
ds3232 0-0068: rtc core: registered ds3232 as rtc0 
i2c-gpio i2c-gpio.0: using pins 27 (SDA) and 28 (SCL) 
+1

這個問題是不是編程 - 它屬於對Serverfault。 –

+0

Linux內核版本和拱請... – TheCodeArtist

+0

內核版本2.6.33 – amar

回答

1

狠抓以下行的內核日誌:
WARNING: at drivers/gpio/gpiolib.c:1423 0xa02147ab()

這意味着該打印從文件drivers/gpio/gpiolib.c


WARN_ON()的行號1423觸發在Linux Kernel中從drivers/gpio/gpiolib.c:1423觸發的

int __gpio_get_value(unsigned gpio) 
{ 
     struct gpio_chip  *chip; 

     chip = gpio_to_chip(gpio); 
     WARN_ON(extra_checks && chip->can_sleep); 
     return chip->get ? chip->get(chip, gpio - chip->base) : 0; 
} 

:上面的代碼是(上拱v2.6.33 = 86)。在繼續上述分析之前,請確認您確實在x86硬件上運行Linux Kernel v2.6.33。行號隨內核版本而變化。在不同的內核版本的同一行上,您可能會偶然碰到另一個函數中的WARN_ON()


更新

因爲這個問題而與RTC-DS3232外圍設備(這是工作,不然罰款)通信造成我們可以禁用警告。

執行此操作的一種方法是在Linux內核版本配置中禁用CONFIG_DEBUG。這又會禁用gpio驅動程序中的extra_checks

或者一個可以在drivers/gpio/gpiolib.c:34覆蓋的extra_checks定義如下

/* When debugging, extend minimal trust to callers and platform code. 
* Also emit diagnostic messages that may help initial bringup, when 
* board setup or driver bugs are most common. 
* 
* Otherwise, minimize overhead in what may be bitbanging codepaths. 
*/ 
#ifdef DEBUG 
#define extra_checks 1 
#else 
#define extra_checks 0 
#endif 

/* override extra_checks irrespective of debug-mode */ 
#define extra_checks 0 
+0

我已經找到這在drivers/gpio/gpiolib.c和行:1423我沒有得到確切的情況是什麼導致這引導了..?任何其他可能的線索來解決這個問題 – amar

+0

你在測試什麼設備?你可以發佈完整的內核日誌從開機?... – TheCodeArtist

+0

我綁定RTC Ds3232與i2c和測試此lpc1788皮質m3。它的外觀由內核啓動日誌我的設備註冊與內核,我可以通過進入/sys/device/platform/i2c-gpio.0/i2c-0/0-0068/rtc/rtc0#貓來測試我的設備工作日期。當我執行貓日期時,它會顯示警告,就像我在我的問題中提到的日期一樣。 – amar