Monday, November 23, 2009

[Talk] Pebble Linux (Wireless)




คำว่า "Pebble" นั้นเป็นคำที่ใช้เรียก หินกรวด หรือหินที่สามารถพบได้ตามแหล่งน้ำ เกิดจากการกระเทาะล่อนของสายน้ำ เมื่อนำมาผสมกับ Linux ซึ่งเป็น OS (Operating System) จึงแทนความหมายของ Linux ที่ได้รับการขัดเกลาจนเหลือแต่ส่วนการทำงานหลักของระบบ ทำให้ขนาดเล็กและทำงานได้ปราดเปรียว ซึ่งเหมาะกับอุปกรณ์จำพวกระบบฝังตัว Embedded System




ปัจจุบันนี้ Pebble Linux ได้ถูกปรับปรุงและใช้ชื่อเรียกใหม่ว่า Pyramid Linux ซึ่งถ้าต้องการใช้งาน Feature ใหม่ๆ อาจจะต้องเปลี่ยนไปยัง Pyramid Linux แทน แต่ในการใช้งานพื้นฐานนั้นสามารถใช้งาน Pebble Linux โดยไม่ต้องปรับแก้อะไรเลย

อุปกรณ์ที่จำเป็นต้องใช้การติดตั้ง
  • Net4521 - ระบบที่ใช้ใน Pebble Linux
  • CF (Compact Flash) - เก็บไฟล์ระบบ ขนาดตั้งแต่ 64Mb ขึ้นไป
    (+USB Adapter เพื่อใช้ในการบันทึกไฟล์ระบบ)



CF และอุปกรณ์ Adaptor

การติดตั้ง Pebble Linux

การติดตั้งนั้นสามารถทำได้ทั้งบนระบบปฎิบัติการ Windows และ Linux โดยสำหรับ Windows จะเป็นการเขียนไฟล์ Clone ที่เป็น Image ของ Pebble ลงยัง CF ไฟล์ โดยจะต้องใช้ Program ที่ชื่อ physdiskwrite ของ Link (m0n0wall) และใช้ไฟล์ Image จาก Link (Pyramid)

ส่วนในกรณีของ Linux จะทำการ Format ข้อมูลของ CF เป็น Ext2 และติดตั้งระบบลงใน CF ซึ่งจะต้องใช้ไฟล์ติดตั้งจาก Link (NYC wireless)

1. การติดตั้งจาก Windows
  • เชื่อมต่อ CF เข้ากับเครื่องที่จะดำเนินการ พร้อมกับติดตั้ง physdiskwrite ให้สามารถใช้งานผ่าน Command line ของ Windows ได้
  • พิมพ์ physdiskwrite pyramid-1.0b5.img.gz ผ่าน Command line ใน Directory ที่เก็บไฟล์ดังกล่าวไว้ (*pyramid-1.0b5.img.gz ไฟล์ Image)
    $>physdiskwrite pyramid-1.0b5.img.gz

    physdiskwrite v0.5.1 by Manuel Kasper

    Searching for physical drives...

    Information for \\.\PhysicalDrive0:
    Windows: cyl: 2498
    tpc: 255
    spt: 63
    C/H/S: 16383/16/63
    Model: QUANTUM FIREBALLP AS20.5
    Serial number: 792126973434
    Firmware rev.: A1Y.2500

    Information for \\.\PhysicalDrive1:
    DeviceIoControl() failed on \\.\PhysicalDrive1.

    Information for \\.\PhysicalDrive2:
    Windows: cyl: 31
    tpc: 255
    spt: 63

    Information for \\.\PhysicalDrive3:
    DeviceIoControl() failed on \\.\PhysicalDrive3.

    Information for \\.\PhysicalDrive4:
    DeviceIoControl() failed on \\.\PhysicalDrive4.

    Which disk do you want to write? (0..2) 2
    # จาก Output จะแสดงรายการของ Device ที่เกี่ยวกับ Storage ทั้ง Harddisk และ CF ที่ทำการเชื่อมต่ออยู่ ซึ่งจะถามถึง Device ที่จะทำการคัดลอก Image ใส่ (**การคัดลอกจะทำให้ข้อมูลใน Device เดิม หายไปทั้งหมด) ซึ่งจากตัวอย่างทำการเลือก 2 ซึ่งเป็น CF

  • จากนั้น physdiskwrite จะถามให้ยืนยันการเขียนข้อมูลทับลง Device
    About to overwrite the contents of disk 2 with new data. Proceed? (y/n) y
  • โปรแกรมจะทำการแสดง Byte ที่ได้เขียนไปจนกว่าจะเสร็จสิ้นกระบวนการ
    64028672/64028672 bytes written in total
  • จบกระบวนการก็นำ CF ต่อเข้ากับ Net4521 ก็สามารถบูตระบบขึ้นมาได้ทันที
2. การติดตั้งจาก Linux
  • ตรวจสอบชื่อ Device ของ CF ที่ต่อเข้ากับ Linux โดย
    $>df -alh
    # ซึ่งจะแสดงชื่อของ Storage Device ที่เชื่อมต่อในปัจจุบัน เพื่อดูชื่อจากขนาดที่ตรงกับของ CF จากนั้นปิดการเปิดอุปกรณ์ดังกล่าว
    $>sudo su
    # ขั้นตอนต่อไปจำเป็นต้องใช้สิทธิเป็น Root (Super User)
    $>umount /dev/__SD_ID__
    # ปิดการเปิดใช้งาน Storage Device

  • ทำการ Format ให้ CF ดังกล่าวให้เป็น Ext2 ด้วยชื่อ Device ที่ตรวจสอบมา
    $>mkfs.ext2 /dev/__SD_ID__
  • แตกไฟล์ติดตั้งที่ Download จาก NYC wireless ซึ่งในที่นี้จะใช้ที่ /opt/pebble
    $:/opt/pebble>tar --numeric-owner -jxvf /opt/download/pebble.vXX.tar.bz2
  • ใน Folder ที่แตกไฟล์จะมีคำสั่งที่ใช้ในการติดตั้งคือ pebble.update
    $:/opt/pebble>./pebble.update

    Welcome to the Pebble Linux installation script
    Loading defaults from .pebble.config

    Where is the pebble installer (this) directory? (default=/opt/pebble):
    # ใช้ตาม Default

  • Script จะถามถึง Storage Device ที่ใช้ในการเก็บไฟล์ระบบ และตรวจสอบว่าตรงกันหรือป่าว
    Which device accesses the compact flash ? (default=/dev/sdb):
  • แจ้งให้ระบุที่พักไฟล์ระบบซึ่งจะใช้ค่า Default
    Which directory should I mount the FlashCard to? (default=/opt/cf):
  • เลือก Device ที่จะใช้งาน - 3 คือ net4521
    Which module? Enter 1 for pcmcia, 2 for net4501, or 3 for net4521/net4511 (default=3):
    3

    Configuration completed:
    -----------------------
    # หากไม่ได้สั่งด้วยสิทธิ Root จะได้รับการแจ้งเตือนเรื่อง Permission

  • ขั้นตอนสุดท้ายจะเป็นการสรุปและดำเนินการติดตั้งไฟล์ระบบลง CF ซึ่งหากสมบูรณ์ก็จะแจ้งให้กรอกรหัสในการ Login เป็น Root ของอุปกรณ์ที่ใช้ไฟล์ระบบนี้
    Installer directory: /mnt/pebble
    FlashCard Device: /dev/sdb
    Will be mounted on: /mnt/cf

    Installation mode: 3

    If this is good hit RETURN, otherwise hit CTRL+C
    # หากมีการ Mount ตัว CF ไว้จะไม่สามารถทำงานได้ ต้อง unmount ก่อน
การเชื่อมต่อและสั่งการ Net4521 ที่ติดตั้ง Pebble Linux




รูปแบบในการเชื่อมต่อและสั่งการของ Net4521 สามารถทำได้สองวิธี คือ ผ่าน Serial Interface ด้วย Serial Terminal และ ผ่าน Remote Terminal แบบ SSH



ซึ่งในการเชื่อมต่อผ่าน Serial นั้นสามารถจัดการได้สองระดับ คือ ระดับ BIOS (comBIOS v1.15) และระดับ OS (Pebble Linux) ส่วนในการทำ Remote Terminal นั้นจะต้องรอจนกว่า Service ของ SSH ทำงาน เสียก่อน ซึ่งถ้าหากเกิดความผิดพลาดขึ้นในระดับ Hardware ก็จะไม่สามารถเข้าไปแก้ปัญหาได้ เมื่อระบบไม่พร้อมทำงาน ต้องใช้ Serial Terminal ในการเข้าไปตรวจสอบและแก้ปัญหา แต่การจัดการระบบผ่าน Serial Terminal นั้นจะมีข้อจำกัดตรงที่ต้องติดต่อกับ Hardware ผ่าน Serial Port เท่านั้น ทำให้ไม่สะดวกในการจัดการระบบ เท่ากับ Remote Terminal ที่สามารถเชื่อมต่อเข้ามาจัดการระบบที่ไหนก็ได้ในเครือข่าย ซึ่งสามารถเข้าถึง Device ดังกล่าวได้




ตัวอย่างการติดตั้งและใช้งาน Net4521 ผ่าน Serial Terminal




ตัวอย่างการติดตั้งและใช้งาน Net4521 ผ่าน Remote Terminal





0 comments:

Post a Comment