Minimalist Forum Reader
Chào các bác,cau khi nhìn thấy một bác chạy được Server trên con máy Zfly cũ, ham hố quá, thế là e mới mò được ở nhà còn 1 con máy Redmi Note 11 để vọc vạch chạy Server8-). Thớt này chủ yếu là em tổng hợp được qua trao đổi với AI và tham khảo các nguồn như Stack Over Flow, v.v.... Đảm bảo hoạt động với NodeJS. Có thể chạy truy cập online qua tên miền miễn phí của Cloudfare. Bác nào chưa biết thì có thể tham khảo, bác nào biết thêm nhiều thì chia sẻ, thảo luận để ace có thể học tập thêm nhé. :)

+ Đối với Android NO Root (RAM tối thiểu 4 GB):

Một số mục tiêu của bài chia sẻ này:

1. Thông qua PC để chạy Termux do lười gõ bằng phím trên Android
2. Cài Server Node JS và chạy trên Termux
3. Cài Cloudfare để public trên Internet:

Cài đặt các công cụ cần thiết:

1. Termux: Tìm trên Playstore, Để cài đặt server
2. Terminal/Powershell (Windows có sẵn): Để điều khiển Termux từ PC

Các bước thực hiện từ A->Z:

Bước 1: Khởi động Termux, cài đặt net-tools với lệnh:
pkg install net-tools
Bước 2: Chạy ifconfig, tìm dòng có inet 192.168.x.x (đó là IP LAN để máy khác trong cùng wifi truy cập)
Bước 3: Cài đặt SSH trên Termux:
pkg install openssh
passwd # đặt mật khẩu
Bước 4: Trên PC vào Terminal/Powershell và nhập IP_ANDROID (192.168.x.x) ở trên:
ssh username@IP_ANDROID -p 8022
Sẽ hiện ra dòng nhập mật khẩu, sẽ nhập vào mật khẩu ở trên, enter hiện ra màn hình giống như Termux có dấu $ là thành công, giờ đây các bác có thể dùng PC để điều khiển Termux.
Bước 5: Chạy dòng lệnh sau trên PC để cài Node JS
pkg update && pkg upgrade -y
pkg install nodejs -y
Bước 6: Sau khi cài xong thì kiểm tra:
node -v
npm -v
Bước 7: Tạo project Node.js:
Tạo một thư mục để chứa project:
mkdir myserver
cd myserver
Khởi tạo project:
npm init -y
Tạo file server.js:
nano server.js
Dán code mẫu:
JavaScript:
const http = require("http");
const server = http.createServer((req, res) => {
  res.writeHead(200, {"Content-Type": "text/plain"});
  res.end("Hello from Node.js server on Termux!\n");
});

const PORT = 3000;
server.listen(PORT, "0.0.0.0", () => {
  console.log(`Server running at http://localhost:${PORT}/`);
});
Nhấn CTRL+0 để lưu, sau đó CTRL+X để thoát:
Bước 8: VÀO TERMUX TRÊN ĐIỆN THOẠI:
CHẠY LỆNH:
node server.js
Nếu thấy:
👉 Mở trình duyệt trong điện thoại và vào địa chỉ:
Hoặc các bác có thể truy cập từ máy tính qua IP của Điện thoại Android cùng mạng.

Bước 9: Sau khi đã chạy được thì các bác Ctrl + C để tắt lệnh đang chạy, sau đó cài pm2 này để Termux có thể chạy ngầm.
npm install -g pm2
pm2 start server.js
pm2 save
pm2 list

Bước 10: Tại đây để chạy thêm 1 Session mới, các bác làm theo như sau:
  • Vuốt từ cạnh trái màn hình hoặc nhấn menu 3 gạch trên Termux.
  • Chọn + NEW SESSION (hoặc dấu + trên thanh công cụ)
Bước 11: Public ra internet với Cloudflared:
Đầu tiên cài đặt bằng cách nhập lệnh
pkg install cloudflared -y
Tiếp đó sẽ nhập tiếp:
cloudflared tunnel --url http://localhost:3000
Cloudflare có một công tuyệt vời sẽ tạo link public bằng cách khởi tạo ra một đường link public dạng
https://[randomstring].trycloudflare.com
Các bác sẽ dùng link này để truy cập vào server trên.

Bước 12: Để chạy ngầm kể cả khi tắt Termux các bác làm như sau:
Dùng tmux hoặc pm2 để tunnel không tắt khi bạn thoát Termux.
Ví dụ với tmux:
pkg install tmux -y
tmux new -s tunnel
cloudflared tunnel --url http://localhost:3000
👉 Sau đó bấm Ctrl + B rồi D để detach, tunnel vẫn chạy ngầm.

+ Đối với Android ROOT ( RAM tối thiểu 4 GB): Mục đích là để cài Docker thông qua Ubuntu chạy được ASP NET CORE server

Hiện tại khi em tìm hiểu thì thấy rằng, Android không thể chạy trực tiếp Docker mà phải thông qua Ubuntu. Từ đây thì e cũng sẽ viết tiếp các hướng dẫn sau:

1. Root máy Android theo phương pháp hiện đại là Sử dụng Magisk
2. Cài đặt Ubuntu trên Termux thông qua PC
3. Cài đặt Docker thông qua Ubuntu
4. Hiện tại sau bước này e đã làm đủ mọi cách nhưng vẫn gặp lỗi Cannot connect Docker Daemon; e sẽ để dành phần này khi vọc vạch tiếp, nếu ra được sẽ ghi vào đây để bác nào có vướng thì cũng có hướng để đẩy nhanh hơn.

P/s: Một số khó khăn trong quá trình tìm hiểu:

Gặp rối ở ngrok(là một phương pháp để public miễn phí) đã giải quyết; phần này khiến em rất khổ sở khi trên mạng chỉ đủ cách nào là kiến trúc của Android bị sai, 64 bit, không phải 32 bit, thế là mò mẫm mãi xong vẫn lỗi, cuối cùng mới tìm ra ra được cách như trên, đúng là ánh sáng ở cuối đường hầm.

Gặp rối ở việc phải gõ bằng tay khi chạy Termux(Đã khắc phục bằng ssh): Khổ sở thực sự, có những lệnh dài dài khi muốn cài từ wget, copy từ pc gửi qua zalo, email, rồi paste quá mệt mỏi. Em cũng nghĩ tới sử dụng phần mềm giả lập để kết nối qua điện thoại, nhưng như thế rất mất công, vì vậy mới sử dụng ssh để chạy, công nhận ông nào nghĩ ra cái này quá hay ạ.

Gặp rối ở việc unlock MI, flash máy: sẽ chia sẻ khi viết xong phần hướng dẫn root.
Reactions: tml3nx, trop_petit, Aloha_Dance and 7 others
Mình ngoại đạo cũng đang tìm hiểu để cài docker lên android redmi note 4x, thấy hướng dẫn là flash POSTMARKETOS. Bác có nghiên cứu cái này chưa?
Mình ngoại đạo cũng đang tìm hiểu để cài docker lên android redmi note 4x, thấy hướng dẫn là flash POSTMARKETOS. Bác có nghiên cứu cái này chưa?
Theo tìm hiểu thì Kernel Android không phù hợp để chạy Docker. Nhưng cũng có những nhà phát triển họ tuỳ chỉnh thì lại chạy được. Chờ xem có bác nào có kinh nghiệm thì chia sẻ thêm.
Theo tìm hiểu thì Kernel Android không phù hợp để chạy Docker. Nhưng cũng có những nhà phát triển họ tuỳ chỉnh thì lại chạy được. Chờ xem có bác nào có kinh nghiệm thì chia sẻ thêm.
Postmarketos chính là linux native chạy trên phần cứng andoird đó bác. Có postmarket rồi thì có thể cài docker
Postmarketos chính là linux native chạy trên phần cứng andoird đó bác. Có postmarket rồi thì có thể cài docker
Nhưng kernel thì vẫn là android. Muốn chạy được dicker trên postmarket thì phải build kernel flash thêm riêng.
ở bước 4, làm sao để có user và pass để ssh dc thế bác?
Reactions: TheWalk
ở bước 4, làm sao để có user và pass để ssh dc thế bác?
Bác cứ nhập mỗi địa chỉ ip vào dòng lệnh đó xem có được không
Cài đặt Ubuntu trên Termux thông qua PC , bác dùng linux deploy ngon và hiệu năng cao hơn termux, termux nó giống như giả lập chứ ko phải chạy trực tiếp như linux deploy, muốn copy lệnh nhanh thì bật adb trong nhà phát triển rồi dùng tool trên pc điều khiển, copy paste nhanh
Reactions: giaanvu, zeroman_ltk and TheWalk
Cài đặt Ubuntu trên Termux thông qua PC , bác dùng linux deploy ngon và hiệu năng cao hơn termux, termux nó giống như giả lập chứ ko phải chạy trực tiếp như linux deploy, muốn copy lệnh nhanh thì bật adb trong nhà phát triển rồi dùng tool trên pc điều khiển, copy paste nhanh
Thực hiện như ảnh oánh kèm có đúng ko chủ tịch?
ko thì bác có thể cài rom Ubuntu touch hoặc postmarketos cũng ok á
Nhưng kernel thì vẫn là android. Muốn chạy được dicker trên postmarket thì phải build kernel flash thêm riêng.
ko thì bác có thể cài rom Ubuntu touch hoặc postmarketos cũng ok á
postmarket thì kernel đã mainline r bác, là linux luôn r, khó cái là kiếm driver thôi
postmarket thì kernel đã mainline r bác, là linux luôn r, khó cái là kiếm driver thôi
Driver nào nữa nhỉ? Có hiểu để chạy được dicker aka kvm thì cần module nào trên kernel không, và muốn thay kernel trên thiết bị arm dùng lk/preloader thì phải làm những gì không?
Không có chuyện cứ sẵn cái module compile là nó chạy & tự thay kernel cũ như x86/64 và arm edk/darwin đâu nhé.
Driver nào nữa nhỉ? Có hiểu để chạy được dicker aka kvm thì cần module nào trên kernel không, và muốn thay kernel trên thiết bị arm dùng lk/preloader thì phải làm những gì không?
Không có chuyện cứ sẵn cái module compile là nó chạy & tự thay kernel cũ như x86/64 và arm edk/darwin đâu nhé.
Chạy đc bình thường nhé
Đã cài thử trên con redmi5
sudo apk add docker là xong
aarch64 nhiều devices (apple mac,oracle server arm)nên app có sẵn cũng nhiều
Driver nào nữa nhỉ? Có hiểu để chạy được dicker aka kvm thì cần module nào trên kernel không, và muốn thay kernel trên thiết bị arm dùng lk/preloader thì phải làm những gì không?
Không có chuyện cứ sẵn cái module compile là nó chạy & tự thay kernel cũ như x86/64 và arm edk/darwin đâu nhé.
là sao ba??
người ta kêu postmarketos nó làm build os riêng, bao gồm build kernel từ linux-next (upstream), và rootfs tự build, cái khó ở đây là configure device tree cho kernel nó nhận device thôi.

còn anh xài android kernel (downstream) thì anh tự đi mà build module kvm chứ ông kia cần gì quan tâm?
là sao ba??
người ta kêu postmarketos nó làm build os riêng, bao gồm build kernel từ linux-next (upstream), và rootfs tự build, cái khó ở đây là configure device tree cho kernel nó nhận device thôi.

còn anh xài android kernel (downstream) thì anh tự đi mà build module kvm chứ ông kia cần gì quan tâm?
Vấn đề trong câu hỏi của anh rồi đấy. Toàn module proprietary mà anh đòi sẵn mã nguồn hở ra là "make" được như x86 à. Mấy con đt cổ 100% là backport chứ không có chuyện gki với kernel >5.x cho anh muốn bếch đâu thì bếch đâu nhé.
P/s: Nếu đã từng build, mod kernel thì nói chuyện tiếp, chứ chỉ đi kiếm mấy cái anykernel trên mạng về flash thì cãi nhau không có kết quả gì đâu. Nếu không biết thì anh nhìn trong about hay uname -a ghi 5.x 6.x lại cứ tưởng nó 5.x 6.x thật.
Toàn mấy ông ko cài postmarketos vô cãi nhau
Chỉ cần cài đc os là có sẵn app đã đc support rồi
Bonus cái hình cho uy tín
gki gi cha? gki là của android chứ có phải upstream linux kernel, anh biết anh đang thảo luận gì ko vậy
Vấn đề trong câu hỏi của anh rồi đấy. Toàn module proprietary mà anh đòi sẵn mã nguồn hở ra là "make" được như x86 à. Mấy con đt cổ 100% là backport chứ không có chuyện gki với kernel >5.x cho anh muốn bếch đâu thì bếch đâu nhé.
P/s: Nếu đã từng build, mod kernel thì nói chuyện tiếp, chứ chỉ đi kiếm mấy cái anykernel trên mạng về flash thì cãi nhau không có kết quả gì đâu. Nếu không biết thì anh nhìn trong about hay uname -a ghi 5.x 6.x lại cứ tưởng nó 5.x 6.x thật.
gki gi cha? gki là của android chứ có phải upstream linux kernel, anh biết anh đang thảo luận gì ko vậy
Có vẻ như anh không hiểu gì về lk hay uboot của arm rồi, bao giờ build ra được cái rom hay distro chạy được rồi sẽ hiểu, tới lúc đó nói chuyện tiếp. Chứ chỉ có đi lấy đồ người khác làm về dùng thì không hiểu được đâu.
Lưu ý là chủ thớt dùng mido, 1 thiết bị tới treble còn là cộng đồng tự làm. Thế nên đừng áp cái gì gọi là "upstream" vào đây nhé, nghe nó đần lắm :big_smile:
Toàn mấy ông ko cài postmarketos vô cãi nhau
Chỉ cần cài đc os là có sẵn app đã đc support rồi
Bonus cái hình cho uy tín
Chính xác thì những thiết bị hỗ trợ trong list này: lk2nd/lk1st - postmarketOS Wiki (https://wiki.postmarketos.org/wiki/Lk2nd/lk1st) sẽ cài được dicker bằng cách boot thông qua 1 android kernel trước, bên trong chứa lk-fork. Sau khi qua bl21 sẽ cho phép boot kernel linux, windows,... cho arm (vốn dĩ lk của qcomeme mobile chỉ cho phép boot kernel có header của android, cài xong cái này bản chất giống như cài thêm u-boot hỗ trợ chạy armbian của box, còn nguyên lý hoạt động thì giống cái bios của windows chạy sau payload).
Nếu trong list kia không hỗ trợ thì kernel để boot vẫn là kernel android, khác ở chỗ có abstraction layer cho linux để boot được rootfs nằm trong android image (super/system), và phải bật flag kvm trong kernel từ khi build thì mới chạy dicker được (giống mấy con pĩel tensor bật sẵn).