Nội dung
IV. Cài đặt điều khiển từ xa hồng ngoại sử dụng LIRC
Phần tiếp theo của Bài 6 sẽ tìm hiểu cách cài đặt Kodi (trước đây là XBMC) và giải quyết vấn đề tăng tốc bằng cách sử dụng SMPlayer như một trình phát bên ngoài trong Banana Pi. Sau đó sẽ giới thiệu về giao diện hồng ngoại IR và cấu hình thiết bị điều khiển từ xa sử dụng LIRC.
III. Cài đặt Kodi
Một trường hợp sử dụng thường được mong muốn khác cho Banana Pi là trung tâm truyền thông. Kodi (trước đây được gọi là XBMC) là tiêu chuẩn thực tế cho các trung tâm truyền thông. Do đó, mọi người muốn tải Kodi trên thiết bị của họ. Tuy nhiên, vì một số lý do, không thể tăng tốc phát video phần cứng trong trình phát mặc định của Kodi trên Banana Pi. Cũng không có ý nghĩa nếu chỉ cài đặt gói Kodi từ kho lưu trữ Raspbian vì nó được biên dịch cho Raspberry Pi (giống như VLC). Do đó, nó không hoạt động trên phần cứng Banana Pi.
Tuy nhiên, có thể biên dịch Kodi từ nguồn và điều chỉnh một trình phát bên ngoài để phát nội dung 1080p. Giống như phần trước, đây cũng là một công việc khá phức tạp và tốn nhiều thời gian.
Trong nội dung bài viết, sẽ build thiết lập Kodi với tính năng phát video được tăng tốc bằng trình phát video bên ngoài. Để làm được điều này, bạn cần phải cấu hình ít nhất một trình phát video tăng tốc phần cứng (MPlayer hoặc VLC) đang hoạt động từ phần trước.
Chuẩn bị:
– Banana Pi cài đặt hệ điều hành Linux
– Chương trình cửa sổ giao diện dòng lệnh;
– Kết nối HDMI tới TV
– Bàn phím, chuột kết nối tới Banana Pi
– Trình phát video cấu hình tăng tốc phần cứng
Cách làm việc:
Trước tiên, để cài đặt Kodi cần có đủ dung lượng trống để build trung tâm truyền thông Kodi.
1. Mở shell.
2. Cần cài đặt rất nhiều gói mới để có thể build Kodi. Để sao chép và dán các gói sau, có thể truy cập trang web Packt Publishing hoặc link Compile Kodi for Linux .
Cài đặt các gói sau:
$ sudo apt-get install automake autopoint bison \
build-Essential ccache cmake curl cvs default-jre \
gawk gdc gettext git-core gperf libasound2-dev \
libass-dev libavcodec-dev libavfilter-dev \
libavformat-dev libavutil-dev libbl Bluetooth-dev \
libbluray-dev libbluray1 libboost-dev \
libboost-thread-dev libbz2-dev libcap-dev \
libcdio-dev libcec-dev libcec1 libcurl3 \
libcurl4-gnutls-dev libcwiid-dev libcwiid1 \
libdbus-1-dev libenca-dev libflac-dev \
libfontconfig-dev libfreetype6-dev libfribidi-dev \
libglew-dev libiso9660-dev libjasper-dev \
libjpeg-dev libltdl-dev liblzo2-dev libmad0-dev \
libmicrohttpd-dev libmodplug-dev libmp3lame-dev \
libmpeg2-4-dev libmpeg3-dev libmysqlclient-dev \
libnfs-dev libogg-dev libpcre3-dev libplist-dev \
libpng-dev libpostproc-dev libpulse-dev \
libsamplerate-dev libsdl-dev libsdl-gfx1.2-dev \
libsdl-image1.2-dev libsdl-mixer1.2-dev \
libshairport-dev libsmbclient-dev libsqlite3-dev \
libssh-dev libssl-dev libswscale-dev libtiff-dev \
libtinyxml-dev libtool libudev-dev libusb-dev \
libva-dev libva-egl1 libva-tpi1 libvdpau-dev \
libvorbisenc2 libxml2-dev libxmu-dev libxrandr-dev \
libxrender-dev libxslt1-dev libxt-dev libyajl-dev \
mesa-utils nasm pmount python-dev python-imaging \
python-sqlite swig unzip yasm zip zlib1g-dev gcc-4.8 \
libtag1-dev
3. Nhập Y để tiếp tục cài đặt các phụ thuộc.
4. Khi các gói được cài đặt, bạn có thể tải xuống mã nguồn của Kodi:
$ git clone -b Helix https://github.com/xbmc/xbmc.git
5. Thay đổi thư mục nguồn đã tải xuống:
$ cd xbmc
6. Khởi động tập lệnh bootstrap:
$ ./bootstrap
7. Xuất các biến môi trường sau:
$ export CC = gcc-4.8
$ export CFLAGS = '- March = armv7-a -mfloat-abi = hard'
8. Bắt đầu kịch bản hội thoại:
$ ./configure --disable-debug --disable-vdpau --disable-vaapi
Trong khi cấu hình, các thành phần thiết yếu khác nhau cho Kodi được build từ nguồn.
Quá trình xác định sẽ mất tới một giờ để hoàn thành.
9. Build và cài đặt Kodi:
$ make
Quá trình build Kodi mất rất nhiều thời gian (vài giờ). Cuối cùng thì shell
sẽ xuất ra thông báo sau:
———————–
Kodi được build thành công
———————–
10. Cuối cùng, sẵn sàng cài đặt Kodi:
$ sudo make install
Khi Kodi được cài đặt thành công, cấu hình Kodi sử dụng trình phát video làm trình phát bên ngoài.
11. Chỉnh sửa hoặc tạo một file playercorefactory.xml trong cấu hình đường dẫn Kodi:
$ nano ~ / .kodi / userdata / playercorefactory.xml
12. Thêm cấu hình trình phát bên ngoài theo sau để cho phép Kodi mở file MKV với SMPlayer:
<playercorefactory>
<players>
<player name=”smplayer” type=”ExternalPlayer” audio=”true”
video=”true”>
<filename>/usr/bin/smplayer</filename>
<args>-minigui -close-at-end -fullscreen “{1}”</args>
<hidexbmc>false</hidexbmc>
</player>
</players>
<rules action=”prepend”>
<rule filetypes=”mkv” filename=”*.*” player=”smplayer”/>
</rules>
</playercorefactory>
Hình sau đây hiển thị cấu hình trình phát bên ngoài của Kodi trong trình soạn thảo nano:

13. Thoát và lưu nano bằng cách nhấn Ctrl + X, tiếp theo là Y và Enter.
14. Nếu cần, hãy chuyển sang máy tính để bàn và mở ứng dụng LXTerminal.
15. Trong terminal, khởi động trung tâm phương tiện Kodi:
$ kodi
Hình dưới đây hiển thị logo Kodi khi tải trung tâm phương tiện trong Banana Pi

16. Khi Kodi được khởi động lần đầu tiên, nó sẽ cập nhật một số thành phần từ Internet. Sau vài giây hoặc vài phút, sẽ sẵn sàng để sử dụng.
17. Điều hướng đến Video | Files | Add videos… | Browse và chọn một thư mục có chứa video (ví dụ: phim Sintel).
18. Đóng hộp thoại bằng cách nhấp vào OK. Thư mục có chứa file video sẽ được thêm vào thư viện video.
19. Nhập thư mục video đã thêm và phát một đoạn phim.
20. Nếu video là chương trình MKV, Kodi sẽ mở SMPlayer tăng tốc phần cứng và cho phép nó phát chương trình MKV.
Bạn đã cài đặt thành công Kodi trên Banana Pi và đã cấu hình một trình phát bên ngoài để bỏ qua vấn đề tăng tốc phần cứng.
Phương thức hoạt động:
Build trung tâm phương tiện Kodi từ mã nguồn. Kodi có một số lượng lớn các tính năng, nó yêu cầu rất nhiều gói được cài đặt sẵn trước khi có thể buildnó cùng với các thành phần.
Sau khi các gói phụ thuộc này được cài đặt, sẵn sàng sao chép mã nguồnvà khởi tạo. Tập lệnh bootstrap thiết lập tập lệnh cấu hình sắp tới.
Tập lệnh cấu hình đảm bảo rằng tất cả các phụ thuộc bắt buộc được đáp ứng và bắt đầu việc build các thành phần trợ giúp cần thiết cho Kodi (ví dụ: giải pháp đa phương tiện FFmpeg). Bản thân việc build Kodi là một công việc tốn nhiều thời gian trên Banana Pi, vì đây là một giải pháp trung tâm truyền thông toàn diện.
Tuy nhiên, không thể sử dụng trình phát nội bộ của Kodi để tăng tốc độ phát video trên Banana Pi. Để giải quyết vấn đề này Kodi cung cấp khái niệm về trình phát bên ngoài. Bằng cách sử dụng một trình phát bên ngoài được cấu hình trong file playercorefactory.xml, hướng dẫn Kodi mở file đa phương tiện cụ thể bằng các chương trình bên ngoài. Trong trường hợp này sử dụng SMPlayer đã build từ phần trước để phát video 1080p được tăng tốc phần cứng trong khi vẫn có các chức năng của Kodi.
Do đó, giao diện của SMPlayer không thực sự được tích hợp vào Kodi. Điều này có nghĩa rằng không thể sử dụng các tính năng của Kodi khi phát video qua SMPlayer. Tuy nhiên đây là giải pháp tốt nhất để có được một trung tâm truyền thông ổn định trải nghiệm trên Banana Pi.
Ngoài ra:
Nếu bạn chỉ muốn chạy Banana Pi dưới dạng trung tâm đa phương tiện, có thể tự động khởi động Kodi sau khi khởi động thiết bị.
Để khởi động Kodi khi khởi động, hãy làm như sau:
1. Mở shell.
2. Tạo thư mục ~ / .config / lxsession / LXDE nếu không tồn tại:
$ mkdir -p ~ / .config / lxsession / LXDE
3. Tạo hoặc chỉnh sửa file ~ / .config / lxsession / LXDE / autostart:
$ nano ~ / .config / lxsession / LXDE / autostart
4. Thêm dòng sau:
@ kodi-standalone

5. Thoát và lưu nano bằng cách nhấn Ctrl +X, sau đó ấn Y và Enter.
6. Khởi động lại Banana Pi để kiểm tra khả năng tự khởi động của Kodi khi khởi động:
$ sudo shutdown -r now
Kodi sẽ bắt đầu tự động khi khởi động từ bây giờ. Để tắt Kodi khi khởi động, chỉ cần xóa dòng @ kodi-standalone trong file autostart hoặc xóa dòng đó.
Xem thêm:
– Hướng dẫn trình biên dịch cho Linux trên wiki Kodi chính thức tại
http://kodi.wiki/view/HOW-TO:Compile_Kodi_for_Linux
– Bài viết trên wiki về cách cấu hình file playercorefactory.xml tại
http://kodi.wiki/view/External_players
– Bài viết trên Wikipedia về giải pháp đa phương tiện FFmpeg tại
https://en.wikipedia.org/wiki/FFmpeg
IV. Cài đặt điều khiển từ xa hồng ngoại sử dụng LIRC
Chuẩn bị:
– Banana Pi cài đặt hệ điều hành
– Một điều khiển từ xa phát tín hiệu hồng ngoại
– Kết nối HDMI tới TV
– Chuột và máy tính kết nối tới Banana Pi
Bài viết này phù hợp với hầu hết các điều khiển từ xa. Hình dưới là một chiếc điều khiển từ xa của nhà sản xuất.

Cách thức làm việc:
Bước đầu tiên, thiết lập LIRC để nhận biết các nút được nhấn trên điều khiển từ xa. Sau đó, cấu hình cho điều khiển từ khi khi bấm các nút.
Cấu hình LIRC để nhận biết điều khiển từ xa
Các bước sau giải thích cách thiết lập điều khiển từ xa với LIRC:
1. Khởi động Banana Pi thành máy tính để bàn.
2. Mở ứng dụng LXTerminal.
3. Cài đặt các gói sau:
$ sudo apt-get install lirc lirc-x xinput evtest
4. Nhập Y để cài đặt các gói phụ thuộc.
5. Sau khi các gói được cài đặt, hãy tắt thiết bị sunxi-ir mặc định:
$ xinput disable hóa sunxi-ir
6. Để tiếp tục tắt thiết bị sunxi-ir, thực hiện lệnh trên khi màn hình nền LXDE tải.
7. Tạo thư mục ~ / .config / lxsession / LXDE nếu chưa có:
$ mkdir -p ~ / .config / lxsession / LXDE
8. Tạo hoặc chỉnh sửa file ~ / .config / lxsession / LXDE / autostart:
$ nano ~ / .config / lxsession / LXDE / autostart
9. Thêm dòng sau:
@xinput disable sunxi-ir
10. Thoát và lưu nano nhấn Ctrl + X, tiếp theo là Y và Enter.
11. Gõ lệnh sau để xác định sự kiện thiết bị chính xác:
$ cat / proc / bus / input / devices | grep -A 10 sunxi-ir | grep event
12. Shell sẽ phản hồi thông tin như H: Handlers = sysrq rfkill kbd event0. Cho biết trong trường hợp trước, file thiết bị phù hợp là / dev / input / event0.
13. Kiểm tra xem điều khiển từ xa có hoạt động với Banana Pi không thông qua chạy lệnh evtest:
$ evtest / dev / input / event0
Thay thế / dev / input / event0 bằng thiết bị sự kiện chính xác nếu cần thiết.
14. Nhấn một số nút trên điều khiển từ xa.
15. Nếu lệnh evtest nhận ra các lần nhấn phím, sẽ hiển thị như sau:
Event: … (EV_KEY), code 104 (KEY_PAGEUP), value 1
Event: … ————– SYN_REPORT ————
Event: … (EV_KEY), code 104 (KEY_PAGEUP), value 0
Event: … ————– SYN_REPORT ————
Nếu không nhận được đầu ra tương tự, điều khiển từ xa không tương thích với Banana Pi.
16. Thoát chương trình evtest nhấn Ctrl + C.
17. Bây giờ xác nhận LIRC. Chỉnh sửa file /etc/lirc/hardware.conf với một trình soạn thảo như nano:
$ sudo nano /etc/lirc/hardware.conf
18. Bạn sẽ tìm thấy một số tùy chọn của cấu hình. Đặt biến DRIVER thành devinput và biến DEVICE thành file thiết bị sự kiện:
DRIVER = “devinput”
DEVICE = “/ dev / input / event0”
Hình sau đây cho thấy tùy chọn cấu hình DRIVER và DEVICE chính xác

19. Thoát và lưu nano nhấn Ctrl + X, tiếp theo là Y và Enter.
20. Sao chép một file cấu hình điều khiển từ xa chung tới / etc / lirc / lircd:
$ sudo cp /usr/share/lirc/remotes/generic/NEC.conf / etc / lirc / lircd
21. Để xác định các nút của điều khiển từ xa, xác định tên các nút được sử dụng bởi LIRC. Để có được danh sách tất cả các tên nút, chạy lệnh sau trong một shell khác:
$ irrecord --list-names
22. Bắt đầu cấu hình các nút trên điều khiển từ xa:
$ sudo irrecord -H devinput -d /dev/input/event0
/etc/lirc/lircd
23. Ứng dụng irrecord sẽ xuất ra một số từ giới thiệu. Tiếp tục nhấn Enter.
24. Thêm khóa bằng cách nhập tên của khóa (đã xác định sử dụng
irrecord –list-names). Ví dụ: KEY_0:
Please enter the name for the next button (press <ENTER> to finish
recording)
KEY_0
25. Ứng dụng irrecord sẽ phản hồi với nút Now hold down button “KEY_0”.
26. Nhấn và giữ nút thích hợp trên điều khiển từ xa (nút 0 trong ví dụ trên) cho đến khi irrecord nhận được phím bấm.
27. Lặp lại quy trình trước đó cho đến khi hoàn thành tất cả các phím cần.
28. Khi bạn hoàn tất việc cấu hình các nút điều khiển từ xa, hãy nhấn Enter
để thoát khỏi cấu hình irrecord.
29. Công cụ cấu hình sẽ tạo cấu hình LIRD thực tế (/ etc / lirc / lircd.conf) và trả lời như sau:
irrecord: closing ‘/dev/input/event0’
irrecord: initializing ‘/dev/input/event0’
irrecord: closing ‘/dev/input/event0’
Successfully written config file.
30. Kiểm tra /etc/lirc/lircd.conf bằng trình soạn thảo nano:
$ sudo nano /etc/lirc/lircd.conf
31. Cuộn xuống cho đến khi thấy tên các nút đã cấu hình. Nếu hơn một mã hex trên mỗi dòng, hãy xóa mã hex thứ hai. Hình dưới đây, thấy KEY_0 và KEY_ENTER vẫn bị định cấu hình sai. Các nút hiển thị còn lại được cấu hình chính xác.

32. Thoát và lưu nano nhấn Ctrl + X, tiếp theo là Y và Enter.
33. Khởi động lại dịch vụ LIRC:
$ sudo /etc/init.d/lirc restart
34. Kiểm tra cấu hình LIRC bằng công cụ irw:
$ irw
35. Nhấn một số nút đã cấu hình trên điều khiển từ xa. Công cụ irw sẽ xuất ra như sau:
0001008300000001 00 KEY_LEFT /etc/lirc/lircd.conf
0001008100000001 00 KEY_DOWN /etc/lirc/lircd.conf
LIRC được cấu hình chính xác để hỗ trợ điều khiển từ xa.
Điều khiển các ứng dụng bằng điều khiển từ xa
Cấu hình LIRC để nhận ra số lần nhấn nút trên điều khiển từ xa. Để hoàn tất quá trình thiết lập, cần cho hệ thống biết những điều xảy ra khi nhấn một nút.
Đây là lúc mà file ~ / .lircrc và ứng dụng irxevent phát huy tác dụng.
1. Với shell đã mở, hãy tạo hoặc chỉnh sửa file ~ / .lircrc :
$ nano ~ / .lircrc
2. Đối với mỗi nút, hãy thêm một phần cấu hình tương tự như sau:
begin
prog = irxevent
button = KEY_0
config = Key 0 CurrentWindow
end
Hình dưới đây cho thấy trình soạn thảo nano với cấu hình cho KEY_UP
và các nút KEY_DOWN:

3. Khi đã hoàn thành cấu hình của từng nút, hãy thoát và lưu nano nhấn Ctrl + X, tiếp theo là Y và Enter.
4. Chuyển sang máy tính để bàn nếu cần, mở ứng dụng đầu cuối và kiểm tra
cấu hình bằng cách chạy lệnh sau:
$ irxevent
5. Nhấn một số nút trên điều khiển từ xa và cho ra kết quả đầu vào các phím trên terminal.
6. Thoát kiểm tra irxevent nhấn Ctrl + C trên bàn phím.
7. Để chạy irxevent khi màn hình được khởi động, hãy chỉnh sửa file ~ / .config /lxsession / LXDE / autostart một lần nữa với nano:
$ nano ~ / .config / lxsession / LXDE / autostart
8. Thêm dòng sau:
@irxevent -d ~ / .lircrc
Hình sau đây cho thấy trình soạn thảo nano với hai ứng dụng được tự động khởi động lại:

9. Sau khi thêm file autostart được thực hiện, hãy thoát và lưu nano nhấn Ctrl + X, tiếp theo là Y và Enter.
Điều khiển từ xa bây giờ đã hoàn toàn ổn định. Bây giờ có thể kiểm soát toàn bộ máy tính để bàn sử dụng LIRC.
Phương thức hoạt động
Trong bài viết này, xác định toàn bộ thiết lập LIRC cho điều khiển từ xa. LIRC là một ứng dụng để giải mã tín hiệu hồng ngoại được gửi bằng điều khiển từ xa.
Banana Pi nhận dạng tín hiệu hồng ngoại bằng bàn phím ảo theo mặc định. Để khả năng hoạt động tối đa sử dụng LIRC cần tắt bàn phím ảo. Điều này được thực hiện thông qua ứng dụng xinput. Để tắt hoàn toàn bàn phím sunxi-ir ảo, thực hiện xinput disable sunxi-ir mỗi khi máy tính để bàn được khởi động bằng cách cấu hình file ~ / .config / lxsession / LXDE / autostart.
Sau đó, xác định thiết bị chính xác cho cảm biến hồng ngoại trên Banana Pi. Tất cả các thiết bị đầu vào khả dụng hiện tại được liệt kê trong file thông tin quá trình / proc / bus / input / devices. Vì chỉ cần tìm đúng thiết bị, chuyển đầu ra của các thông tin thiết bị đầu vào đến lệnh grep để lọc dòng yêu cầu.
Khi xác định đúng thiết bị (thường là / dev / input / event0), kiểm tra việc tiếp nhận các tín hiệu hồng ngoại bằng cách sử dụng ứng dụng evtest. Nếu evtest nhận ra tín hiệu hồng ngoại, điều khiển từ xa của được hỗ trợ và sẵn sàng cấu hình LIRC.
Bước đầu tiên là xác định driver và thiết bị LIRC nên sử dụng. Điều này được thực hiện trong file /etc/lirc/hardware.conf. Bước thứ hai là cung cấp cấu hình cho điều khiển từ xa. Mỗi lần nhấn nút trên điều khiển từ xa được gửi dưới dạng mã nhị phân qua tín hiệu hồng ngoại. Để cho LIRC biết nút nhấn nào sẽ được xác nhận là một phím cụ thể, cần lập bản đồ mỗi mã nút cho một khóa. Việc ánh xạ được thực hiện thông qua lệnh irrecord, lệnh này yêu cầu cấu hình gốc đã sao chép từ / usr / share / lirc / remotes / generic / NEC.
Chương trình irrecord sẽ làm phong phú thêm cấu hình chung với các khóa được ánh xạ và lưu file dưới dạng cấu hình điều khiển từ xa thực tế (/etc/lirc/lircd.conf fle). Ở trong file lircd.conf, các mã nhị phân từ điều khiển từ xa được chuyển đổi thành mã hex.
Khi dịch vụ LIRC được khởi động lại, các nút nhấn trên điều khiển từ xa được nhận dạng bởi LIRC. Kiểm tra đầu vào chính xác của các lần nhấn nút bằng cách sử dụng công cụ irw.
Sử dụng ứng dụng irxevent để điều khiển toàn bộ máy tính để bàn thông qua điều khiển từ xa. Ứng dụng irxevent gửi nút khóa vào máy chủ Xorg, giống như một bàn phím thực. Bằng cách này, có thể sử dụng điều khiển từ xa với tất cả các ứng dụng trên máy tính để bàn.
Mỗi nút định dạng bắt đầu bằng begin và kết thúc bằng end. Trong mỗi phần, xác định lệnh irxevent như chương trình sử dụng thông qua prog. Phím bấm của điều khiển từ xa được ánh xạ qua button và bằng với tên khóa trong /etc/lirc/lircd.conf. Dòng config xác định phím bấm mà irxevent sẽ gửi đến màn hình.
Ngoài ra:
Tùy thuộc vào hệ điều hành, bạn cần tải một mô-đun kernel trước khi sử dụng cảm biến hồng ngoại trên Banana Pi. Nếu không thấy thiết bị đầu vào sunxi-ir khi thực thi cat / proc / bus / input / devices, có thể tải một mô-đun kernel khác:
$ sudo modprobe sun4i_ir
Hoặc, nếu sử dụng kernel mới hơn:
$ sudo modprobe sunxi_irMultimedia
Nếu thiết bị đầu vào sau đó được nhận dạng, tiếp tục tải mô-đun kernel trong
/ etc / modules:
$ sudo -s
# echo sun4i_ir >> / etc / modules
# exit
Xem thêm:
– Trang web chính thức của ứng dụng Điều khiển Từ xa bằng Hồng ngoại với hệ điều hành Linux tại http://www.lirc.org/
Biên soạn: Thùy Phương
Để cập nhật tin tức công nghệ mới nhất và các sản phẩm của công ty AIoT JSC, vui lòng truy cập link: http://aiots.vn hoặc linhkienaiot.com