Nhƣ nói ở trên Bootloader sẽ khởi tạo hệ thống và nạp hệ điều hành vào hệ thống. Để cài đặt nhân Linux cho hệ thống thì cần đặt các dữ liệu của nhân vào đúng chỗ để bootloader có thể khởi động nó. Công việc này chính là việc cài đặt Linux cho hệ phần cứng NGW100. Để một hệ thống chạy đƣợc Linux ta cần cài đặt vào bộ nhớ của hệ phần cứng các phần nhƣ Bootloader, các bộ giải mã kiến trúc, hệ nhân Linux, các khối giao tiếp với nhân, các thƣ viện và không gian ngƣời sử dụng, các ứng dụng... Để làm những điều này trên board mạch NGW100 do không gian bộ nhớ của mạch có giới hạn nên phải chia nhỏ các thành phần của hệ điều hành đặt vào từng phần của bộ nhớ trên board mạch, ta lần lƣợt làm các bƣớc sau:
- Bƣớc 1: Ta sẽ cài đặt cho board mạch thông qua một máy tính chủ đƣợc chuẩn bị sẵn các mạch nạp và phụ trợ kết nối giữa máy chủ (host) và board mạch (target). Tải phiên bản nhân linux nhúng thích hợp (AVR) và các dữ liệu cần thiết từ trang web của nhà sản xuất.
- Bƣớc 2: Biên dịch nhân để tạo ra các file hệ thống cần thiết. Bƣớc này đƣợc thực hiện trên máy tính chủ cài hệ điều hành GNU/Linux thông qua các
46
lệnh: make-menuconfig và make. Sau bƣớc này ta thu đƣợc 3 file hệ thống tƣơng ứng với 3 vùng FLASH (u-boot.bin cho FLASH nội trên ARM, root.jfsf2 cho vùng FLASH song song, usr.jfsf2 cho vùng FLASH nối tiếp). Ngoài ra, ta có thêm chƣơng trình biên dịch avr32-linux-gcc để biên dịch các ứng dụng C chạy trên board.
- Bƣớc 3: Nạp file u-boot.bin vào phần FLASH nội của ARM. Bƣớc này đƣợc thực hiện bằng cách sử dụng mạch nạp JTAG-ICE mkll của Atmel hoặc một số mạch nạp tƣơng đƣơng khác hỗ trợ nạp qua giao tiếp JTAG. Sau bƣớc này mặc dù ta chƣa có hệ điều hành hoàn chỉnh, tuy nhiên ta đã có thể khởi động, giao tiếp với thẻ nhớ, trao đổi thông tin với các thiết bị khác qua RS232, FTP, thẻ nhớ,…
- Bƣớc 4: Đƣa file root.jfsf2 vào vùng nhớ song song. Ta có thể thực hiện thông qua phƣơng pháp load file sử dụng cổng COM, hoặc thẻ nhớ, hoặc FTP.
- Bƣớc 5: Hoàn thiện cài đặt bằng cách đƣa file usr.jfsf vào bộ nhớ FLASH nối tiếp. Sau bƣớc 4 ta đã có thể khởi động hệ điều hành nhƣng với một số lệnh, chức năng chƣa đƣợc thiết lập đầy đủ. Tuy nhiên, ta có thể sử dụng các lệnh đó để cài đặt tiếp phần còn thiếu (usr.jfsf2). Ta có thể đƣa vào qua thẻ nhớ, FTP, ssh (một ứng dụng dùng để trao đổi file trên linux)…
Sau khi hoàn thành 5 bƣớc trên, ta đã có một hệ điều hành độc lập trên board mạch. Thông qua truyền thông UART đến một máy tính khác ta có thể đƣa các lệnh điều khiển và các thông báo từ hệ điều hành GNU/Linux trên board nhƣ trên một máy tính cá nhân thông thƣờng.
47
Hình 2.12 Giao diện thực tế terminal của hệ điều hành Linux trên thiết bị hiển thị qua màn hình máy tính
Ta có thể kiểm tra một số chức năng của hệ điều hành thông qua nhập một số lệnh cơ bản của Linux vào cửa sổ terminal ở trên.
Về cơ bản sau bƣớc này ta có board mạch nhƣ là một máy tính đƣợc cài đặt hệ điều hành Linux với những ƣu điểm nhƣ có các kết nối mạng internet, UART, các trình quản lý FILE, quản lý tiến trình, trình giao tiếp terminal, các trình quản lý mạng... và có thể cài đặt thêm nhƣ: các bộ thƣ viện và bộ biên dịch ngôn ngữ C... Là những thành phần quan trọng để tạo nên một hệ thống vận hành độc lập, khá đầy đủ các tính năng, dễ dàng kết nối và nâng cấp mở rộng và bảo trì.
48