[V3S NBV2] Hướng dẫn build Yocto

V3S NBV2

open-source linux computer


V3S NBV2 là máy tính nhúng mini được thiết kế bởi EPCB dựa trên chip V3S của hãng Allwinner với CPU cấu trúc Arm cortex A7, solo core với xung nhịp 1.2Ghz, tích hợp sẵn cổng Ethernet, USB, kết nối LCD và Camera giúp dễ dàng phát triển thành các thiết bị IoT tùy biến.

V3S NBV2 hỗ trợ hệ điều hành linux distro yocto được phát triển bởi EPCB

 

Cấu hình phần cứng

SOC: Allwiner V3S CPU ARM Cortex TM -A7 MP1 Processor

RAM:  internal on-chip memory 512Mb DDR2 400Mhz

MEMORY: On board 16MB SPI nor flash, SD/TF card socket.

Ethernet: 10/100 base-T standard

USB 2.0: 1 port USB 2.0, integrate power distribution 5V/500mA

Display Output: Support RGB 18bit (666) Interfaces with DE/SYNC mode, up to 1024x768@60fps

Video Decoding: Onboard CSI 2 land connector, support H.264 video encoding up to 720p@60fps

Debug: onboard usb_to_com CP2102, connect via micro usb.

Extension ports: 2 x 3.3V, 2 x 5V, 2 x GND, 2 x UART, 1 x SPI, 1x I2C

LED: 1 x power led, 3 x GPIO led heart beat signal

Power supply DC 5V/500mA

PCB: 4 layer (2 signal, 2 plane)


Build Yocto cho Board V3S

Yocto là một dự án mã nguồn mở có mục tiêu là cung cấp các công cụ giúp xây dựng các hệ thống nhúng hoạt động trên hệ điều hành Linux. Tên đầy đủ là Yocto Project.

Cài đặt các package cần thiết cho máy host Ubuntu 18.04

User# sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \build-essential chrpath socat libsdl1.2-dev xterm

Đi tới thư mục /home/user, ở máy mình thì đường dẫn là “/home/fanning

user# cd
user# mkdir v3s
user# cd v3s
user# git clone -b sumo git://git.yoctoproject.org/poky.git poky-sumo
user# cd poky-sumo
user# git clone -b sumo https://github.com/openembedded/meta-openembedded.git
user# git clone -b sumo https://github.com/meta-qt5/meta-qt5.git
user# git clone -b sumo https://github.com/ninhnguyennhut/meta-v3s.git
user# cd ..
user# source poky-sumo/oe-init-build-env build

Sau khi chạy script setup các biến môi trường trên thì một thư mục tên “build” được tạo ra.
Dưới đây là đường dẫn tuyệt đối của yocto trên máy mình.

“/home/fanning/v3s/poky-sumo"
“/home/fanning/v3s/build”

user# cd /home/fanning/v3s/build/conf
user# ls -la

Tại thư mục conf sẽ xuất hiện 2 file “bblayers.conf”“local.conf”, các bạn cần thay đổi đường dẫn trong file “bblayers.conf” đúng với đường dẫn trên máy các bạn.

Truy cập vào đường dẫn dưới đây sẽ có hai ví dụ file config.

 “/home/fanning/v3s/poky-sumo/meta-v3s/conf/example/build_for_sato”

Example build_for_distro_tiny là bản config cho bản ROM server nhỏ đơn giản không có giao diện đồ họa, có thể cài vào norflash trên board, chủ yếu được dùng để chạy cho các Gateway IoT.

Example “build_for_sato” là bản config để build một bản ROM có giao diện đồ họa với đầy đủ các tools cơ bản của Desktop.

File ''bblayers.conf" như sau:

Trong file “local.conf” có định nghĩa đối tượng thiết bị cho bản build ROM này:

Thiết bị định nghĩa mình dùng ở đây là “v3s”.

Các bạn copy hai file example này vào đường dẫn "/home/fanning/v3s/build/conf" rồi sửa đường dẫn trong file "bblayers.conf"

Sau khi làm xong bước trên các bạn bắt đầu build một bản ROM cho mình như sau:

user# cd /home/fanning/v3s

user# source poky-sumo/oe-init-build-env build

user# bitbake qt5-image

Sau khi quá trình build hoàn thành thì màn hình terminal như sau:

Lúc này các bạn truy cập vào dường dẫn như sau:

“/home/fanning/v3s/build/tmp/deploy/images/v3s”

Trong đây các bạn sẽ tìm thấy file “sdimg” là bản ROM chúng ta vừa tạo ra, việc còn lại chỉ là flash nó vào thẻ nhớ và cắm vào board V3S-NBV2.

Để flash vào thẻ nhớ, ở đây mình sử dụng công cụ dd tool.

user# cd /home/fanning/v3s/build/tmp/deploy/images/v3s

user# sudo dd bs=4M if=sdimg of=/dev/sdb conv=fsync

Với /dev/sdb là thẻ nhớ của mình, các bạn nên nhớ là mình flash ROM lên sdb luôn chứ không phải flash trên phân vùng sdb1.

Để xem thẻ nhớ các bạn khi cắm vào máy tính Ubuntu với tên là gì thì các bạn làm theo cách sau.

user# dmesg -Hw

Các bạn cắm thẻ vào lúc này log sẽ xuất hiện, log có cả tên thiết bị lưu trữ của bạn.

user# cd /home/fanning/v3s

Tạo SDK cho Board V3S

user# cd /home/fanning/v3s

user# source poky-sumo/oe-init-build-env build

user# source bitbake qt5-image -c populate_sdk

Sau khi quá trình build hoàn thành, thư mục "/home/fanning/v3s/build/tmp/deploy/sdk" được tạo ra, trong thư mục sdk chứa file script giúp chúng ta tạo install sdk vào thư mục trên máy host.

user# source cd /home/fanning/v3s/build/tmp/deploy/sdk

user# source ./oecore-x86_64-armv7vehf-neon-toolchain-nodistro.0.sh

Bạn có thể Enter để chọn đường dẫn mặc định, hoặc gõ đường dẫn bạn muốn cài đặt.

Đến lúc này bạn chỉ cần chờ quá trình “Extracting SDK” hoàn thành!

Hy vọng bài viết này sẽ giúp ích cho các bạn. Nếu các bạn có những thắc mắc cần giải đáp, hãy nhắn tin cho mình qua Fanpage: EPCB hoặc qua Email: epcbtech@gmail.com. Cảm ơn các bạn đã theo dõi!