번역하십시오

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
리눅스 알갱이 발달 (제 3 판)의 심상
인조 인간 무선 애플리케이션 개발의 심상
XSLT 2.0와 XPath 2.0 프로그래머 참조 (프로그래머에 프로그래머)의 심상
운영 체계 개념의 심상

프로젝트 플리머스

벌채 장치 원본이 기록 파일 에 출력하는 동안 그래픽 시동 과정 도중 흔들림 자유롭게 살린 비말 스크린을 표시하기 위하여 신청을 개발하도록 Redhat의 Ray Strobe가 2007년에 시작한 플리머스는 freedesktop.org 프로젝트를 위한 codename 이다. 중절모 10 (케임브리지)는 플리머스를 포함하는 중절모의 첫번째 방출 이었다. 개발 작업은 활발히 진행하고 신발매는 0.71이다.

플리머스는 그래픽 시동 전시를 제공하기 위하여 빨간 모자에 의해 지금 이용되는 RHGB (빨간 모자 그래픽 시동)를 위한 보충이기 위하여 예정된다. rhgb가 알갱이 커맨드 라인의 일부분인 경우에, rhgb는 /etc/sysinit에 의해 시동 과정에서 일찌기 시작된다. rhgb는 전시를 위한 X 서버를 가동한다: 전시를 위해 가동할지도 모른다 일정한 X 서버와의 충돌을 피한다 그래야 1개의 가상 단말기에 1: 다른 가상 단말기에 0. 그것은 또한 시동 원본이 그것과 연락할 수 있다 그래야 유닉스 영역 소켓 (/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 운전사 없는 체계를 위해, 친밀한 3 색 파랗거나 백색 또는 검정 진도 막대기인 후퇴 텍스트 모드가 있다. 플리머스는 또한 이 텍스트 모드 등을 맞댄 과태 플러그 접속식 실패 어떤 이유에서건 떨어지는 경우에.

알갱이 modesetting 운전사는 활동적인 발달 및 약간 2 륜 마차에 아직도 있다. 중절모 11 현재로, Radeon R500와 더 높은 시리즈 그래픽 카드만 디폴트로 modesetting 알갱이를 지원한다. R100와 R200 그래픽 카드를 알갱이 modesetting 지원을 제공하는 미완성품이 있다. 인텔 알갱이 modesetting 운전사는 존재하고 그러나 디폴트로 켜지지 않는다. Nouveau 운전사를 통해 nVidia 그래픽 카드에서 modesetting 알갱이를 위한 지원은 아직도 실험적이다. 당신이 시동 도중 까만 스크린 위로, 또는 그것에 무작위 소음을 가진 스크린으로 끝나는 경우에, 무능 알갱이 형태 조정에 알갱이 커맨드 라인에 nomodeset를 추가하는 시험.

당신의 특정한 그래픽 카드를 위해 유효한 적당한 알갱이 modesetting 운전사가 없거나 당신이 명백한 형태를 놓고 싶은 경우에, 당신은 알갱이 커맨드 라인에 끈 vga=XXX를 추가할 수 있다. 알갱이 커맨드 라인 선택권 vga=ask는 붙박이 vesa framebuffer 운전사를 빈다, 지원한 형태의 명부를 표시하고 당신을 형태를 선정하도록 요구한다. 이 형태를 사용하여 알갱이가 그것에 의하여 그 때 구두를 신긴다. 형태가 선행 영과 편지 `x 3개의 손가락 십진수를 가진 4개의 손가락 십육진법 인, 알갱이 커맨드 라인 선택권 vga=mode는 당신을 특정한 형태를 놓는 가능하게 한다.

당신은 어떻게 무슨 특정한 형태가 유효하 어느 것이 당신을 위해 잘 작동할 말할 수 있는가? 이것은 당신은 당신의 체계에서 있는 그래픽 카드의 유형, 및 유효한 영상 기억 양에 진짜로 달려 있다. 유일한 방법은 형태 여러가지 실험하기 위한 것이다.

다음에 나오는 테이블은 당신이 십육진법을 사용하여 vga= 길잡이에 입력할 수 있는 형태 수를 보여준다

색깔640x480800x6001024x7681280x10241600x1200
2560301030303050307031C
327680310031303160319031D
65536031103140317031A031E
16.8M031203150318031B031F

그리고 동일한 테이블은 십진수를 사용하여 여기 있다.
색깔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 백만개의 색깔. 추가 형태는 그래픽 카드 제조자의 자유재량으로 VESA 2.0 명세가 0x31F까지서만 형태를 정의하기 때문에, 이다. VESA 형태에 관하여 정보 더를 위해, VESA BIOS 연장 고분고분한 그래픽 카드에 관하여 이 기사를 보십시오.

플리머스는 시동 시간에 표시되는 화면 보호기와 비슷한 주제를 사용한다. 중절모 11는 태양, fade-in 3개의 그래픽 주제로 및 spinfinity 및 2개의 비그래픽 주제 원본세부사항 발송했다. 원본 주제는 다른 주제가 어떤 이유에서건 실패하는 경우에 표시되는 과태 주제이다.

프로젝트가 점진한 대로 주제와 플러그 접속식의 주위에 용어 그리고 기술은 진화했다. 중절모 10에서 발송한 플리머스의 버전은 각 비말 스크린이 처음부터 암호로 해야 한 플러그 접속식 체계에 근거를 두었다. 이 문제는 인식되고 중절모 11를 위해 지금 차례차례로 표준 플러그 접속식을 이용하는 주제를 지원한다 그것에 의하여 플리머스는 중요한 고쳐 씀을 통해 갔다. 따라서 주제 개발자는 지금 수 있다 익지않는 코딩을 하는 것을 한 보다는 오히려 주제 도표에 집중할.

지금 중절모 창고에 있는 5개의 주제가 있다. 책임은 중절모 11 (Leonidas)를 위한 과태 주제이다. Spinfinity는 무한대 표시 같이 형성된 경로에서 움직이는 throbber이다. Fade-In 쇼 스타필드에서와 밖으로 점점 뚜렷해지는 중절모 로고. 세부사항은 시동 과정에서 출력된 고전적인 두루말기를 보여준다. 원본은 스크린 3 색 주제의 후퇴 바닥이다. 태양, 나의 개인적인 마음에 드는 것 중절모 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


이 주제는 2 단계 주제 표시의 실제적인 일하기 위하여 플러그 접속식을 부른다. 2 단계 플러그 접속식은 특정 이름을 가진 이미지 파일의 어느 정도 수 그리고 유형을 예상한다. 각종 지시는 플러그 접속식에 통과될 수 있다; 플러그 접속식 특정적이는 수 및 유형. 전환의 예를 들면 다른 유형은 전환 지시를 사용하여 2 단계 플러그 접속식을 위해, i.e퇴색하 지정되고, 십자가 퇴색하고 합병하 퇴색할 수 있다.

몇몇 플러그 접속식은 중절모 11.로 발송하지 않았다. 1 그런 플러그 접속식은 플러그 접속식 상표이다. 일단 뿌리 파일시스템이 거치되면 initrd가의 일부분 아니라 loadable 이다. 그것은 절대적으로 때 원본을 표시하는 비말 플러그 접속식 시도 적재된다. 상표는 적재된 후에, pango 메시지 지방화를 취급하기 위하여 카이로를 이용한다.

또 다른 그런 플러그 접속식은 주제를 위한 대본을 쓰는 언어를 지원하는 원본이다. 그것은 2개의 기본적인 목표, i.e 심상과 Sprite를 지원한다. 당신이 Javascript 또는 C 언어에 경우에 익숙하면 당신은 통어론 및 관용구에 안락해야 한다. 대본을 쓰는 언어가 그래서 이고 또는 지원되지 않는 무슨이 파악하기 위하여 당신은 git 통나무 또는 원시 코드를 읽는는다는 것을 할지도 모른다 목표가 더 동쪽을 향한 그것을 만들을 예상해서 급속한 발달을 현재 치루고 있다는 것을 유의하십시오.

대본이 있는 주제의 예를 들면, 나는 Vizta 민들레 주제를 위한 근원 에 당신을 보기 추천한다. 이 주제는 둘 다 찰리 Brej 의 대본을 쓰는 언어의 뒤에 주요 개발자인 맨처스터 UK의 대학에 연구 보조원에 의해 개발되었다. 당신이 중절모 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에 상징 연결이다

플리머스로 실험하는 1가지의 방법은 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 (처음 디스크에) 추가될 필요가 있다 시동이 어떻게 점진하고 있는지 배급은 plymouthd와 그것에게 말하기 위하여 조화시킬 필요가 있고. 게다가 initramfs는 X 서버에 의해 필요로 한 모든 필요한 파일을 포함해야 한다. 예를 들면, 나의 중절모 11 initrd에 있는 nash 원본은 여기 있다. 장치가 원본에 있는 유효하자마자 또한 다른 몇 시간이 플리머스 비말 스크린이 불리는 방법 고시.

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


장치 시동 메시지는 시동 과정에서 아주 일찍부터 창조되는 pseudo-terminal에 방향이 바뀐다. 이 메시지는 파일시스템이 완전히 거치될 때까지 부드럽게 된다. 다음 완충기는 /var/log/boot.에 내버려진다. 원본 또는 도표 형태에서는, 시동 메시지는 어둡게 한다. 그러나 당신은 시동 순서 도중 Esc 키를 명중해서 이 메시지를 언제나 볼 수 있다.

플리머스 주제를 바꾸기의 부작용의 한개는 당신이 새로운 initrd 심상을 생성해야 한다 이다. 보통 이것은 mkinird 원본을 사용하여 행해진다. 아무리 이것을 하기에 대안이 있다. 당신은 당신의 기존하는 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. 기본 파일은 파일에 벌채하는 경우에 지정되면 그러나 아무 파일도, i.e 선택권 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 ( 모체 수학 연장) 또는 ( SIMD 연장을 흐르는) SSE는 그러므로 거기 게다가 CPU 가속도가 없다. 많은 심상을 적재하거나 많은 전화면 갱신을 하는 약간 심상 및 다만 갱신을 스크린의 작은 부속 적재하는 것보다 더 느릴 플러그 접속식. 쓴 무슨이의 계산 압박에 플리머스에 관하여 다량은 플리머스의 목표가 경험 높은 쪽으로 더 빠른 시동을 제공하기 다는 것을 그러나 그것 아니다 플리머스의 명백한 디자인 목표가 함축한다.

나는 대략 현재 쓰는 시간을 있다 플리머스에 모든 유용한 정보에 관하여 인 우물. 이 포스트를 읽기 후에, 나는과 시동 순서와 관련되는지 어떻게 당신은 플리머스의 더 나은 이해가 다는 것을 희망한다. 이 프로젝트가 활동적인 발달에 있다 그러나 기억하십시오. 그리고 아무것도 돌에서 던져지지 않는다. 예를 들면, Dracut의 포함, 중절모 12 (Constantine)에서 nash를 위한 보충은, 플리머스가 어떻게 빌어지는지 영향을 미칠지도 모른다. 주제와 플러그 접속식은 또한 급속하게 진화하고 있다.

플리머스가 Ubuntu와 같은 다른 GNU/Linux 배급에서 실행된 대로 독립적인 저자에게서 그래픽 시동 주제의 번영을 볼 것으로 예상하십시오. 나는 그 일에 기대한다.
 

플리머스를 계획하는 2개의 코멘트

  • 사이몬 B.

    "플리머스의 뒤에 중요한 아이디어는 X 서버를 아주 일찍부터 가동하기 위한 것이다
    시동 과정 및 로그인 도중 그 X 서버 사용 계속되 위하여
    사용자 세션."
    그 통행은 플리머스 보다는 크롬 OS 같이 더 많은 것을 소리가 난다.

    그는 그 자신 그(것)들을 개발했다는 것을 비록 치즈가 2개의 플러그 접속식을 접대하더라도, 의미하지 않는다는 것을 우편 목록 기록 보관소 http://lists.freedesktop.org/archives/plymouth/2009-December/thread.html는 또한 언급한다. 나의 엉뚱한 추측은 몇몇 사람들이 연루되었다 이다.

  • 당신은 그 문장에 관하여 맞다! 나는 그것을 변경했다.

    나가 말해서 좋다 면 Nope는 이러한 두 종류 플러그 접속식을 위한 찰리 Brej에게, 모든 신용 가야 한다.