Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> busyboxを使った組み込みLinuxファイルシステムの作成

busyboxを使った組み込みLinuxファイルシステムの作成

  

まとめBusyboxは、組み込みLinuxファイルシステムを構築するための必需品です。この記事では、busyboxの最新バージョン1.00を例に、このソフトウェアの構成とインストール、およびファイルシステムの構築に必要なその他のスクリプトファイルを紹介します。

キーワードbusybox組み込みLinuxファイルシステム起動スクリプト

1busyboxはじめに組み込みLinuxに慣れている人は、busyboxに慣れていないでしょう。多くの一般的なUNIXコマンドとツールを1つの実行可能ファイルにまとめているため、組み込みLinuxシステムでは「Swiss Army Knife」と呼ばれています。対応するGNUツールと比較して、busyboxはわずかに少ない機能性とパラメータを提供しますが、より小さなシステム(ブートディスクのような)や組み込みシステムでは、それで十分です。 busyboxはハードウェアリソースによって制限された特別な作業環境で設計されています。それはそのサイズを縮小するために賢い方法を使用します:すべてのコマンドは「プラグイン」によって実行可能ファイルにまとめられます、そしてそれは実際のアプリケーションプロセスの異なるシンボリックリンクによって決定されます。 。たとえば、最終的に生成された実行可能ファイルがbusyboxである場合、シンボリックリンクlsが作成されると、この新しいコマンドを実行して列ディレクトリの機能を実装できます。単一の実行可能ファイルを使用してプログラムコードの共有を最大化し、ファイルヘッダー、メモリ内のプログラム制御ブロック、およびその他のオペレーティングシステムリソースさえも共有します。最適です。 busyboxのコンパイルプロセスでは、その「プラグイン」を追加または削除することが非常に便利です。最後のシンボリックリンクもコンパイラシステムによって自動的に生成されます。 busyboxを使用してまったく新しいLinuxファイルシステムを一から構築するためのステップバイステップです。 2コンパイルbusybox 2004年10月中旬に、busybox 1.00の安定版がついにリリースされました完全なソースコードはhttp://www.busybox.netからダウンロードすることができ、圧縮パッケージサイズは約1.3 MBです。ソースコードを解凍した後、busybox1.00ディレクトリに行き、make menuconfigを実行してそのビルドインタフェースを開きます。図1に示すように、このインターフェースはLinuxカーネルのコンパイルと多少似ています。実行可能ファイルに最終的にコンパイルされるコマンドの選択に加えて、このメニューインターフェースで重要な他の多くの設定があります。ビルドオプション--->インストールオプション--->ログイン/パスワード管理ユーティリティ--->ビルドオプションには、クロスコンパイルを使用するオプションがあります。クロスコンパイラでBusyBoxを構築したいです。他のプラットフォームをコンパイルしたい場合は、それを選択して対応するコンパイラ接頭辞を設定する必要があります。インストールオプションでは、インストールパスを設定できます。インストールパスは、新しいファイルシステムのルートディレクトリに設定されます。もちろん、デフォルトの_installディレクトリを使用して、インストール後にそれを新しいファイルシステムにコピーすることもできます。ログイン/パスワード管理ユーティリティを設定するとき、glibcを設定する手間を避けるために、システム機能よりもむしろパスワードとグループ機能の使用を設定するのが最善です。 busyboxが提供するコマンドは間違いなく包括的ですが、そのデフォルト構成は完全に機能的なファイルシステムを構成するものではありません。追加する必要があるコマンドは、ログイン/パスワード管理ユーティリティのgetty、login、およびpasswdです。これらは、以前は別のパッケージtinyloginによって提供されていました。もちろん、対話型ログインインタフェースが不要な場合は、これらのコマンドを削除することもできます。カーネルパラメータinit = /bin /shを設定することで、システムが1busyboxの設定インターフェースをコンパイルし始めた直後にシェルを取得することができます。 tlenetdコマンドはリモートログインサービスプログラムで、busyboxにコンパイルすると将来のデバッグに非常に便利になります。もちろん、組み込みデバイスはシリアル端末を通して管理することもできますが、ネットワークログインの方法がより便利です。設定後、保存、終了、make; make installコマンドを実行すると、busyboxは将来のルートファイルシステムに/usr、/bin、/sbinなどのディレクトリを作成します。コンパイル済みのbusybox実行ファイルと他のアプリケーションコマンドの間のシンボリックリンクを見ることができます。通常のbusyboxファイルのサイズは、動的リンクの場合は約300 KB、静的リンクの場合は約800 KBであり、それによって実装されるファイルシステムは1 MB未満に制御できます。しかし、これまでのところ、完全に使用可能なファイルシステムではありません。それを機能させるには、これに基づいて必要なファイルをいくつか追加する必要があります。 3ファイルシステムを改善する3.1ビジーボックスによって作成されたファイルシステムはまだ多くのファイルが不足していることがわかります通常のLinuxシステムへのファイル参照を増やす必要があります。次の3行のコマンドは、一般的なUNIXシステムに含まれるいくつかのディレクトリを確立します。これらのコマンドは新しいファイルシステムのルートディレクトリで実行され、3番目のコマンドの実行にもルート権限が必要です。 Mkdir mnt root var tmp proc boot etc libmkdir /var /{ロック、ログ、メール、実行、スプール} chown 0:0R * busyboxが動的リンクでコンパイルされている場合は、busybox:libcryptに必要な動的ライブラリも必要です。 So.1、libc.so.6、ldlinux.so.2はlibディレクトリにあります。以下のリストを参照してください:-rwxrwxrwx 192519ld-2.3.2.solrwxrwxrwx 111ld-linux.so.2 - > ld-2.3.2.so-rwxrwxrwx 1 1190032libc- 2.3.2.solrwxrwxrwx 113libc.so.6 - > libc-2.3.2.so-rwxr-xr-x 118348libcrypt-2.3.2.solrwxrwxrwx 117libcrypt.so.1 - > libcrypt-2.3.2.so3.2 etcフォルダーへのファイルの書き込みetcフォルダーは、多くのシステム構成ファイルが保存される場所です。これらのファイルは非常に重要であり、設定が誤っているとシステムの起動に影響を与える可能性があります。 example /bootfloopy /etcディレクトリにあるbusyboxのソースコードファイルは簡単な例で、ファイルは基礎としてコピーすることができます。最初に、inittabファイルがシステム起動後にアクセスされる最初のスクリプトファイルであり、それ以降のファイルはそれによって指定されています。このファイルのフォーマットは通常のマイクロコンピュータLinuxのinittabとは異なります、具体的な意味はbusyboxのドキュメントを参照することができます。簡単な例を示します。:: sysinit:/etc/init.d/rcStty0 :: respawn:/sbin /getty 38400 tty0tty2 :: askfirst:/bin /sh :: ctrlaltdel:/sbin /reboot :: shutdown: /bin /umount ar :: shutdown:/bin /mount /o remount、1行目はシステム起動スクリプトを/etc/init.d/rcSと指定し、2行目は最初の仮想端末が開くことを指定します。ログインセッション、3行目は3番目の仮想端末がログイン認証なしでシェルを開くこと、4行目はctrl + alt + delキーの組み合わせが押されたときの実行コマンド、最後の2行はシャットダウンが実行されたときの実行を指定します。操作fstabファイルは、実際のシステムと一致させる必要があるファイルシステムのさまざまな「マウントポイント」を定義します。簡単なfstabファイルは次のとおりです。proc /procprocdefaults00 /dev /hda1 /ext2rw、noauto01devpts /dev /ptsdevptsdefaults00 3行目はUNIX PTY用で、telnetdが使用されます。

Copyright © Windowsの知識 All Rights Reserved