Hôm nay, Viqazo sẽ giúp các bạn tận dụng Tv Box cũ cài armbian để làm server mini, cài đặt Docker, hass.io, Pi-hole hay AdGuard Home chặn quảng cáo, ... *Lưu ý: Thông tin trong bài viết này được tổng hợp từ nhiều nguồn khác nhau, một số khác có được từ quá trình tìm hiểu, mò mẫm của bản thân nên có thể sẽ có nhiều sai sót, mong các bạn đóng góp ý kiến.
Bài Viết Liên Quan
Về Armbian cho Tv Box
Trước hết, phải nói rõ rằng Armbian cho TvBox (AcT) chỉ là OS do một Dev người Nga (hoặc Ukraina?) phát triển, được cung cấp miễn phí dưới dạng "as is" nên người dùng cuối sẽ không nhận được hỗ trợ từ tác giả.
Hiện nay, AcT đang được build từ
- Ubuntu 18.04 (tên mã Bionic), 20.04 (Focal), 22.04 (Jammy), 24.04 (Noble).
- Debian 10 (Buster), 11 (Bullseye), 12 (Bookworm); có cả bản desktop (có GUI) và bản server (CLI).
Vì có nhiều biến thể như vậy nên cần lưu ý chọn bản phù hợp cho mục đích sử dụng. Cũng cần chú ý thêm là hiện nay, Dev này chỉ tập trung build AcT cho các Tv Box kiến trúc 64bit (aarch64, ARMv8) dưới dạng một file ảnh (image) duy nhất dùng cho cả chip Amlogic, Allwinner hay Rockchip.
Nhìn chung AcT còn rất nhiều lỗi. Cùng một TvBox nhưng với bản AcT build ngày 5 chẳng hạn thì khi cài đặt xong có thể có wifi 2.4/5 GHz, sound, bluetooth, usb 2.0/3.0, HDMI, màu chuẩn, nhận đủ dung lượng bộ nhớ trong; sang bản build ngày 20 thì lại mất sound, bluetooth, không nhận đủ dung lượng bộ nhớ trong, ... và sang bản build ngày 30 thì có khi mất cả wifi (!), chỉ còn ethernet. Một điểm hạn chế nữa là đa phần các Tv Box sau khi cài đặt AcT sẽ chỉ nhận ethernet 100mb, một số ít nhận 1gb.
Mục đích của mình là tận dụng TvBox cũ làm mini server, chạy một số container giám sát hệ thống, chặn quảng cáo nên thường chỉ quan tâm đến bản AcT server build trên nền Debian Buster, có ethernet và ổn định hay không thôi, còn thì không quan tâm lắm đến các tính năng khác như sound, bluetooth hoặc wifi... Hình dưới minh họa việc sử dụng Tv Box làm headless server, AcT kernel 5.9 với 5 docker và một số phần mềm khác như Ansible, Prometheus.
Về Tv Box
Hiện nay, các Tv Box trên thị trường có chất lượng khác nhau, thượng vàng hạ cám, được nhiều bên sản xuất, cùng một dòng có thể chính hãng sản xuất hoặc do một bên khác OEM. Ví dụ như Tx3 Mini, trên thị trường có ít nhất 3 loại box cùng tên Tx3 Mini, hay X96 Mini có tới vài phiên bản dùng board khác nhau. Ngoài ra, một số Tv Box dùng bộ nhớ trong eMMC thì sau khi boot AcT từ thẻ nhớ thì có thể cài đặt AcT trực tiếp lên eMMC; một số Tv Box khác lại dùng bộ nhớ trong là NAND flash, loại này thì kernel linux không hỗ trợ nên không thể cài đặt AcT lên bộ nhớ trong. Tv Box mặc định sẽ luôn boot từ OS trên bộ nhớ trong. Do vậy, để có thể boot từ thẻ nhớ thì phải thêm một bước nữa là dùng Script để kích hoạt chế độ này. Bước này sẽ đề cập ở phần sau.
Vậy, chọn Tv Box nào phù hợp? Nếu đã có Tv Box rồi thì so sánh model Tv Box của mình với danh sách DTB (The Device Tree Blob (or Binary) - định nghĩa giao tiếp cho firmware) của AcT để xem có hỗ trợ không. Riêng chip Amlogic, AcT hỗ trợ gần 30 model, gồm cả Tv Box và một số SBC. Trong trường hợp không có trong danh sách model hỗ trợ thì cũng có thể dùng DTB của TvBox nào dùng cùng SoC: lấy ví dụ như Tx3 Mini và X96 Mini đều dùng Amlogic S905W nên có thể dùng DTB của Tx3 Mini (meson-gxl-s905w-p281.dtb, hoặc meson-gxl-s905w-tx3-mini.dtb) cho X96 Mini.
Còn nếu mua Tv Box mới thì nên chọn của các hãng có tên tuổi như Tanix, Enybox, Beelink. Các hãng này thường có website, thông tin, cấu hình Tv Box chuẩn, rõ ràng, build chắc chắn, có phần tải/cập nhật firmware. Do đó, trong một số trường hợp đã cài AcT lên eMMC rồi thì việc muốn quay về OS gốc cũng dễ dàng hơn.
Một số Tv Box thông dụng hiện nay: Tanix Tx3 Mini (rẻ); X96 Mini (chỉ rev 2.1 chạy được AcT; rev 2.2 đã khóa uboot nên không chạy được AcT), X96 Max; Beelink dòng GT1, GT-King (khá đắt) và nhiều model khác, ... Có thể tham khảo một số dòng Tv Box chạy được AcT trên forum armbian hoặc ophub
Cài đặt Armbian lên Tv Box
Nguyên Liệu
- Tv Box: Thường dùng bản 2gb ram, 16gb bộ nhớ trong (2/16). Nếu chỉ sử dụng TvBox cài Pi-hole, AdGuard Home chặn quảng cáo thì chỉ cần bản 1/8 GB tuy hơi đuối. Trong bài viết này, mình dùng Tx3 Mini rev H, 2/16 GB, cấu trúc 64bit.
- Thẻ nhớ: 1 micro SD card 8 hoặc 16gb, class 10. Class càng cao càng tốt nếu muốn chạy AcT từ sdcard. Còn nếu chỉ để dùng sdcard làm trung gian trước khi cài đặt AcT lên eMMC của Tv Box thì có thể tận dụng bất cứ sdcard nào săn có. Lưu ý: Nếu sdcard có class thấp (4, 6 chẳng hạn) thì ở lần khởi động AcT đầu tiên sẽ mất khá lâu, thường từ 30 phút đến cả tiếng; class 10 thì chỉ khoảng 3 - 5 phút.
- Usb đọc thẻ nhớ x1.
- Dây mạng Lan x1 (Dùng để kết nối mạng, phòng trường hợp Tv Box không dùng được Wifi)
- Bản rom Android Tv gốc của box (nếu box đang chạy rom gốc rồi thì bỏ qua phần này). Tham khảo bài viết sau: Tổng Hợp Firmware Tv Box
- Phần mềm để ghi AcT lên thẻ nhớ: (chọn nào cũng được)
- Balena Etcher: Download
- Rufus: Download
Mình hay dùng Rufus vì có thể ghi image từ file zip mà không phải giải nén, sau khi ghi xong thì có thể sửa lại file cấu hình luôn mà không phải rút, cắm lại usb đọc thẻ. - AcT image: (chọn 1 bản thích hợp)
- Armbian_20.10_Arm-64_buster_current_5.9.0.img.xz - Dùng chung cho cả 3 loại chip
- https://mega.nz/folder/j9QSDQSQ#6WpasOlbZYIInfw6yo4phQ
- Ophub – Hỗ trợ Tv Box dùng chip Amlogic - PuTTy hoặc Terminal có sẵn trên Windows để kết nối với Tv Box đang chạy AcT. Xem cách dùng ở bước 5
Các Bước Thực Hiện
Bước đầu tiên hết, chúng ta nên cài Tv Box về rom gốc của nhà sản xuất (Tham khảo cách cài tại bài viết Hướng Dẫn Nạp Firmware, Cập Nhật Rom, Up Android Tv Bằng Amlogic USB Burning Tool). Mục đích của việc này giúp cho quá trình cài đặt trơn tru và tỉ lệ cài đặt thành công cao hơn.
Bước 1: Tải file image của Armbian theo nhu cầu của các bạn ở trên. Trong bài viết này, mình chọn sử dụng Armbian của Ophub và dùng bản Bookwrom (Debian 12) cho con Tx3 Mini của mình.
Bước 2: Cắm usb đọc thẻ nhớ vô PC. Chạy Rufus, chọn usb đọc thẻ nhớ từ menu cửa sổ "Thiết bị (Device)", kéo thả file image Armbian vừa tải ở bước trên vào "Phương thức khởi động (Boot selection)" rồi click "Bắt đầu (Start)" để ghi ra thẻ nhớ.
Bước 3: Sau khi Armbian đã được ghi ra thẻ nhớ thì phải sửa file config cho phù hợp với cấu hình của Tv Box. Lấy ví dụ cấu hình của Tx3 Mini: SoC là Amlogic S905W.
(Đối với Armbian của Ophub thì có thể bỏ qua bước này – xem tham khảo nếu không boot lên được hoặc chỉnh sửa file "uEnv.txt" (nếu cần) trong phân vùng BOOT tương tự như sau)
- Mở phân vùng BOOT của thẻ nhớ. Sửa file "u-boot-*" thành "u-boot.ext". Ví dụ: Tx3 Mini dùng S905W nên mình sẽ sửa file “u-boot-s905x-s912” thành “u-boot.ext”
- Mở file "extlinux.conf" trong thư mục extlinux bằng notepad hoặc bất kỳ text editor nào sẵn có trên PC. Trong ví dụ này, mình dùng Sublime Text để chỉnh sửa:
- Tìm đến dòng config cho SoC Amlogic (# aml s9xxx). Bỏ các dấu # ở đầu dòng FDT (chỉ cần 1 dòng) và APPEND.
Chú ý: Tv Box dùng chip nào thì tìm dòng config tương ứng, xóa toàn bộ các dòng config còn lại cho các dòng chíp khác không dùng đến.
- Quay trở lại cửa sổ Explorer, duyệt đến BOOT → dtb → Amlogic, tìm dtb cho Tx3 Mini, sao chép tên của file dtb này.
Chú ý: Với SoC 905W có 2 file dtb là meson-gxl-s905w-p281.dtb và meson-gxl-s905w-tx3-mini.dtb, dùng file dtb nào cũng được. Mình thử cả 2 file thì Tv Box của mình chỉ nhận meson-gxl-s905w-p281.dtb mà không nhận file còn lại.
- Dán tên file dtb vào dòng FDT như hình dưới đây. Lưu các thông tin vừa chỉnh sửa.
Bước 4: Tháo thẻ nhớ ra và lắp vào khe TF trên tvbox. Cắm điện Tv Box để boot vào OS gốc Android. (Đối với Armbian của Ophub, Tv Box sẽ tự động boot vào Armbian nếu cài đặt thành công - Tham khảo bên dưới khi không thành công)
Trong giao diện Android, tìm đến phần Cập nhật (Update) - trong cài đặt (Settings) hoặc trong danh sách ứng dụng, chọn file aml_autoscript.zip trên thẻ nhớ (sdcard), sau đó nhấn Update. Tv Box sẽ khởi động lại.
Sau khi khởi động lại, nếu hên thì có thể boot luôn vào Armbian trên thẻ nhớ. Nói nếu hên vì trên forum Armbian có đề cập một số trường hợp boot được luôn vào Armbian, một số trường hợp thì vẫn vào lại giao diện Android của Tv Box.
Làm đúng các bước trên, các bạn sẽ cài đặt AcT trên thẻ nhớ thành công.
Bước 5: Các bạn thể cắm thẳng Tv Box vào màn hình để điều khiển, tuy nhiên, sẽ có hạn chế là cần cắm thêm bàn phím vào. Do đó, mình sẽ dùng máy tính khác để điều khiển
- Dùng Terminal mặc định của Windows, các bạn chỉ việc nhập theo cú pháp:
ssh user@ip
Trong đó: user là tên đăng nhập,ip là địa chỉ của thiết bị. Ví dụ: - Dùng PuTTY thì chỉ cần nhập địa chỉ ip vào sau đó ấn open là được.
Để có được địa chỉ ip, bạn cần vào trang cài đặt mạng của router để xem. Tùy vào nhà mạng và router mà sẽ có địa chỉ khác nhau, ví dụ với VNPT là 192.168.1.1 sau đó chỉ cần tìm đến thiết bị có tên là armbian như hình dưới
Ở lần đăng nhập đầu tiên ở cả 2 cách đều giống nhau, dùng username: root, password: 1234. Sau đó khởi tạo username và password mới.
Một Số Cách Fix Khi Không Vào Được Armbian
Nếu rơi vào trường hợp như ảnh, thì dùng phương pháp chọc que vào nút reset như sau:
- Rút dây nguồn của Tv Box.
- Dùng que chọc vào nút reset như ảnh này. Tùy từng Tv Box, mà nút reset này được bố trí ở các vị trí khác nhau, ví dụ như Tx3 Mini thì nút reset nằm ở mặt lưng, cũng có khi nằm trong lỗ cắm AV.
- Vẫn nhấn giữ que nhọn chọc nút reset, cắm dây nguồn cho Tv Box. Đợi trên 30s thì TV Box sẽ boot vào Armbian trên thẻ nhớ (sdcard), lúc này nhả tay giữ que chọc lỗ reset.
Một số cách khác:
- Thực hiện lại các bước trên xem đã đúng hết chưa.
- Cài phiên bản Armbian khác cho Tv Box.
- Thử thay phiên bản Android OS khác của Tv Box, sau đó thực hiện cài lại Armbian.
- Thay thẻ nhớ (sdcard) khác.
Một Số Thứ Cần Làm Sau Khi Cài Thành Công Armbian
1. Khóa root account bằng lần lượt các lệnh sau:
- Xóa password root account:
- Khóa tài khoản:
- Sau khi đã khóa thì chỉ sử dụng username khởi tạo nói trên ở những lần đăng nhập sau.
sudo passwd -d root
sudo passwd -l root
2. Cập nhật hệ thống, đảm bảo các package là mới nhất.
- Chạy lần lượt các lệnh sau:
- Đối với bản ophub thì làm theo hướng dẫn trong link sau Updating Armbian Kernel
sudo apt update sudo apt upgrade -y sudo apt dist-upgrade
Chạy lệnh armbian-config để thay đổi tên host của Tv Box; trong trường hợp có sử dụng cron để tự động hóa một số task thì phải thay đổi múi giờ phù hợp, ...
Dùng lệnh sudo reboot để khởi động lại tvbox.
Cài Armbian Lên eMMC
Nếu muốn cài đặt Armbian lên eMMC (để tận dụng tốc độ của eMMC; sdcard để làm việc khác, ...) thì sau khi dùng PuTTY đăng nhập vào AcT, tại terminal nhập vào lệnh sau:
sudo /root/install-aml.sh
Đợi một lúc Armbian sẽ tự cài đặt lên eMMC theo kịch bản (script), báo thành công thì khởi động lại Tv Box. Rút thẻ nhớ (sdcard) ra trước khi cắm điện, Tv Box sẽ boot vào Armbian từ eMMC.
Armbian của Ophub thì làm như trong link sau Installing Armbian to EMMC
Docker
Docker là một nền tảng ảo hoá mã nguồn mở giúp bạn build, test và deploy ứng dụng dưới dạng container trên mọi môi trường máy chủ, máy ảo khác nhau. Nó cho phép tạo môi trường độc lập, tách biệt khỏi hệ điều hành để khởi chạy hoặc phát triển ứng dụng. Môi trường ảo này được gọi là container.
Các cài đặt và thông tin chi tiết hơn vui lòng xem tại bài viết: Hướng dẫn cài đặt Docker, Docker Compose trên Linux (Armbian/Ubuntu/Debian/…)
Armbian của Ophub thì làm như trong link sau Armbian Software Center
Portainer
Portainer là một công cụ giúp dễ dàng quản lý docker container, host và docker swam qua giao diện UI. Người dùng có thể quản lý Docker stack, container, image, volume, network,.. trực tiếp thông qua giao diện web của Portainer mà không phải vất vả nhớ các câu lệnh; ngoài ra, việc sửa lỗi cũng dễ dàng, trực quan hơn.
Các cài đặt và thông tin chi tiết hơn vui lòng xem tại bài viết: Quản Lý Docker Dễ Dàng Hơn Với Portainer
Armbian của Ophub thì làm như trong link sau Armbian Software Center
Kết Luận
Trong bài viết này, Viqazo đã hoàn tất hướng dẫn các bạn cài đặt Armbian lên Tv Box và Docker lẫn Portainer để các bạn có thể cài đặt các ứng dụng như Hass.io, Pi-hole hay AdGuard Home chặn quảng cáo, ...
Chúc các bạn thành công!