18
CÁCH BIÊN DỊCH VÀ CÀI ĐẶT CHO KIT FRIENDLY ARM I. NẠP NHÂN CHO KIT FRIENDLY ARM: 1. Các file cần thiết: Có thể tải các file cần thiết tại: http://www.friendlyarm.net/downloads chọn bản phù hợp cho kit friendly arm. - rootfs_qtopia_qt4.img - zImage - FriendlyARM.ini - ramdisk-u.img - system.img 2. Phần mềm hỗ trợ: SD-Flasher.(chỉ hổ trợ window 7) 3. Các bước tiến hành: a. Thao tác trên window 7. Bước 1: Mở SD-flasher.exe lên sau đó chọn phiên bản friendly arm phù hợp. (ví dụ ở đây chọn mini4412/tiny4412 cho kit tiny 4412) - Nhấn Next.

Arm Linux Va Cach Cai Dat Ung Dung

Embed Size (px)

DESCRIPTION

not any thing

Citation preview

CÁCH BIÊN DỊCH VÀ CÀI ĐẶT CHO KIT FRIENDLY ARM

I. NẠP NHÂN CHO KIT FRIENDLY ARM:

1. Các file cần thiết:

Có thể tải các file cần thiết tại: http://www.friendlyarm.net/downloads chọn bản phù hợp cho kit friendly arm.

- rootfs_qtopia_qt4.img

- zImage

- FriendlyARM.ini

- ramdisk-u.img

- system.img

2. Phần mềm hỗ trợ: SD-Flasher.(chỉ hổ trợ window 7)

3. Các bước tiến hành:

a. Thao tác trên window 7.

Bước 1: Mở SD-flasher.exe lên sau đó chọn phiên bản friendly arm phù hợp. (ví dụ ở đây chọn mini4412/tiny4412 cho kit tiny 4412)

- Nhấn Next.

- Sau đó xuất hiện giao diện:

- Nhấn Relayout. Sau đó nhấn Scan sẽ xuất hiện thẻ SD như hình.

- Tại Image file to Fuse chọn superboot4412.bin

- Nhấn Fuse. File superboot4412.bin sẽ đc ghi vào SD.

Bước 2: Tao thư mục “images”. Trong thư mục image tạo thư mục “linux”.

- Các file: ramdisk-u.img, zImage, system.img trong thư mục “linux”. ( .../images/linux )

- Các file: rootfs_qtopia_qt4.img, FriendlyArm.ini trong thư mục images. (.../images )

- Copy toàn bộ thư mục images lên thẻ SD.

b. Thao tác trên linux.

Bước 1: Mở file sd:/images/FriendlyArm.ini và sữa lại như sau:

Bước 2: Gắn thẻ SD vào Tiny 4412. Kéo công tắc S2 về NOR. Bật công tắc nguồn và chương trình sẽ tự nạp.

Bước 3: Đợi chương trình chạy xong gạt công tắc S2 về NAND, Reset board, hệ thống sẽ vào linux. Sau đó còn một số việc nhỏ như set time ....

II. CÀI ĐẶT ARM-LINUX-GCC. (ARM-LINUX-GCC-4.5.1)

Ta luôn làm việc ở chế độ root. Dùng lệnh sudo nautilus để vào thư mục hệ thống của linux.

Bước 1: Giải nén file source “arm-linux-gcc-4.5.1.tar.gz”

Kết quả giải nén được thư mục chứa trình biên dịch có đường dẫn như sau: opt/FriendlyARM/toolschain/4.5.1/bin

Bước 2: Copy thư mục FriendlyARM đặt trong thư mục /opt  của File System trên máy tính Linux.Vị trí để trình biên dịch chéo là không bắt buộc, tuy nhiên thường chứa trên thư mục /opt để thuận tiện cho các công việc tiếp theo.

Bước 3: Cập nhật biến môi trường PATH cho trình biên dịch chéo- Mục đích: Cập nhật biến môi trường của Linux OS cho trình biên dịch chéo để có thể sử dụng trực tiếp ở mọi nơi (Gọi lệnh trên các cửa sổ lệnh mà không cần chuyển đến thư mục chứa)- Thực hiện: Mở file ~/.bashrc bằng trình soạn thảo thích hợp (gedit, vi, vim, …). (Chú ý: file nằm trong thư mục tương ứng của người dùng, ví dụ /home/thuan. Mặc định bị ẩn. Ta dùng Ctrl + h để hiển thị file ẩn trong linux)

Thêm 1 dòng vào cuối file .bashrcPATH=$PATH:[Đường dẫn tới thư mục bin của arm-linux-gcc]

 VD: PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin            Lưu và đóng file .bashrc. Sau khi thiết lập biến môi trường cần tắt cửa sổ terminal, mở cửa sổ mới để thiết lập có hiệu lực.Bước 4: Kiểm tra:Kiểm tra kết quả thiết lập bằng cách gõ lệnh: arm-linux-gcc --version  Thông báo về phiên bản của trình biên dịch chéo arm-linux-gcc sẽ hiện ra.Chú ý: Nếu khi gõ lệnh arm-linux-gcc --version không ra phiên bản của arm-linux-gcc thì có thể kiểm tra lại biến môi trường PATH bằng lệnh echo $PATH

III. Cài đặt Qt creator.

Ta thực hiện theo đường dẫn sau:

Applications ->> Ubuntu Software Center ->> [tại ô Search] Qt Creator ->> Install

Sau khi cài đặt xong, để khởi động Qt, bạn vào: Applications ->> Programming ->> Qt CreatorĐây là giao diện làm việc của QT Creator:

.

IV. Cài đặt tslib.

Vào Teminal:

$ sudo –i

$ sudo apt-get install autoconf$ sudo apt-get install libtool$ cd ~$ mkdir tslib-arm$ cd tslib-armGiải nén và Copy source tslib vào thư mục tslib-arm.$ cd tslib-1.0$ ./autogen.sh$ ./configure --prefix=/opt/tslib --host=arm-none-linux-gnueabi$ make$ sudo make install

Sau khi chạy thành công tslib sẽ xuất hiện trong opt/tslib

V. Cài đặt Qt everywhere.

Bước 1: Download và giải nén source code QT everywhere opensource 4.7.2 trong filesystem.

Bước 2: Sửa file cấu hình biên dịch qmake.conf chứa tại /qt-everywhere-opensource-src-4.7.2/mkspecs/qws/linux-arm-g++/qmake.conf như sau:

#

# qmake configuration for building with arm-linux-g++

#

include(../../common/g++.conf)

include(../../common/linux.conf)

include(../../common/qws.conf)

# modifications to g++.conf

QMAKE_CC = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-gcc

QMAKE_CXX = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-g++

QMAKE_LINK = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-g++

QMAKE_LINK_SHLIB = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-g++

# modifications to linux.conf

QMAKE_AR = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-ar cqs

QMAKE_OBJCOPY = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-objcopy

QMAKE_STRIP = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-strip

QMAKE_INCDIR += /opt/tslib/include

QMAKE_LIBDIR += /opt/tslib/lib

load(qt_config)

Bước 3: Sau đó, tiến hành cấu hình thư viện QT Everywhere 4.7.2 trước khi cài đặt:

$ cd qt-everywhere-opensource-src-4.7.2

$ ./configure --prefix=/opt/qte -embedded arm -xplatform qws/linux-arm-g++ -qt-mouse-tslib -little-endian -no-qt3support -fast -no-largefile -qt-sql-sqlite -nomake tools -nomake demos -nomake examples -no-webkit -no-multimedia -no-javascript-jit

Bước 4: Chờ đến khi thông báo thành công thì tiếp tục sửa lỗi thiếu thư viện arm-neon.hTìm code C của thư viện arm-neon.h trên mạng, sau đó thêm file này vào qt-everywhere-opensource-src-4.7.2/source/gui/image

Cũng trong thư mục này sửa file qimage_neon.cpp, thêm vào include sau dưới #ifdef QT_HAVE_NEON:#include <arm_neon.h>

Trong file makefile của thư mục gui tìm cờ CFLAGS và CXXFLAGS, thêm vào chỉ dẫn: -mfloat-abi=softfp -mfpu=neon

Bước 5: Tiến hành:$ make$ make install

VI. Cài đặt OpenCv.

a. Cài đặt OpenCv cho PC.

Có 2 cách:

Cách 1: Làm theo hướng dẫn links: https://github.com/jayrambhia/Install-OpenCV/blob/master/Ubuntu/2.4/opencv2_4_3.sh

Cách 2:

Trước tiên ta tiến hành cài đặt các gói cần thiết:

sudo apt-get install build-essential

sudo apt-get install pkg-config

sudo apt-get install libpng12-0 libpng12-dev libpng++-dev libpng3

sudo apt-get install libpnglite-dev

sudo apt-get install zlib1g-dbg zlib1g zlib1g-dev

sudo apt-get install libjasper-dev libjasper-runtime libjasper1

sudo apt-get install pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools

sudo apt-get install libjpeg8 libjpeg8-dev libjpeg8-dbg libjpeg-progs

sudo apt-get install ffmpeg libavcodec-dev libavcodec53 libavformat53 libavformat-dev

sudo apt-get install libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev

sudo apt-get install libxine1-ffmpeg libxine-dev libxine1-bin

sudo apt-get install libunicap2 libunicap2-dev

sudo apt-get install libdc1394-22-dev libdc1394-22 libdc1394-utils

sudo apt-get install swig

sudo apt-get install libv4l-0 libv4l-dev

sudo apt-get install python-numpy

sudo apt-get install pkg-config

sudo apt-get install libgtk2.0-dev

_Sau khi cài đặt các gói phía trên xong, ta cài Cmake để dịch thư viện Opencv cho máy.

Cmake cũng dùng để dịch Opencv cho Kit Sudo apt-get install cmake-qt-gui

Chú ý: Trong linux, muốn sử dụng các lệnh liên quan đến việc mở, đọc, ghi một file video thì phải cài đặt và biên dịch thư viện ffmpeg trước khi cài đặt opencv vì các lệnh của opencv liên quan đến video được xây dựng dựa trên thư viện ffmpeg. Chi tiết về cách cài đặt có ở đây:http://www.jayrambhia.com/blog/install-opencv-2-4-in-ubuntu-12-04-precise-pangolin/

_Download thư viện openCV 2.4.3 về máy và giải nén ở Desktop, đồng thời tạo thư mục builda(chứa các file config của opencv2.4.3)

_Mở cmake lên và thiết lập như sau: (nhấn configure để hiện lên bảng cmake-gui)

_Sau khi nhấn Finish thì thiết lập ở các mục sau:CMAKE_INSTALL_PREFIX = usr/localbỏ chọn WITH_OPENEXR và WITH_TIFF

_Nhấn configure để thiết lập lại và nhấn generate.

_Trong thư mục builda tìm file CmakeCache.txt sửa lại dòng sau:CMAKE_EXE_LINKER_FLAG:STRING=-lpthread -lrt

_Sau đó thực hiện lệnh make rồi sudo make install ở thư mục builda

_Sau khi build xong tiến hành chỉnh sửa và thêm một số file để cung cấp đường dẫn đến opencv:sudo gedit /etc/ld.so.conf.d/opencv.conf

Trong file mới tạo này thêm đường dẫn: /usr/local/lib. Đóng file lại và thực hiện lệnh sudo ldconfig.

_Ngoài cách trên để tạo đường dẫn đến opencv, ta còn có thể làm cách sau:export LD_LIBRARY_PATH=/usr/local/lib

_Tiếp theo ta thêm biến môi trường sau ở file bashrc trong thư mục home:export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

b. Cài đặt OpenCv cho arm-linux.

Để cài đặt Opencv cho Kit trước tiên ta cần cài trình dịch arm-linux-gcc .Trong luận văn ta sẽ sử dụng arm-linux-gcc 4.5.1, đầu tiên ta sẽ download arm-linux-gcc-4.5.1.tar.gz , hoặc có trong đĩa FriendlyARM

Bước 1. Chuyển đến thư mục chứa file nén arm-linux-gcc-4.5.1.tar.gz và tiến hành giải nén bằng lệnh:

tar –zxvf arm-linux-gcc-4.5.1.tar.gz

Kết quả giải nén được thư mục chứa trình biên dịch có đường dẫn như sau: opt/FriendlyARM/toolschain/4.5.1/bin

Nên copy thư mục FriendlyARM (chứa trình biên dịch đã giải nén) đặt trong thư mục /opt của File System trên máy tính Linux.Vị trí để trình biên dịch chéo là không bắt buộc, tuy nhiên thường chứa trên thư mục /opt để thuận tiện cho các công việc tiếp theo.

Bước 2. Cập nhật biến môi trường PATH cho trình biên dịch chéo

Mục đích: Cập nhật biến môi trường của Linux OS cho trình biên dịch chéo để có thể sử dụng trực tiếp ở mọi nơi (Gọi lệnh trên các cửa sổ lệnh mà không cần chuyển đến thư mục chứa)

Thực hiện:

Mở file ~/.bashrc bằng trình soạn thảo thích hợp (gedit, vi, vim, …). (Chú ý: file nằm trong thư mục tương ứng của người dùng, ví dụ /home/user. Mặc định bị ẩn).

Thêm 1 dòng vào cuối

PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

Lưu và đóng file .bashrc. Sau khi thiết lập biến môi trường cần tắt cửa sổ terminal, mở cửa sổ mới để thiết lập có hiệu lực.

Bước 3. Kiểm tra kết quả thiết lập bằng cách gõ lệnh: arm-linux-gcc --version. Thông báo về phiên bản của trình biên dịch chéo arm-linux-gcc sẽ hiện ra. Chú ý:

Nếu khi gõ lệnh arm-linux-gcc --version không ra phiên bản của arm-linux-gcc thì có thể kiểm tra lại biến môi trường PATH bằng lệnh echo $PATH

Như vậy ta đã cài đặt xong arm-linux-gcc , ta sẽ dùng Cmake để dịch thư viện Opencv cho Kit.

Đầu tiên ta cũng làm tương tự như phần cài đặt cho máy, nhưng chọn giống như hình bên dưới

Hình : Thiết lập OpenCV cho KIT 1

Nhấn Next và chọn hình bên dưới

Hình : Thiết lập OpenCV cho KIT 2

Tại mục CMAKE_INSTALL_PREFIX ta chỉnh đến thư mục OpenCVforARM.

Và bỏ chọn mục WITH_OPENEXR, và WITH_TIFF . Sau đó nhấn Configure, sau khi configure xong , nhấn Generate.

Hình : Thiết lập OpenCV cho KIT 3

Nhấn Configure , sau khi configure xong ta nhấn Generate. Sau khi Generate xong , ta mở thư mục builda, tìm file CmakeCache.txt tìm dòng

CMAKE_EXE_LINKER_FLAGS:STRING=’’

Thay bằng

CMAKE_EXE_LINKER_FLAGS:STRING=-lpthread –lrt

Tiếp theo ta cd vào thư mục builda, thực hiện lệnh

$ make

Sau khi make thành công ta

$ sudo make install

Sau khi make install xong thư mục buildb sẽ chứa những thứ cần thiết cho Kit. Ta chỉ cần tạo một đường dẫn tương tự trên máy cho Kit, và copy toàn bộ nội dụng bên trong buildb, như vậy việc cài đặt cho Kit cũng đã được thực hiện xong.

Chú ý: Để ứng dụng dưới KIT chạy được ứng dụng OpenCV ta copy file lib/*.so xuống thư mục lib của KIT

V. CÀI ĐẶT GFTP

Để nạp file chương trình (đã biên dịch trên máy tính bằng trình biên dịch chéo) lên KIT, chúng ta sử dụng kết nối Ethernet (cable LAN) giữa máy tính và KIT (target) bằng phần mềm gFTP (phần mềm giao tiếp truyền file trên Linux/Ubuntu).

Bước 1: Cài đặt gFTP và minicom

Thông thường gFTP đã được cài đặt sẵn trên Ubuntu (Mở Application/Internet/gFTP)

Nếu chưa có, có thể cài đặt từ internet dùng lệnh:$ sudo apt-get install gftp$ sudo apt-get install minicom

Bước 2: Cấu hình cổng LAN trên máy tính Linux

KIT FriendlyArm có địa chỉ IP mặc định là 192.168.1.230, netmask: 255.255.255.0

Do vậy để kết nối cable LAN giữa máy tính PC và KIT (target) cần cấu hình để máy tính có cùng giải địa chỉ này. Thực hiện lệnh ifconfig cấu hình cho ethernet interface (eth0)$ sudo ifconfig eth0 192.168.1.30 netmask 255.255.255.0 up

Sử dụng lệnh ifconfig eth0 để kiểm tra lại xem eth0 đã có địa chỉ IP cùng giải.

Bước 3: Thực hiện kết nối giữa Host (máy tính Linux) và Target (KIT) dùng gFTP

Mở Teminal: telnet 192.168.1.230

Login .... : root

Password: ktmt

Chú ý: nếu chưa có pass thì kết nói UART với máy tính vào terminal.

$ minicom

$ passwd

sau đó đặt lại pass cho kit (nên đặt là ktmt)

Mở phần mềm gFTP: Applications->Internet->gFTP

Thiết lập các tham số

Địa chỉ IP của KIT: 192.168.1.230

Username: root

Password: ktmt (có thể đổi bằng lệnh passwd)Mở kết nối (Click nút Open connection)

Cửa sổ bên trái là cây thư mục trên máy phát triển (máy HOST) Cửa sổ bên phải là cây thư mục trên kit (Target)

gFTP cung cấp chức năng duyệt/chuyển thư mục (hệ thống file trên KIT), và truyền/nhận file giữa Host và KIT.

VI. CHÚ Ý:

Để ứng dụng chạy được trên friendly arm ta nên them file appscript vào thư mục ứng dụng build xuống kit.