一千萬個為什麽

搜索

我的Raspberry Pi有時會凍結

所以在一些幫助找到問題之後,我發現了問題(我希望如此)。現在我需要幫助來解決它。 我的設置:

Raspberry Pi 2型號B 運行owncloud。 向世界開放。 (nginx的) Raspbian。完全是最新的。 有一個專門的電源,從來沒有給我的其他Pi問題,甚至試過另一個電源。 由Lan連接 有一個帶有自帶電源的外置硬盤。 通過SFTP功能非常類似於NAS。 使用鍵盤連接到電視,以進行調試。

有時它會在幾小時內凍結,這次是在幾天之後。 這最後一次我插入HDMI看到一個充滿了我不明白的消息的屏幕。它結束於: bad:從空閑線程調度! 並沒有響應任何東西, ctrl + c 沒有任何作用,除了拉動插頭和重新啟動。 有人可以幫幫我嗎?

的修改 我的另一個崩潰是這裏的消息是: note: nginx[] exited with preempt_count 2

最佳答案

這是不好的,如 bad: [,sign;它可能與驅動程序有關,可能是Pi的 SMSC以太網控制器<�的驅動程序/ a>,可能更為模糊,因為它可能不會影響很多人。 那些控制臺消息來自內核,最後一個只在內核源代碼中出現一次,在 kernel/sched/idle_task.c 中(如果這開始聽起來像gobbledygook那麽我只有一點)。它已存在至少十年(可能接近兩年),但在 linux內核郵件列表存檔中很少引用它或一般在線(並且字面上只有一對與“樹莓”相關)。

“閑置任務”是在沒有其他任何事情可以運行時運行的任務。包括這個在內的任務可以被搶占,因此CPU可以用來做更緊急的事情;他們也可以使自己處於非活動狀態(也就是空閑狀態),這樣就可以發生其他事情

但不這個,因為它已經是“空閑任務”了。它不能聲稱它無關,因為當其他一切已經說過時,它應該發生。它應該在被搶占之前不做任何事情。 但是,內核空間編程錯誤可能會導致空閑任務 聲稱它不忙並且應該處於非活動狀態。由於這絕對不應該發生,因此空閑任務會報告此錯誤並生成堆棧跟蹤,這是對最近執行的代碼的引用列表,導致問題。這就是“壞”消息之前的所有內容“。堆棧跟蹤導致過去,所以最後一件事情是最早發生的事情(nb。,左邊的消息時間戳與此無關)。在屏幕的頂部有一些對TCP/IP網絡模塊的引用,而且實際上觸發錯誤的是什麽(這就是為什麽我猜測以太網驅動程序,但不一定如此)。 我不能說這個錯誤本身是否對系統是致命的,但它可能,並且至少與事件鏈有關。 無論如何...

查看左側的時間戳(啟動後的秒數,看起來像3-4天),該堆棧跟蹤至少需要一秒時間才能生成並且希望它或者在記錄之前發生的相關內容。雖然新版本的Raspbian(8)除了舊的記錄器(rsyslogd)之外還使用了新的記錄器(journald),但所有版本仍然使用後者將所有內容以純文本形式記錄到/var/log/syslog ,包括來自內核的東西。 系統日誌中的所有內容都有一個註明日期的時間戳;對於內核的東西,除了啟動後的秒數。例如。, Nov 14 12:20:38 localhost kernel: [142480.895132] [] _markinode_dirty+0x24a/0x310 ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^

This is also part of a stack trace (noticeable because there's a there too); they are not necessarily indications of a fatal error. Point being, yours will be tagged something like that (your hostname may not be localhost) and if you can't find it in syslog then you can at least find the last thing there (also, with a little math you can correspond kernel timestamps to syslog timestamps). “最後一件事”將在下一次重啟的消息之前。其中第一個將包括 localhost rsyslogd:[blah blah blah] starting (同樣你的主機名可能不同),然後一長串內核消息標記為 [0.000000] 。在此時的Pi上,syslog時間戳將是 Dec 31 ,因為時鐘尚未正確設置。

轉載註明原文: 我的Raspberry Pi有時會凍結