2015-10-19 313 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试过了。 –