Biên dịch nhân hệ điều hành Linux cho hệ thống:

Một phần của tài liệu document (Trang 60 - 65)

PHẦN MỀM HỆ THỐNG NHÚNG 6.1 Cấu trúc phần mềm trong hệ thống nhúng:

6.2Biên dịch nhân hệ điều hành Linux cho hệ thống:

Hệ thống nhúng sử dụng bộ xử lý ARM9 của Atmel sử dụng hệ điều hành Linux có phiên bản từ 2.6.27. Biên dịch nhân hệ điều hành cho hệ thống là quá trình thay đổi cấu hình của nhân hệ điều hành Linux sao cho tương thích với hệ thống, q trình này thơng thường một phần được thực hiện bởi các nhà sản xuất, một phần được thực hiện bởi các nhà phát triển hệ thống. Download phiên bản Linux 2.6.27 về máy tính dưới dạng gói tập mã nguồn linux- 2.6.27.tar.bz2. Copy gói mã nguồn Linux vào máy Linux để thực hiện biên dịch. Trước khi biên

dịch, download trình biên dịchcross Compiler về và cài vào máy Linux.

arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 chứa các trình biên dịch cần thiết phụ vụ cho quá trình biên dịch nhân hệ điều hành Linux. Đổi tên gói lại thành

arm-kernel_compiler.tar.bz2.

Giải nén gói vừa mới đổi tên tar –xjvf arm-kernel-compiler.tar.bz2

Trước khi tiến hành biên dịch ta phải khai báo đường dẫn đến trình biên dịch, nếu quá trình này bị bỏ qua, trình make sẽ khơng tìm thấy trình biên dịch để gọi, chương trình bạn sẽ bị lỗi. Giả sử thư mục arm-kernel-compiler được bạn chép vào thư mục /sontruong. Sau khi biên dịch thư mục arm2009q3 được tạo ra. Như vậy các trình biên dịch nằm trong thư mục:

/sontruong/arm2009q3/bin

Tiến hành thêm đường dẫn đến trình biên dịch như sau:

Export PATH=$PATH:/sontruong/arm2009q3/bin

uboot-mkimage.tar.bz2là chương trình tạo ra ảnh của nhân hệ điều hành được chép vào trong thư mục máy Linux, quá trình cài đặt có thể được tiến hành như sau:

# tar –jxvf uboot-mkimage.tar.bz2 # cd uboot-mkimage # make clean # make # chmod 777 mkimage # cp mkimage /bin Giải nén linux-2.6.26.tar.bz2 # tar –jxvf kernel-2.6.27.tar.bz2 #cd linux-2.6.27

Thay đổi các cấu hình của hệ thống, sử dụng: #make menuconfig

Một menu hiện ra cho phép thiết lập các tùy chọn thích hợp như bộ xử lý, bộ nhớ SDRAM, Flash, ethernet, giao tiếp các ngoại vi. Sau khi thực hiện cấu hình thích hợp chọn saveđể lưu lại.

Việc chọn các cấu hình trong cửa sổ menuconfig tùy thuộc vào phần cứng hệ thống mà chúng ta đang thiết kế, nó địi hỏi nhiều kiến thức về thiết kế phần cứng. Tài liệu khơng đi trình bày chi tiết các tùy chọn. Người biên dịch phần mềm đòi hỏi phải nắm các thiết kế phần cứng hệ thống để cấu hình cho đúng.

Trong menu hệ thống chưa có loại vi xử lý tương thích với hệ thống bạn, điều này cũng dễ hiểu, Linux được thiết kế hỗ trợ nhiều phần cứng khác nhau, bạn muốn cấu hình Linux cho một hệ thống riêng của bạn địi hỏi bạn phải có kiến thức thật tốt về hệ thống và hệ điều hành để làm được điều đó. Bạn phải tạo ra các tập tin để Linux hiểu hệ thống của bạn khi biên dịch. Đối với hệ thống nhúng sử dụng ARM9 của Atmel, nhà sản xuất đã làm sẵn cho bạn các thay đổi bằng cách tạo ra các bảng vá nhân hệ điều hành linux.

Download các bản vá

2.6.xx-at91.patch.gz , 2.6.xx-at91-exp.patch.gz

Chạy các bản vá

zcat 2.6.xx-at91.patch.gz | patch -p1 zcat at91-exp. patch.gz | patch -p1

Download tập tin cấu hình at91sam926yek_defconfig

Chép tập tinh cấu hình vào thư mục config trong thư mục Linux. Sau đó thực thi config cp at91sam926yek_defconfig .config

make ARCH=arm oldconfig

Trong quá trình thưc hiện oldconfig, trình biên dịch sẽ yêu cầu bạn xác nhận một số thống số cho hệ thống.

Thực thi menuconfig

make ARCH=arm menuconfig

Dựa vào thiết kế hệ thống, chúng ta có thể thay đổi một số thơng số dựa vào việc chọn các menu trong menuconfig.

Biên dịch Linux image

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

Sau khi biên dịch thành công, tập tin ảnh của nhân hệ điều hành được tạo ra trong thư mục

arch/ arm/ boot.

Trong phần này tài liệu trình bày một số khái niệm về phần mềm hệ thống nhúng, các bước biên dịch u-boot cho hệ thống nhúng, một số thao tác trên môi trường uboot. Các bước thao tác để biên dịch nhân hệ điều hành. Phần File Systemchúng ta có thể tùy chọn tùy thuộc vào một số đặc điểm của hệ thống như bộ nhớ, tốc độ xử lý. Việc phát triển trên hệ thống nhúng rất đa dạng, người phát triển tùy thuộc vào mục đích và u cầu của hệ thống có thể thay đổi trong u-boot, cũng có thể thay đổi các tập tin điều khiển thiết bị trong kernel, hoặc có thể xây dựng các

chương trình giống như các ứng dụng chạy trên hệ điều hành. Tuy nhiên cho dù bạn phát triển hệ thống nhúng ở mức độ nào thì quá trình biên dịch, các kiến thức về u-boot, kernel luôn là cần thiết.

Một phần của tài liệu document (Trang 60 - 65)