タグ付けされた質問 「embedded」

ネットワーク機器、携帯電話、メディアプレーヤー、セットトップボックスなどの組み込みコンピュータシステムでのUnixの使用。

2
RAMの最適化/ OOMの失敗
この質問はかなり長いので、最初に質問をしてから、質問にたどり着く方法を説明します。 (Busyboxベースの)十分な連続したRAMがなかったため、rmは実行されませんでしたか? その場合、システムの再起動に頼らずにDMAをデフラグする軽量な方法はありますか? そうでない場合、何が原因ですか?どうすれば将来的にそれを防ぐことができますか? この数日間、テストシステムがかなり集中的に実行されていた後、Telnetでシステムにアクセスし、テスト結果を確認しました。データを削除するようになったとき、システムはコマンドラインを返しました(コマンドが正しく実行されたかのように)。別の結果セットをディレクトリで確認するようになったとき、ファイルがまだ存在しているのを確認しました(lsを使用)。 この後、期待どおりに実行されないシェルコマンドが増えていることに気付きました。 rmが正しく実行できなかった後、dmesgからの出力から始めます。 プロセス6821(rm)からの長さ61440の割り当てに失敗しました DMA CPUあたり: CPU 0:hi:0、btch:1 USD:0 Active_anon:0 active_file:1 inactive_anon:0 inactive_file:0 unevictable:6 dirty:0 writeback:0 stable:0 free:821 slab:353 mapped:0 pagetables:0 bounce:0 DMAフリー:3284kB分:360kB低:448kB高:540kB active_anon:0kB inactive_anon:0kB active_file:4kB inactive_file:0kB unevictable:24kB present:8128kB pages_scanned:0 all_unreclaimable?番号 lowmem_reserve []:0 0 0 DMA:31 * 4kB 47 * 8kB 42 * 16kB 64 * …
11 linux  memory  embedded 

1
Beagleboard用のCross Linux From Scratch(CLFS)用のGCCクロスコンパイラーを構築する方法
現在、私はからの命令でゼロから組込みLinuxを構築しようとスクラッチからのクロスのLinux。 GCCクロスコンパイラーをコンパイルしようとするまで、すべてがうまくいきました。Beagleboard-xM用のLinuxを構築したいので、次の設定を選択しました。 export CLFS_ABI="aapcs-linux" export CLFS_HOST="x86_64-cross-linux-gnu" export CLFS_TARGET="armv7a-unknown-linux-uclibceabi" export CLFS_ARCH="arm" export CLFS_ENDIAN="little" export CLFS_ARM_ARCH="armv7" export CLFS_ARM_MODE="arm" export CLFS_FLOAT="hard" export CLFS_FPU="neon" いいえ、このページの手順を実行しようとすると、コマンドでmake all-gcc all-target-libgccエラーが発生します。 checking for armv7a-unknown-linux-uclibceabi-gcc... /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include checking for suffix of object files... configure: error: in `/mnt/clfs/sources/gcc-build/armv7a-unknown-linux-uclibceabi/libgcc': configure: error: cannot compute suffix of …

4
いつでも電源が切れても安全にSDカードを使用する
私たちは、OSとアプリケーション(250-500Meg)用の小さめの内部NANDデバイスとデータ用の8Gb SDHC SDカードを備えたSDカードを備えた小さな組み込みLinuxシステム(2.6.35-ish)に取り組んでいます。 ユニットの電源はいつでも切ることができます。 システムはSDカードにデータを保存する必要があります。このデータはかなり重要です...それはシステムの全体的な目的です。システムは通常、遠隔地のネットワークから完全に切断されており、データは4〜8週間ごとにスニーカーネット経由で取得されます。 現在、SDカードにVFATが含まれています。これは主に、最初のテストクライアントが簡単に手動でWin7ラップトップにデータをコピーできるようにするためでした。 しかし、私は今、間違った時間に停電が発生してデータが失われるまでは時間の問題だと心配しています。 データの損失を防ぐためにそのようなシステムを構成する最良の方法は何ですか?JFFS2は、データの書き込み方法に関しては私が望んでいるように聞こえます(そして、パフォーマンスのニーズはまったく高くありません)が、block2mtdを使用するのはかなり慎重に聞こえます。それと。 これを行う最良の方法は何ですか? 編集 私は今、ファイルシステムVFATを残して、一度に0xFFで満たされた日サイズのファイルを割り当てることを考えています。これにより、電源サイクルの障害の発生を大幅に制限できます。その後、事前に作成されたブロック内のレコードのみを追加できます。SDカードがそれほど愚かではなく、0xFF領域への書き込み/消去レベルの書き込みができないことを願っています。 noatimeを使用できますが、変更された時間フィールドへの書き込みを防ぐための同等のVFAT nomtimeはありますか?新しい日のファイルが作成されるまで、メタデータの更新をまったく防止する方法が必要です。 編集2 電子スタック交換の誰かが、NANDにもECCデータがあることを思い出させたので、消去の必要性を防ぐ方法はありません。 それで、block2mtdを介したJFFS2はこの状況で適切でしょうか? 編集3 思ったよりひどい。私が持っているSDカードは、ディスクにまったく同じ内容を書き込んでも、データブロックを消去します。消去ブロックは64KBであり、大きすぎて書き込みを完全に遅延させることはできません。NANDフラッシュ(書き込み動作を制御できます)に最大128KBのデータを一種のジャーナルに保存し、SDカードのVFATパーティションにある128KBに整列したファイルに128KBブロックを書き込みます(他のSDカードに128KBの消去ブロックがある場合)。

1
qemuを介してDebian armelでDebian i386バイナリを実行する
このガイドに従って、Debian armelを実行しているSheevaPlugにVentriloサーバーをセットアップしようとしています。このページでは、QEMUを使用してi386用に作成されたバイナリを私の腕のシステムで実行できると述べています。 qemuの設定では、qemu、qemu-user、qemu-libc-i386をインストールする必要があると書かれています。最初の2つはapt-getで見つかりましたが、qemu-libc-i386はパッケージではありません。だから私はこのようにventriloサーバーを実行するためにqemuを実行しようとしました: # qemu-i386 ./ventrilo_srv /lib/ld-linux.so.2: No such file or directory それはld-linux.so.2私がarmelとして持っているもののi386バージョンであるようld-linux.so.3です。 そのため、Linuxの別のディストリビューションのハウツーは知っていますが、クレイジーなディストリビューションでできれば、Debianでこれを実行できるはずです。libc-i386をインストールして実行できるようにするためのパッケージはありますか(x64システムのia32-libsに似ていますか?)so.2別のi386システムからもコピーしようとしましたが、取得できませんでしたどこでも。
10 debian  embedded  arm  qemu 

2
破損しないファイルシステム(データ損失は許容可能)
この問題を中心に展開している既存のトピックがいくつかありますが、私が求めることは少し異なります。組み込みLinuxにSDカードを使用していますが、電力損失に悩まされています。いつかハードウェアを変更したり、適切に終了したりすることができるかもしれません。しかし、今のところ、大騒ぎすることなく停電に耐えられるファイルシステムを見つけたいと思っています。データの損失は許容されます。私は現在書いているファイルより多くを失いたくないのですが、「マウントできません」、「この10分間fsckを待つ」、または「新しいファイルを作成できません」に直面するよりも、むしろそれを失いたいこのiノードが原因で何かエラーが発生しました。プログラムは続けなければなりません! 私はこれを確実にするために多くの努力をしています。私は工業用グレードのコンポーネントを使用しています。ハードウェアウォッチドッグ、ソフトウェアウォッチドッグ、内部、外部、initによるプログラムの再起動、デーモンによるメモリ、ファイル記述子の常時チェックなど、ウォッチドッグがウォッチドッグを監視し、ウォッチドッグが他のウォッチドッグによって監視されています。 ...しかし、SDカードがマウントされて機能することを保証できないようです。 今の私の最善の策は、SDカードでJFSを使用することです。私のインストールにfsckとfsck.jfsを含めます。(私のRAMと私のフラッシュを食べる600kb +を追加します。これは悪いことです。)そして、毎回の起動時にfsckを実行します(ブート時間が長くなる可能性があります。これはやや悪いことです)。それは少し悲しいようですが。 誰かがより良い方法やより良いファイルシステムを知っていますか? 更新:e2fsprogs-libs(jfsutilsへの依存)は、私のディストリビューションでコンパイルするのが非常に難しいようです。ZFSを調べます(私のディストリビューションにはネイティブではありません。そして、私が必要としないことはたくさんあるようです)。 UPDATE2:私のシステムとテストに関するいくつかの詳細:SDカードストレージは、セカンダリのオプションのストレージです。SDカードは、2Gb-8Gbの工業グレードのmicroSDです。SDカードは、mount -tコマンドでrcを介してマウントされます。オプション「noatime」ではなく「sync」。私のディストリビューションは、3.10カーネルと1.21 busyboxを備えたカスタムAnalog Device風味のuClinuxです。私のプライマリストレージはjffs2を使用したspiフラッシュです。私はそれに関して何の問題も経験したことがありません。利用可能なfsck.jffs2があるかどうかさえわかりません。一方でナンドフラッシュ...しかし、それは別の話です。SDカードの目的は、測定データを保存することです。'monitor'プログラムは結果をファイルに追加し、戦略的な同期配置を備えています。ファイルが所定のサイズを超えると、新しいファイルが作成されます。指定した数のファイルに達すると、最も古いファイルが削除されます。停電が原因で現在の測定ファイルが失われた場合でも、問題はありません。ファイルは通常50〜100 kbで、1つの結果は通常1 kbです。これは初期の開発段階にすぎません。何も修正されていません。組み込みシステムでフラッシュ以外のファイルシステムを扱ったのはこれが初めてです。(x86サーバーでext4を取得しました。) 私はvfatから始めました。デフォルトのファイルシステム。(私は、工場がそれを選択する理由があるかもしれないと考えました。そして、物事がうまくいくならば、私はそれほど気にしません。)私は、組み込みvfatデバイスで電力損失の問題を見たことはありません。WinCEでFATの問題を経験しました。しかし、私の「モニター」プログラムが100-200ファイルに達したとき、それ以上作成することを拒否しました。FATにはルートに特別なファイル制限の問題があり、サブディレクトリに少し大きい問題があるようです。1つのディレクトリに500〜1000個のファイルを作成できるようにする必要があります。したがって、vfatは機能しません。 その後、ext2に切り替えました。起動時にfsckを挿入しませんでした。(私がそうしなければならなかったことを知りませんでした。)1日以内に、「モニター」プログラムは、「iノード何か何か」エラーのためにそれ以上のファイルを作成できませんでした。災害! 私の現在のソリューションは、起動時に「e2fsck -y」を使用したext2です。これまでのところ、それは有望なようです。しかし、e2fsckと「起動時のfsck」の概念全体が私を悩ませています。それ自体によるe2fsckは、私のプライマリフラッシュとRAMの350kb以上を費やしています。(実行されていない場合)これは、これが私の最大のプログラムであることを意味します。それはbusyboxよりも大きいです。それは私のカーネルにほとんど匹敵しています。 私はext3を検討してきました。メタデータをジャーナル化しているので、害はありません。それがどれほど役立つかについては疑問です。私の小さなファイルと制御された同期で、私はカバーされるべきだと思いますか?順序付けされた書き込みシーケンスがあります。データもある程度ジャーナル化されていることを意味します。ただし、これにより非決定的なラグが発生する可能性があります。これは私の状況では悪いです。(それはおそらく問題ではありません。)また、スケジュールされた同期機能があります。例えば。5秒ごとにコミットします。自分の同期を妨げていると思います。SDカードの場合、書き込みが多すぎると良くありません。産業用のものでも。これを無効にする方法に関するドキュメントは見つかりません。そして、ext3はまだ、すべての起動時に実行されるように、fsckを要求します!しかし、ext3はまだ可能性があります。 Ext4。ext3のパフォーマンス問題の多くを修正します。本当にパフォーマンスは必要ありません。そして、私のディストリビューションには組み込みのmkfs.ext4とfsck.ext4がないようです。おそらくそれは問題ではありません。それはそうかもしれません。例えば。e2progs-libs(jfsutilsへの依存関係)には、コンパイルに関する多くの問題があるようです。 JFS、XFS、BRFSS。すべて私のカーネルでサポートされています。現在、ユーザースペースのツールボックスには含まれていません。すべてがかなり大きく複雑なシステムのようです。そして、それらはすべて起動時に「fsck」と同等のものを必要とするようです? 自分のファイルシステムをスローすることも検討しました。常にファイルテーブルのコピーを2つ書き込みます。トラバースするとき、正しいCRCと最新のシーケンス番号を持つものを選択します。2段階の書き込みシーケンスを作成します。一時的に割り当て、コミット時に修正します。fsckは必要ありません。少しナイーブかもしれませんが。 UPDATE3:ところで、組み込みシステム(少なくとも1つ)の性質は、それらが自律的で、無人で、手の届かないところにあり、何年も実行する必要があるということです。fsckのようなプログラムも人間の相互作用を必要とするには、私を這います。

4
LinuxはSmartTVで実行されていますか?
最近、Samsung SmartTVを購入しました。wifi接続を設定した後、http: //ip.comlex.deにアクセスすると、ブラウザーに関する次の情報が得られました。 REMOTE_ADDR:###。###。###。### REMOTE_HOST:XXXXXXXXXXXXXXXXXXX.net REQUEST_TIME:1381093040 QUERY_STRING: HTTP_ACCEPT:text / html、application / xhtml + xml、application / xml、application / vnd.hbbtv.xhtml + xml、application / ce-html + xml、application / vnd.oipf.xhtml + xml; q = 0.9、/ ; q = 0.8 HTTP_ACCEPT_CHARSET:HTTP_ACCEPT_ENCODING:gzip、deflate HTTP_ACCEPT_LANGUAGE:HTTP_REFERER:http : //pagerank.comlex.de/ HTTP_USER_AGENT:Mozilla / 5.0(SMART-TV; X11; Linux i686)AppleWebKit / 535.20 +(KHTML、like Gecko)バージョン/5.0 Safari …

4
電力損失による破損からデータを保護するための最良の保護を提供するファイルシステムはどれですか。
私はx86デバイス上で小型uClibcでbusyboxベースの組み込みシステムを実行しています。私はinitramfsを使用していext3ますが、カスタムのc ++アプリケーションで作成された永続的な測定ログデータを保存するために使用しているIDEモードのコンパクトフラッシュデバイスにカスタムディレクトリをマウントしています。私ext3が読んだいくつかの本(Building Embedded Linux SystemsによるKarim YaghmourとEmbedded Linux PrimerによるChristopher Hallinan)でCFドライブをIDEモードで使用するときの電力損失に対する安全性のために推奨されているので、ファイルシステムを選択しました。これは特に重要であり、データは重要です。 ただし、以前の質問のコメントの一部が原因で、ファイルの書き込み中に停電が発生した場合に破損したext3ファイルを復元する方法と混同しているため、このファイルシステムは、電源によるデータの破損に対する安全性を保証していないようです損失。だから私は知りたいのですが でext3、実際にこのセットアップのために最良の選択? ディスク書き込み操作中の停電は、定期的にファイルに追加しているデータの一部のみを破壊しますか、それともファイル全体を破壊しますか? 停電時に書き込まれていないデータは完全に安全ですか?特に、initramfs.cpioファイルが破損するリスクはありますか? アプリケーションコードでデータを保護するために使用できる方法はありますか(つまり、追加のパーティションを作成し、データをミラーイメージに書き込んで常に2つのコピーが存在するようにします)-アプリケーションにとって速度は実際の問題ではないため、高価なコピー操作です許容されます。 私はこの関連する質問に対する回答を見て読んだことがあります。ジャーナリングファイルシステムは、停電後の破損を保証しますか?、しかしそれは私を混乱させるいくつかのことを完全にはカバーしていません。 私は多くの質問をしていることを認識していますが、多くの資料を読んだにもかかわらず、停電時のデータへのリスクを理解するのに根本的な失敗があったようです。

3
オープンソースルーターのファームウェアオプション?
ルーター向けに設計されたディストリビューションは何ですか?以下を含めてください プロジェクトページへのリンク サポートされているハードウェアリストへのリンク それらを区別するもの、なぜこのオプションを選ぶのか フレンドリーなウェブインターフェース? 上記のフレンドリーなインターフェースは簡単に無効にできますか? 最初にインストールされていないソフトウェアのパッケージ管理?(例:ipkg / opkg) 良いドキュメント?

6
Linuxプログラマブルコントローラ
ホームオートメーションと一般的な楽しいプロジェクトのためのプログラム可能なLinuxコントローラーを探しています。 要件: 電気機器の制御-オン/オフスイッチと調光器(おそらくリレーを使用) センサー(スイッチ、温度など)からアナログデータとデジタルデータを受信する USB接続 Linuxの実行 利点: ネットワーク接続/ Webインターフェイス Pythonサポート 小さな表示画面 キーボードとVGAのサポート 私はかつてHandy Boardをたくさん楽しんでいましたが、数か月前に故障し、多くの重要な機能が不足しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.