問題タブ [initrd]

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.

0 投票する
1 に答える
1259 参照

linux - initramfs、ルートファイルシステムのマウントになぜ必要なのですか?

OS で initramfs が必要な理由、このファイルがないとルート ファイルシステムをマウントできないのはなぜですか? ルート ファイルステムを直接マウントできないのに、仲介者 (intramfs) が必要なのはなぜですか? また、カーネル レベル (カーネル側) からファイル システムをマウントする方法は?

0 投票する
0 に答える
82 参照

linux - Linux initrd イメージで、イーサネットが機能しない

私は、i.Mx6 クアッド コア プロセッサを使用する SABRE SD 開発ボードに取り組んでいます。このボードの initrd イメージを開発しました。カーネルが起動し、initrd イメージが正常にマウントされます。fec イーサネット ドライバーも適切にロードされます。

しかし、init プロセス中に、dhcp はイーサネット デバイスの IP を指定できません。

「dhcp」コマンドで strace ユーティリティを使用して分析すると、次のログが取得されました。ログの一部を以下に示します。

ただし、initrd イメージで使用されているのと同じ rootfs が SD カード ブートで使用されている場合、dhcp コマンドは失敗しません。

手がかりを教えてくれる人はいますか?

よろしく、

ヴィベク

0 投票する
2 に答える
2085 参照

linux - ARM Linux ブートに関する詳細

arm アーキテクチャでの Linux ブートの詳細を理解しようとしています。私はインターネットで多くの検索を行い、これまでのところいくつかの詳細を理解しましたが、記事を読むたびに他の多くの新しい用語がもたらされ、物事がより複雑になっていると感じています. Linux を実行しているボードが 2 つあります。olimex 9261 とビーグルボーン ブラックです。組み込みシステム、特にアームに関する私の専門知識はかなり優れていますが、Linux ではあまりプレイしませんでした (一部のユーザー空間プログラムとカーネルの char ドライバーを除く)。

ここに私の質問があります:

1 つのボードに次の uboot 出力があります (linux 2.6.30):

ボードには 64MB の RAM (0x20000000 にマッピング)、512MB の nand フラッシュ (これまでマッピングが見つかりませんでした)、および 2MB のデータ フラッシュ (0xc0000000 にマッピング) があります。

ここで理解できないこと:

  • bootargs に mem=64 があるのはなぜですか? これは ATAG または DTB として与えられるべきではありませんか?
  • コントロールをカーネルに渡すときに、引数としてコンソールが渡されるのはなぜですか? tty を使用するカーネルは、uboot によって既に構成されていますか?
  • initrd と rootfs。これはまだ私にははっきりしていません。initrd は、カーネルにブロック デバイスとして、または uboot がアドレスの詳細をカーネルに渡さなければならない別のイメージとして含めることができることを知っています (本当ですか?)。initrd が含まれていないカーネルと、この jffs2 のような別のファイル システムを使用して、カーネルが残りのドライバーを実行することはできますか? 実際、起動時にカーネルが使用するファイル システムの詳細を完全に理解することはできません。私が持っているこのセットアップには、uImage、bootstrap、env.bin、および jffs2 ファイル システムの 4 つのファイルがあります。したがって、initrd はありません。これはどのように機能していますか?また、上記の bootargs で指定されたファイル システムをルート化するプロセスはどのようになっていますか? 私の理解では、カーネルは最初に jffs2 ファイル システムにアクセスし、次に /dev/mtdblock1 にあるイメージを取得してマウントする必要があります。私の理解が間違っているのかもしれません。実際、カーネルとファイル システムの間のこの相互作用は、私が理解していないようです。上記の bootcmd では、カーネルが nand から sdram にコピーされ、bootm がそれにジャンプします。しかし、カーネルは起動時にどのように jffs を見つけるのでしょうか? ブート中に次の出力行が表示されます: VFS: Mounted root (jffs2 filesystem) on device 31:1.

ボードのユーザーガイドで、私はこれを見つけました:

警告: AT91SAM9261 チップ エラッタにより、NAND フラッシュからの起動はサポートされていません。

...

512MB NAND フラッシュ (Linux ではシリコン ドライブと見なされます)。

  • カーネルをコンパイルした後、System.map にすべてのシンボルが含まれていないことがわかりました。vmlinux を確認しましたが、同じです。誰かが理由を知っていますか?コンパイラが適切に構成されていない可能性がありますか?

どうもありがとう、ダニエル。

0 投票する
1 に答える
6041 参照

linux - initramfs Raspbian で Squashfs をルートとしてマウントする

現在、initramfs を使用して squashFS イメージからラズビアンを起動しようとしています。squashfs イメージはファイル システム /dev/mmcblk0p1 にあるため、イメージをマウントする前にこれをマウントします。

残念ながら、SquashFS イメージ ファイルのマウントに行き詰まっています。

を通してマウントしてみました

しかし、私はいつも得ます

そこで、手動でループを介してマウントしようとしました。問題は、/dev/loop0 のマウントが上記と同じエラーで失敗することです。

これはこれまでのところ私の初期化です:

チェック中

squashfs Image が loop0 にアタッチされていることを教えてくれます。

誰かがどこから始めればよいか知っていますか?

0 投票する
1 に答える
1697 参照

linux - モジュールは起動時にどのようにロードされますか? また、起動時にロードされる順序は何ですか? 変更方法は?

起動時にモジュールがどのようにロードされるかを探しています。

システムの起動時にモジュールをロードするのは誰か。

私はraspbain osを使用しています。

デバイス ツリーにアップグレードする前は、モジュールは適切に読み込まれますが、アップグレード後はモジュールの読み込みが異なります。

それを避けるために、私はsoftdepを使ってモジュールを好きなようにロードしました。

しかし今、私はこれらのsoftdepを削除し、デバイスツリーなしでロードした方法でモジュールをロードしたいと考えています。

ロードした方法と順序、およびブート時に誰がモジュールをロードするかについて、この疑問を明確にすることはできますか

0 投票する
1 に答える
1491 参照

linux - Preseed を使用して Debian のインストールが完了する直前にスクリプトを実行する

Debian Wheezy のインストールが完了する直前にスクリプトを実行しようとしています。私は「di preseed/late-command」、つまり知っています。インストールが完了する前に実行コマンドを使用しました。しかし、私は問題に直面しています。スクリプトを iso ファイルのどこにコピーすればよいかわかりません。次の2つのアプローチを試しました:

  1. initrd.gz (/install.386/initrd.gz) ファイルのルート ディレクトリ内にスクリプトをコピーしようとし、preseed.cfg で次の変更を行いました。d-i preseed/late-command in-target sh /my_script.sh
  2. また、スクリプトを iso ファイルのルート ディレクトリにコピーして、preseed.cfg に次の変更を加えました。d-i preseed/late-command in-target sh /media/cdrom/my_script.sh

では、ファイルをどこにコピーして (ここのスクリプトで)、後期コマンドで使用できるようにしますか?