บูตเงียบแบบกราฟิกส์ด้วย splashy

เคยได้ยินเสียงบ่นจากผู้ใช้ที่คุ้นกับวินโดวส์บ่อย ๆ ว่าเวลาบูตลินุกซ์แล้วเจอข้อความเต็มไปหมด บังเกิดความกลัว หรือไม่ก็รำคาญที่อ่านไม่รู้เรื่อง ทั้งที่อันที่จริง ผมเองรู้สึกสบายใจที่ได้เห็นขั้นตอนต่าง ๆ โดยละเอียด ดีกว่าเอาฉากสวย ๆ มาบัง พอค้างแล้วก็ค้างเลย หาสาเหตุไม่ได้ สุดท้ายก็สูตรเดิม คือฟอร์แมต ลงใหม่

แต่ถ้ามองว่าเขาคือ end-user จริง ๆ ยังไงก็ไม่สนใจจะดูขั้นตอนการบูตแน่ ๆ ก็ตั้งฉากกั้นให้เขาสบายใจขึ้นได้ หรือจะตั้งเล่น ๆ เพื่อความสวยงามเฉย ๆ ก็ไม่ว่ากัน ใน debian มี 3 วิธี คือใช้ bootsplash หรือใช้ usplash ของ ubuntu หรือ splashy ที่พัฒนาโดย debian เอง

bootsplash นั้น ดูจะใช้กันหลาย distro แต่ต้อง patch kernel ด้วย ส่วน usplash และ splashy จะใช้การดัดแปลง sysvinit ล้วน ๆ ไม่ต้อง patch kernel เลย โดย usplash ของ debian จะต่างจาก usplash ของ ubuntu ตรงที่ไม่ได้ไปไล่ patch init script ของแพกเกจต่าง ๆ แต่ใช้วิธีสร้าง hook คล้ายกับที่ splashy ทำ ซึ่งผมคิดว่าเนียนกว่าในแง่เทคนิค อย่างน้อยก็ไม่มีการหักดิบให้ใช้ usplash อย่างเดียว และสามารถเพิ่ม service ได้ไม่จำกัด โดยไม่ต้องห่วงว่าได้ patch ให้ใช้ usplash หรือยัง แต่ทั้งนี้ทั้งนั้น ต้องให้เครดิต ubuntu เต็มที่ในฐานะผู้ริเริ่มทำ usplash

ในที่นี้ขอแนะนำ splashy ก่อน

# aptitude install splashy splashy-themes

แล้วก็ไปเพิ่ม boot parameter "splash vga=791 quiet" ในบูตโหลดเดอร์ ในกรณีที่เป็น grub ก็แก้ /boot/grub/menu.lst ที่บรรทัด "# kopt" (ไม่ต้องเอาคอมเมนต์ออก) โดยเพิ่มค่าต่อท้ายเข้าไป เช่น

# vi /boot/grub/menu.lst
...
# kopt=root=/dev/hda1 ro splash vga=791 quiet
...

แล้วสั่ง

# update-grub

(หรือจะแก้แบบเร็วโดยไปเพิ่ม boot parameter ต่อท้ายบรรทัด kernel เลยก็ได้ แต่ระวังว่าจะถูกเขียนทับเมื่อคุณสั่ง update-grub ครั้งต่อไป)

ส่วนถ้าเป็น lilo ก็แก้ /etc/lilo.conf

# vi /etc/lilo.conf

โดยเพิ่ม/แก้บรรทัด:

vga=791
append="quiet splash"

แล้วสั่ง

# lilo

ตรวจความเรียบร้อยแล้วรีบูต ก็จะเข้าระบบใหม่ด้วยหน้าจอรูปเพนกวิน (หลังจากมีข้อความขั้นแรกๆ นิดหน่อยไม่กี่บรรทัด)

splashy screenshot

ส่วนแพกเกจ splashy-themes ที่เราลงไปนั้น จะเพิ่มธีมอื่นให้เราใช้ได้นอกจากธีมปริยาย โดยดูธีมทั้งหมดได้โดยสั่ง:

# splashy_config --info

และกำหนดธีมได้โดยสั่ง:

# splashy_config -s theme-name

แอบดูรายละเอียดของธีมก่อนเลือกได้ที่ /etc/splashy/themes/

Re: บูตเงียบแบบกราฟิกส์ด้วย splashy

แฮ่ ๆ ... ที่สำคัญคือ ตอนนี้ splashy เข้ามาแทนที่ bootsplash เรียบร้อยแล้วครับผม
ด้วยเหตุผลที่ splashy ง่ายในการ config กว่า และไม่ต้องยุ่งยากกับการ patch kernel ใด ๆ ทั้งสิ้น

แต่ยังไงก็ตาม... ต้องขอบคุณทีม bootsplash ที่สร้างสรรค์งานดี ๆ ให้พวกเราได้ใช้ และหวังว่า idea ดี ๆ
ที่ bootsplash พัฒนาสั่งสมมา จะถูกนำไปใช้ต่อยอดเพื่อการพัฒนา project อื่น ๆ ต่อไปในอนาคต :)
___
Neutron: Linux Addict!

Re: บูตเงียบแบบกราฟิกส์ด้วย splashy

จริงๆ ผมก็ชอบดูข้อความเวลาบูตนะ อุ่นใจดี :)

Re: บูตเงียบแบบกราฟิกส์ด้วย splashy

ผมชอบ text message นะครับ. แต่ว่าผมก็จะลง splashy คนเดินผ่านไปผ่านมา จะได้รู้สึกว่า gnu/linux ง่าย (สร้างภาพนั่นเอง แต่ก็ไม่ใช่ภาพหลอกลวงนะ). ส่วนตัวแล้วผมไม่ค่อยชอบรูป tux เท่าไหร่ อยากได้ได้ก้นหอยของ Debian มากกว่า.

Re: บูตเงียบแบบกราฟิกส์ด้วย splashy

เปลี่ยน theme ได้จ้า.. ก้นหอยน่ะ ไม่มีพลาดอยู่แล้ว :)

ผมชอบ theme "debian3" นะ สวยดี คนอื่นอาจชอบ theme อื่นก็มีให้เลือกพอสมควรอยู่

Re: บูตเงียบแบบกราฟิกส์ด้วย splashy

แต่ว่าอยู่ใน sid ซะนี่ -_-!

Re: บูตเงียบแบบกราฟิกส์ด้วย splashy

อ้าว ซวยไป.. มันยังติด RC bug อยู่สองตัวน่ะครับ

  • #405532: ติดตั้งฟอนต์ใน /etc ละเมิด FHS policy
  • #383060: ยังมีปัญหากับคอนฟิกที่ใช้ initramfs เขาเลย file critical bug ไว้ตั้งแต่ก่อน etch ออก เพื่อกันไม่ให้เข้า etch จนถึงตอนนี้ก็ยังไม่มีใครแก้บั๊กนี้ได้

ทั้งสองบั๊ก ไม่เป็นอุปสรรคสำหรับการใช้งาน บั๊กแรกไม่มีผลกับผู้ใช้ปกติ แต่ร้ายแรงเพราะละเมิด policy แต่ไม่น่าจะแก้ยาก อยู่ที่ว่า maintainer จะสนใจหรือเปล่าแค่นั้น ส่วนบั๊กที่สอง แก้ยาก แต่ไม่น่ามีผลกับผู้ใช้ที่ไม่ได้คอนฟิกให้ใช้ initrd (เช่นผม)

Re: บูตเงียบแบบกราฟิกส์ด้วย splashy

ผมก็รอไปครับ ...

Re: บูตเงียบแบบกราฟิกส์ด้วย splashy

อืม ทุกวันนี้ตอ้งมาคอยเอา quiet กับ splash ใน grub ออกประจำ

Re: บูตเงียบแบบกราฟิกส์ด้วย splashy

พอดีเพิ่งมีโอกาสรีบูตเครื่อง (ปกติใช้ suspend/resume) เลยเพิ่งเข้าใจอาการที่คุณ tee บอก..

ปัญหาเกิดจาก splashy 0.3.7-1 ใช้ initramfs ทั้ง ๆ ที่ยังมีปัญหาอยู่ และถึงแม้จะ up เป็น 0.3.8-1 ก็ยังบูตไม่ขึ้นอยู่ดี

ผมแก้ด้วยการไม่ใช้ initramfs:

  1. กำหนด ENABLE_INITRAMFS=0 ใน /etc/default/splashy
  2. เรียกคำสั่ง
    # update-initramfs -u -t -k `uname -r`

    เพื่อสร้าง initrd image ใหม่

ทำเสร็จ ทำให้สามารถบูตเครื่องเข้ามาได้ แต่ปรากฏว่ายังติดปัญหาการโหลด module ต่าง ๆ (เช่น wireless, ALSA) และ start X ไม่ได้ เพราะโหลดไดรเวอร์ของฮาร์ดแวร์บางอย่างไม่ได้

สรุป:

# apt-get remove splashy

:-P

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้