翻訳しなさい

Translate to EnglishÜbersetzen Sie zum Deutsch/GermanΜεταφράστε στα ελληνικά/GreekПереведите к русскому/RussianOversetter til Norsk/NorwegianÖversätta till Svensk/Swedishहिन्दी अनुवाद करने के लिए/Hindi
Tradueix al català/CatalanTulkot uz latviešu/LatvianPreložiť do slovenčiny/SlovakVertaal aan het Nederlands/Dutchترجمة الى العربية/ArabicTraduzca al Español/SpanishTraduisez au Français/French
Traduca ad Italiano/ItalianTraduza ao Português/Portuguese日本語に翻訳しなさい /Japanese한국어에게 번역하십시오/Korean中文翻译/Chinese Simplified中文翻译/Chinese TraditionalПереклад на українську/Ukrainian
Google Maps API 3の開始のイメージ
現代オペレーティングシステム(第3版)のイメージ
RHCEの赤い帽子のイメージは証明したエンジニアのLinuxの調査ガイド(検査RH302) (証明の出版物)を
UNIX環境の高度プログラミング、第2版(Addison-Wesleyの専門家の計算シリーズ)のイメージ

プロジェクトプリマス

起動プロセスの間に ログファイルに出力されるコンソールテキストを記録している間明滅の 自由に 活気づけられたしぶきスクリーンを表示するために写実的な適用を開発しRedhatのRay Strobeが2007年に始めるプリマスはfreedesktop.orgのプロジェクトのための暗号名である。 ソフト帽10 (ケンブリッジ)はプリマスを含むソフト帽の最初の解放だった。 開発事業は積極的に進行中であり、現在のリリースは0.71である。

プリマスは写実的なブーツの表示を提供するのに赤い帽子によって現在使用されているRHGB (赤い帽子の写実的なブーツ)のための取り替えであるように意図されている。 rhgbが穀粒のコマンド・ラインの部分なら、rhgbは/etc/sysinitによって起動プロセスで早く始まる。 rhgbは表示のためのXサーバーを始める: 表示のために始めるかもしれない規則的なXサーバーとの対立を避けるように1つの仮想端末装置の1: 別の仮想端末装置の0。 それはまたブーツの原稿がそれと伝達し合うことができるようにUnixの範囲のソケット(/etc/rhgb/temp/rhgbソケット)を作成する。 ブーツの原稿が実行すると同時に、テキストおよび進歩の表示を更新するrhgbにメッセージを送るのにrhgb顧客を使用してもいい。 システムが終了するブーティングのとき、rhgb顧客はrhgbに終結の要求を送るために-やめられた選択と実施される。 ユーザーは表示マネージャーが使用するXサーバーにそれから転換する。 残念ながらテキストモードからのrhgbの`s Xサーバーテキストモード表示マネージャーのXサーバーへのへのへの転換の順序により重要なスクリーンの明滅を引き起こすことができる。 rhgbのもう一つの主要な欠点はブーツメッセージが記録されないことである。

プリマスの後ろの主要な目的は「ブーツの醜い細部写実的な(隠れ、多分)しぶきスクリーンの後ろに」が活気づけられるか光線が大またに歩いたのでそれを置きなさい明滅自由なシステムブーティングの経験を提供することである。 二次目的はブーツ順序を記録することである。 プリマスは直接レンダリングのマネージャー(DRM)の穀粒のmodesetting (KMS)運転者が付いているシステムで動作するように設計されている。 DRMは直接レンダリングの下部組織のプロジェクト の部品 である。 それは2つの穀粒モジュール、一般的なDRMの運転者、および特定のグラフィックス・カードハードウェアのためのサポートがある別のものから成っている。 この組の運転者はグラフィックス・カードハードウェアにuserspaceの顧客の直接アクセスを許可する。 DRM モード 設定のさらに詳しい詳細についてはここに見なさい。 従って非常に前もって起動プロセスでシステムのための最適の原産のビデオ・ディスプレイモードは穀粒モード設定の運転者によって置かれる。 次にプリマスの使用は全体の起動プロセスの間にモード、およびモードXサーバーが始まった後変わり。 Xサーバーは、始められたとき、既存のモード、仮想端末装置およびframebufferの内容を引き継ぐ。 穀粒のmodesetting運転者の供給はプリマスのための主enablerである。 但し、穀粒のmodesetting運転者のないシステムのために、よく知られた三色の青または白または黒の進歩棒の後退テキストモードがある。 プリマスはまたこのテキストモードに戻ってデフォルトの差込式の失敗どういうわけか落ちる。

穀粒のmodesetting運転者は活動的な開発および幾分バギーにまだある。 ソフト帽11現在で、Radeon R500およびより高いシリーズグラフィックス・カードだけデフォルトでmodesetting穀粒を支える。 R100およびR200グラフィックス・カードに穀粒のmodesettingサポートを提供する未完成品がある。 Intelの穀粒のmodesetting運転者はあるが、デフォルトでつかない。 Nouveauの運転者によってnVidiaのグラフィックス・カードでmodesetting穀粒のためのサポートはまだ実験である。 ブーツの間に黒いスクリーン、かそれの任意騒音のスクリーンで終れば、ディスエイブルの穀粒モード設定に穀粒のコマンド・ラインにnomodesetを加える試み。

あなたの特定のグラフィックス・カードのために利用できる適した穀粒のmodesetting運転者がないかまたは明示モードを置きたいと思えば穀粒のコマンド・ラインにひものvga=XXXを加えることができる。 穀粒のコマンド・ライン選択vga=askは作り付けのvesaのframebufferの運転者を実施する、支えられたモードのリストを表示し、モードを選ぶように頼む。 それはこのモードを使用してそれから穀粒を追い出す。 モードが先行ゼロおよび手紙の`のxまたは3ディジットの10進数を用いる4ディジットの16進法ではない穀粒のコマンド・ライン選択vga=modeは特定モードを置くことを可能にする。

いかにどんな特定モードが利用でき、どれがあなたのために最もよく働くか言うことができるか。 これはあなたがあなたのシステムで有する、および利用できるビデオメモリの量決まるグラフィックス・カードのタイプによって実際に。 唯一の方法は異なったモードで実験することである。

次のテーブルはあなたが16進法を使用してvga=のプロンプトで入れることができるモード数を示したものだ

640x480800x6001024x7681280x10241600x1200
2560301030303050307031C
327680310031303160319031D
65536031103140317031A031E
16.8M031203150318031B031F

そして同じテーブルは10進数を使用してここにある。
640x480800x6001024x7681280x10241600x1200
256769771773775796
32768784787790793797
65536785788791794798
16.8M786789792795799

8ビット= 256色、15ビット[5ことに注目しなさい: 5: 5つの] = 32,768色、16ビット[5: 6: 5つの] = 65,536色および24ビット[8: 8: 8つ] = 16.8 ,000,000色。 付加的なモードはグラフィックス・カードの製造業者の裁量でVESA 2.0の指定が0x31Fまでだけモードを定義するので、ある。 VESAモードについてのより多くの情報のために、VESA BIOS延長迎合的な グラフィックス・カードについての この記事を見なさい。

プリマスはブーツ時に表示されるスクリーンセーバーに類似している主題を使用する。 ソフト帽11は太陽fade-in 3つの写実的な主題とおよびspinfinityおよび2つの図式化されていない主題テキストおよび細部出荷した。 テキストの主題は別の主題がどういうわけか失敗すれば表示されるデフォルトの主題である。

プロジェクトが進歩したように主題および差込のまわりの専門用語そして技術は展開した。 ソフト帽10で出荷したプリマスの版は各しぶきスクリーンが全く最初からコードされなければならなかったプラグイン方式に基づいていた。 この問題は確認され、ソフト帽11のために今それから標準的な差込を使用する主題を支えるというプリマスは主要な書直しによって行った。 従って主題の開発者はことができる未加工コーディングをしなければならないよりもむしろ主題のグラフィックに今焦点を合わせる。

現在ソフト帽の貯蔵場所に5つの主題がある。 充満は ソフト帽11 (Leonidas)のためのデフォルトの主題である。 Spinfinityは無限印のように形づく道で動くthrobberである。 Fade-Inショースターフィールドでおよび衰退するソフト帽のロゴ。 細部は起動プロセスから出力される古典的なスクローリングを示す。 テキストはスクリーンの三色の主題の後退底である。 太陽、私の個人的な好みソフト帽10のための今までに、およびデフォルトの主題、ソフト帽11にデフォルトで取付けられていなかったりしかし任意パッケージにある。 それは爆発のパルサーが付いている惑星を表示する。

プリマスのすべての主題をソフト帽の貯蔵場所に取付けるため:

# yum -y install plymouth-theme-*


プリマスの設置済み主題はリストされた使用である場合もあるプリマス置履行を怠主題の原稿:

# /usr/sbin/plymouth-set-default-theme --list
charge
details
fade-in
spinfinity
text


主題ファイルは/usr/share/plymouth/themesのサブディレクトリーで貯えられる。

# ls /usr/share/plymouth/themes/
charge  default.plymouth  details  fade-in  spinfinity  text


default.plymouthが実際の設計されていたデフォルトの主題へシンボリック・リンクであることに注目しなさい。

2つのタイプの差込がある: しぶきおよび制御。 ただ一度に1しぶきの差込式の使用中がある場合もある。 差込式しぶきはしぶきスクリーンを、頼む、表示するメッセージを引き、多くものがパスワードをである。 主題は実際の仕事をするためにしぶきを差込式と呼ぶ。 例えば、充満主題と関連付けられるファイルのリストはここにある。

$ ls /usr/share/plymouth/themes/charge
box.png          progress-01.png  progress-07.png  progress-13.png  throbber-00.png  throbber-06.png  throbber-12.png
bullet.png       progress-02.png  progress-08.png  progress-14.png  throbber-01.png  throbber-07.png  throbber-13.png
charge.plymouth  progress-03.png  progress-09.png  progress-15.png  throbber-02.png  throbber-08.png  throbber-14.png
entry.png        progress-04.png  progress-10.png  progress-16.png  throbber-03.png  throbber-09.png  throbber-15.png
lock.png         progress-05.png  progress-11.png  progress-17.png  throbber-04.png  throbber-10.png
progress-00.png  progress-06.png  progress-12.png  progress-18.png  throbber-05.png  throbber-11.png


plymouthdによって読まれる主題のコンフィギュレーション・ファイルは.plymouth延長の主題の名前である。 この場合それはcharge.plymouthである。

$ cat /usr/share/plymouth/themes/charge/charge.plymouth
[Plymouth Theme]
Name=Charge
Description=A theme that features the shadowy hull of a Fedora logo charge up and and finally burst into into full form.
ModuleName=two-step

[two-step]
ImageDir=/usr/share/plymouth/themes/charge
HorizontalAlignment=.5
VerticalAlignment=.5
Transition=none
TransitionDuration=0.0
BackgroundStartColor=0x416fa7
BackgroundEndColor=0x4b83c1


この主題はツーステップの主題の表示の実際の仕事をするために差込式を呼ぶ。 ツーステップの差込式は特定の名前のイメージファイルをのある特定の数そしてタイプ期待する。 さまざまな指令は差込に通じることができる; 差込式の細目がある数およびタイプ。 例えば別のタイプの転移は転移の指令を使用してツーステップの差込式のために、すなわち衰退指定され、十字衰退し、併合衰退できる。

ある差込はソフト帽11.と出荷しなかった。 1そのような差込式は差込式ラベルである。 それは根のファイルシステムが取付けられればinitrdの部分ではないが、loadableである。 それは暗示的に時テキストを表示するしぶきの差込式の試み荷を積まれる。 ラベルは荷を積まれた後、メッセージの 局在化を 扱うのに pango およびカイロを使用する。

もう一つのそのような差込式は主題のための台本を書く 言語を支える 原稿である。 それは2つの基本的な目的、すなわちイメージおよび妖精を支える。 JavaScriptかC言語をよく知られていれば構文法およびイディオムと快適なべきである。 台本を書く言語がより多くの目的が方向づけた従ってあったりまたは支えられないものが把握するためにgitの丸太かソースコードを読まなければならないことができるそれの作成のために急速な開発を現在経ていることに注目しなさい。

原稿がある主題の例に関しては、私はViztaまたはタンポポの主題のための 一見 推薦する。 これらの主題は両方チャーリーBrejの台本を書く言語の後ろの主要な開発者であるイギリスマンチェスター大学の研究助手によって開発された。 ソフト帽11のこれらの主題を試みたいと思えばあなたのシステムにプリマスGitの木から源を輸入しなければなり、形成し、再建し、そして取付ける。

プリマスにかかわる2つの主要なバイナリは/sbin/plymouthd、しぶきスクリーンを表示し、ブーツの会議を記録しによってする、そして/bin/plymouth実際の仕事のほとんどをである鬼/sbin/plymouthdへインターフェイスである。 残念ながらマニュアルページは/bin/plymouthのために供給されないが、/usr/share/doc/plymouth-0.7.0のサブディレクトリーに情報がある。 両方ともいくつかの有用な選択がある。

$ /sbin/plymouthd --help
Boot splash control server
USAGE: plymouthd [OPTION...]
Options:
  --help                 This help message
  --attach-to-session    Redirect console messages from screen to log
  --no-daemon            Do not daemonize
  --debug                Output debugging information
  --mode=        Mode is one of: boot, shutdown

$ /bin/plymouth --help
Boot splash control client
USAGE: plymouth [OPTION...] [COMMAND [OPTION...]...]

Options:
  --help                         This help message
  --debug                        Enable verbose debug logging
  --newroot=             Tell boot daemon that new root filesystem is mounted
  --quit                         Tell boot daemon to quit
  --ping                         Check of boot daemon is running
  --sysinit                      Tell boot daemon root filesystem is mounted read-write
  --show-splash                  Show splash screen
  --hide-splash                  Hide splash screen
  --ask-for-password             Ask user for password
  --ignore-keystroke=    Remove sensitivity to a keystroke
  --update=              Tell boot daemon an update about boot progress
  --details                      Tell boot daemon there were errors during boot
  --wait                         Wait for boot daemon to quit

Available commands:
  ask-for-password   Ask user for password
  ask-question       Ask user a question
  message            Display a message
  watch-keystroke    Become sensitive to a keystroke
  pause-progress     Pause boot progress bar
  unpause-progress   Unpause boot progress bar
  report-error       Tell boot daemon there were errors during boot
  quit               Tell boot daemon to quit

Options for ask-for-password command:
  --command=             Command to send password to via standard input
  --prompt=              Message to display when asking for password
  --number-of-tries=    Number of times to ask before giving up (requires --command)
  --dont-pause-progress          Don't pause boot progress bar while asking

Options for ask-question command:
  --command=       Command to send the answer to via standard input
  --prompt=        Message to display when asking the question
  --dont-pause-progress    Don't pause boot progress bar while asking

Options for message command:
  --text=    The message text

Options for watch-keystroke command:
  --command=    Command to send keystroke to via standard input
  --keys=       Keys to become sensitive to

Options for quit command:
  --retain-splash    Don't explicitly hide boot splash on exit


ソフト帽で/usr/bin/rhgb-clientは/usr/bin/plymouthへシンボリック・リンクである

プリマスで実験する一方通行はrunlevel 2からのそれを実施することであるまたは3.は例えば、ここに5秒のためのデフォルトの主題を表示し、パスワードを頼み、最終的にやめる前にあなたの名前を頼むべき簡単な原稿である。

#!/bin/sh

# first check that we are in an appropriate runlevel
rlevel=$(runlevel | cut -d " " -f 2)
if [[ "$rlevel" != "2"  && "$rlevel" != "3" ]]
then
    echo "ERROR: You must be at runlevel 2 or 3"
    exit 1
fi

echo "Testing plymouth default theme ..."
plymouthd
sleep 1

# check if the plymouthd daemon is alive
plymouth --ping
if [[ $? -eq 1 ]]
then
    echo "ERROR: Plymouth daemon not running"
    exit 1
fi

# show the default splash screen for 5 seconds
plymouth  --show-splash
sleep 5

plymouth --ask-for-password
sleep 2

# using a command rather than an option
plymouth ask-question --prompt="What is your name?"
sleep 5

plymouth --quit

echo "Done ..."
exit 0


すべての差込があらゆる命令および選択を現在支えないことに注目しなさい。 上記の原稿はスペース急に燃え上がる差込式使用する太陽主題を使用する。 但しこの差込式は例えばメッセージ命令を支えない。 プリマスから行方不明の有用な選択はどの命令が支えられたか列挙する選択である。

プリマスは実際にエンドユーザーによって源から造られるように設計されていない。 正しく働くそれのために根本的な配分に統合されなければならない。 それは起動プロセスでそう早く始まるので、配分のinitrd (最初の RAMディスクに)加えられる必要があり、それに告げるためにブーツがいかに進歩しているか配分はplymouthdとインターフェイスする必要がある。 なおinitramfsはXサーバーによって必要とされるすべての必要なファイルを含まなければならない。 例えば、私のソフト帽11のinitrdnashの原稿はここにある。 コンソールが原稿の利用でき、また他の数回であるとすぐプリマスのしぶきスクリーンがいかに呼ばれるか通知。

lsinitrd /boot/initrd-2.6.29.5-191.fc11.x86_64.img
.........................
#!/bin/nash
mount -t proc /proc /proc
setquiet
echo Mounting proc filesystem
echo Mounting sysfs filesystem
mount -t sysfs /sys /sys
echo Creating /dev
mount -o mode=0755 -t tmpfs /dev /dev
mkdir /dev/pts
mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts
mkdir /dev/shm
mkdir /dev/mapper
echo Creating initial device nodes
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mknod /dev/systty c 4 0
mknod /dev/tty c 5 0
mknod /dev/console c 5 1
mknod /dev/ptmx c 5 2
mknod /dev/fb c 29 0
mknod /dev/hvc0 c 229 0
mknod /dev/tty0 c 4 0
mknod /dev/tty1 c 4 1
mknod /dev/tty2 c 4 2
mknod /dev/tty3 c 4 3
mknod /dev/tty4 c 4 4
mknod /dev/tty5 c 4 5
mknod /dev/tty6 c 4 6
mknod /dev/tty7 c 4 7
mknod /dev/tty8 c 4 8
mknod /dev/tty9 c 4 9
mknod /dev/tty10 c 4 10
mknod /dev/tty11 c 4 11
mknod /dev/tty12 c 4 12
mknod /dev/ttyS0 c 4 64
mknod /dev/ttyS1 c 4 65
mknod /dev/ttyS2 c 4 66
mknod /dev/ttyS3 c 4 67
daemonize --ignore-missing /bin/plymouthd
/lib/udev/console_init tty0
plymouth --show-splash
echo Setting up hotplug.
hotplug
echo Creating block device nodes.
mkblkdevs
echo Creating character device nodes.
mkchardevs
echo Making device-mapper control node
mkdmnod
modprobe scsi_wait_scan
rmmod scsi_wait_scan
mkblkdevs
echo Scanning logical volumes
lvm vgscan --ignorelockingfailure
echo Activating logical volumes
lvm vgchange -ay --ignorelockingfailure  vg_ultra
resume /dev/mapper/vg_ultra-lv_swap
echo Creating root device.
mkrootdev -t ext4 -o defaults,ro /dev/mapper/vg_ultra-lv_root
echo Mounting root filesystem.
mount /sysroot
cond -ne 0 plymouth --hide-splash
echo Setting up other filesystems.
setuproot
loadpolicy
plymouth --newroot=/sysroot
echo Switching to new root and running init.
switchroot
echo Booting has failed.
sleep -1
init


ブーツの進歩の間にブーツの状態はひもと規則的に何が起こるか示す更新され。 差込はこれらを現在の差込で一般に聞く選ぶが、ことができ、ブーツの時間推定を計算するのためにだけ無視されればに使用される。 ソフト帽11では、例えばrc.sysinitの原稿はプリマスにファイルシステムにアクセスするためにパスワードが必要であるか、またはファイルシステムがselinuxによってrelabeledべきであるかどうかによってしぶきスクリーンを隠すか、または示すために複数の呼出しを含んでいる。

従ってプリマスはいつやめるか知っているいかにか。 実際には、それは知っていることをできない。 それは行きちょうどやめられたメッセージを受け取るまで続ける。 ソフト帽11の場合には、/etc/event.d/quit-plymouthの原稿はやめられたメッセージを送る。

# quit-plymouth - script to stop boot splash
#
# This service triggers plymouth to quit when we reach the
# end of the boot cycle. We start on 'stopping rcX' to make sure
# this completes before the getty starts.
# prefdm handles quit differently, though.

start on runlevel S
start on stopping rc2
start on stopping rc3
start on stopping rc4

script
         /usr/bin/plymouth quit || :
end script


特例はシングル・ユーザーに時ユーザーのブーツある。 この場合/etc/event.d/rcS-suloginの原稿は実行される。

# rcS-sulogin - "single-user" runlevel compatibility
#
# This task runs /bin/bash during "single-user" mode,
# then continues to the default runlevel.

start on runlevel S

stop on runlevel

console owner
script
        runlevel --set S >/dev/null || true
        plymouth --hide-splash || true
        exec /bin/bash
end script
post-stop script
        if [ "$1" = "S" ]; then
                runlevel=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab)
                [ -z "$runlevel" ] && runlevel="3"
                exec telinit $runlevel
        fi
end script


一般に知られないものがシステム運転停止か再起動の間にしぶきスクリーンを提供するのにまたプリマスを使用できることである。 これは/etc/event.d/plymouth-shutdownの原稿によってソフト帽11でされる。 下記に示されているように。

# plymouth-shutdown - put up shutdown splash
#
# This service triggers plymouth to put up a splash
# when leaving runlevel 5.

start on stopped prefdm

console output
script
        set $(runlevel || true)
        if [ "$2" != "0" ] && [ "$2" != "6" ]; then
                exit 0
        fi

        /sbin/plymouthd --mode=shutdown || exit 1
        /bin/plymouth --sysinit
        /bin/plymouth --show-splash
        if [ "$2" = "0" ]; then
                /bin/plymouth message --text="Shutting down..."
        elif [ "$2" = "6" ]; then
                /bin/plymouth message --text="Restarting..."
        fi
end script


コンソールブーツメッセージは起動プロセスで非常に前もって作成される擬似ターミナルに方向を変える。 これらのメッセージはファイルシステムが十分に取付けられるまで緩衝される。 それから緩衝は/var/log/boot.に投げ出される。 テキストかグラフィックモードでは、ブーツメッセージは覆われる。 但しブーツ順序の間にESCキーの衝突によってこれらのメッセージをいつでも見ることができる。

プリマスの主題を変える副作用の1つは新しいinitrdのイメージを発生させなければならないことである。 通常これはmkinirdの原稿を使用してされる。 これをすることへ代わりがどんなにある。 プリマス関係したファイルを取除き、ちょうどプリマス関係したファイルを含んでいる第2 initrdのイメージを生成するためにあなたの既存のinitrdのイメージを変更できる。 主題を変える時、プリマスのイメージだけが発生する必要がある。 追い出すとき両方のイメージに荷を積むためにgrub.confを変更しなければならない。 ちょうどそれをする私のgrub.confからの連はここにある。

title Graphical Boot (Fedora 2.6.29.6-217.2.16.fc11.x86_64)
        root (hd0,1)
        kernel /vmlinuz-2.6.30.5-43.fc11.x86_64 ro root=/dev/mapper/vg_ultra-lv_root rhgb quiet nopat vga=0x37b 2
        initrd /initrd-2.6.30.5-43.fc11.x86_64.img  /initrd-plymouth.img


2つのイメージを発生させるシェル・スクリプトはここにある。 それはプリマスのcodebaseの既存の原稿に基づいている。

#!/bin/bash
#
#
#  FPMurphy  9/12/2009
#

[ -z "$TMPDIR" ] && TMPDIR="/var/tmp"

[ -z "$LIBEXECDIR" ] && LIBEXECDIR="/usr/libexec"
[ -z "$DATADIR" ] && DATADIR="/usr/share"
[ -z "$PLYMOUTH_PLUGIN_PATH" ] && PLYMOUTH_PLUGIN_PATH="$(plymouth --get-splash-plugin-path)"
[ -z "$PLYMOUTH_LOGO_FILE" ] && PLYMOUTH_LOGO_FILE="/usr/share/plymouth/bizcom.png"
[ -z "$PLYMOUTH_THEME_NAME" ] && PLYMOUTH_THEME_NAME=$(plymouth-set-default-theme)

[ -z "$PLYMOUTH_IMAGE_FILE" ] && PLYMOUTH_IMAGE_FILE="/boot/initrd-plymouth.img"
[ -z "$IMAGE_FILE" ] && IMAGE_FILE="/boot/initrd-$(uname -r).img"

if [ -z "$PLYMOUTH_POPULATE_SOURCE_FUNCTIONS" ]; then
    if [ -f "${LIBEXECDIR}/initrd-functions" ]; then
        PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="${LIBEXECDIR}/initrd-functions"
    fi
    if [ -f "${DATADIR}/dracut/dracut-functions" ]; then
        PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="${DATADIR}/dracut/dracut-functions"
    fi
fi

if [ -n "$PLYMOUTH_POPULATE_SOURCE_FUNCTIONS" ]; then
    source $PLYMOUTH_POPULATE_SOURCE_FUNCTIONS
fi

if [ " $(type -t inst) " != " function " ]; then
    echo "Need 'inst' function, try setting PLYMOUTH_POPULATE_SOURCE_FUNCTIONS to a file that defines it" 1>&2
    exit 1
fi

if [ " $(type -t set_verbose) " != " function " ]; then
    function set_verbose { true; }
fi

Function usage() {
    local output="/dev/stdout"
    local rc=0
    if [ "$1" == "error" ]; then
        output="/dev/stderr"
        rc=1
    fi

    echo "usage: plymouth_setup_initrds [ --verbose | -v ]" > $output
    exit $rc
}

verbose=false
INITRDDIR=""
while [ $# -gt 0 ]; do
    case $1 in
        --verbose|-v)
            verbose=true
            ;;
        --help|-h)
            usage normal
            ;;
        *)
            usage error
            break
            ;;
    esac
    shift
done
set_verbose $verbose || :

CURRENTDIR=`pwd`
INITRDDIR=`mktemp -d ${TMPDIR}/initrd.XXXXXX`
[ -z "$INITRDDIR" ] && {
     echo "mktemp failed"
     exit 1
}

mkdir -p ${INITRDDIR}${DATADIR}/plymouth/themes
inst /sbin/plymouthd $INITRDDIR /bin/plymouthd
inst /bin/plymouth $INITRDDIR
inst ${DATADIR}/plymouth/themes/text/text.plymouth $INITRDDIR
inst ${PLYMOUTH_PLUGIN_PATH}/text.so $INITRDDIR
inst ${DATADIR}/plymouth/themes/details/details.plymouth $INITRDDIR
inst ${PLYMOUTH_PLUGIN_PATH}/details.so $INITRDDIR
inst ${PLYMOUTH_LOGO_FILE} $INITRDDIR
inst /etc/system-release $INITRDDIR
if [ -z "$PLYMOUTH_THEME_NAME" ]; then
    echo "No default plymouth plugin is set" > /dev/stderr
    exit 1
fi

PLYMOUTH_MODULE_NAME=$(grep "ModuleName *= *" ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/${PLYMOUTH_THEME_NAME}.plymouth | sed 's/ModuleName *= *//')

if [ ! -f ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so ]; then
    echo "The default plymouth plugin (${PLYMOUTH_MODULE_NAME}) doesn't exist" > /dev/stderr
    exit 1
fi

inst ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so $INITRDDIR

if [ -d ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME} ]; then
    for x in ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/* ; do
        [ ! -f "$x" ] && break
        inst $x $INITRDDIR
    done
fi

if [ -L ${DATADIR}/plymouth/themes/default.plymouth ]; then
    cp -a ${DATADIR}/plymouth/themes/default.plymouth $INITRDDIR${DATADIR}/plymouth/themes
fi

# generate the initrd-plymouth image
if [ -f ${PLYMOUTH_IMAGE_FILE} ]; then
     mv ${PLYMOUTH_IMAGE_FILE} ${PLYMOUTH_IMAGE_FILE}.bak
fi

echo "Generating image: $PLYMOUTH_IMAGE_FILE"
cd ${INITRDDIR}
rm -f lib*/{ld*,libc*,libdl*,libm*,libz*,libpthread*,libpng*,librt*}
rm -f usr/lib*/libpng*
find . | cpio -H newc --quiet -o | gzip -9 > ${PLYMOUTH_IMAGE_FILE}

cd ${CURRENTDIR}
rm -rf ${INITRDDIR}

#  now remove all plymouth items from regular initrd
INITRDDIR=`mktemp -d ${TMPDIR}/initrd.XXXXXX`
[ -z "$INITRDDIR" ] && {
     echo "mktemp failed"
     exit 1
}
cd ${INITRDDIR}
zcat ${IMAGE_FILE} | cpio -i

rm -f ${INITRDDIR}/bin/plymout*
rm -f ${INITRDDIR}/lib64/libply*
rm -f ${INITRDDIR}/usr/lib64/libply*
rm -rf ${INITRDDIR}/usr/lib64/plymouth
rm -rf ${INITRDDIR}/usr/share/plymouth

echo "Generating image: ${IMAGE_FILE}"
mv ${IMAGE_FILE} ${IMAGE_FILE}.bak
findall . | cpio -H newc --quiet -o  | gzip -9 > ${IMAGE_FILE}

cd ${CURRENTDIR}
rm -rf ${INITRDDIR}

exit 0


/boot/initrd-plymouth.imgの発生させたイメージのリストはここにある。

$ lsinitrd /boot/initrd-plymouth.img
drwx------   6 root     root            0 Sep 12 16:43 .
drwxr-xr-x   2 root     root            0 Sep 12 16:43 etc
-rw-r--r--   1 root     root           29 May 11 18:45 etc/fedora-release
lrwxrwxrwx   1 root     root           14 Sep 12 16:43 etc/system-release -> fedora-release
drwxr-xr-x   4 root     root            0 Sep 12 16:43 usr
drwxr-xr-x   3 root     root            0 Sep 12 16:43 usr/lib64
drwxr-xr-x   2 root     root            0 Sep 12 16:43 usr/lib64/plymouth
-rwxr-xr-x   1 root     root        27242 Sep 12 01:42 usr/lib64/plymouth/details.so
-rwxr-xr-x   1 root     root        28471 Sep 12 01:42 usr/lib64/plymouth/text.so
-rwxr-xr-x   1 root     root        80032 Sep 12 01:42 usr/lib64/plymouth/space-flares.so
-rwxr-xr-x   1 root     root       200218 Sep 12 01:42 usr/lib64/libplybootsplash.so.2.0.0
lrwxrwxrwx   1 root     root           25 Sep 12 16:43 usr/lib64/libplybootsplash.so.2 -> libplybootsplash.so.2.0.0
drwxr-xr-x   3 root     root            0 Sep 12 16:43 usr/share
drwxr-xr-x   3 root     root            0 Sep 12 16:43 usr/share/plymouth
-rw-r--r--   1 root     root         5529 Sep 12 01:42 usr/share/plymouth/bizcom.png
drwxr-xr-x   5 root     root            0 Sep 12 16:43 usr/share/plymouth/themes
drwxr-xr-x   2 root     root            0 Sep 12 16:43 usr/share/plymouth/themes/details
-rw-r--r--   1 root     root           84 Sep 12 01:42 usr/share/plymouth/themes/details/details.plymouth
drwxr-xr-x   2 root     root            0 Sep 12 16:43 usr/share/plymouth/themes/text
-rw-r--r--   1 root     root           98 Sep 12 01:42 usr/share/plymouth/themes/text/text.plymouth
lrwxrwxrwx   1 root     root           20 Sep 12 16:43 usr/share/plymouth/themes/default.plymouth -> solar/solar.plymouth
drwxr-xr-x   2 root     root            0 Sep 12 16:43 usr/share/plymouth/themes/solar
-rw-r--r--   1 root     root          246 Sep 12 01:42 usr/share/plymouth/themes/solar/progress_bar.png
-rw-r--r--   1 root     root       355666 Sep 12 01:42 usr/share/plymouth/themes/solar/star.png
-rw-r--r--   1 root     root         1896 Sep 12 01:42 usr/share/plymouth/themes/solar/lock.png
-rw-r--r--   1 root     root          165 Sep 12 01:42 usr/share/plymouth/themes/solar/solar.plymouth
-rw-r--r--   1 root     root          296 Sep 12 01:42 usr/share/plymouth/themes/solar/bullet.png
-rw-r--r--   1 root     root          870 Sep 12 01:42 usr/share/plymouth/themes/solar/box.png
-rw-r--r--   1 root     root          350 Sep 12 01:42 usr/share/plymouth/themes/solar/entry.png
drwxr-xr-x   2 root     root            0 Sep 12 16:43 lib64
-rwxr-xr-x   1 root     root       293522 Sep 12 01:42 lib64/libply.so.2.0.0
lrwxrwxrwx   1 root     root           15 Sep 12 16:43 lib64/libply.so.2 -> libply.so.2.0.0
drwxr-xr-x   2 root     root            0 Sep 12 16:43 bin
-rwxr-xr-x   1 root     root        70256 Sep 12 01:42 bin/plymouth
-rwxr-xr-x   1 root     root       110319 Sep 12 01:42 bin/plymouthd


見ることができるようにそれはプリマス関係したファイルだけを含んでいる。 それは()必要とされたときこれがdlopen使用で荷を積まれるので差込式ラベルを含んでいない。

プリマスを加えることによってプリマスをデバッグできる: プリマスデバッグしなさい: debug= file:、かプリマス: 穀粒のコマンド・ラインのdebug= file:path_to_log_file。 デフォルトファイルはファイルに記録して指定されればしかしファイルが、すなわち選択2指定されなければ/var/log/plymouth-debug.logである。 他の穀粒のコマンド・ライン選択はデフォルトコンソール(/dev/tty0)およびプリマスを打ち消すためにconsole=/dev/what_ever_worksを含んでいる: デフォルトの主題を打ち消すsplash=name_of_theme

またスクリーンを描き直すCTRL-Lのようないくつかのキーの組合せがある留まるべきCTRL-Vはテキストモードを可能にするためにモードおよびCTRL-Tをデバッグする。 残念ながら私は働くためにのこれらのキーの組合せ得てなかった。 但しESCキーは期待どおりに働き、詳しいとデフォルトの主題間の表示を留めた。

プリマスはソフトウェアのすべてのピクセル処理をする。 GPU 加速が ない。 それは使用MMX ( マトリックスの 数学延長)または SSEは (SIMD延長を流す)それ故にそこにCPU加速ではない。 多くのイメージに荷を積むか、または多くのフルスクリーンの更新をする少数のイメージおよびちょうど更新にスクリーンの小さい部品荷を積む1つより遅い差込式。 書かれたものがの計算の出版物にプリマスについて多くはプリマスの目的が経験の上のより速いブーツを提供することであるが、それではないプリマスの明確な設計目的ことを意味する。

私は約現在書く時間があることプリマスのすべての有益な情報についてである井戸。 このポストを読んだ後、私はプリマスのよりよい理解を有するいかにブーツ順序に関連していることを望み。 このプロジェクトが活動的な開発にあることしかし覚えなさい。 そして何も石で投げられない。 例えば、Dracutの 包含、ソフト帽12 (コンスタンチーヌ)のnashのための取り替えは、プリマスがいかに実施されるか影響を与えるかもしれない。 主題および差込はまた急速に展開している。

プリマスがUbuntuのような他のGNU/Linuxの配分で実行される ように、独立した著者からの写実的なブーツの主題の繁栄を見ると期待しなさい。 私はその日に先に見る。
 

プリマスを写し出す2つのコメント

  • サイモンB。

    「プリマスの後ろの主考えはXサーバーを非常に前もって始めることである
    起動プロセスおよびログインの間にそのXサーバーを使用し続けるため
    ユーザーセッション」。
    その道はプリマスよりクロムOSのような多くを鳴る。

    彼は彼自身 それらを 開発したことをブリーが2つの差込を催すのに、意味しないことをメーリングリストのアーカイブhttp://lists.freedesktop.org/archives/plymouth/2009-December/thread.htmlはまた述べる。 私の野生推測は何人かの人々が複雑だったことである。

  • その文について正しい! 私はそれを変更した。

    私が言ってもいい限りではNopeはこれら二つの差込のためのチャーリーBrejに、すべての信用行くべきである。