Wednesday, November 13, 2019

Hướng dẫn cài Rom CoreELEC cho Android Box chạy chip Amlogic S905, S905X2, S912

Giới thiệu về CoreELEC (CE) : 
 CoreELEC là hệ điều hành Linux tối ưu chỉ chạy mình KODI. Nếu bạn đang sở hữu Android box chip Amlogic S905, S905X2, S912 và nhu cầu chính chủ yếu là KODI, cộng đồng KODI và các add-on giờ tương đối đầy đủ cho nhu cầu giải trí thì chuyển sang CoreELEC là phù hợp nhất, vì CE là ROM tối ưu chỉ chạy mình KODI nên thời gian khởi động và hiệu suất nhanh.

Ưu điểm so với Android: 
- Thời gian boot nhanh chóng mặt, dưới 10s boot trực tiếp vào KODI (nhất là khi cài trực tiếp vào bộ nhớ trong)
- Nhanh, ổn định, cài nhiều addons không bị lag hay ảnh hưởng đến chất lượng hình ảnh
- Bạn có thể lựa chọn cài ROM chạy trên thẻ nhớ cắm hoặc bộ nhớ trong của Android box (CoreELEC sẽ chạy độc lập trên thẻ nhớ SD không ảnh hưởng đến dữ liệu trong Android Box của bạn).
- Xem 4K, H265 mượt mà
- Hỗ trợ tốt DTS-HD, Dolby TrueHD... passthrough.

 CÁC BƯỚC THỰC HIỆN:

- Chuẩn bị 1 thẻ nhớ dung lượng 4GB trở lên để sử dụng cho CoreELEC.
- Truy cập CoreELEC để tải firmware thích hợp cho box của bạn, chọn New Installation
- Chọn Device tìm đúng Android Box của bạn, sau khi chọn xong ghi nhớ phần DTB như hình.

 - Nếu phần TV Boxes không có tên box của bạn thì bạn chọn theo chip của box như hình. Sau đó nhấn Download để tải FW về.

- Tải về được file CoreELEC-Amlogic.arm-xxx.img.gz
- Sử dụng Rufus ghi file CoreELEC-Amlogic.arm-xxx.img.gz thẻ nhớ.
- Copy device tree: Sau khi Refus ghi thẻ nhớ xong, trên Windows sẽ hiển thị thẻ nhớ tên COREELEC (dung lượng khoảng 500mb, phần dung lượng còn lại sẽ bị ẩn đi), bạn truy cập vào thẻ nhớ, vào tiếp thư mục device_trees, tìm file *.dtb tương ứng với box của bạn đã xác định, copy ra ngoài thư mục chính của thẻ nhớ và đổi tên thành "dtb.img"
Tìm file *.dtb dựa theo chip mà box đang sử dụng thì căn cứ vào thông số sau:
+ S905 tương ứng file *.dtb dạng gxbb_p200, gxbb_p201
+ S905X: gxl_p212
+ S905D: gxl_p230 hoặc gxl_p231
+ S905W: gxl_p281
+ S912:  gxm_q200 hoặc gxm_q201
+ p200, p201, q200... xác định theo mã build của bản FW gốc của box (xem trong Setting của Android)
+ 1G, 2G, 3G tương ứng với Ram box đang sử dụng
(Cách đơn giản nhất ở Android, một số box sẽ hiển thị ở phần About / Build , xem mấy ký tự đầu tiên sẽ tương ứng với thông số dtb)
- Sau khi tạo xong SD card, để boot lần đầu vào CoreELEC từ thẻ nhớ SD có các cách sau:
+ Cách 1: Dùng nút reset sau box: Rút nguồn box, cắm thẻ SD vào máy, lấy tăm giữ nút reset ở lỗ AV phía sau box, cắm nguồn đợi thấy logo CoreELEC thì bỏ tăm ra, đợi 1 lát sẽ boot vào CoreELEC và tận hưởng
+ Cách 2: Tải file Boot_LE.zip về thẻ nhớ vừa tạo ở trên, căm thẻ nhớ vào Android, chạy App Update&Backup chọn file Boot_LE.zip và chọn Update. Box sẽ reboot lại và boot CoreELEC trên SD card.
+ Cách 3: Boot từ Android: tìm cài Reboot Apps; sau đó cắm thẻ vào rồi Reboot to recovery.

Trong các lần tiếp theo, khi cắm thẻ nhớ vào, Box sẽ tự khởi động vào Coreelec; muốn chuyển sang Android chỉ cần tắt box, rút thẻ nhớ rồi khởi động box là được.

Cài đặt Remote:
- Trên Android đang sử dụng remote bình thường, bạn dùng App ES file explorer tiến hành backup file /system/etc/remote.conf
- Trên Windows, bật chế độ xem file ẩn, truy cập thư mục share của Box, copy file remote.conf vào thư mục .config , sau đó khởi động lại thiết bị là dùng remote được.
- Nếu vẫn không được các bạn truy cập link CoreELEC 9.0 Remote Files hoặc LINK2, tải file remote.conf tương ứng với box của bạn rồi copy vào thư mục .config như trên rồi khởi động lại box là được.
- Bỏ chức năng di chuột bằng mũi tên trên một số remote như hình:

Mở file remote.conf: tìm và xoá từ dòng fn_key_scancode đến dòng mouse_end, sau đó lưu, copy vào Box và reboot lại là xong

Cập nhật CoreELEC:
- Khi có bản cập nhật mới màn hình sẽ tự hiện thông báo hỏi bản có muốn tải và cập nhật không, chỉ cẩn làm theo hướng dẫn và reboot là OK
- Nếu bạn không muốn hiện thông báo tự động cập nhật:
Tải file host.conf về, copy  và thay thế file cũ tại thư mục /.config trên box và khởi động lại máy là xong.
- Cập nhật thủ công bằng cách tải file CoreELEC-Amlogic.xxx.tar và copy vào thư mục /.update trên box và khởi động lại là xong.
Chúc thành công !

Monday, July 1, 2019

Xem IPTV với Router Padavan sử dụng UDPXY

I. Yêu cầu:
- Đã đăng ký IPTV và xem được qua VLC
- Router Wifi đang sử dụng đã cài đặt Padavan (Mi Router 3, NeWifi.....), IP của modem và Padavan phải khác nhau (ví dụ modem: 192.168.0.1 thì Padavan: 192.168.10.1), trong bài viết mình sử dụng Newifi D2.
* Thành quả sẽ thế này, trên KODI:

II. Các bước thực hiện:
1. Đối với Internet và IPTV trên 2 đường truyền riêng biệt:
Thường nhà mạng  như VNPT config modem cho IPTV và Internet theo 2 đường Lan riêng biệt, Port 1,2,3 cho Internet, Port 4 cho IPTV (thường thế), các bác cắm LAN thử cổng IPTV (port4) với Laptop, dùng VLC xem thử list IPTV_VNPT, xem được thì tiến hành tiếp:
Trên Padavan:
- Internet từ modem cắm cổng WAN của Padavan, IPTV từ modem cắm LAN1 của Padavan.
- Trên PC truy cập vào Padavan.
Phần Advanced Settings / WAN config như hình
Phần Advanced Settings / LAN / IPTV ,  Config như hình
Xong nhấn Apply để lưu cấu hình. Nhấn nút WebStatus ở phần IPTV Proxy Server để check udpxy chạy như hình dưới là ổn

Bổ xung: Nếu cần thêm 1 port để cắm Settopbox . 
Trên Modem (ví dụ IGate), vào phần Interface Grouping, mặc định chỉ có port 4 cho IPTV, chỉnh lại như hình dưới để thêm port 3 và 4 cho IPTV

2. Trường hợp Internet và IPTV trên cùng 1 đường truyền:
IPTV và Internet chung 1 đường LAN, test tín hiệu IPTV bằng cách nối dây Lan từ Modem vào Laptop dùng VLC xem thử list IPTV_FPT, xem được TV và vào net được, tiến hành nối dây từ Modem sang Wan của Padavan.
Trên Padavan:
- Cắm Lan từ modem vào cổng WAN của Padavan.
- Trên PC truy cập vào Padavan.
Phần Advanced Settings / WAN config như mặc định
Phần Advanced Settings / LAN / IPTV ,  Config như hình
Nhấn Apply để lưu cấu hình là xong

3. Tạo List IPTV để xem trên các thiết bị

- Mở cái list IPTV tải lúc đầu bằng Notepad, sửa lại các link theo dạng sau: ví dụ từ udp://@232.84.1.27:8136 thành http://x.x.x.x:4025/udp/232.84.1.27:8136 , (x.x.x.x là địa chỉ Router Padavan hoặc tải IPTV_UDPXY sửa địa chỉ Router ) dùng VLC mở thử 1 link, nếu có hình là thành công. dùng file PLIST M3u đã chỉnh sửa để xem IPTV trên các thiết bị.
- Để xem bằng xupnpd, truy cập (x.x.x.x:4044 , trong đó x.x.x.x là địa chỉ Router Padavan, 4044 là port xupnpd đã set ở trên) tiến hành tải plist m3u lên để sử dụng trên các thiết bị hỗ trợ DLNA
- Một số tỉnh nhà mạng config link dạng udp:// , nên nếu thử rtp:// bị giật lag thì thay udp bằng rtp.

Wednesday, May 29, 2019

Cài đặt OpenVPN Server trên OpenWRT

I. Lý do sử dụng VPN Server
- Truy cập mạng gia đình thông qua kết nối an toàn
- Hạn chế việc mở nhiều cổng trên modem dẫn đến nhiều nguy cơ về bảo mật
- An toàn khi truy cập các mạng wifi công cộng khi sử dụng thiết bị di động
- Khi đi xa (nước ngoài) vẫn có thể truy cập Internet như đang ở Việt Nam
Chọn OpenVPN server trên Openwrt là lựa chọn phù hợp nhất do dễ dàng cài đặt và bảo mật phù hợp nhất.
Giả định mạng các bạn đang dùng dạng: MODEM (192.168.0.1) →ROUTER OPENWRT (192.168.1.1) → THIẾT BỊ KẾT NỐI MẠNG (PC, Laptop, Android Box, Phone…). Sau khi cài đặt OpenVPN, dùng laptop cơ quan có thể truy cập các thiết bị ở nhà, truy cập Share folder ở PC ở nhà, thậm chí in ở nhà như mạng Home Lan.
II. Các bước cài đặt
1. Cài đặt Cài đặt OpenVPN Server trên OpenWRT
Yêu cầu:
- Router đã cài đặt Openwrt có bộ nhớ trống hơn 4MB hoặc mở rộng bộ nhớ qua cổng USB.
- Trên Modem mở port 33333 cho IP của Openwrt Router. Trên Router Openwrt đã config DDNS tự cập nhật IP.

Trước hết, sử dụng Putty, kết nối Openwrt, copy & paste lệnh:
opkg update
opkg install openvpn-openssl

# Đợi cài xong, copy&paste tiếp lệnh để config OpenVPN Server

# Configure firewall
uci set firewall.@zone[0].device="tun0"
uci -q delete firewall.vpn
uci set firewall.vpn="rule"
uci set firewall.vpn.name="Allow-OpenVPN"
uci set firewall.vpn.src="wan"
uci set firewall.vpn.dest_port="33333"
uci set firewall.vpn.proto="udp"
uci set firewall.vpn.target="ACCEPT"
uci commit firewall
/etc/init.d/network reload
/etc/init.d/firewall reload

# Configure OpenVPN Server
touch /etc/config/openvpn
uci delete openvpn.sample_server
uci delete openvpn.sample_client
uci set openvpn.myvpn="openvpn"
uci set openvpn.myvpn.enabled="1"
uci set openvpn.myvpn.dev="tun"
uci set openvpn.myvpn.port="33333"
uci set openvpn.myvpn.proto="udp"
uci set openvpn.myvpn.comp_lzo="yes"
uci set openvpn.myvpn.status="/var/log/openvpn_status.log"
uci set openvpn.myvpn.verb="1"
uci set openvpn.myvpn.mute="5"
uci set openvpn.myvpn.keepalive="10 120"
uci set openvpn.myvpn.persist_key="1"
uci set openvpn.myvpn.persist_tun="1"
uci set openvpn.myvpn.ca="/etc/openvpn/ca.crt"
uci set openvpn.myvpn.cert="/etc/openvpn/vpnserver.crt"
uci set openvpn.myvpn.key="/etc/openvpn/vpnserver.key"
uci set openvpn.myvpn.dh="/etc/openvpn/dh.pem"
uci set openvpn.myvpn.cipher="AES-256-CBC"
uci set openvpn.myvpn.mode="server"
uci set openvpn.myvpn.tls_server="1"
uci set openvpn.myvpn.server="172.16.0.0 255.255.255.0"
uci set openvpn.myvpn.topology="subnet"
uci set openvpn.myvpn.route_gateway="dhcp"
uci set openvpn.myvpn.client_to_client="1"
uci add_list openvpn.myvpn.push="comp-lzo yes"
uci add_list openvpn.myvpn.push="persist-key"
uci add_list openvpn.myvpn.push="persist-tun"
uci add_list openvpn.myvpn.push="topology subnet"
uci add_list openvpn.myvpn.push="route-gateway dhcp"
uci add_list openvpn.myvpn.push="redirect-gateway def1"
##Thay 192.168.1.1 các dòng dưới theo địa chỉ IP ROUTER OPENWRT của bạn. (để ý dòng đầu tiên là 192.168.1.0, còn 2 dòng dưới là 192.168.1.1 nhé)
uci add_list openvpn.myvpn.push="route 192.168.1.0 255.255.255.0"
uci add_list openvpn.myvpn.push="dhcp-option DOMAIN 192.168.1.1"
uci add_list openvpn.myvpn.push="dhcp-option DNS 192.168.1.1"
uci commit openvpn

#Xong phần Config OPENVPN Server

2. Tạo Certificate key (thực hiện trên Windows cho đơn giản)
Công cụ:
- EasyRSA for Windows: Tìm http://EasyRSA-windows-v.xxx.zip tải về và giải nén ra Desktop
- OpenSSL cho Windows: Tải và cài đặt, xong tìm đường dẫn đến openssl.exe để lát sử dụng (ví du: C:\Program Files\OpenSSL-Win32\bin\openssl.exe)
- Truy cập Folder EasyRSAvx.x.x vừa giải nén, đổi tên file vars.example thành vars . Sau đó mở file vars bằng Notepad lên, xóa hết thay bằng các dòng sau:

# Đường dẫn đến file openssl.exe
set_var EASYRSA_OPENSSL "C:/Program Files/OpenSSL-Win32/bin/openssl.exe"
# Thông tin chung
set KEY_COUNTRY=VN
set KEY_PROVINCE=HN
set KEY_CITY=Hanoi
set KEY_ORG=My_OpenVPN
set KEY_EMAIL=myopenvpn@home.net

Xong đóng cửa sổ notepad và lưu lại . Chạy file EasyRSA-Start.bat , copy&paste từng dòng 1:
./easyrsa init-pki
./easyrsa clean-all
./easyrsa gen-dh
./easyrsa build-ca nopass
./easyrsa build-server-full vpnserver nopass
./easyrsa build-client-full vpnclient nopass
# Nếu xuất hiện dòng Confirm removal: , cứ gõ yes.

Sau khi chạy xong, quay lại folder EasyRSA, vào thư mục pki, lưu các file mới tạo để sử dụng cho OpenVPN server của bạn. Tạo 2 thư mục openvpn và client trên Desktop , copy các file sau vào folder mới tạo, tương ứng:
# folder openvpn gồm 4 file:
EasyRSA\pki\dh.pem
EasyRSA\pki\ca.crt
EasyRSA\pki\issued\vpnserver.crt
EasyRSA\pki\private\vpnserver.key

# folder client gồm 3 file:
EasyRSA\pki\ca.crt
EasyRSA\pki\private\vpnclient.key
EasyRSA\pki\issued\vpnclient.crt
Chạy WinSCP, kết nối với Openwrt Router , copy cả folder openvpn ở trên vào thư mục /etc của openwrt. Dùng Putty.exe kết nối router, gõ lệnh:

chmod -R 600 /etc/openvpn
/etc/init.d/openvpn enable
/etc/init.d/openvpn restart
logread
Kết quả hiển thị dòng cuối "Initialization Sequence Completed" là được

Sau đó khởi động lại Router là xong việc tạo OpenVPN Server trên Openwrt.

3. CONFIG OPENVPN CLIENT TRÊN CÁC THIẾT BỊ.
Mở Notepad , paste các nội dung

dev tun
proto udp
client
auth-nocache
remote-cert-tls server
# Sửa dòng dưới thành địa chỉ DDNS của bạn
remote abc123.no-ip.org 33333

# Mở file ca.crt bằng Notepad ở folder client, copy&paste nội dung file vào phần dưới
<ca>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</ca>

# Mở file vpnclient.crt bằng Notepad, copy&paste nội dung file vào phần dưới

<cert>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</cert>

# Mở file vpnclient.key bằng Notepad, copy&paste nội dung file vào phần dưới

<key>
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
</key>

Xong lưu thành file "my_client.opvn" (tham khảo file mẫu my_client.opvn)
4. Kết nối với OpenVPN Server
Trên các thiết bị, tải ứng dụng
OpenVPN Connect cho WindowsAndroid, hoặc IOS
Sau khi cài đặt, bật ứng dụng lên, Import file my_client.opvn vừa tạo vào và kết nối thử
Trên Andorid và IOS, có thể chuyển file my_client.opvn bằng cách gửi mail và mở file đính kèm bằng ứng dụng OpenVPN Connect là đc.
Kết nối thử và trải nghiêm.
Chúc thành công