Z2PCBA@gmail.com +66-897725026
วิธีการติดตั้ง PetaLinux บน ZYNQ (ตอนที่ 1)
Tuesday September 4th, 2018
0

PetaLinux บน ZYNQ

บทความนี้จะมาเรียนรู้เกี่ยวกับการติดตั้ง PetaLinux บน ZYNQ

PetaLinux Tools นั้นเป็นเครื่องมือสำหรับการปรับแต่ง(customize), สร้าง(build) และ นำไปใช้(deploy) ตัว embeded linux ในงานต่างๆ ให้สามารถใช้งานร่วมกับตัวประมวลผลของ Xilinx ได้สะดวกขึ้น โดย PetaLinux สามารถใช้สร้าง Linux kernel images, root files system และ kernel module ซึ่ง PetaLinux นั้นสามารถที่จะสร้าง U-Boot, First Stage Boot Loader(FSBL) และ BOOT.BIN กับ Design ที่เราได้ออกแบบไว้ โดยการติดตั้งมีขั้นตอนดังนี้นะครับ

1. Build PS

เริ่มแรกเราต้องทำการสร้าง PS(Processing System) บน Vivado กันก่อน ซึ่งในการลง PetaLinux นั้นเราจะใช้เพียงแค่ ZYNQ ก็พอ ไม่จำเป็นต้องลง PL(Programming Language) เพิ่มเติม แต่ในส่วนของ PS เราจะต้องทำการตั้งค่าบางอย่างให้เหมาะสมกับอุปกรณ์ที่เราใช้ก่อนเพื่อให้ทำงานได้ถูกต้อง โดยในที่นี้จะใช้วิธีการบูท(boot) ผ่าน SD Card นะครับ และรายละเอียดในบทความนี้จะอธิบายสั้นๆ ว่าเราจำเป็นต้องตั้งค่าที่จำเป็นอะไรบ้าง ส่วนวิธีการสร้างโปรเจค(project) นั้นสามารถย้อนกลับไปอ่านในบทความก่อนหน้าในหัวข้อเรื่อง Basic PS นะครับ โดยส่วนที่ต้องตั้งค่าก็มีดังนี้ครับ

Triple Timer Counter(TTC) ตั้งค่าไว้ โดยให้ออก EMIO
DDR ตรงนี้นั้นจะเหมือนกับรายละเอียดในบทความเรื่อง Basic – PS ดังนั้นจะไม่อธิบายเพิ่มเติมนะครับ
UART ตรงนี้นั้นจะเหมือนกับรายละเอียดในบทความเรื่อง Basic – PS ดังนั้นจะไม่อธิบายเพิ่มเติมนะครับ
SD-CARD ส่วนนี้จะมีความพิเศษหน่อย เนื่องจากบอร์ดทั่วๆไปเราจะทำการบูทจาก micro SD Card ซึ่งไม่มีขา WP แต่ว่าสำหรับ PS นั้นจำเป็นที่จะต้องตรวจสอบขานี้ โดยถ้าหากเราไม่ได้ต่อเอาไว้จะทำให้เข้าสู่โหมด write protect ซึ่งทำให้เราไม่สามารถเขียนข้อมูลลงไปใน SD Card ได้ ดังนั้นเราจำเป็นที่จะต้องเปลี่ยนให้ขา WP นั้นไปต่อกับ EMIO นะครับ ดังรูป

ตรวจสอบขา WP ให้ต่อสัญญาณเข้าให้ถูกต้อง

Ethernet(optional) ส่วนนี้ไม่จำเป็นต้องมีก็ได้ แต่ก็แนะนำให้ต่อไว้นะครับ โดยตั้งค่าให้ถูกตาม port ที่ใช้ ซึ่งของผมเป็น port 0 ตามรูปนะครับ
กำหนด ethernet port

หลังจากที่ตั้งค่าเสร็จแล้วก็ทำการ “compile” จนถึงขั้น “generate bitstream” ออกมา โดยส่วนสำคัญนั้นจะอยู่ที่เราต้องทำการ “Export Hardware” ออกมา(โดยอย่าลืม include bitstream ออกมาด้วยนะครับ) ซึ่งเมื่อ Export Hardware ออกมาแล้ว ใน folder SDK ที่สร้างมาจะได้ไฟล์ .hdf ออกมา ซึ่งเป็นไฟล์ที่จำเป็นที่จะนำไป build Petalinux ต่อไปครับ

ไฟล์ในโฟลเดอร์ SDK เพื่อเตรียมไว้สำหรับ build PetaLinux บน ZYNQ

รูปไฟล์ใน folder SDK
2. Preparing the SD Card

ขั้นตอนนี้จะเป็นการเตรียม SD Card เพื่อให้เป็นส่วนเก็บข้อมูลของการ run linux โดยขั้นตอนนี้เราจำเป็นต้องใช้เครื่องคอมพิวเตอร์ที่ได้ทำการติดตั้งระบบปฏิบัติการ(OS)ที่เป็น Linux เอาไว้แล้ว เพื่อเราจะสามารถใช้เป็นเครื่องมือในการทำการแบ่งพาร์ทิชัน(Partition) สำหรับตัว SD Card กันก่อน(หากไม่ใช้เครื่องที่มีระบบปฏิบัติการเป็น Linux ก็อาจจะต้องดาวน์โหลดโปรแกรมเฉพาะที่รองรับการกำหนดรูปแบบการจัดเก็บข้อมูล(format) แบบ ext4 ครับ)
จากนั้นเราจะทำการกำหนดให้พาร์ทิชัน(partition) แรกเป็น FAT32 ที่จะทำการเก็บไฟล์ที่เกี่ยวกับการบูท(boot) ครับ ส่วนพาร์ทิชัน(partition) ที่ 2 จะกำหนดให้เป็น EXT4 ซึ่งจะทำหน้าที่เก็บ Root Files System ครับ โดย SD Card ที่ใช้นั้นความสามารถในการเก็บข้อมูลขั้นต่ำควรจะเป็น 4GB ขึ้นไปครับ

  • ตรวจสอบชื่ออุปกรณ์ซึ่งก็คือ SD Card ที่เชื่อมต่อกับระบบปฏิบัติการ ด้วยคำสั่ง lsblk
    lsblk
    

    หลังจากรันคำสั่งดังกล่าว ระบบจะทำการลิสต์ชื่ออุปกรณ์ที่กำลังเชื่อมต่อและสามารถเรียกใช้จากระบบปฏิบัติการ โดยวิธีการตรวจสอบชื่อของ SD Card ที่เราเชื่อมต่อ ให้พิมพ์คำสั่ง lsblk ในขณะที่กำลังต่อ SD Card อยู่ แล้วจากนั้นจึงถอดตัว SD Card ออกแล้วพิมพ์คำสั่งนี้อีกครั้ง จะพบว่ามี drive ที่หายไป ซึ่งเราก็สามารถทราบได้ว่านั่นก็คือ SD Card นั่นเอง(โดยของผมจะเป็น sdb ดังรูปด้านล่างครับ)
    ตรวจสอบชื่อของอุปกรณ์ที่เป็น SD Card

  • จากนั้นให้ทำการติดตั้งโปรแกรม gparted สำหรับจัดการพาร์ทิชัน(partition)

    sudo apt-get install gparted
    

    ติดตั้งโปรแกรม gparted

  • สั่งเปิดโปรแกรม gparted ดัวยคำสั่งด้านล่าง และโปรแกรมจะถูกเปิดขึ้นมา

    sudo gparted
    

    เปิดโปรแกรม gparted

  • ทำการเลือก drive ที่เราต้องการกำหนดรูปแบบการจัดเก็บข้อมูล(format) ตรงตำแหน่งด้านขวาบน ซึ่งเป็นชื่อของ SD Card ของเรา
    กำหนดรูปแบบการจัดเก็บข้อมูลให้กับพาร์ทิชัน
    เพิ่มเติม: ในตัวอย่างผมจะใช้ SD Card ที่มีความจุขนาด 2GB มาเป็นตัวอย่างนะครับ
  • ทำการลบพาร์ทิชัน(partition) และกำหนดเป็น unallocated โดยการคลิกขวาแล้วเลือก “delete”
    ลบพาร์ทิชัน
  • ทำการสร้างพาร์ทิชัน(partition) แรก โดยกด “New” แล้วตั้งค่าเป็นการเก็บข้อมูลในรูปแบบ(format) FAT32 ส่วนพื้นที่ผมแนะนำให้แบ่งพาร์ทิชันที่เป็น FAT32 นี้ไว้ที่ 1 GB นะครับ ส่วนผมขอตั้งชื่อให้เป็น BOOT ละกันครับ เพราะจะเอาไว้เก็บไฟล์จำพวกที่จำเป็นสำหรับทำการบูท(boot)
    สร้างพาร์ทิชันใหม่และกำหนดการเก็บข้อมูลในรูปแบบ FAT32
    สร้างพาร์ทิชันใหม่และกำหนดการเก็บข้อมูลในรูปแบบ FAT32
  • จากนั้นทำการจัดการพื้นที่ส่วนที่เหลือโดยกำหนดให้รูปแบบ(format) ของการเก็บข้อมูลเป็น EXT4 โดยจะตั้งชื่อให้เป็น rootfs ซึ่งจะไว้เก็บข้อมูลประเภท root files system
    สร้างพาร์ทิชันใหม่และกำหนดการเก็บข้อมูลในรูปแบบ EXT4
    กดเครื่องหมายถูก เพื่อยืนยันจึงเป็นอันเสร็จสิ้น
3. Install Package

ในการติดตั้ง Petalinux นั้น เราจำเป็นต้องลง package เพิ่มเติม ที่จำเป็นสำหรับการติดตั้ง โดยให้ติดตั้ง package ตาม list ด้านล่างดังนี้ครับ

sudo apt-get install tofrodos iproute gawk git-core net-tools
sudo apt-get install ncurses-dev libncurses5-dev xinetd tftpd tftp
sudo apt-get install zlib1g-dev flex bison lib32z1 lib32ncurses5
sudo apt-get install lib32bz2-1.0 lib32stdc++6 libselinux1 lib32ncursesw5
sudo apt-get install ia32-libs
sudo chmod –R 777 /etc/xinetd.d/ 
sudo apt-get install xvfb chrpath socat autoconf libtool
sudo apt-get install texinfo zlib1g-dev gcc-multilib libsdl1.2-dev
sudo apt-get install libglib2.0-dev zlib libssl-dev zlib1g:i386
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libbz2-1.0:i386
sudo apt-get update

ในบทนี้ก็จะจบแค่ตรงนี้นะครับ บทต่อไปจะเป็นการติดตั้ง(install) Petalinux และสร้างกันนะครับ รอติดตามต่อไปนะครับ
ถ้าถูกใจบทความนี้อย่าลืมกดช่วยกด like Facebook เพื่อเป็นกำลังใจสำหรับผู้เขียนด้วยนะครับ