Cấu hình mạng cho HackberryPi
Thiết lập địa chỉ IP tĩnh (Static IP) giúp hệ thống ổn định hơn khi làm việc trong môi trường lab hoặc server nội bộ, tránh xung đột địa chỉ từ DHCP.
Chỉnh sửa file cấu hình của Network Manager hoặc dhcpcd (tùy thuộc vào rootfs bạn đã build ở Phần 4). Dưới đây là ví dụ sử dụng Network Manager với file profile.
Đường dẫn: /etc/NetworkManager/system-connections/hackberrypi.nmconnection
[connection]
id=hackberrypi-eth0
type=ethernet
interface=eth0
autoconnect=true
[ipv4]
method=manual
address1=192.168.1.50/24,192.168.1.1
dns=8.8.8.8;8.8.4.4
[ipv6]
method=ignore
Kết quả mong đợi: File được lưu, khi khởi động lại hoặc reload service, interface eth0 sẽ nhận IP 192.168.1.50.
Áp dụng cấu hình ngay lập tức mà không cần reboot:
nmcli connection up hackberrypi-eth0
Kiểm tra kết quả bằng lệnh ifconfig hoặc ip addr:
ip addr show eth0
Đảm bảo dòng inet hiển thị 192.168.1.50/24.
Cập nhật Repository và cài đặt công cụ
Hệ thống rootfs từ source thường rất "sạch" và thiếu các gói tiện ích. Bước này đảm bảo bạn có thể pull code và compile các ứng dụng sau này.
Cập nhật danh sách gói từ source repository (ví dụ: Alpine Linux hoặc Buildroot package feed):
apk update
Kết quả mong đợi: Không có lỗi "repository not found" và danh sách package mới được tải về.
Cài đặt bộ công cụ phát triển cốt lõi (gcc, make, git, build-base):
apk add --no-cache gcc make git build-base libc-dev
Kết quả mong đợi: Các gói được giải nén và cài đặt vào /usr/bin, /usr/lib. Dung lượng disk tăng khoảng 50-100MB.
Verify các công cụ đã sẵn sàng:
gcc --version && git --version
Xu hiện phiên bản của GCC và Git mà không có thông báo "command not found".
Tinh chỉnh Scheduler và CPU Frequency Scaling
HackberryPi sử dụng kiến trúc ARM (thường là Cortex-A7/A9/A53). Mặc định, kernel có thể đang chạy ở chế độ "conservative" hoặc "ondemand", gây giật lag khi xử lý task nặng. Chuyển sang "performance" hoặc "powersave" tùy nhu cầu.
Xác định CPU governor hiện tại:
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
Đổi về chế độ "performance" để đạt tốc độ tối đa (tăng nhiệt, tăng tiêu thụ điện):
echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
Kết quả mong đợi: Không có lỗi permission denied. CPU chạy ở tần số cao nhất liên tục.
Tinh chỉnh scheduler để ưu tiên I/O (quan trọng cho các tác vụ file system trên SD card):
echo deadline > /sys/block/mmcblk0/queue/scheduler
Kiểm tra scheduler đã áp dụng:
cat /sys/block/mmcblk0/queue/scheduler
Dòng đầu tiên sẽ là [deadline] thay vì [cfq] hoặc [noop].
Cấu hình Systemd tự động chạy dịch vụ
Để hệ thống tự động thực thi script hoặc dịch vụ ngay khi boot, ta sử dụng systemd unit file.
Tạo thư mục cho custom service nếu chưa tồn tại:
mkdir -p /etc/systemd/system
Viết file unit cho dịch vụ kiểm tra hệ thống (ví dụ: log hệ thống vào file):
Đường dẫn: /etc/systemd/system/hackberry-monitor.service
[Unit]
Description=HackberryPi System Monitor
After=network.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/sh -c "while true; do echo 'System OK - $(date)' >> /var/log/hackberry.log; sleep 60; done"
Restart=always
User=root
[Install]
WantedBy=multi-user.target
Khởi động lại systemd manager daemon để nhận diện file mới:
systemctl daemon-reload
Enable dịch vụ để tự động chạy khi boot và start ngay lập tức:
systemctl enable hackberry-monitor.service
systemctl start hackberry-monitor.service
Kết quả mong đợi: Lệnh enable trả về "Created symlink...", lệnh start không báo lỗi.
Verify trạng thái dịch vụ:
systemctl status hackberry-monitor.service
Xu hiện dòng "Active: active (running)".
Kiểm tra file log đã được tạo:
tail -n 5 /var/log/hackberry.log
Xu hiện các dòng log với timestamp hiện tại.
Điều hướng series:
Mục lục: Series: Xây dựng hệ điều hành Linux từ source cho HackberryPi CM5
« Phần 7: Flash hệ điều hành vào HackberryPi và kiểm tra khởi động
Phần 9: Troubleshooting các lỗi thường gặp và mẹo nâng cao »