LOADLIN 1.5 ((C) 1994 [email protected]) and Linux version: 0.99.14, 0.99.15, 1.0, 1.1.47 (翻訳:こじまみつひろ [email protected]) 以下に示すものは認識されるコマンドラインパラメータで、 ====================================================== 1. LOADLIN が解釈するもの ramdisk=size (ramdisk のサイズ(KBytes)) or ramdisk=size,no (上と同じですが、ディスクを変えるように、 とのプロンプトは出ません) 例: ramdisk=1440,no vga=mode 2. Linux のカーネルが解釈するもの mem=number (0.99pl15 以上では物理的なメモリの終り) root=device ro rw no387 debug コンソールに出力されるログレベルを 10 にセット no-hlt 起動時の HLT チェックを中止 3. init が解釈するもの single auto ro,rw,no387 (カーネルから渡される) 4. 各種のドライバが解釈するもの reserve=port1,num1,...,port5,num5 # 80x86 の io ポート予約用 ether=irq,base_addr,mem_start,mem_end,dev_name # イーサネット用 hd=cyl,head,sect # HDD 用。2 ドライブあればこれを 2 度繰りかえす # 1 つめがドライブ 0 に対応 bmouse=irq # バスマウスの IRQ の指定 max_scsi_luns=n # (n は 1 から 8 の間) st0x=base_address,irq # SEAGATE controller ST01/ST02 tmc8xx=base_address,irq # Future Domain TMC-885,TMC-950 t128=address,irq # Trantor T128/T128F/T228 ncr5380=port,irq,dma # Generic NCR5380 driver aha152x=portbase,irq,scsiid,reconnect # Adaptec AHA-152x driver xd=type,irq,iobase,dma # xd ハードディスク用 mcd=port,irq # Mitsumi CD 用 sound=0x0TTPPPID, .. sbpcd=sbport,SoundBlaster sbpcd=LMport,LaserMate sbpcd=SpeaFXport,SPEA 5. 環境変数になるもの name=xxxx の形式になっているパラメータで、カーネルにもドライバにも認識 されないものは環境変数に登録されます。 LOADLIN 自身は BOOT_IMAGE=imagefile を環境変数に登録します。ユーザー自 身でその他の環境変数を利用して /etc/rc などで条件に合せた動作をさせる ことが可能です。 ============================================================================== 以下に示すものはより詳細な説明です: LOADLIN で認識されるパラメータ: ================================ root=device ----------- device "/dev/hda2" のようなシンボリックなデバイス名か 16 進で示されるデバイスナンバー(上位バイトがメジャーナ ンバーで、下位バイトがマイナーナンバー) 認識されるシンボリックデバイス名(とそのパーティション) は以下の通り: "hda", "hdb", "sda", "sdb", "sdc", "sdd", "sde", "fd", "xda", "xdb" ここには問題もあります: Linus は /dev/hda の後に続く数字を 16 進と解釈しています。とこ ろが、Slackware では Linus がしたであろう /dev/hda1 .. hda9 .. hdaa .. hdaf ではなく、 /dev/hda1 .. hda9 .. hda10 .. hda16 という番号付けになっていま す。 このため、LOADLIN のバージョン 1.3 以降では、ルートデバイスを 自ら解釈して数字でブートセクターに渡すようにしています。私の妥 協的な命名法が、多少なりとも役にたてば、と願っています。 私の命名法は: もし "/dev/hda, hdb, sda .." に続く数字が 0, 0x あるいは a..f ならば 16 進数と考え、1..9 で始まっていれば 10 進数とみなしま す。もし、どちらにもあてはまらなければ、その文字列はそのままコ マンドラインへと渡されます(より新しいバージョンのカーネルではま た違うデバイス名を用意しているかも知れません) 例: root=302 root=0x201 root=/dev/hda2 root=/dev/sdaa は root=/dev/sda10 、 /dev/sda0xa と同じ。 ramdisk=size ------------ size Kbytes 単位で表した RAMDISK の容量です。ラムディスクのイメージは root=/dev/fdx が指定された場合、カーネルの起動時にフロッピードラ イブから読みこまれます。イメージを読みこんだ後、 カーネルはラムディ スク(フロッピーではありません)をルートデバイスにします。(カーネル がロードされた後など)起動用のフロッピーディスクが不要になれば、 LOADLIN 自身がラムディスクにコピーすべきディスクを入れるようにプ ロンプトを出します。 vga=mode -------- mode -3 VGA モードをユーザーに問いあわせる。 ask でも同じ -2 80x50 拡張 VGA モード extended でも同じ -1 80x25 標準モード normal でも同じ 0 ブートプロンプトが出ている時に 0 を入れたと同じ . . n ブートプロンプトが出ている時に n を入れたと同じ ro "ro" を指定するとルートデバイスはリードオンリーモードでマウン トされます(UMSDOS 用ではありません!) rw "rw" を指定するとルートデバイスをリード/ライト可能でマウントし ます ------------------------------------------------------------------------------ Parameters recognized only by the kernel: ========================================= カーネルにのみ理解されるパラメータ mem=number ---------- number 物理的な RAM の終りを示します。0.99.15 以上のカーネルで利用で き、インストールされている RAM のサイズを自動的に認識できない ときに使うと便利です。 root=device ----------- device "/dev/hda2" といったシンボリックデバイスかデバイス番号を示す数 字(上位バイトがメジャー番号、下位バイトがマイナー番号)。認識可 能なシンボリックデバイス名(パーティションも含めて)は: "hda","hdb","sda","sdb","sdc","sdd","sde","fd","xda","xdb" 注意:1.1.47 以前のカーネルでは xda=0xC00, xdb=0xC40 だったが それ以降のカーネルでは xda=0xD00, xdb=0xD40 に変更 例: root=302 root=/dev/hda2 !!注意:古いカーネル(1.0.5 以前)には init/main.c に小さなバグがあります。 !! もっとも、ほとんど問題になることはありませんが: !! シンボッリックデバイス名の最後("hda2")が init にオプションパラメー !! タとして渡されてしまい、init が "illegal option" と文句を言いま !! す。しかし、エラーにはならずにそのまま実行されます。 !! !! もっと注意すべきことは、コマンドラインの静的バッファが小さすぎる !! ことです(init/main.c では 80 バイトに設定されています)。このバッ !! ファのサイズを 512 にしてカーネルを再構築するのがいいでしょう。 !! !! このバグは Linux 1.0.5 以降では修正されており、"command_line" も !! 最近のカーネルで 256 バイトがデフォルトになり、必要ならば !! init/main.c の #define COMMAND_LINE_SIZE xxxx を変更することで簡 !! 単に変更することができます(上限は 2047 です) no387 ----- "no387" を指定するとハードウェア浮動小数点コ・プロセッサを使用しません。 1.1.47(より以前かも)以降では、ro,rw,no387 のオプションは init へは渡さ れなくなりました。 次のオプションは新しく設定されたものです。 debug コンソールに出力されるログレベルを 10 に設定します。 ----- no-hlt 起動時に HLT コマンドのチェックをしません。もし 486 ------ クローンチップを使っていれば、このオプションは*きわめて* 有益でしょう。 ------------------------------------------------------------------------------ "init" に認識されるパラメータ: ============================== single 起動時に "シングルユーザー・モード" になります。 ------ auto ---- ro,rw,no387 (1.1.47 以前のカーネル用。上記のコメントを見てください) ----------- ------------------------------------------------------------------------------ イーサネットの設定 ================================ ether=irq,base_addr,mem_start,mem_end,dev_name --------------------------------------------- irq 数字、IRQ 番号(3..15) base_addr 数字、IO ベースアドレス(0x280,...) mem_start 数字、シェアードメモリーの開始 mem_end 数字、シェアードメモリーの終り dev_name 文字列 eth0..3 all configured ethernetcards dl0 D-Link DE600 ポケットアダプタ atp0 AT-LAN-TEC (RealTek) ポケットアダプタ plip0..2 パラレルIP (PLIP) sl0..3 シリアルIP (SLIP) 例: ether=10,0x280,0xc8000,0xcbfff,eth0 関係するファイル: net/inet/eth.c, drivers/net/Space.c ------------------------------------------------------------------------------ I/O ポートの予約 ================ reserve=port1,num1,...,port5,num5 --------------------------------- portn 対象となる IO ポートの範囲番号 numn その番号で予約するアドレス(これらのアドレスは "ioport_register" で "1" にセットされる) 関連するファイル: kernel/ioport.c(v1.2 以降では arch/i386/kernel/ioport.c) ------------------------------------------------------------------------------ ルートデバイスのハードディスクパラメーターの設定 ================================================= hd=cyl,head,sect --------------- # 注意:もし 2 つのドライバを持っていれば、hd= パラメータを 2つ 書くこ # と。1 つめがドライブ 1 に、2 つめがドライブ 2 に対応する。 # 例:loadlin zimage hd=1001,15,17 hd=989,15,56 root=/dev/hdb2 ro # これは私のマシンの例ですが、実際には不要です。もし Linux が BIOS か # ら正しくドライブのパラメータを取得できないときにのみ必要です。 関係するファイル: drivers/block/hd.c 設定: CONFIG_BLK_DEV_HD ------------------------------------------------------------------------------ バスマウス用の IRQ の設定: ================================== bmouse=irq ---------- 関係するファイル:drivers/char/busmouse.c 設定: CONFIG_BUSMOUSE ------------------------------------------------------------------------------ SCSI コントローラー用のパラメーター: ==================================== max_scsi_luns=n lun の最大値(1 から 8 までの間) st0x=base_address,irq SEAGATE ST01/ST02 用の設定 tmc8xx=base_address,irq Future Domain TMC-885, TMC-950 用 t128=address,irq Trantor T128/T128F/T228 用 ncr5380=port,irq,dma NCR5380 用 aha152x=portbase,irq,scsiid,reconnect Adaptec AHA-152x 用 関連ファイル: drivers/scsi/seagate.c, t128.c, g_NCR5380.c, aha152x.c 設定: CONFIG_SCSI_SEAGATE, CONFIG_SCSI_T128, CONFIG_SCSI_GENERIC_NCR5380, CONFIG_SCSI_AHA152X ------------------------------------------------------------------------------ SCSI テープ用のパラメータ: ========================= st=buffer_size,write_threshould,max_buffers buffer_size Kbyte 単位で示したテープバッファのサイズ(ST_BLOCK_SIZE) write_threshould バッファを書きだすまでの大きさ(buffer_size より小 さくすること) max_buffers 予約しておくバッファの数 関連ファイル: drivers/scsi/st.c 設定: CONFIG_CHR_DEV_ST ------------------------------------------------------------------------------ XT ハードディスコントローラ(DTC 5150X)用のパラメータ: ===================================================== xd=type,irq,iobase,dma ---------------------- 関連ファイル: drivers/block/xd.c 設定: CONFIG_BLK_DEV_XD ------------------------------------------------------------------------------ Mitsumi 製の CDROM ドライバ用のパラメータ: ========================================== mcd=port,irq ------------ 関連ファイル:drivers/block/mcd.c 設定: CONFIG_MCD ------------------------------------------------------------------------------ サウンドカード用の設定: ======================== sound=0x0TTPPPID, .. ---------------- 全ての値は 1 つの longint 値に埋めこまれる。上の例では、16 進のフォー マットになっており、それぞれ 16 進数で記述される。 TT サポートしているカードのタイプ 設定されているカードへのインデックス。もし全てのカードが設定され ていれば(普通あり得ない設定だが)、以下の順番になっている。 Roland MPU-401 Gravis Ultrasound ProAudio Spectrum SoundBlaster SoundBlaster 16 SB16 MPU-401 (SB16-MIDI port) AdLib PPP 使用するポートのアドレス I IRQ D DMA Channel 関連ファイル: drivers/sound/dev_table.h,dev_table.c 設定: CONFIG_SOUND ------------------------------------------------------------------------------ IDEタイプ の CD-ROM(Kotobuki/Matsushita/Panasonic)用のパラメータ ================================================================= sbpcd=sbport,SoundBlaster ------------------------ sbpcd=LMport,LaserMate ---------------------- sbpcd=SpeaFXport,SPEA ---------------------- sbport サウンドブラスタ用のドライバが使うベースアドレス + 0x10 (0x230 なら 0x220+0x10 を意味している) LMport MPU タイプのポートで、0x300 か同等のアドレス SpeaFXport SpeaFX カードのベースアドレス 関係ファイル: drivers/block/sbpcd.c 設定: CONFIG_SBPCD ------------------------------------------------------------------------------