問題タブ [embedded-linux]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - プロセスとターミナル間の通信をスパイするにはどうすればよいですか?
ターミナルと通信するサードパーティによって開発された Linux プロセスがあります。デバッグのために、通信が行き来するのを見たいです。
cat
(一方向を見るために)トリックを行うと思うかもしれません:
...しかし、そうではありません。むしろ、cat
アプリケーション向けのデータの半分を盗みますが、これはほとんど価値がありません。
third-party-app は、想定するようにハードコーディングされて/dev/tty
います。
通信をスパイするために私が見つけた 1 つの方法は、/dev/tty
デバイスの名前を変更し、その場所で/dev/real_tty
呼び出される名前付きパイプを作成することです。/dev/tty
次に実行します:
... から名前付きパイプにデータ/dev/real_tty
をコピーすることで、少なくとも の出力を確認できます。/dev/real_tty
/dev/tty
stdout
この種の機能は機能しますが、非常に危険な感じがし、デバイスを交換するという巧妙な方法に依存しています。また、名前付きパイプは一方向にしかデータを伝送しないため、双方向には機能しません。
これを行う正しい方法は何ですか?
不思議に思っている方のために説明すると、TTY デバイスはマイクロコントローラーへの RS-232 リンクです。情報は機密でも安全でもありません。すべてのプロセス (アプリケーションとスパイ) は root として実行できます。
licensing - 組み込み用途向けに OS ソフトウェアを再パッケージ化する際の GPL ライセンス
現在、Linux ベースの組み込みデバイスを構築していますが、コンパイル済みのバイナリ パッケージを使用して構築しているため、この場合 GPL に準拠するには何が必要なのか疑問に思っています。GPL ライセンス テキストのコピーと、関連するディストリビューションへのポインターを含めるだけで十分でしょうか?
私は、エンドユーザーが製品の内部をいじってはならないという会社の見解を Linux GPL と一致させることができるかどうか、または弾丸をかじって FreeBSD に切り替える必要があるかどうかを決定しています。
embedded - ハードウェア ボタンの状態のポーリング
200mhz MIPS CPU でembedde linux を実行しているデバイスに次の機能を実装する必要があります: 1) リセット ボタンが押されたままの時間が 1 秒未満の場合 - 再起動に進みます 2) リセット ボタンが押されたままになっている場合3秒以上 - NVRAM からデフォルト値でシステムの構成を復元し、再起動します。
私は 2 つの方法を考えています: 1) GPIO ioctl を介して適切なタイミングでボタンの状態を常にポーリングするデーモン (オーバーヘッドが大きすぎる可能性があり、多くのコンテキスト切り替えが必要ですか?) 2) ボタンをポーリングし、タイミングを測定し、たとえば、 /proc を介して、デーモンまたはシェルスクリプトがチェックして必要なことを実行できるユーザー空間に状態を送信します。
どちらの場合も、時間を測定する方法がわかりません:(何を提案/推奨しますか?
linux - mpc8xxx_gpio.c デバイスドライバーの使い方
デバイスドライバー開発初心者です。MPC837xERDB 評価ボードの GPIO にアクセスしようとしています。
カーネルを にアップグレードし、linux-2.6.28.9
サポートを有効にしましたmpc8xxx_gpio.c
。起動時に、2 つのgpio
コントローラーを正常に検出します。
今私の質問は、gpio
ピンと通信するためにどのように使用するのですか? ファイル内のコードを変更してmpc8xxx_gpio.c
やりたいことを実行する必要がありますか、またはカーネルで提供されるgpios
標準API ( / ) を使用できますか。標準のカーネル API も試してみましたが、失敗しました。これが私のコードです:gpio
gpio_request()
gpio_free()
次の O/P が得られます。
誰かが私にサンプルコードなどを提供できますか? 実際にGPIOのピン番号を設定しようとしています。9 はボード上の LED に接続されているため、アクティブ Low になります。
makefile - カーネルモジュールのクロスコンパイル
Intel x86ホストでARMアーキテクチャ用のhelloworldカーネル(2.6.x)モジュールをクロスコンパイルしようとしています。
ARMのコードソースツールチェーンは次の場所にあります:/ home / ravi / worksheet / hawk / arm-2009q3
カーネルソースは次の場所にあります:/ home / ravi / worksheet / hawk / linux-omapl1
私のMakefile:
makeを実行すると、生成される.koはホストマシンの.koであり、これはmakefileがクロスコンパイラではなくネイティブコンパイラを呼び出していることを意味します。何が間違っているのでしょうか。クロスコンパイラのバイナリは私のパスにあります。
testing - 迅速なテストには、移植可能な Linux または移植可能なプログラミング言語?
私の現在の役割では、お客様の環境を模倣した環境をセットアップし、さまざまなチェックを実行して問題を再現し、分析する必要があります。
おそらく、XP、Server 2003、Server 2008 などの Windows 環境での作業は、扱いやすい Linux ベースのシェルや Perl などのコマンドライン プログラミング言語がなければ、少しつらいものです。
もちろん、すべてを新しいシステムにインストールして作業を開始することもできますが、少し時間がかかり退屈です。
それで、これを回避するより良い方法はどれですか?
Qemuを使用して、ホストシステムの干渉を必要としないポータブルLinuxイメージを作成できます。使用するために再起動する必要はありません。これの弱点は、ホストしている Windows と組み込み Linux の間でファイルを転送する方法を見つけなければならないことです。良い点は、Linux の兵器庫にあるすべての武器を使用できることです。
または、Movable Python、Perl の変種、組み込み言語としての Lua など、適切な移植可能なプログラミング言語を探し始めることもできます。長所: 言語に精通している。短所:スクリプトを使用してすべてを行う必要があります。
私の日々の活動は次のとおりですが、これらに限定されません。
テキスト ログや xml をチェックしています。
さらに分析するために、ログから重要なセクションを grep します。
アプリケーションサーバーの構成などの自動化プロセスもあります...
自動化された機能テストと結果の比較
一部のシステム管理者の仕事、ネットワーク診断、プロセスとサービスのチェックなど...
良いアイデアはありますか?よろしくお願いします!
graphics - 組み込み Linux に適したグラフィック ライブラリはどれですか?
キャラクタ LCD 用の GUI または組み込み Linux 用の単純なグラフィック LCD の開発に最適なグラフィック ライブラリはどれですか。? パフォーマンスとサポートが優れているのはどれですか?
ありがとう、ニール
windows - Nano-X (マイクロウィンドウ) プログラミング ガイド?
Nano-X (Microwindow、Embedded GUI) の基本的なプログラミング ガイドを知りたいです。Windows ベースのプログラミングであることは知っていますが、より良い方法を学べるチュートリアルが必要です。また、アイコンや画像をLCDに表示したいのですが、Nano-XやMicrowindowでどのように可能ですか?
Microwindow API (Nano-X ではない) のユーザー API マニュアルも必要ですか? 誰かが私を助けることができますか?
ありがとう、ニール
embedded-linux - クロスコンパイル中にmodules.depとld.so.cacheを準備するにはどうすればよいですか?
私はppc用のx86でカーネルモジュールといくつかのライブラリをクロスコンパイルしています。ホストシステムでld.so.cacheとmodules.depを作成することは可能ですか?
PS私はELDKツールを使用しています。
linux - montavista Linux でデーモン プロセスのコア ダンプを有効にするにはどうすればよいですか?
stackoverflow がこれに適した場所かどうかはわかりませんが、これは組み込み開発用であり、開発用でもあるコア ダンプが必要なので、ここで質問するのが最適であると考えました。
プログラムがコアを生成する方法でクラッシュするたびに /foo/bar/core に書き込まれるように、グローバル コア ダンプを有効にしようとしています。プログラムがクラッシュするたびに、古いコア ファイルが上書きされます。現在、私は次のことを試しました:
これを limits.conf に追加する
これを sysctl.conf に追加します。
これはうまくいきませんでした。システムを起動し、 を実行してsysctl -p
からulimit -c unlimited
手動で (init スクリプトを使用せずに) プロセスを再起動すると、/foo/bar にコア ファイルが作成されますが、PID が追加されています。どんな助けでも大歓迎です。