2015-10-19 314 views
1

我面臨着一個「小」問題。我創建了一個腳本來啓動一個使用SPI端口的程序。如果我手動運行這個腳本,它會毫無問題地啓動。但如果我嘗試在Raspberry Pi中用startx啓動它,Pi將無法打開SPI端口,並且會引發錯誤。還有什麼我不能手動打開SPI端口。在啓動時自動運行shell腳本(自動啓動)

有沒有人有想法如何解決這個問題?腳本必須持續運行,所以我認爲Pi在startx之後嘗試加載驅動程序,但是我的程序運行失敗。它也可以,如果它會在加載完畢後啓動。

回答

0

如果不進行登錄,則使用init.d開始啓動。但是,如果有人(並且只有一個)會登錄Pi,則可以從$HOME/.profile開始腳本。 Here有關自動執行腳本的一些指導。

+0

沒有。不幸的是它仍然不起作用。我試圖在「前臺」和後臺(用&符號)運行這個腳本,並且在這兩種情況下它都顯示相同的「錯誤」。它「說」:無法連接到SPI0.0。我在開機後等待60秒(睡眠),所以我真的不知道問題是什麼。也許只是樹莓派不適合這種「複雜」的東西。 –

+0

肯定PI可以做到這一點。作爲一個硬件端口,你可能真的需要更復雜的方法。你已經使用過'init.d'嗎?類似[this](http://unix.stackexchange.com/questions/20357/how-can-i-make-a-script-in-etc-init-d-start-at-boot)。在腳本嘗試自行加載後無法使用端口意味着腳本獲得了對硬件的訪問權限,但是某些許可/確認/傳遞丟失了,但「無法連接」可能是錯誤的地址或缺少管理權限。 – Ziul

+0

我不用sudo運行腳本,但我都沒有正常運行程序。該腳本不加載驅動程序,我希望操作系統會自動執行(腳本在啓動後等待120秒)。如果我知道如何從腳本手動加載驅動程序,那將是很棒的,你可能有什麼想法嗎?最後是我已經用init.d試過了。 –