TLE-Live

TLE-Live คือลินุกซ์ทะเลที่อยู่บนอุปกรณ์เก็บข้อมูลที่พกพาได้ โดยจุดเริ่มต้นเราทดลองกับ USB Drive ก่อน เพราะปัจจุบันมีราคาไม่แพง สามารถพกพาได้ง่าย และอัปเดท แก้ไขข้อมูลได้ง่าย โดย TLE-Live จะแยกเป็นมอดูล ซึ่งสามารถเพิ่มเติมมอดูลที่ต้องการได้ในภายหลัง ทำให้สามารถเริ่มต้นได้ที่ขนาดเล็กๆ เพียงแค่ 500 MB ก็สามารถเริ่มใช้งาน TLE-Live ได้แล้ว

คุณสมบัติเด่น

  • มีซอฟต์แวร์เทียบเท่ากับ LinuxTLE 8.0.1 โดยสามารถใช้งานได้เหมือน LinuxTLE รุ่นเต็มทุกประการ
  • ติดตั้งบน USB Drive ขนาด 500 MB ขึ้นไป แนะนำให้ใช้ 1000 MB เพื่อที่จะได้มีพื้นที่เก็บข้อมูลที่เปลี่ยนแปลงได้
  • สามารถเพิ่มมอดูล เพื่อให้มีโปรแกรมหรือคุณสมบัติเพิ่มขึ้นได้
  • ดาวน์โหลดแฟ้มสำหรับติดตั้ง เริ่มต้นเพียง 430 MB
  • สามารถติดตั้งจากระบบปฏิบัติการวินโดวส์ได้
  • ไม่ต้องแบ่งพาร์ทิชัน
  • พกพาไปใช้ที่ไหนก็ได้ เพียงแค่บูตจาก USB ได้ ก็ใช้ได้แล้ว

ดาวน์โหลด

  • แฟ้มหลัก [1]
  • มอดูลสำหรับผู้ใช้การ์ดแสดงผล nvidia [2] (GeForce 4 ขึ้นไป)
  • แฟ้มสำหรับเก็บข้อมูลที่เปลี่ยนแปลง [3]

สิ่งที่ต้องใช้

  1. USB Drive ขนาด 500 MB ขึ้นไป
  2. พีซีหรือโน๊ตบุ๊คที่สามารถบูตอุปกรณ์ยูเอสบีได้

การติดตั้ง

  1. ไดรฟ์ยูเอสบีต้องมีที่ว่างอย่างน้อย 450 MB เป็น FAT16 หรือ FAT32 ก็ได้
  2. ดาวน์โหลดแฟ้ม tlelive-base-1.0-1.zip
  3. แตกแฟ้มใส่ไว้ในไดรฟ์ยูเอสบี เมื่อเสร็จแล้ว จะเห็นโฟลเดอร์ boot และ tlelive
  4. ถ้าใช้วินโดวส์ ให้เปิดเข้าไปใน boot จะเห็นแฟ้มชื่อ bootinst.bat ดับเบิ้ลคลิกมัน มันจะรัน batch script ขึ้นมาแจ้งรายละเอียดการติดตั้งบูตโหลดเดอร์ในไดรฟ์ยูเอสบี กดเอนเทอร์ เมื่อติดตั้งแล้ว กดเอนเทอร์อีกครั้ง
  5. ถ้าใช้ลินุกซ์ ให้เปิด shell แล้วเข้าไปในไดเรกทอรี boot แล้วสั่ง
    • sudo ./bootinst.sh
  6. unmount แล้วนำไปลองบูตดู

การสร้างที่เก็บข้อมูลถาวร

โดยปกติ ถ้าไม่มีที่เก็บข้อมูลถาวร ระบบจะสร้าง memory file system ขึ้นมาชั่วคราว เพื่อให้จัดเก็บข้อมูลที่เปลี่ยนแปลงได้ แต่ข้อมูลเหล่านี้จะหายไปเมื่อมีการบูตใหม่ หากต้องการให้มีการเก็บข้อมูลได้ถาวร ก็สามารถทำได้หลายวิธี ดังต่อไปนี้

  • ใช้ file system ที่เตรียมไว้ให้ วิธีนี้เหมาะกับผู้ที่ใช้ระบบปฏิบัติการวินโดวส์ ซึ่งไม่สามารถสร้าง file system สำหรับลินุกซ์ได้เอง ทำได้โดย
    1. ดาวน์โหลด file system ที่เตรียมไว้จาก http://ftp.opentle.org/pub/tlelive/1.0/tlelivedata/ โดยเลือกขนาดที่เหมาะสม เช่น tlelivedata-1.0-1-100M.zip ก็สำหรับ file system ขนาด 100 MB เป็นต้น หรือถ้าต้องการขนาดที่ใหญ่กว่านี้ ก็เลือกดาวน์โหลดแฟ้มอื่นที่เหมาะสมได้
    2. แตกแฟ้มนี้ ใส่ใน root ของยูเอสบีไดรฟ์ จะได้แฟ้ม tlelivedata-1.0-1.img ที่มีขนาดตามที่กำหนดไว้
  • สร้างขึ้นเอง กรณีใช้ระบบปฏิบัติการลินุกซ์ ท่านสามารถสร้าง file system ขึ้นได้เอง ดังนี้ (สมมติว่า /media/usbdrive คือตำแหน่งที่ยูเอสบีไดรฟ์ถูกเมานท์อยู่, 333 คือขนาดของ file system ที่ต้องการใช้เก็บข้อมูล หน่วยเป็น MB)
    1. cd /media/usbdrive
    2. dd if=/dev/zero of=tlelivedata-1.0-1.img bs=1M count=0 seek=333
    3. mkfs.xfs tlelivedata-1.0-1.img หรือ mkfs.ext3 tlelivedata-1.0-1.img

ที่จริงอาจจะนำไปเก็บที่พาร์ทิชันใดๆ ในฮาร์ดดิสก์ ที่มี file system ที่ลินุกซ์อ่านเขียนได้ เช่น fat, ext3 ส่วน ntfs ยังเขียนไม่ได้ครับ อาจจะได้ในรุ่นหน้า โดยสคริปต์จะค้นหาแฟ้มเก็บข้อมูลนี้เอง

เพิ่มมอดูล nvidia

สำหรับคนที่ใช้การ์ดแสดงผล nvidia GeForce 4 ขึ้นไป สามารถใช้ opengl 3D ได้โดย

  1. ดาวน์โหลดแฟ้ม nvidia.lzm จาก #ดาวน์โหลด
  2. เอาแฟ้มนี้ไปใส่ไว้ในยูเอสบีไดรฟ์ ที่ตำแหน่ง tlelive/modules
  3. นำไปบูต ดูว่าเข้ากราฟิกโหมดได้หรือไม่ ถ้าได้ ลองเปิด terminal แล้วรันคำสั่ง glxgears ถ้ามีภาพ 3d แสดงให้ดู และไม่ช้าจนกระตุก แสดงว่าใช้ได้แล้ว ถ้าไม่เข้าโหมดกราฟฟิกอาจจะลองปรับแต่งแฟ้ม /etc/X11/xorg.conf ดู หรืออาจจะเป็นเพราะไดรเวอร์ไม่สนับสนุนการ์ดรุ่นเก่า หรือไม่ตรงรุ่นก็ได้ ก็ให้เอาแฟ้ม nvidia.lzm ออก


Hacking for fun

ล็อกอินในโหมดเท็กซ์

  • กด ctrl-alt-F{1,2,...,6} แล้วล็อกอินด้วยชื่อ tleuser สำหรับผู้ใช้ธรรมดา หรือ root สำหรับผู้ใช้ที่มีสิทธิจัดการระบบ โดยไม่ต้องใช้รหัสผ่าน

ติดตั้ง LinuxTLE 8.0.1 ในพาร์ทิชันของลินุกซ์อื่นๆ ที่ใช้อยู่แล้ว ด้วย TLE-Live

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

  • แตกแฟ้ม tlelive-base-1.0-1.zip คัดลอกไดเรกทอรี tlelive ทั้งยวงไปไว้ที่พาร์ทิชันใดพาร์ทิชันหนึ่งในฮาร์ดดิสก์
  • คัดลอกแฟ้ม vmlinuz และ initrd.gz จากไดเรกทอรี boot ที่แตกจากแฟ้ม tlelive-base-1.0-1.zip ไปไว้ที่ /boot โดยเปลี่ยนชื่อใหม่ไม่ให้ซ้ำกับที่มีอยู่ เช่น vmlinuz-tlelive และ initrd-tlelive.gz
  • แก้ไข GRUB menu โดยแก้แฟ้ม /boot/grub/menu.lst เพิ่มบรรทัดนี้เข้าไปล่างสุดของแฟ้ม
title   TLE-Live 1.0
root (hd0,0)
kernel /boot/vmlinuz-tlelive vga=769 max_loop=255 ramdisk_size=4444 root=/dev/ram0 changes=tlelivedata-1.0-1.img rw
initrd /boot/initrd-tlelive.gz
boot

ถ้าแยกพาร์ทิชัน /boot ออกมาต่างหากจากพาร์ทิชัน / (root) ให้ตัด /boot ออก เหลือ /vmlinuz-tlelive และ initrd /initrd-tlelive.gz พอ

TLE-Live remastering

อยากจะดัดแปลง TLE-Live หรือครับ ไม่ยาก ก่อนอื่นต้องทราบก่อนว่าแฟ้ม lzm นั้น คือแฟ้มของ file system แบบ squashfs ซึ่งอาจจะมองเป็นแฟ้มบีบอัดชนิดนึงก็ย่อมได้ เพราะมีเครื่องมือสำหรับสร้าง และแตกแฟ้มนี้มาให้ด้วย นั่นก็คือ mksquashfs และ unsquashfs ซึ่งใช้ได้บนระบบปฏิบัติการลินุกซ์ แต่ squashfs ที่เราใช้ไม่ใช่ squashfs แบบทั่วไป คือเราใช้ patch ของ squashfs-lzma ทำให้บีบอัดได้มากขึ้น แต่ก็ทำให้ไม่สามารถใช้ unsquashfs ทั่วไปอ่านได้เช่นกัน แต่ไม่ต้องเป็นห่วง เพราะเราเตรียม {mk,un}squashfs รุ่นที่สร้าง และแตกแฟ้ม squashfs แบบ lzma ได้มาด้วยแล้ว วิธีการคือ

  • ท่านต้องมีระบบปฏิบัติการลินุกซ์ตัวไหนก็ได้สักตัว ซึ่งติดตั้งในฮาร์ดดิสก์แบบปกติก่อน
  • คัดลอกแฟ้ม mksquashfs และ unsquashfs จากไดเรกทอรี tlelive/tools ซึ่งอยู่ในยูเอสบีไดรฟ์ ไปไว้ที่ /usr/local/bin ของระบบลินุกซ์ในเครื่องท่าน
  • สร้างไดเรกทอรีสำหรับแตกแฟ้ม lzm สมมติเป็น /usr/src/tle
  • แตกแฟ้มไปไว้ด้วยคำสั่ง
    # unsquashfs -d /usr/src/tle /media/disk/tlelive/base/base.lzm

สำหรับแฟ้ม lzm อื่นๆ ก็แตกไปไว้ที่เดียวกัน แล้วทำการปรับแต่งอย่างที่ท่านต้องการ จากนั้นก็รวมกลับเป็น lzm เหมือนเดิม ซึ่งหลักการคือ จะสร้างเป็นแฟ้มใหญ่แฟ้มเดียวเลยก็ได้ ตั้งชื่ออะไรก็ได้ ขอให้นามสกุลเป็น lzm แต่จากประสบการณ์พบว่า เมื่อไม่มีการเพิ่ม-ลบโปรแกรมอะไรแล้ว จะมีหลายไดเรทอรีที่จะไม่เปลี่ยนแปลงอีก ได้แก่ bin sbin usr opt root media ส่วนไดเรกทอรีที่เปลี่ยนแปลงได้บ่อยในระหว่างการพัฒนาคือ etc var home lib จึงได้แยกส่วนที่ไม่เปลี่ยนแปลงอีก สร้างเป็น base.lzm ที่เหลือแยกสร้างเป็นไดเรกทอรีไป เพื่อที่หากแก้ไขบางจุด ก็สร้างไฟล์ lzm ใหม่เฉพาะจุดนั้นๆ ทำให้ประหยัดเวลาได้มาก ซึ่งวิธีการสร้างแฟ้ม lzm คือ

# mksquashfs /usr/src/tle/var /media/disk/tlelive/base/var.lzm -keep-as-directory -noappend
# mksquashfs /usr/src/tle/{bin,sbin,usr,opt,root,media} /media/disk/tlelive/base/base.lzm -keep-as-directory -noappend

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

TODOs

  • เพิ่มเมนูตอนบูตให้เลือก driver การ์ดแสดงผล + ความละเอียดเอง
  • kernel 2.6.20 จาก ubuntu 7.04
  • มอดูลสำหรับ fglrx (ATI Radeon)
  • มอดูลสำหรับ beryl (3D-Effect)
  • มอดูลสำหรับพัฒนาซอฟต์แวร์ (gcc, devel tools, anjuta, ...)
  • มอดูลเกม

Known Bugs

  • พาร์ทิชันที่เมานท์ให้อัตโนมัติ ให้สิทธิเฉพาะ root เขียนได้
  • อุปกรณ์เน็ตเวิร์คอะแดปเตอร์บางตัวใช้งานไม่ได้ (8139too บางตัว, rt2500 เป็นต้น)
  • eth0 ถูกจอง (ลืมลบ /etc/iftab)
  • Network ไม่เริ่มทำงานโดยอัตโนมัติ

โพสต์ยอดนิยมจากบล็อกนี้

ปัญหาและเฉลยวิชาธรรม นักธรรมชั้นตรี สอบในสนามหลวง วันอังคาร ที่ ๒๙ กันยายน พ.ศ.๒๕๕๒

I miss you all กับ I miss all of you ต่างกันอย่างไร

ปัญหาและเฉลยวิชาอนุพุทธประวัติ นักธรรมชั้นโท สอบในสนามหลวง วันอาทิตย์ ที่ ๒๐ พฤศจิกายน พ.ศ. ๒๕๔๘