You are on page 1of 10

Thí nghiệm hệ nhúng Bài 2.

Cài đặt hệ điều hành nhúng cho ARM

Bài thí nghiệm 2

CÀI ĐẶT HỆ ĐIỀU HÀNH NHÚNG LINUX CHO ARM

1. Mục đích

- Nắm rõ các thành phần cần thiết của hệ điều hành nhúng Linux được cài đặt trên hệ
nhúng ARM.

- Thực hành qui trình cài đặt hệ điều hành nhúng Linux cho ARM (sử dụng KIT
FriendlyARM micro 2440)

- Cài đặt trình biên dịch chéo arm-linux-gcc và chuẩn bị môi trường lập trình cho ARM
Linux. Viết chương trình đầu tiên Hello cho Arm Linux.

2. Chuẩn bị

- Bộ KIT FriendlyARM micro 2440 và các phụ kiện kèm theo

- Máy tính cài đặt Ubuntu

- Dữ liệu: Các file dữ liệu sẽ nạp lên KIT gồm:


 Bootloader (phần sụn quản lý khởi động khi chưa có hệ điều hành): file supervivi-
128M.
 Embedded Linux Image (Nhân hệ điều hành Linux nhúng đã được biên dịch):
Chọn file ảnh (image) tương thích với màn hình LCD mà KIT sử dụng. (File
zImage_W35 cho KIT sử dụng màn hình W35).
 Root files system: File rootfs_qtopia_qt4 (Hệ thống file và các ứng dụng nền tảng
qtopia).
(Chú ý: Dữ liệu chứa trong đĩa CD kèm KIT, hoặc cần được copy lên máy tính thực
hành)

3. Tiến hành:
3.1. Cài đặt hệ điều hành nhúng Linux lên KIT
Quá trình cài đặt trên KIT FriendlyARM micro 2440 được thực hiện bằng cách giao tiếp
qua RS232 với KIT thông qua chương trình FriendlyARM BIOS (đã có sẵn trong chip
NOR Flash), các file dữ liệu của hệ điều hành được chép lên chip NAND Flash thông qua
giao tiếp USB. Cụ thể các bước tiến hành như sau:
Bước 1. Kết nối KIT với máy tính PC
Quá trình cài đặt hệ điều hành cho KIT được thực hiện ra lệnh từ trên máy tính thông qua
2 kết nối với KIT:
 Kết nối cổng nối tiếp COM 0 (UART0) tới cổng COM của máy tính PC sử dụng
dây cáp theo chuẩn modem rỗng (TxD-RxD, GND). Kết nối này cho phép giao
tiếp giữa máy tính với phần mềm BIOS trong chip NOR Flash trên KIT (Thực hiện
DCE-SOICT-HUST 1
Thí nghiệm hệ nhúng Bài 2. Cài đặt hệ điều hành nhúng cho ARM

ra lệnh điều khiển)


 Kết nối KIT với PC thông qua cổng USB. Kết nối này cho phép truyền file
(Bootloader, Image, và root files system) từ máy tính lên KIT.
Bước 2. Khởi động KIT từ NOR Flash
- Để cài đặt hệ điều hành, cần đặt công tắc S2 tại vị trí NOR Flash
- Chú thích: có 2 chế độ khởi động có thể được chọn bởi công tắc gạt S2:
+ Khởi động từ chip NAND Flash: Khi KIT đã được nạp hệ điều hành trên chip NAND
này.
+ Khởi động từ chip NOR Flash: Khi cần nạp hệ điều hành, khởi động từ chip NOR để
chạy chương trình BIOS có sẵn trong chip này.
- Cấp nguồn điện cho KIT từ AC-DC Adapter 5V, (giắc kết nối màu đen).
- Bật công tắc nguồn để KIT khởi động.
Bước 3. Thiết lập công cụ trên máy tính Ubuntu
Trên máy tính Ubuntu cần sử dụng 2 phần mềm điều khiển giao tiếp chuẩn RS232 và USB
để điều khiển cài đặt cho KIT:

 Phần mềm minicom điều khiển giao tiếp qua cổng COM. (Hoặc sử dụng phần mềm
tương đương GtkTerm, giao diện GUI)
 Phần mềm usbpush điều khiển giao tiếp qua cổng USB.

- Nếu máy chưa có sẵn, cần cài đặt 2 công cụ này:


a. Cài đặt công cụ minicom:
Cài đặt minicom từ internet, dùng lệnh: (Hoặc cài đặt từ file cài .deb có sẵn)
sudo apt-get install minicom
(Hoặc cài đặt GtkTerm từ Ubuntu Software Center)
Quá trình cài đặt sẽ tự động hoàn tất. Chạy chương trình minicom từ dòng lệnh:
sudo minicom

DCE-SOICT-HUST 2
Thí nghiệm hệ nhúng Bài 2. Cài đặt hệ điều hành nhúng cho ARM

-Ấn tổ hợp Ctr + A Z để vào menu, chọn O để vào mục cài đặt. Chọn Serial Port Setup

- Nhấn phím A để chọn phần Serial Device. Sửa /dev/tty8 thành tên device file tương ứng
với cổng COM trên máy tính kết nối với KIT, ví dụ /dev/ttyS0 (COM1) (hoặc
/dev/ttyUSB0). Nhấn Enter.

(Chú ý: Kiểm tra chính xác tên device file của cổng com trong thư mục /dev dùng lệnh ls
/dev)

- Cấu hình cho minicom với thông số: Baud Rate = 115200, 8 bit Data, None Parity, 1 bit
Stop. (Thông số tương thích với thiết lập mặc định của COM0 trong chương trình BIOS
trên KIT).

DCE-SOICT-HUST 3
Thí nghiệm hệ nhúng Bài 2. Cài đặt hệ điều hành nhúng cho ARM

- Nhấn phím F để sửa Hardware Flow Control thành No.

- Nhấn Enter 2 lần để về menu chính. (Lưu cấu hình và thoát)

(Lưu ý: Các bước trên có thể thay bằng sử dụng công cụ giao diện đồ họa GtkTerm trên
Ubuntu với các thiết lập tương đương)

b. Cài đặt công cụ usbpush


- Phần mềm usbpush chỉ gọn nhẹ dưới dạng file chạy nên không cần cài đặt, chỉ cần copy
toàn bộ thư mục chứa phần mềm usbpush vào máy host Linux.
- Chuyển tới thư mục chứa file chạy usbpush và thực hiện chạy từ dòng lệnh: ./usbpush
Bước 4. Nạp file cài đặt xuống KIT từ máy Ubuntu
Quá trình cài đặt hệ điều hành cho KIT bản chất là ghi file ảnh hệ điều hành lên bộ nhớ
NAND Flash trên KIT sử dụng 2 giao tiếp COM (công cụ minicom) và USB (công cụ
usbpush) như đã đề cập ở trên. Thực hiện với 2 cửa sổ terminal:
- Một cửa sổ terminal thực hiện kết nối cổng COM với KIT (dùng lệnh sudo minicom
/dev/ttyUSB0). Nếu kết nối thành công, trên cửa sổ này sẽ hiển thị menu các thao tác lệnh
để giao tiếp với chương trình BIOS trên KIT (như hình dưới). (Chú ý: có thể cần reset lại
KIT để chạy chương trình BIOS này).
- Cửa sổ terminal thứ 2 dùng để chạy chương trình usbpush để nạp các file tương ứng
xuống KIT.
Hình ảnh minh họa cho 2 cửa sổ làm việc đồng thời hình dưới:

DCE-SOICT-HUST 4
Thí nghiệm hệ nhúng Bài 2. Cài đặt hệ điều hành nhúng cho ARM

- Từ menu lệnh hiển thị qua minicom, chọn thao tác muốn thực hiện bằng các phím chọn
tương ứng.
- Nạp bootloader supervivi:
+ Để cài đặt Supervivi (Bootloader), chọn phím “v”. (Download vivi)
+ KIT được đưa vào trạng thái sẵn sàng đợi nhận file nạp xuống. (USB is connected,
waiting for download …)
+ Chuyển sang cửa sổ phần mềm usbpush, truyền file supervivi tương ứng bằng lệnh:
sudo ./usbpush <đường dẫn thư mục chứa file>/tên file
Ví dụ:
sudo ./usbpush /home/thuan/images/supervivi-128M

+ Đợi đến khi quá trình nạp file kết thúc thành công

- Nạp file ảnh nhân hệ điều hành Linux 2.6.32.2


+ Từ menu lệnh, chọn phím “k” để nạp hệ điều hành (Download Linux kernel)
+ Sử dụng file zImage_X trong đó X là tên màn hình tương ứng với KIT. Ví dụ, KIT
sử dụng màn hình W35 thì file nhân hệ điều hành tương ứng là zImage_W35.
+ Chuyển sang cửa sổ phần mềm usbpush, truyền file image tương ứng bằng lệnh:
sudo ./usbpush <đường dẫn thư mục chứa file>/tên file
Ví dụ:
sudo ./usbpush /home/hungpn/ArmLinux/images/zImage_W35

+ Đợi đến khi quá trình nạp file kết thúc thành công.

- Nạp root files system: file rootfs_qtopia_qt4


+ Từ menu, chọn phím “y” (Download root_yaffs image)
+ Chuyển sang cửa sổ phần mềm usbpush, thực hiện truyền file tương ứng bằng lệnh
sudo ./usbpush <đường dẫn thư mục chứa file>/tên file
Ví dụ:
sudo ./usbpush /home/hungpn/ArmLinux/images/rootfs_qtopia_qt4

+ Đợi quá trình nạp file kết thúc thành công.

Bước 5. Hoàn tất cài đặt, khởi động KIT với hệ điều hành
Quá trình cài đặt đến đây kết thúc, chuyển công tắc S2 sang vị trí NAND Flash (cho phép
khởi động từ hệ điều hành đã nạp). Khởi động lại KIT sẽ có kết quả của hệ điều hành
DCE-SOICT-HUST 5
Thí nghiệm hệ nhúng Bài 2. Cài đặt hệ điều hành nhúng cho ARM

nhúng Linux trên KIT, với hệ thống quản lý file và các ứng dụng trên nền Qtopia.
3.2. Chuẩn bị môi trường lập trình Arm Linux
3.2.1. Cài đặt trình biên dịch chéo arm-linux-gcc
Phần này thực hiện thiết lập trình biên dịch chéo arm-linux-gcc trên máy phát triển
Ubuntu để biên dịch chương trình cho ARM, và thiết lập công cụ cần thiết cho lập trình
Arm Linux.
Bước 1. Chuyển đến thư mục chứa file nén arm-linux-gcc-4.4.3.tar.gz và tiến hành giải
nén bằng lệnh:
tar –zxvf arm-linux-gcc-4.4.3.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.4.3/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.
(Chú ý: copy bằng lệnh cp hoặc sử dụng thao tác GUI, chmod quyền nếu cần)
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 Ubuntu 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/hungpn (ký hiệu ~).
File này mặc định bị ẩn.
 Thêm 1 dòng vào cuối file .bashrc
PATH=$PATH:[Đường dẫn tới thư mục bin của arm-linux-gcc]
VD: PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/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.

DCE-SOICT-HUST 6
Thí nghiệm hệ nhúng Bài 2. Cài đặt hệ điều hành nhúng cho ARM

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
3.2.2. Telnet vào KIT
- KIT FriendlyArm sau khi cài đặt hệ điều hành nhúng Linux sẽ 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 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.
(Chú ý: Có thể thiết lập địa chỉ IP manual trong chế độ GUI)
- Sử dụng dịch vụ Telnet để truy cập vào KIT. Lệnh:
telnet 192.168.1.230
- Ở lần truy cập đầu tiên, tài khoản mặc định là root, chưa có pass word. Tiến hành thiết
lập pass word bằng lệnh passwd. (Chú ý: pass đặt là ktmt)
3.2.2. Cài đặt và sử dụng phần mềm 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
- 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
Bước 2. Kết nối với KIT thông qua gFTP

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


 Thiết lập các tham số
o Địa chỉ IP của KIT: 192.168.1.230
o Username: root
o Password: ktmt (đã thiết lập trước bằng lệnh passwd)
 Mở kết nối (Click nút Open connection)
o Cửa sổ bên trái là cây thư mục trên máy phát triển (máy HOST)
o Cửa sổ bên phải là cây thư mục trên kit (Target)

DCE-SOICT-HUST 7
Thí nghiệm hệ nhúng Bài 2. Cài đặt hệ điều hành nhúng cho ARM

- 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.
3.3. Viết chương trình đầu tiên Hello
Bước 1. Soạn thảo mã nguồn chương trình Hello
- Dùng trình soạn thảo mã nguồn thích hợp (ví dụ: gedit).
- Soạn thảo file mã nguồn C như sau (file Hello.c)
#include "stdio.h“
int main(int argc, char** argv)
{
int i=0;
printf("Hello world, lap trinh arm linux\n");
printf(“Ten chuong trinh la: %s\n”, argv[0]);
if(argc<2)
printf("Chuong trinh khong co tham so dau vao nao\n");
else{

DCE-SOICT-HUST 8
Thí nghiệm hệ nhúng Bài 2. Cài đặt hệ điều hành nhúng cho ARM

for(i=1;i<argc;i++)
{
printf("Tham so thu %d, noi dung %s\n", i, argv[i]);
}
}
return 0;
}
- Lưu file mã nguồn Hello.c
Bước 2. Biên dịch file mã nguồn sử dụng trình biên dịch chéo
Cách 1. Sử dụng dòng lệnh.
- Chuyển đến thư mục chứa file mã nguồn Hello.c đã có.
- Biên dịch bằng lệnh: arm-linux-gcc –o Hello Hello.c
- Kết quả biên dịch là file thực thi trên arm linux (File Hello) (thêm tham số -g khi biên
dịch để được file kết quả cho phép debug).
(Có thể kiểm tra thuộc tính của file này sử dụng lệnh file của Linux).
Cách 2. Tạo và sử dụng Makefile
- make là một công cụ cho phép quản lý quá trình biên dịch, liên kết … của một dự án
với nhiều file mã nguồn.
- Tạo Makefile lưu các lệnh biên dịch theo định dạng của Makefile

CC=arm-linux-gcc
all: Hello.c
$(CC) –g –o Hello Hello.c
clear:
rm Hello

- Makefile đặt tại cùng thư mục với các file mã nguồn. Sử dụng lệnh make để chạy
Makefile và biên dịch chương trình
 make all: biên dịch chương trình
 make clear: xóa file thực thi đã biên dịch
Bước 3. Nạp chương trình đã biên dịch xuống KIT

DCE-SOICT-HUST 9
Thí nghiệm hệ nhúng Bài 2. Cài đặt hệ điều hành nhúng cho ARM

Sử dụng phần mềm gFTP chuyển file Hello (đã được biên dịch trước đó) xuống KIT, ví
dụ xuống thư mục: /ktmt (để tạo thư mục có thể dùng lệnh mkdir)
Bước 4. Thực thi chương trình trên KIT
- Để thực thi chương trình trên KIT, thực hiện telnet tới KIT
- Trên KIT, di chuyển đến thư mục chứa chương trình chạy (/ktmt), thực hiện chương
trình từ dòng lệnh: ./Hello
- Chú ý: Kiểm tra quyền đối với file, dùng lệnh ls –al. Chương trình có thể chưa có
quyền thực thi, dùng lệnh cấp quyền: chmod +x Hello

DCE-SOICT-HUST 10

You might also like