เบื้องหลังการสร้างต้นแบบ PSU 32

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 25-04-2555

ดูแลโดย WIPAT


ยังไม่เรียบร้อย ห้ามใช้งาน

  • sis 191 มี bug ใช้ mtu ไม่เกิน 1496
  1. ติดตั้ง ubuntu 11.04 desktop i386 บน virtualbox ขนาด 20 GB
    แบ่ง partition ให้ /dev/sda1 มีขนาด 19 GB แบบ primary ext3 และ /dev/sda2 มีขนาด 1 GB แบบ linux swap
    ตั้ง user ชื่อ mama รหัสผ่าน 123456 ให้ autologin
  2. ติดตั้งเสร็จแล้ว ให้ login เข้าใช้งานด้วย user ชื่อ mama รหัสผ่าน 123456
    แล้วปรับปรุงซ่อมแซมช่องโหว่ ด้วยคำสั่ง sudo apt-get update และ sudo apt-get dist-upgrade แล้วให้รีบูทใหม่
  3. ทำให้เวลาใช้คำสั่ง sudo ไม่จำเป็นต้องใส่รหัสผ่าน แก้ไขแฟ้ม /etc/sudoers
    เพิ่มข้อความว่า mama ALL=NOPASSWD: ALL เป็นบรรทัดใหม่ต่อท้ายแฟ้มเดิมด้วยคำสั่งว่า
    sudo sh -c "echo 'mama ALL=NOPASSWD: ALL' >> /etc/sudoers"
  4. ติดตั้ง gnome ทำดังนี้
    sudo apt-get install gnome-session-fallback gnome-shell
    sudo /usr/lib/lightdm/lightdm-set-defaults -s gnome-shell
    แล้วให้รีบูทใหม่
  5. ติดตั้งโปรแกรม psu-remastersys ทำดังนี้
    wget -N -P /tmp http://ftp.psu.ac.th/pub/psu-remastersys/psu-remastersys.tgz
    tar -zxpvf /tmp/psu-remastersys.tgz -C /tmp
    cd /tmp/psu-remastersys
    sudo sh install-psu-remastersys.sh
    แก้ไขตัวแปรในแฟ้ม /etc/remastersys.conf ให้เป็นดังนี้
    LIVEUSER="mama"
    LIVECDLABEL="PSU-32 Live DVD"
    CUSTOMISO="psu-32-backup.iso"
    BACKUPSHOWINSTALL="0"
  6. แก้ไข mtu bug ของ sis191 ปรับปรุง /etc/network/interfaces ให้เป็นดังนี้
    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet dhcp
    pre-up /sbin/ifconfig $IFACE mtu 1496
  7. แก้ไขแฟ้ม /etc/udev/rules.d/70-persistent-net.rules ลบข้อมูลที่ขึ้นต้นว่า SUBSYSTEM=="net",... ออกให้หมด ด้วยคำสั่ง
    sudo sh -c "sed -i 's/^.*SUBSYSTEM/#SUBSYSTEM/' /etc/udev/rules.d/70-persistent-net.rules"

    สร้างแฟ้ม /etc/udev/rules.d/75-persistent-net-generator.rules ขึ้นใหม่ด้วยคำสั่งว่า
    sudo sh -c "echo '#DO NOTHING' > /etc/udev/rules.d/75-persistent-net-generator.rules"
  8. ยกเลิกการตั้งค่า update อัตโนมัติ ด้วยคำสั่ง sudo apt-get remove update-notifier
    ปิด screen saver ของ desktop ไม่ต้องให้ทำงาน Applications -> System Tools -> System Settings -> Personal Screen
    ปิด power managment ไม่ต้องให้ display ทำงาน Applications -> System Tools -> System Settings -> Hardware Power

    เพิ่ม alt_ctrl_backspace ให้ kill X server ได้
    Applications -> System Tools -> System Settings -> Keyboard Layout -> Layouts -> Options...
    -> Key sequence to kill the X server -> Control + Alt + Backspace

    ปรับปรุง grub ให้แสดง text ตอนบูท แก้ไขแฟ้ม /etc/default/grub ปรับปรุงตัวแปร GRUB_CMDLINE_LINUX_DEFAULT="splash"
    แล้วทำงานต่อด้วยคำสั่ง sudo update-grub

    เพิ่ม applet กดแป้น ALT ขวา + คลิกขวาเมาส์ Add to panel... -> System Monitor -> Add
    คลิกขวา Open System Monitor -> Preferences -> Network
    ย้าย applet กดแป้น ALT ขวา + คลิกขวาเมาส์ Move

    ตั้งการบูทให้ทำงานโปรแกรมโดยอัตโนมัติ
    Applications -> Other -> Startup Applications -> Add
  9. ปรับแต่ง firefox ดังนี้
    ตั้งพื้นที่ download ให้ถามทุกครั้ง Edit -> Preferences -> General
    ตั้งฟอนต์ Loma ภาษาไทย Edit -> Preferences -> Content -> Fonts & colors -> Advanced... -> Thai -> Monospace: -> Loma
    ปิดการจำ password ให้ถามทุกครั้ง Edit -> Preferences -> Secutiry
  10. ติดตั้งฟอนต์ภาษาไทยเพิ่มไปที่ /usr/share/fonts/truetype/thai/ ด้วยคำสั่ง
    sudo wget ftp://ftp.psu.ac.th/pub/thaifonts/sipa-fonts/*ttf -P /usr/share/fonts/truetype/thai
  11. ติดตั้ง flash plugin ด้วยคำสั่ง
    sudo apt-get install libcurl3 libnspr4-dev flashplugin-nonfree
  12. ติดตั้งโปรแกรม clamav ดังนี้
    sudo apt-get install clamav clamtk
    wget -P /tmp http://ftp.psu.ac.th/pub/clam/clamtk_4.39-1_all.deb
    sudo dpkg -i /tmp/clamtk_4.39-1_all.deb

    ปิดไม่ให้ clamv-freshclam ทำงาน ด้วยคำสั่ง
    sudo update-rc.d -f clamav-freshclam remove
    แก้ไขแฟ้ม /etc/clamav/freshclam.conf
    เพิ่มบรรทัดว่า DatabaseMirror clamav.psu.ac.th
  13. ติดตั้งโปรแกรมต่างๆดังนี้
    sudo apt-get install dialog easytag etherwake ethtool expect fbreader filezilla gimp gcompris gnash gparted gthumb gtkterm
    sudo apt-get install iperf kompozer littler lshw-gtk minicom mozilla-plugin-vlc nbtscan nmap nfs-common openjdk-6-jre openssh-server
    sudo apt-get install pspp qcad scilab stellarium supertux-stable
    sudo apt-get install traceroute tuxmath tuxpaint tuxtype vlc vlc-plugin-pulse wine wireshark wxmaxima
  14. ติดตั้งโปรแกรม R และ epicalc ดังนี้
    sudo apt-get install r-base r-base-dev rkward
    เปิดโปรแกรม RKWard ให้เลือกเมนู Settings -> Configure Packages
    ได้หน้าต่าง Configure Packages RKWard ให้เลือกแถบ Install แล้วคลิกปุ่ม Fetch list
    ได้หน้าต่าง CRAN mirror มาให้เลื่อนไปเลือก Thailand แล้วคลิกปุ่ม OK
    กลับมาที่หน้าต่าง Configure Packages RKWard จะมีรายชื่อ package โผล่ออกมาให้เลือก
    ให้เลื่อนไปเลือก epicalc แล้วคลิกปุ่ม install selected
  15. ติดตั้งโปรแกรม jperf ดังนี้
    sudo apt-get install iperf openjdk-6-jre
    wget http://ftp.psu.ac.th/pub/jperf/jperf-2.0.2.zip -P /tmp
    unzip /tmp/jperf-2.0.2.zip -d ~
  16. ปรับปรุง home ดังนี้
    wget ftp://ftp.psu.ac.th/pub/psu-32/dists-32/home/mama/* -P /home/mama
    wget ftp://ftp.psu.ac.th/pub/psu-32/dists-32/home/mama/Desktop/* -P /home/mama/Desktop
    sudo chmod +x /home/mama/Desktop/*.desktop
  17. จัดการ remote desktop ไปที่ Applications -> Internet -> Desktop Sharing
    หัวข้อ Sharing ให้คลิกเลือก Allow other users to view your desktop
    และคลิกเลือก Allow other users to control your desktop
    หัวข้อ Security ไม่เลือก You must confirm each acess to this machine
    คลิกเลือก Require the user to enter this password : แล้วป้อนว่า 123456 ไว้ในช่องด้านขวา

    หมายเหตุ. หากมีหน้าต่าง New Keyring Password โผล่ออกมาให้ ไม่ต้องป้อนอะไรเลย ให้คลิกปุ่ม OK
    ได้คำเตือนว่า Store password unencrypted? ให้คลิกปุ่ม Use Unsafe Storage

    และคลิกเลือก Automatically configure UPnP router to open and forward ports
  18. ติดตั้งโปรแกรม stardict ทำดังนี้
    sudo apt-get install stardict
    wget http://ftp.psu.ac.th/pub/stardict/stardict-lexitron-et-2.4.2.tar.bz2 -P /tmp
    sudo tar -jxvf /tmp/stardict-lexitron-et-2.4.2.tar.bz2 -C /usr/share/stardict/dic/
    wget http://ftp.psu.ac.th/pub/stardict/stardict-lexitron-te-2.4.2.tar.bz2 -P /tmp
    sudo tar -jxvf /tmp/stardict-lexitron-te-2.4.2.tar.bz2 -C /usr/share/stardict/dic/
  19. ติดตั้งโปรแกรม xmind ดังนี้
    wget http://ftp.psu.ac.th/pub/xmind/xmind-3.2.1.201011212218_i386.deb -P /tmp
    sudo dpkg -i /tmp/xmind-3.2.1.201011212218_i386.deb
  20. ติดตั้งโปรแกรม virtualbox ดังนี้
    sudo apt-get install libqt4-network libqt4-opengl libcurl3 dkms
    wget -P /tmp http://ftp.psu.ac.th/pub/virtualbox/virtualbox-4.1_4.1.12-77245~Ubuntu~natty_i386.deb
    sudo dpkg -i /tmp/virtualbox-4.1_4.1.12-77245~Ubuntu~natty_i386.deb
    sudo usermod -a -G vboxusers $(whoami)

    เพิ่ม ext pack ดังนี้
    wget -P /tmp http://ftp.psu.ac.th/pub/virtualbox/Oracle_VM_VirtualBox_Extension_Pack-4.1.12-77245.vbox-extpack
    sudo VBoxManage extpack uninstall 'Oracle VM VirtualBox Extension Pack'
    sudo VBoxManage extpack install /tmp/Oracle_VM_VirtualBox_Extension_Pack-4.1.12-77245.vbox-extpack
  21. ติดตั้งโปรแกรม inssider ดังนี้
    sudo apt-get install libmono-system-web2.0-cil libwebkit1.1-cil libglade2.0-cil
    wget http://ftp.psu.ac.th/pub/metageek/inssider_0.1.1.0429_i386.deb -P /tmp
    sudo dpkg -i /tmp/inssider_0.1.1.0429_i386.deb
  22. ติดตั้งโปรแกรมชุดบันทึกความแรงสัญญาณ wifi ด้วยคำสั่งดังนี้
    sudo apt-get install gnuplot-x11
    wget -N -P ~ http://ftp.psu.ac.th/pub/psu-32/check-wifi.sh
    wget -N -P ~ http://ftp.psu.ac.th/pub/psu-32/report-wifi.sh
    wget -N -P ~ http://ftp.psu.ac.th/pub/psu-32/plot-wifi.sh
  23. เพิ่ม driver ของ broadcom STA wireless 43xx ด้วยคำสั่ง
    sudo apt-get install broadcom-sta-common
  24. ก่อนสร้างแฟ้ม iso ให้จัดการเก็บกวาดขยะก่อน ทำดังนี้คือ
    sudo apt-get clean
    sudo apt-get autoremove
    sudo rm /var/log/*gz
    sudo rm /var/log/*/*gz
    rm ~/.bash_history

    เริ่มสร้างแฟ้ม iso ไปที่ แถบ taskbar ด้านบน เลือกหัวข้อ Application -> Other -> Remastersys Backup
    เมื่อได้หน้าต่าง "Remastersys Backup" แล้ว ให้คลิกปุ่ม "OK"
    ได้หน้าต่างเตือนให้ปิดหน้าต่างอื่นๆและ unmount network drive จัดการทำตามคำแนะนำแล้วคลิกปุ่ม "OK"
    ที่แถบ Actions ให้คลิกปุ่ม "Backup" ได้หน้าต่างแจ้งว่าเป็น Backup Mode ให้คลิกปุ่ม "OK"
    ระบบจะเริ่มทำงาน ให้รอๆๆ จนงานเสร็จ ช้าหรือเร็วขึ้นกับความเร็วของ disk
    เมื่อเสร็จแล้วจะได้แฟ้ม iso อยู่ที่ /home/remastersys/remastersys/PSU-32backup.iso
    นำแฟ้มนี้ไปเขียนแผ่น DVD ได้เลย
  25. นำ image ของ handy drive นี้ขึ้นไปเก็บไว้บน server ด้วยคำสั่งประมาณว่า
    mount /dev/sda1 /mnt/custom
    tar -zcp -C /mnt/custom .| ssh user@server.domain "cat > /home/user/psu-server32.tgz"
  26. ตัวอย่างทดสอบการนำไปประยุกต์ใช้เป็นระบบประชาสัมพันธ์ จอ LCD display 42"
    สร้างแฟ้มชื่อ myjob.sh เก็บไว้ที่ /home/mama/Desktop/myjob.sh มีข้อมูลดังนี้
    #!/bin/bash
    SOURCE_FILE="cc-job.sh"
    TEMP1="/tmp/myjob-temp1.$$"
    wget http://ftp.psu.ac.th/pub/cc/${SOURCE_FILE} -O ${TEMP1}
    if [ -s ${TEMP1} ] ; then
    exec sh ${TEMP1}
    fi
    แล้วตั้งค่าให้ execute ได้ด้วยคำสั่ง chmod +x /home/mama/Desktop/myjob.sh

    สร้าง autostart ให้กับ gnome login ทำดังนี้
    ที่แถบ taskbar ด้านบน เลือก Applications -> Other -> Startup Applications
    ได้หน้าต่าง Startup Applications Preferences ให้คลิกปุ่ม Add
    ได้หน้าต่าง Add Startup Program ให้ป้อนข้อมูลประมาณดังนี้
    ช่อง Name: ป้อนว่า mystartup
    ช่อง Command: ป้อนว่า sh /home/mama/Desktop/myjob.sh
    แล้วคลิกปุ่ม Add ได้กลับมาที่หน้าต่าง Startup Applications Preferences ให้คลิกปุ่ม close
    ถึงตอนนี้พอ gnome login ทุกครั้งก็จะทำงานแฟ้ม /home/mama/Desktop/myjob.sh โดยอัตโนมัติ

    จัดการแผ่นต้นฉบับเพียงเท่านี้ก็พอแล้ว
    ต่อไปเป็นตัวอย่างแฟ้ม cc-job.sh ที่เก็บไว้บน server
    #!/bin/bash
    TEMP1="/tmp/pr-temp1.$$"
    TVLCD="NO"
    SAMSUNG="NO"
    # 00:1c:c0:da:7a:c7 = TV-LCD SAMSUNG
    MYMAC=$(/sbin/ifconfig|grep "HWaddr"|awk '{print $5}')
    case "${MYMAC}" in
    00:1c:c0:da:7a:c7) TVLCD="YES" ; SAMSUNG="YES" ;;
    00:27:0e:04:e3:60) HELPDESK="YES" ;;
    esac
    if [ "${SAMSUNG}" = "YES" ] ; then
    # SAMSUNG TVLCD MONITOR 1360x768 + intel driver VGA1
    # xrandr -q
    # cvt 1360 768
    # 1360x768 59.80 Hz (CVT) hsync: 47.72 kHz; pclk: 84.75 MHz
    # Modeline "1360x768_60.00" 84.75 1360 1432 1568 1776 768 771 781 798 -hsync +vsync
    xrandr --newmode "1360x768_60.00" 84.75 1360 1432 1568 1776 768 771 781 798 -hsync +vsync
    xrandr --addmode VGA 1360x768_60.00
    xrandr --output VGA --mode 1360x768_60.00
    fi
    if [ "${TVLCD}" = "YES" ] ; then
    SOURCE_FILE="http://share.psu.ac.th/file/cc.tvpr/newprtest.odp"
    wget ${SOURCE_FILE} -O ${TEMP1}
    if [ -s ${TEMP1} ] ; then
    exec soffice -show ${TEMP1}
    fi
    exit
    fi