Bài viết này sẽ giải thích cho ta làm thế nào để xây dựng một barebox bootloader.
barebox sử dụng Kconfig/Kbuild từ linux kernel để xây dựng nên sources. Nó bao gồm hai phần: makefile infrastructure (Kbuild) và configuration system (kconfig). Do đấy xây dựng barebox thì rất giống với xây dựng linux kernel.
Trong ví dụ sau đây, ta sử dụng các cấu hình sandbox, nó là một phần của giao diện sử dụng linux của berebox. Điều này làm cho nó có khả năng kiểm tra code mà không cần phần cứng thật hoặc thậm chí là QEMU.
Chọn một kiến trúc và một trình biên dịch chéo bằng cách cài đặt các biến môi trường như sau:
ARCH=<architecture>
CR
CROSS_COMPILE= <compiler-prefix>
Với ARCH = sandbox, chúng ta không cần bất kì trình biên dịch chéo nào,do đấy nó là đủ để xác định kiến trúc.
#export ARCH = sandbox
Ngoài ra, nêys bạn đang set và export biến CROSS_COMPILE cho kiến trúc non-x86, hãy chắc chắn rằng ta phải gỡ bỏ nó. nếu không, bạn sẽ xây dựng một sandbox thực thi cho một kiến trúc nào đấy khác so với x86, mà có lẽ đấy là những gì bạn không muốn.
Để cấu hình các khía cạnh khác nhau của barebox, bắt đầu cấu hình hệ thống barebox.
#make menuconfig
Hộp này sẽ bắt đầu vào một hộp menu và cho phép bạn chọn tất cả các tùy chọn khác nhau có sẵn cho các kiến trúc bạn lựa chọn. Sau khi cấu hình xong (bạn có thể mô phỏng cái này bằng cách sử dụng các tập tin cấu hình mặc định bới "make sandbox_defconfig), có một tập tin cấu hình nằm trong thưmucj cấp cao nhất của mã nguồn.
Sau khi barebox đã đuwocj cấu hình, chúng ta có thể bắt đầu biên dịch:
#make
Bạn có thể sử dụng "-j<n>" để làm một xây dựng song song nếu bạn có nhiều hơn một CPU.
Nếu tất cả mọi việc suôn sẻ, kết quả là một tập tin gọi là barebox:
#ls -l barebox
-rwxr-xr-x 1 rsc ptx 114073 Jun 26 22:34 barebox
Trên các kiến trúc khác sandboxthường là file barebox.bin chứa các file nhị phân để flash/start trên phần cứng mục tiêu của ta. Hệ thống make có thể tạo ra một bãi chứa giá trị nhị phân với make barebox.
Không có nhận xét nào:
Đăng nhận xét