0

私はtms320dm368プロセッサを搭載したleopardターゲットボードにLinuxOSを搭載しています。カーネルとrfsのみを含むrawボードです。ターゲットボードに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/rcX.d/vcc_app、実行するinitレベルのXを変更する必要があります。init5で実行する場合は、スクリプトを次の場所に配置する必要があります。

/etc/rc5.d/vcc_app

初期化レベルの詳細については、このリンクを確認してください

/etc/rc.local また、一部のディストリビューションでは、またはでスクリプトを起動するコマンドを/etc/rc.d/rc.local追加し、存在するファイルを確認してコマンドを追加できます。

于 2012-05-25T12:26:51.637 に答える
0

ボード上に実際に何があるのか​​を知ることは非常に興味深いことです - あなたはディストリビューションを持っていないと主張していますが、ある種のディストリビューションでのみ利用可能なもの (/etc/init.d) を使用しています。

したがって、実際にディストリビューションを使用しないと仮定すると、シェルがなく、init システムがないことを意味します。

1 つのアプリケーションのみを実行する必要がある場合は、シェルなどは必要ありません。アプリケーションを静的にリンクし、rootfs に /sbin/init、/etc/init、/bin/init として配置するだけです。Linux カーネルの main.c init_post()を参照してください。

それ以外の場合、複数のアプリケーションがある場合は、init システムが必要です。簡単なものはuxlaunchで、他のオプションにはsystemdまたはbusybox initが含まれます。busybox init を使用しても、システムに必ずしもシェルが必要なわけではありません。

市場に出回っているいくつかのデバイスでは、シェルなしで Linux が実行されており、その中には多くのテレビが含まれています。

于 2012-05-26T19:37:13.447 に答える