You are on page 1of 17

Xây dựng hệ điều

hành cho Raspberry


Pi
Hệ điều hành nhúng - Nhóm 8
Tổng quan

I. Giới thiệu pi-gen II. Quy trình thực hiện III. Kết quả thu được

1.1.Giới thiệu chung 2.1. Giới thiệu về hệ điều


hành eightOS
1.2. Cấu trúc file của pi-gen 2.2. Các bước thực hiện
Giới thiệu chung về pi-gen

Raspberry Pi là một bo mạch vi xử lý nhỏ gọn phổ


biến được sử dụng trong nhiều ứng dụng như Internet
of Things (IoT), hệ thống nhúng, và dự án điện tử.

Giới thiệu Pi-gen là một công cụ được sử dụng để tạo ra hệ điều


hành Raspberry Pi tuỳ chỉnh.
pi-gen Pi-gen giúp bạn tạo ra một hệ điều hành tuỳ chỉnh cho
Raspberry Pi bằng cách tự động hóa quá trình xây dựng
và cấu hình. Bằng cách sử dụng tệp cấu hình và các
thành phần mở rộng, bạn có thể tùy chỉnh và điều
chỉnh hệ điều hành theo nhu cầu của mình.
Cấu trúc file của pi-gen
stage0: là bước tạo ra một hệ thống tệp tin filesystem
stage1: là bước thiết lập các tập tin hệ thống như /etc/fstab, cấu hình
bootloader, cấu hình thiết lập mạng và cài đặt các gói tin như raspi-config.
stage2:.Là bước cài đặt một số chức năng tối ưu bộ nhớ, cấu hình múi giờ và
vùng, cài đặt các gói tin cơ bản để quản lý phần cứng (Wifi, Bluetooth…).
stage3: Là bước cài đặt X11 server và LXDE, trình duyệt web, git, giao diện
tùy chỉnh vào hệ điều hành.
stage4: Là bước cài đặt hầu hết các công cụ khiến Raspbian OS thân thiện
hơn với người dùng ví dụ như hướng dẫn sử dụng hệ điều hành.
Cấu trúc file của pi-gen
stage5: Cài đặt thêm các công cụ phát triển, email client, phần mềm học
tập như Scratch, cũng như một số gói tin đặc biệt như sonic-pi, các công
cụ văn phòng…
config: chứa cấu hình cho quá trình xây dựng hệ điều hành, bao gồm
thông tin về phiên bản Raspberry Pi, ngôn ngữ, định dạng file hình ảnh
và các tuỳ chọn khác.
build.sh: là tệp script chính để chạy quá trình xây dựng hệ điều hành,
khởi động quá trình xây dựng hệ điều hành và thực hiện các bước từ
Stage 0 đến Stage 5.
Quy trình thực hiện
Quy trình thực hiện
Giới thiệu hệ điều hành eightOS
Là hệ điều hành tối giản được xây dựng bằng công cụ py-gen, dựa trên Debian 11
Bullseye và được tích hợp một số công cụ hỗ trợ triển khai các ứng dụng web viết trên
nền Javascript/Typescript.

Một số ứng dụng được tích hợp trong eightOS:


Neovim - Công cụ chỉnh sửa văn bản dựa trên Vim
NodeJS - JavaScript runtime environment
Docker - Nền tảng triển khai phần mềm nhanh chóng
Lên ý tưởng

Thiết lập hệ điều hành


Các bước thực
Khởi tạo file config
hiện
Thiết lập workflow cho pi-gen

Tuỳ chỉnh hệ điều hành


Bước 1: Lên ý tưởng
Xây dựng một hệ điều hành tối giản sử dụng giao thức
SSH để quản lí Raspberry Pi cũng như triển khai các ứng
dụng web viết trên nền Javascript/Typescript

Bước 2: Thiết lập hệ điều hành

Các bước thực hiện Ta cần sử dụng hệ điều hành Debian-based như
Debian, Linux Mint, Ubuntu…
Cài đặt các gói tin cần thiết để build hệ điều hành

sudo apt-get install coreutils quilt


parted qemu-user-static debootstrap
zerofree zip dosfstools libarchive-tools
libcap2-bin grep rsync xz-utils file git
curl bc qemu-utils kpartx gpg pigz
Các bước thực hiện
Bước 3: Khởi tạo file config

Clone repo pi-gen tại địa chỉ: https://github.com/RPI-Distro/pi-gen


Do nhóm đang sử Pi 3B+ nên sẽ build hệ điều hành 64bit. Do đó phải chuyển sang
branch arm64 bằng cách

cd pi-gen && git checkout arm64

Tạo file config tại thư mục pi-gen


Các thông số nên được thiết lập trong file config
Key Value Ghi chú

IMG_NAME eightOS Tên image/hệ điều hành

RELEASE bullseye Tên phát hành của hđh Debian

Vùng mặc định - nên để en_US nhằm tăng


LOCALE_DEFAULT en_US.UTF-8
tính tương thích với các gói tin

TARGET_HOSTNAME eos Hostname mặc định của hệ điều hành

KEYBOARD_KEYMAP us Keymap mặc định của hệ điều hành

KEYBOARD_LAYOUT English (US) Layout mặc định của bàn phím

Asia/Ho_Chi_M
TIMEZONE_DEFAULT Múi giờ mặc định
inh

FIRST_USER_NAME eight Tên người dùng mặc định


FIRST_USER_PASS eightOS Mật khẩu mặc định

Tắt tính năng tạo người


DISABLE_FIRST_BOOT_USER_RENAME 1 dùng mới trong lần boot
đầu tiên

WPA_ESSID eight Tên wifi

WPA_PASSWORD 12345678 Mật khẩu wifi

WPA_COUNTRY VI Mã quốc gia Wifi 

ENABLE_SSH 1 Kích hoạt SSH server


Các bước thực hiện
Bước 4: Thiết lập workflow cho pi-gen

Do ý tưởng ban đầu là xây dựng một hệ điều hành tối giản, sử dụng giao thức SSH để quản lí cũng như
triển khai các ứng dụng web xây dựng trên nền Javascript/Typescript nên ta sẽ bỏ qua stage3, stage4 và
stage5 của pi-gen bằng cách sử dụng các câu lệnh sau:

touch ./stage3/SKIP ./stage4/SKIP ./stage5/SKIP


touch ./stage4/SKIP_IMAGES ./stage5/SKIP_IMAGES
Bước 5: Tuỳ chỉnh hệ điều hành
Tại thư mực stage2 tạo các folder 04-configure-repo, 05-custom-packages, 06-customization

mkdir -p
stage2/{04-configure-repo,05-custom-packages,06-
customization}
Tại các thư mục này khởi tạo các file như 0x-packages, 0x-run-chroot.sh (x là số thứ tự).
Vd: 00-packages sẽ được thực thi trước 01-run-chroot.sh
Cấp quyền thực thi cho các file .sh trong các folder. Ví dụ:

chmod +x 01-run-chroot.sh

Tiến hành xây dựng hệ điều hành bằng cách:

sudo ./build.sh
Kết quả thu được
Sau khi build xong ta thu được file image tại thư mục deploy như hình dưới:

Tiến hành flash file image thu được vào thẻ nhớ, nạp vào Raspberry Pi
Kết nối SSH vào Raspberry Pi 3 ta thu được kết quả như sau :

You might also like