Wednesday, July 20, 2016

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



I. Giới thiệu
Các bạn đang sử dụng Internet và IPTV, mình hướng dẫn các bạn cài đặt Router chạy FW Openwrt để xem IPTV trên các thiết bị thông minh (KODI, IOS, Android, SmartTV, PC…)
Vì IPTV sử dụng giao thức UDP/RTP (multicast) để truyền dữ liệu, xem trực tiếp link UDP/RTP trên KODI, VLC… thường có tình trạng vỡ hình, lag mạng và đơ Wifi, nên config Router Openwrt để chỉ lấy tín hiệu UDP/RTP đầu vào và convert thanh tín hiệu TCP(HTTP) để sử dụng trong mạng Lan như bình thường. Nhờ đó không cần Settopbox mà vẫn xem được IPTV trên điện thoại, máy tính, AndroidBox...
Yêu cầu:
- Đã đăng ký IPTV và xem được qua VLC
- Router Wifi đang sử dụng đã cài đặt OpenWrt (hướng dẫn cài FW Openwrt trên các loại Router)
- PC cài sẵn Putty để kết nối SSH vào Router và WinSCP quản lý và chỉnh sửa file trên Router
* Thành quả sẽ thế này, trên KODI:
II. Các bước thực hiện:
(nhiều chữ do mình viết chi tiết cho tránh nhầm lẫn, nhưng làm nhanh lắm, 5 phút là xong thôi)
Phần Modem:
- Đối với nhà mạng VNPT: thường nhà mạng 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 là ok tiến hành config theo cách IPTV và Internet trên 2 đường LAN riêng biệt.

- Đối với FPT: thường 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à dùng net bình thường là ok, config Router theo cách: IPTV và Internet cùng 1 đường LAN

Phần Router Wifi:
Các model của tplink như wr740/741, wr940/941, wr841/842... chỉ có 4MB flash rom, nên chỉ dùng bản Openwrt 17.01 trở xuống, ko nên dùng bản mới hơn (trừ khi Router của bạn ko có FW bản cũ) vì có khả năng ko đủ bộ nhớ để cài igmpproxy/udpxy
1. Dành cho Internet và IPTV trên 2 đường LAN riêng:
Ta sẽ config trộn lẫn cả IPTV và Internet trên Router Openwrt để vừa xem IPTV vừa có Internet.
Video hướng dẫn cho dễ hiểu và làm theo chi tiết bài viết
- Router rút hết các cổng ra, chỉ để mình Internet cắm vào Wan của Router và sử dụng Wifi để config (để lát config Port đỡ nhầm).
- Nếu IP của Modem và Router trùng nhau thì đổi IP của Router nhé (vd: Modem: 192.168.0.1 thì Router: 192.168.10.1)
- Sử dụng Putty để login SSH vào IP của router gõ lệnh
opkg update && opkg install igmpproxy udpxy kmod-bridge
# thiết lập tự động khởi động cùng openwrt
/etc/init.d/igmpproxy enable
/etc/init.d/udpxy enable
echo "sleep 60 && /etc/init.d/udpxy start > /dev/null 2>&1&
$(cat /etc/rc.local)" > /etc/rc.local
#Xóa IPV6 (giảm vỡ hình cho udpxy)
uci delete dhcp.lan.ra
uci delete dhcp.lan.dhcpv6
uci delete network.wan6
uci set firewall.@defaults[0].disable_ipv6=1
sed -i '/net.ipv6.conf.all.forwarding=1/a net.ipv6.conf.all.disable_ipv6=1' /etc/sysctl.conf
echo "net.ipv4.conf.all.force_igmp_version=2" >> /etc/sysctl.conf
uci commit dhcp
uci commit firewall
uci commit network
tool UDPXY vừa cài chịu trách nhiệm convert luồng dữ liệu của IPTV (rtp, udp) sang (http) xem mượt mà và không ảnh hưởng đến Internet.
- Truy cập Router qua WEB UI, vào Network / Switch:
Đối với các loại Router TP-LINK 740/741/840/841/845/847N ... (chạy bản Openwrt chip ar71xx):
Mặc định Vlan1 có sẵn, Nhấn Add để thêm Vlan 2: CPU để (tagged), Port 4 (untagged), tại Vlan1: CPU để (tagged), Port4 (off) như hình, rồi Save (các bước dưới cũng chỉ Save chứ không Save&Apply nhé)
Port 4 lát nữa sử dụng để cắm dây IPTV (bước này chia thêm 1 Vlan nữa để lát nữa tín hiệu IPTV, không ảnh hưởng đến Internet ở cổng Lan 1,2,3 và Wifi)
Chú ý: Nhiều loại Router, tên số Port ghi trên Router và phần Switch của OpenWrt nhận lệch nhau, có thể Port 4 trên Router mà phần Switch như hình lại nhận Port khác, nên bạn test trước cho cẩn thận tránh cắm nhầm, bằng cách cắm thử dây IPTV vào Port 4 của Router, rồi xem lại phần Switch như ở trên xem đúng Port 4 ko nhé, nếu đúng thì Port 4 (có biểu tượng dây cắm vào), nếu xác định đúng thì rút ra để lát config xong cắm IPTV vào đó, ở hình trên mình dùng Wifi để config nên 4 cổng ko cắm gì cả.
- Qua Network / Interface / cick Add new Interface, tạo Interface tên IPTV (để ý IPTV đều viết hoa ở toàn bài tránh gõ nhầm lại lỗi nhé )để sử dụng cho Vlan02 mới tạo, rồi Save, rồi Edit Interface IPTV, thiết lập như hình.
Phần Advanced Settings, bỏ tích "Use default gateway” và "Use DNS servers advertised by peer", Save lại
 
Phần Physical Setting chọn Vlan 02 (eth0.2) vừa tạo để sử dụng cho IPTVSave lại
Phần Firewall Setting create thêm 1 zone nữa tên IPTV như hìnhSave lại

XongSave lại
Chuyển qua Edit Interface LAN, phần Physical Setting, bỏ tích ở eth0, tích vào Vlan1 (eth0.1).
Các phần General Setup của Interface LAN vẫn để mặc định (IP Lan của Openwrt và IP của Modem phải ko trùng dài IP nhé, vd: IP MODEM: 192.168.0.1 thì Lan Router: 192.168.1.1 hoặc 192.168.10.1)
riêng DHCP Server của Lan Interface, tại tab Advanced Settings, có thể chỉnh mục  là 6,8.8.8.8,8.8.4.4 để sau này các thiết bị kết nối vào Router đều đc set DNS của google (tùy chọn), xong Save
 
Click nút Unsave Changes ở góc và click Save&APPLY để lưu mọi thiết lập.
 
  
- Dùng WinSCP truy cập Openwrt (chọn kết nối SCP nhé), tìm các file sau chỉnh sửa
sửa file /etc/config/firewall
1. Sửa phần zone IPTV như sau
config zone
option name 'IPTV'
option input 'REJECT'
option forward 'REJECT'
option output 'ACCEPT'
option network 'IPTV'
option family 'ipv4'
2. thêm vào cuối file /etc/config/firewall đoạn sau
config rule
option src 'IPTV'
option proto 'igmp'
option target 'ACCEPT'
option family 'ipv4'

config rule
option src 'IPTV'
option proto 'udp'
option dest 'lan'
option dest_ip '224.0.0.0/4'
option family 'ipv4'
option target 'ACCEPT'

config rule
option src 'IPTV'
option proto 'udp'
option dest_ip '224.0.0.0/4'
option family 'ipv4'
option target 'ACCEPT'

config rule
option target 'ACCEPT'
option src 'wan'
option proto 'tcp'
option name 'iptv'
option family 'ipv4'
option dest_port '8889'
Xong Save lại
- Sửa tiếp file /etc/config/network
tìm đến dòng config interface 'lan'
thêm vào dòng  option igmp_snooping 1 như dưới
config interface lan
        option type bridge
        option igmp_snooping 1
        ...
Save lại, chuyển qua edit /etc/config/igmpproxy, xóa hết thêm đoạn sau:
config igmpproxy
        option quickleave 1

config phyint
        option network IPTV
        option zone IPTV
        option direction upstream
        list altnet 0.0.0.0/0

config phyint
        option network lan
        option zone lan
        option direction downstream
Save lại, chuyển qua edit /etc/config/udpxy, sửa như sau:

config udpxy
option disabled '0'
option respawn '1'
option verbose '0'
option status '1'
option bind 'br-lan'
option port '8889'
option source 'eth0.2'
option max_clients '5'
# option log_file '/var/log/udpxy'
# option buffer_size '4096'
# option buffer_messages '-1'
option buffer_time '3'
option mcsub_renew '120'
# option nice_increment '0'
điền Source : eth0.2, chính là tên của VLAN02 (IPTV) (mỗi router có thể khác), không chắc thì qua Network / Interface, để ý phần IPTV sẽ thấy
Xong Save lại.
 - Cắm dây IPTV vào Port 4 (đã xác định ở trên) rồi Reboot lại router thông qua WEB (System >> Reboot)
- Đợi Router khởi động xong, test lại xem Switch của Openwrt nhận đúng port 4 chưa, như hình dưới là được,
Dùng WEB truy cập http://x.x.x.x:8889/status ,(x.x.x.x là địa chỉ Router) nếu vào được là UDPXY đã chạy
- Mở cái IPTV_VNPT 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:8889/udp/232.84.1.27:8136 , (x.x.x.x là địa chỉ Router hoặc tải IPTV_VNPT_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ị.
- Sau khi config xong thì Port 1,2,3 và WIFI sẽ vừa có mạng và vừa xem được IPTV
2. Dành cho Internet và IPTV trên 1 đường LAN.
Đơn giản hơn vì IPTV và Internet chung trên cổng WAN, nối dây từ Modem sang Wan của Router Openwrt.
Các bước thực hiện:

- Reboot lại router thông qua WEB (System >> Reboot)
- Dùng WEB truy cập http://x.x.x.x:8889/status ,(x.x.x.x là địa chỉ Router) nếu vào được là UDPXY đã chạy
- Mở cái IPTV_FPT 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:8889/udp/232.84.1.27:8136 , (x.x.x.x là đị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ị.
3. Xem IPTV trên SmartTV hoặc AndroidBox.
- Sau khi config xong, các bạn có File M3u Plist dạng http:// sử dụng plist này để xem trên các thiết bị.
Đối với Android OS: 
- Tải App IPTV  và VLC cho Android để đọc m3u plist mới tạo
- Hoặc chuyên nghiệp hơn thì sử dụng KODI: Config Add-on:IPTV Simple Client để xem TV như sau:
   + Chọn file M3u đã chỉnh sửa dạng IPTV_VNPT_UDPXY
   + Epg Setting: XMLTV URL paste link lịch phát sóng (nguồn của bác LiuThuy): http://tinyurl.com/vnepg

Đối với các loại Internet TV chạy (LG WebOS  hoăc Samsung Tizen OS)
- Cài đặt ứng dựng SS-IPTV 
Bổ xung:
1. Đối với cách config trên 2 đường truyền, nếu vẫn cần 1 Port để cho Settopbox:
 - Phần Vlan2, các bạn config port 3,4 (untagged)) cho Vlan2, lúc này Port 4 để cắm IPTV từ MODEM, Port3 sẽ cắm vào Settopbox của các bạn; lúc này Vlan 1 sẽ là Port 1,2 và Wifi.
 - Hoặc các bác Login vào Modem qua phần Port mapping thiết lập lại Port 1,2 cho Internet, Port 3,4 cho IPTV để cắm Settopbox.
2. Vì IPTV đường truyền tương đối lớn nên để xem lâu dài khuyến khích các bạn dùng Lan cable thay vì Wifi sẽ ổn định hơn.
Nhược điểm của udpxy là không bảo mật, vì vậy các bạn không nên sử dụng port mặc định (4022) của udpxy (trong bài viết đã thay đổi thành port 8889, hoặc các bạn thay đổi theo ý của bạn.
3. Đối với Router Newifi D2... (chạy bản Openwrt chip mt7621) phần Switch, config 2 đường truyền thì theo hình:

Chúc thành công! 

Sunday, January 3, 2016

Unbrick và cập nhật Firmware gốc cho Android Box Amlogic MXQ, HD18Q..



1. Cập nhật Firmware gốc của box Amlogic

Có nhiều cách để cập nhật rom cho MXQ như sử dụng Amlogic USB Burning Tool, cập nhật qua thẻ nhớ, được hướng dẫn nhiều trên mạng. 
Có một vấn đề sau một thời gian mình phát hiện ra là, Box MXQ có nhiều phiên bản motherboard (đoại loại giống điện thoại có bản Hàn, bản Nhật, bản quốc tế...), nếu ko chọn đúng bản rom đúng cho board, up vẫn lên nhưng bị lỗi vặt như mất wifi, mất remote hoặc led lỗi, không sleep được, hoặc sleep được nhưng led vẫn trơ ko đổi màu, ko biết nó thức hay ngủ, mình gặp trường hợp cắm Webcam vào bị lỗi, sau chạy đúng FW của box thì nhận bình thường.
Để xác định chính xác box của bạn thuộc mẫu nào, có 2 cách:
- Box của bạn mua về chưa cập nhật ROM lần nào, có thể vào phần Setting

Nên ghi nhớ 2 thông số Model number: vd trên hình là m201

Build number KOt49H.....
Sử dụng TWRP for Amlogic devices backup lại ROM gốc để sau này còn đường quay lại. (khi backup nhớ chọn backup vào thẻ SD, không chọn bộ nhớ trong)

- Nếu trót up rom khác rồi mà bị lỗi vặt như nêu trên: tháo vỏ ra, xem cái mã in tren board như hình , xem của bạn là gì(vd hình dưới là AMLOGIC_S805_BOX_V02), lên mạng tìm đúng rom cho nó up là OK. 

Tham khảo ROM của các board mình sưu tầm.




Một số board thường gặp và link Firmware: Các bạn tìm đúng Board của mình và tải ROM tương ứng về up sẽ ko bị lỗi vặt. 

Các ROM sưu tầm ở dưới tải về, tùy theo định dạng:
- ROM dạng file IMG thì dùng AMlogic USB Burning Tool để up, 
- ROM dạng file ZIP thì copy vào SDcard up với qua Recovery hoặc TWRP

1. MXQ-S805-V1.2 (HD180_V1.2)

NAND ID: H27UCG8T2ETR BC
Stock Firmware
KOt49H.20150720 
KOT49H.20150626
KI-ota-20150905.121755.V0823 

2. S805_MXQ_V2.1 (S805_MXQ_V2.1_150516)

NAND ID: H27UCG8T2ETR BC
KOT49H.20150602
Link ROM amlogic-s805-mxq-ota-s1-20150709.zip 
MOD ROM: S805_m201C ZGENIA44 (up thông qua TWRP Recovery)

3. AMLOGIC_S805_BOX_V02

NAND ID: H27UCG8T2ETR BC
The radio WiFi: RTL8188EUS or RTL8188ETV (less)
Firmware (of the box): KOT49H.20150714test-keys.
Stock firmware MXQ_110k4_20150325
MXQ_110k4_20150325
 MXQ HD18Q Multi ROM (Custom) v2 
S805_BOX_V02_v4 by ZGENIA44.zip (up thông qua TWRP Recovery)

4. A808 Main Board_v1.1 (A808 Main Board_v1.1 2014-06-03 )

NAND ID: H27UCG8T2ETR BC
The radio WiFi: RTL8188ETV
HD18Q MBv1 Custom ROM for OTT MXQ by mediaman 

5. MXV XT-S805P_V01

NAND ID: H27UCG8T2ETR BC
The radio WiFi: RTL8723BS
Firmware (of the box): KOT49H.20150623 test-keys, in the Model number box was named as the PFD_s805
MOD ROM: Install via TRWP
MXQ S805 m201 [v2] by ZGENIA44 (up thông qua TWRP Recovery)

6.MXQ_S805_V03
NAND ID: H27UCG8T2ETR BC
Firmware (of the box): KOt49H.20150714
Link ROM 
MOD ROM: S805_m201C by ZGENIA44 (up thông qua TWRP Recovery)

7. AM_MXQ_A 20150825

NAND ID: H27UCG8T2ETR BC
The radio WiFi: RTL8189ETV
Stock Firmware: KOt49H.20150928
Firmware mod: Tải 2 link toolsROM

8. MXQ_V1.2 2015/07/02 (MXQ_V1.2)

The radio WiFi: RTL8188ETV
NAND ID: H27UCG8T2ETR BC
Firmware (of the box): KOt49H.20150905

9. TY_T2_V1.1

NAND ID: H27UCG8T2ETR BC
The radio WiFi: RTL8189ETV
Firmware (of the box): KOT49H.20150626

10. S805_MXQ_V02_20141028

NAND ID: TOSHIBA ZP9302 TC58TEG6DDKTA00
The radio WiFi: RTL8188ETV

11. KCA-008-1.2_v2 by ZGENIA44
Stock Firmware:  KOT49H.20151026 test-keys
Firmware mod:  KCA-008-1.2_v2 by ZGENIA44.zip (up thông qua TWRP Recovery)

12. MXQ V3_1
Stock Firmware:  MXQ S805 V3_1 20151230
13. S805_MXQ_V03
- IMG rom (for USB burning tool): https://cloud.mail.ru/public/7oSn/WunL7sMWW (fix lỗi 2%)

14. ROM Libreelec for all
Nếu nhu cầu chủ yếu của bạn là giải trí xem phim bằng KODI, thì khuyên nên sử dụng ROM Libreelec, đảm bảo ưng ý, cộng đồng hỗ trợ nhiều nên cài đc cho hầu hết các loại box Amlogic S805, 905.

Một số lỗi khi up rom
- Vì up rom khác nên bootloader và recovery bị thay đổi theo ROM bạn up, khi up lại ROM gốc ban đầu bằng SDCARD hay bị lỗi This package is for "m201" devices; this is a "hd18q" hoặc tương tự vậy thì kiếm ROM dạng file IMG up thông qua AMlogic USB Burning Tool.
- Nếu ko kiếm được ROM IMG phù hợp chỉ tìm được ROM dạng file ZIP thì làm như sau:
+ Một bản ROM ZIP bạn đang up bình thường box của bạn, giải nén ra có 1 folder trong đó tên META-INF
+ Dùng Winrar mở ROM ZIP bạn dùng để up, xóa folder META-INF đi, thay bằng folder META-INF ở trên.
Sử dụng TWRP để up ROM ZIP mới edit là được

2. Unbrick thiết bị Androidbox AMLOGIC

Tình trạng của box em, ko lên gì cả, chỉ đèn đỏ, cách làm đơn giản như sau:
Tải file IMG bạn đã sử dụng để up qua AMlogic USB Burning Tool.
Download Tools 
1. Make SD card
Dùng Tool BootcardMaker.exe, mở Tool lên, nhấn menu ở góc, chọn cái thứ 2, chọn Tiếng Anh, xong Tắt Tool bật lại là có tiếng anh


Chọn thẻ SD (Choose disk), xong nhấn Open chọn file rom IMG của Box bạn, xong nhấn Make để tạo thẻ nhớ boot.
2. Unbrick
- rút nguồi, cắm sdcard
- giữ nút reset, cắm nguồn, đợi màn hình lên,  thả nút reset ra sau khoảng 15s tính từ lúc cắm nguồn, đợi chạy xong là ok.


Tham khảo thêm một vài Forum chia sẻ ROM MXQ

4pda.ru/forum/
mbox.co.za

Trong quá trình up rom, nếu có vấn đề gì, tham gia ý kiến tại Kodiviet.com - Unbrick android box MXQ

Friday, December 4, 2015

Hướng dẫn mở SSH và cài Transmission trên NAS Buffalo

Firmware của NAS Buffalo mặc định không cho can thiệp cài thêm phần mềm mà chúng ta phải dùng App cài đặt mặc định.... Bài viết hướng dẫn các bạn can thiệp hệ thống của NAS để mở Telnet hoặc SSH cho NAS và cài các phần mềm khác như Transmission... trên NAS Buffalo LinkStation/TeraStation CPU ARM.

1. Enable SSH on LinkStation Stock Firmware

Tải Download ACP Commander GUI for Windows (.EXE file) or Mac (.DMG file).
Nếu máy chưa cài Java thì cài thêm Java để chạy chương trình
Chạy chương trinh:
Điền LinkStation IP address,Admin password rồi nhấn Enable SSH.
Sau khi có bảng thông báo SSH enabled OK!, click Set root PW, gõ password cho root user và nhấn OK, vậy là xong việc Enable SSH, khởi động lại NAS, là ta có thể dùng Putty để truy cập NAS qua SSH.

2. Install Transmission.

Transmission ưu điểm nhẹ và ổn định, có thể thay thể App Torrent mặc định. trước khi chuyển qua, nên tăt App Torrent mặc định đi.
Tải Script Auto Install Tranmission về, giải nén được 3 file, copy vào thư mục share của NAS.
Dùng Pytty kết nối SSH vào NAS với user root/pass vừa set ở bước 1. gõ lệnh
Code:
chmod +x /mnt/disk1/share/1_ipkg_auto.sh
chmod +x /mnt/disk1/share/2_trans_auto.sh
/mnt/disk1/share/1_ipkg_auto.sh
#Sau khi bạn gõ lệnh trên, NAS sẽ tự tải và cài đặt IPKG vào nó.  Khi cửa sổ SSH trở lại dấu nhắc lệnh, bạn gõ tiếp lệnh sau:
/mnt/disk1/share/2_trans_auto.sh

Khi quá trình cài đặt thành công sẽ xuất hiện thông báo như sau:
Code:
Installation completed.
Please check the Transmission Web GUI by typing address below to your browser: _______________________________________________________
Address : http://192.168.16.50:9091
Username: admin
Password: admin
_______________________________________________________
  If you can access Transmission Web Interface that mean the installation completed successfully. Restart your NAS before continue is recommended. Type 'reboot' (without quotes) from this console command to restart the NAS.

Transmission đã cài đặt xong và sẵn sàng sử dụng. Bạn mở trình duyệt lên, vào địa chỉ IP của NAS cổng 1604. NAS sẽ hỏi tên truy cập và mật khẩu, bạn điền admin | admin vào, nếu thấy giao diện Transmission như dưới đây là quá trình cài đặt thành công. http://192.168.16.50:9091 (tùy theo IP của bạn).
Chú ý: Đối với dòng NAS TeraStation nhiều HDD (TS2, TS3, TS-VHL...), NAS của bạn đang ở chế độ chạy RAID các bạn tải tập tin dành cho dòng TS, thì trước khi copy các file 1_ipkg_auto.sh và 2_trans_auto.sh vào NAS, các bạn edit lại một chút bằng Notepad, thay chữ disk1 trong các lệnh trên bằng chữ array1 ở các File tải về, xong lưu lại và tiến hành bình thường, thay lệnh chạy:
Code:
chmod +x /mnt/array1/share/1_ipkg_auto.sh
chmod +x /mnt/array1/share/2_trans_auto.sh
/mnt/disk1/array1/1_ipkg_auto.sh
#Sau khi bạn gõ lệnh trên, NAS sẽ tự tải và cài đặt IPKG vào nó.  Khi cửa sổ SSH trở lại dấu nhắc lệnh, bạn gõ tiếp lệnh sau:
/mnt/disk1/array1/2_trans_auto.sh

Để quản lý Transmission, các bạn tải thêm Transmission Remote GUI, để quản lý.


Tuesday, December 1, 2015

Chuyên nghiệp hóa việc xem phim tại nhà với KODI, CouchPotato và MYSQL

Giới thiệu

Chia sẻ với các bạn toàn bộ cài đặt mình đang sử dụng tại mạng gia đình phục vụ việc giải trí phim và nhạc, dùng KODI là trung tâm của hệ thống. Bài viết là tổng hợp các bài viết của mình liên quan đến KODI,  bài viết này chỉ tổng hợp các bài với nhau hệ thống tự động hóa ở nhà bạn trên các thiết bị sẵn có đang dùng để tải phim và quản lý phim.

Chuỗi tự động sẽ thế này: CourchPotatoServer (CP) tìm link phim --> gửi qua Transmission tải, Trans tải xong báo cho CP biết -->CP tải Info phim --> CP gửi tín hiệu để KODI quét database phim mới vào MYSQL database share cho các thiết bị --> xong sẽ sent notification vào Smartphone của bạn --> mọi việc tự động hết, quá tiện phải ko?
Việc đơn giản là bây giờ các bạn cài thêm 2 tiện ích CourchPotatoServer và MysqlServer trên thiết bị bạn đang dùng tải torrent phim.

1. Tự động tìm và chuẩn bị phim cho các bác hưởng thụ:

Bài viết CourchPotatoServer (CP) + transmission (Trans): Hướng dẫn ứng dụng CP tự động tìm link torrent phim HD (theo phim mới ra hoặc điền tên phim vào) cho bác ,CP sẽ tìm và gửi link qua Transmission, tải phim xong nó get info của phim luôn, để sau này XBMC quét database. 
CourchPotato là một ứng dụng quản lý phim rất thông minh và tương đối nhẹ, quản lý phim, một ví dụ, ở dưới là folder phim tải về bằng Trans và sau khi qua CP xử lý, nó sẽ tải hết các thành phần liên quan đến thông tin phim về folder, KODI chỉ cần quét là lên và đồng bộ vào database.

2. Quản lý database với MYSQL và share userdata

Bài viết Sử dụng MySQL để đồng bộ Library Phim và Nhạc của KODI (XBMC)
Sau khi CP tải và get info của phim về, sent lệnh cho KODI đồng bộ Mysql

Chúng ta sử dụng MySQL để đồng bộ dữ liệu phim và nhạc (database) để chia sẻ giữa các thiết bị. Mysql cho phép lưu trữ tất cả dữ liệu phim và nhạc của bạn trên MYSQL Server, các bạn có thể truy cập và đồng bộ giữa các thiết bị với nhau. Ví dụ đang xem dở phim ở phòng khách, lên phòng ngủ bật tiếp chỗ đang xem dở. 
Nguyên lý thế này: chúng ta dùng Mysql server chạy trên 1 thiết bị online 24/24 của bạn, Mysql server sẽ lưu toàn bộ dữ liệu về KODI database, các thiết bị chạy KODI mỗi khi bật lên sẽ kết nối vào đó và đồng bộ dữ liệu thông qua MYSQL Client có sẵn của KODI.

3. Xem IPTV (MyTV, OneTV) trên KODI

Xem MyTV, OneTV với Router Openwrt sử dụng UDPXY hoặc
Xem MyTV, OneTV với Router Openwrt sử dụng TVHEADEND
Nếu mạng của bạn hỗ trợ xem IPTV, bài viết hướng dẫn cấu hình router hoặc Openelec để xem IPTV và xem trực tiếp trên KODI, ko cần đầu thu STB của nhà mạng. hỗ trợ đầy đủ icon kênh và lịch phát sóng EPG.

Sunday, November 29, 2015

Cài đặt MySQL trên RPI chạy OSMC, Openwrt hoặc NasBuffalo

Giới thiệu:
Ở bài viết Sử dụng MySQL để đồng bộ Library Phim và Nhạc của KODI, mình đã hướng dẫn các bạn dùng MYSQL để đồng bộ KODI database, bài viết này hướng dẫn chi tiết cách cài đặt Mysql trên các nền OS thường dùng tại mạng gia đình.
Nếu Router của bạn cài OpenWrt, và có cổng USB thì tốt nhất nên cài Mysql lên Router để share database, nên mỗi khi bạn bật KODI lên, kết nối vào mạng là database sẽ đồng bộ lên luôn, cả userdata cũng vậy.
Nếu Router không đáp ứng được thì chúng ta chuyển sang phương án tiếp theo là cài trên RPI hoặc Nas (nếu có).

Cài MySql Server cho Raspberry Pi chạy OSMC:
    
Trên OS Openelec là OS build sẵn nên không cài được Mysql Server, Các bác có thể cài OSMC tương tự Openelec nhưng tùy biến cao hơn. Nếu NAS chạy Debian cũng sử dụng cách này (NasBufflo của mình đang dùng cái này, nhẹ mà nhanh hơn cái Firmware của hãng).
1. Dùng Pytty Login vào thiết bị:
apt-get update
apt-get install mysql-server
# khai báo pass khi có thông báo hỏi
2. Config Mysql
Sau khi cài xong, dùng WinSCP login vào thiết bị, edit file /etc/mysql/my.cnf
Thay đổi dòng
Từ: bind-address = 127.0.0.1
thành: bind-address = 0.0.0.0
Sau đó khởi động lại MySQL server và tiến hành config mysql server, trên pytty gõ lệnh:
Code:
/etc/init.d/mysql restart  
#hoặc 
/etc/init.d/mysqld restart
mysql -u root -p
# các lệnh sau của mysql, chỉ copy phần sau của "mysql>" nhé
mysql> CREATE USER 'kodi' IDENTIFIED BY 'kodi';
mysql> GRANT ALL ON *.* TO 'kodi';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'kodi' IDENTIFIED BY 'kodi';
mysql> flush privileges;
mysql> exit
#exit ra ngoài


Xong, các bạn config tiếp advancedsettings.xml trên KODI, phần IP là IP của thiết bị chạy MYSQL Server là xong thôi.

Cài đặt MYSQL trên NAS:
Mình hướng dẫn cho Nas Bufflo, các loại khác cũng tương tự thôi. Trước hết các bác cần mở Telnet/SSH các dòng NAS chạy firmware Linux Buffalo.
Firmware mặc định của NAS đã cài sẵn MYSQL rồi, các bạn chỉ việc bật nó lên thôi.
1. Enable MySQL:
Truy cập NAS qua WEB: Vào phần [Network] - [MySQL server].
- Click [Modify Settings].
- Enable MySQL server.
- Chọn folder cho MySQL database và configuration.
- Click [Save].
2. Config MYSQL Server cho KODI
Sau khi khởi động lại NAS, dùng Pytty Login vào NAS: Chạy lệnh
Code:
mysql -u admin -p
#để login vào mysql
# các lệnh sau của mysql, chỉ copy phần sau của "mysql>" nhé
mysql> CREATE USER 'kodi' IDENTIFIED BY 'kodi';
mysql> GRANT ALL ON *.* TO 'kodi';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'kodi' IDENTIFIED BY 'kodi';
mysql> flush privileges;
mysql> exit
#exit ra ngoài

Xong, các bạn config tiếp advancedsettings.xml trên KODI, phần IP là IP của NAS là xong thôi.
Cài đặt MYSQL trên OpenWRT:
- Cài đặt Openwrt nhận và mở rộng bộ nhớ lên USB (cần usb 2gb trở lên là ok)
- Dùng Pytty kết nối SSH vào Router, gõ lệnh
Code:
opkg update
#cập nhật các gói ứng dụng
opkg install mysql-server samba36-server luci-app-samba
#đợi cho cài xong
/etc/init.d/mysqld stop
killall mysqld

Dùng WinSCP login vào Router, tìm đến file /etc/my.cnf
mở file lên tìn đến dòng
Code:
bind-address        = 127.0.0.1
sửa lại thành
bind-address        = 0.0.0.0
Xong Save lại, chuyển sang Pytty, gõ lệnh:
Code:
mysql_install_db --force
# để config lần đầu chạy mysql
killall mysqld
/etc/init.d/mysqld restart
mysql -u root -p
#xong nhấn 2 lần enter, bỏ qua ko điền pass, sẽ vào mysql dạng:
# các lệnh sau của mysql, chỉ copy phần sau của "mysql>" nhé
mysql> CREATE USER 'kodi' IDENTIFIED BY 'kodi';
mysql> GRANT ALL ON *.* TO 'kodi';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'kodi' IDENTIFIED BY 'kodi';
mysql> flush privileges;
mysql> exit
#exit ra ngoài
/etc/init.d/mysqld enable
/etc/init.d/mysqld restart

Config Samba: Chúng ta sẽ share Folder /mnt (folder mount USB), thành tên USB, sau khi share xong, từ Win các bạn có thể truy cập như ổ đĩa share bình thường.
Ở Pytty, gõ lệnh
Code:
smbpasswd -a root
#để đặt pass share samba
/etc/init.d/samba enable
/etc/init.d/fstab enable

Truy cập Router qua WEB, vào phần Services/Network Shares

Nhấn Add , điền thông tin share như hình, xong save lại, chuyển sang tab Edit Tamplate
Tại đây sửa cho mình thế này: sửa dòng invalid users = root thành valid users = root, xong save lại, và khởi động lại router.
Sau khi khởi động lại, từ Windows explorer của Win, thử gõ địa chỉ
\\192.168.1.1\USB\
điền user root và pass root bạn đặt lúc trước, nếu vào được là ok, tạo luôn folder userdata để làm tiếp theo hướng dẫn Sử dụng MySQL để đồng bộ Library Phim và Nhạc của KODI (XBMC) 


Friday, November 27, 2015

Sử dụng MySQL để đồng bộ Library Phim và Nhạc của KODI (XBMC)

Giới thiệu:
Các bạn có nhiều thiết bị chạy KODI(XBMC) trong mạng nhà bạn, chúng ta sử dụng MySQL để đồng bộ dữ liệu phim và nhạc (database) để chia sẻ giữa các thiết bị. Mysql cho phép lưu trữ tất cả dữ liệu phim và nhạc của bạn trên MYSQL Server, các bạn có thể truy cập và đồng bộ giữa các thiết bị với nhau. Ví dụ đang xem dở phim ở phòng khách, lên phòng ngủ bật tiếp chỗ đang xem dở. 
Nguyên lý thế này: chúng ta dùng Mysql server chạy trên 1 thiết bị online 24/24 của bạn, Mysql server sẽ lưu toàn bộ dữ liệu về KODI database, các thiết bị chạy KODI mỗi khi bật lên sẽ kết nối vào đó và đồng bộ dữ liệu thông qua MYSQL Client có sẵn của KODI.
Các tính năng cơ bản:
- Các phim đã xem và chưa xem, thời gian xem được đồng bộ cho tất cả các thiết bị
- Tạm dừng xem ở thiết bị này, xem tiếp ở thiết bị khác như nói ở trên
- 1 cơ sở dữ liệu chung cho tất cả thiết bị.
- Các bạn có cài lại KODI thì thư viện MEDIA của bạn cũng sẽ không bị mất.
- Mysql tương đối nhẹ, hỗ trợ nhiều OS.
Có nhiều cách để đồng bộ database KODI giữa các thiết bị cùng 1 mạng gia đình: Share qua UPNP, PLEX server, mình đã thử qua và thấy MYSQL vẫn là chuyên nghiệp nhất.
Cài đặt MYSQL:
MYSQL server có thể cài ở bất kỳ thiết bị nào hỗ trợ:
- Có thể cài trên ROUTER của bạn chạy Openwrt (nếu Router có hỗ trợ USB để mở rộng bộ nhớ lưu)
- Có thể cài trên Các loại NAS, nếu bạn dùng NAS để tải và lưu phim sẽ rất tiện. NAS nên để chế độ StaticIP để sử dụng MYSQL Server và dễ quản lý hơn.
- Nếu bạn dùng thiết bị chạy Openelec để chạy KODI, có thể cài luôn MYSQL Server trên thiết bị đó luôn.
Cách cài đặt MYSQL Server tham khảo: (Hướng dẫn cụ thể cài Mysql và Samba Server)
Tham khảo thêm: MySQL on all OS.

Config KODI để kết nối với MYSQL Server:
- Nếu phim các bạn lưu trên NAS, xem phim qua Samba server của NAS
- Dùng Notepad tạo file advancedsettings.xml với nội dung:
Code:
<advancedsettings>
  <videodatabase>
    <type>mysql</type>
    <host>192.168.1.1</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>kodi</pass>
  </videodatabase> 
  <musicdatabase>
    <type>mysql</type>
    <host>192.168.1.1</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>kodi</pass>
  </musicdatabase>
  <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
  </videolibrary>
</advancedsettings>

Trong đó: 192.168.1.1 là địa chỉ IP của thiết bị chạy MYSQL Server
Lưu lại, copy file advancedsettings.xml vừa tào  vào thư mục userdata, trên tất cả các thiết bị chạy KODI. Khởi động lại thiết bị chạy KODI.
Lưu ý là tất cả các thiết bị chạy KODI phải cùng version KODI thì mới đồng bộ được nhé. Không quan trọng bạn chạy KODI trên WIN, MAC, ANDORID hay OPENELEC, miễn là cùng phiên bản KODI là đồng bộ được.
Tiến hành đồng bộ thử KODI database vào Mysql Server:
Trên 1 thiết bị vừa khời động lại, các bác tiến hành quét phim vào thư viện như bình thường, KODI sẽ quét cả thư viện phim của bạn. Về quản lý phim các bạn tham khảo bài Hướng dẫn tự động hóa việc tải phim qua Torrent bằng CouchPotato và transmission. Mình dùng để tải và quản lý phim, nên khi KODI quét sẽ có đầy đủ tất cả thông tin phim.
Khi KODI quét và IMPORT phim lên server thì, đồng thời ở các thiết bị khác sẽ đểu được đồng bộ theo.
Xong phần Share database thông qua MYSQL Server

Share thư mục userdata:
thư mục userdata của kodi lưu trữ những thông tin sau có thể share giữa các thiết bị:
- sources.xml - các đường dẫn đến server hệ thống của bạn (NAS) của bạn
- mediasources.xml - các đường dẫn đến nguồn phim, nhạc của bạn
- folder playlists
- favourites.xml

Share thư mục này dùng chung thì bạn chỉ cần cài đặt ở 1 thiết bị các thiết bị khác cũng sẽ được đồng bộ, ví dụ các bạn dùng tính năng "add to favourite" ở 1 thiết bị, thiết bị khác cũng sẽ luu đường dẫn đó, quá tiện phải ko
Thường thì thư mục share userdata nên đặt chung với thiết bị cài MYSQL Server và có thiết bị này cũng cài Samba server để chia sẻ thư mục dùng chung. 
Các bạn tạo 1 thư mục tên userdata, sau đó truy cập vào thư mục userdata của 1 thiết bị KODI của bạn, copy thành phần ở trên (file sources.xml, mediasources.xml,folder playlists và avourites.xml) đã có vào folder userdata vừa tạo. 
Edit file advancedsettings.xml thêm các dòng sau: (dưới đây tham khảo nhé, các bạn edit theo của bạn)
Code:
<advancedsettings>
<pathsubstitution>
 <substitute>
    <from>special://profile/mediasources.xml</from>
    <to>smb://root:root@192.168.1.1/USB/userdata/mediasources.xml</to>
  </substitute>
<substitute>
    <from>special://profile/sources.xml</from>
    <to>smb://root:root@192.168.1.1/USB/userdata/sources.xml</to>
  </substitute>
 <substitute>
    <from>special://profile/playlists/</from>
    <to>smb://root:root@192.168.1.1/USB/userdata/playlists/</to>
  </substitute>
<substitute>
    <from>special://profile/favourites.xml</from>
    <to>smb://root:root@192.168.1.1/USB/userdata/favourites.xml</to>
  </substitute>
</pathsubstitution>
<videodatabase>
    <type>mysql</type>
    <host>192.168.1.1</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>kodi</pass>
  </videodatabase> 
  <musicdatabase>
    <type>mysql</type>
    <host>192.168.1.1</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>kodi</pass>
  </musicdatabase>
  <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
  </videolibrary>
</advancedsettings>

Giải thích đường dẫn : smb://root:root@192.168.1.1/USB/userdata/
smb --> là share SAMBA
root:root: là user và pass
192.168.1.1 : IP của samba server

Mình cài MYSQL và samba server trên ROUTER chạy Openwrt nên IP là 192.168.1.1, MYSQL và samba server tương đối nhẹ mà.
Một điểm mình rất thích ở cách share MYSQL và USERDATA folder là, khi cài lại KODI, các bạn chỉ cần copy file advancedsettings.xml (có thông tin MYSQL server và userdata đã tạo ở trên)đến thiết bị mới cài, thoát ra vào lại là mọi thứ lại trở lại như cũ, ko cần scan lại phim, tất cả các plist giữ nguyên, các nguồn phim đươc add sẵn. Thật tiện phải không!