0

我的豹目标板上有 linux 操作系统,带有 tms320dm368 处理器。它是一个只有内核和 rfs 的原始板。目标板上没有 linux 发行版(ubuntu、fedora、red hat 等)。我创建了如下脚本文件

#!/bin/sh
echo "my application is here"
./helloworld  # helloworld is our application
  1. 创建脚本文件后,我将其复制到init.d
  2. 我给出了命令chmod +x /etc/init.d/vcc_appvcc_app是我创建的脚本的名称)
  3. 然后我给了命令ln -s /etc/init.d/vcc_app /etc/rc.d/vcc_apprc.d是运行级目录)

但是当我重新启动板时,我的应用程序不会自动执行。谁能帮我吗?

4

2 回答 2

0

知道你在你的板上实际有什么会很有趣——你声称你没有发行版,但你使用的东西(/etc/init.d)只能在某种发行版中使用。

所以假设你真的不使用发行版,这意味着你没有 shell,你没有 init 系统。

如果您只需要运行单个应用程序,则不需要任何 shell 或类似的东西 - 只需将您的应用程序静态链接并将其作为 /sbin/init、/etc/init、/bin/init 放入您的 rootfs 中。请参阅linux 内核 main.c init_post()

否则,如果您有多个应用程序,则需要一个 init 系统。一个简单的是uxlaunch,其他选项包括systemdbusybox init。即使使用busybox init,您仍然不一定需要系统上的shell。

市场上的一些设备都在运行没有外壳的 Linux,包括许多电视机。

于 2012-05-26T19:37:13.447 回答
0

你应该把你的脚本放在 中/etc/rcX.d/vcc_app,将 X 更改为你想要执行的 init 级别,如果你想在 init 5 上运行它,那么脚本应该放在:

/etc/rc5.d/vcc_app

有关初始化级别的更多信息,请查看此链接

此外,在某些发行版中,您可以添加命令以在/etc/rc.local or启动脚本/etc/rc.d/rc.local,检查哪些文件存在并添加命令。

于 2012-05-25T12:26:51.637 回答