Lirc dla Creative LiveDrive

Wstęp

Używam mojego komputera jako głównego centrum multimedialnego w moim mieszkaniu. Większość muzyki, której słucham czy filmów, które oglądam jest odtwarzana przez moje Linuxowe aplikacje multimedialne. Dzięki pakietowi lirc mogę kontrolować mój komputer używając pilota. To naprawdę wspaniała rzecz szczególnie dla tak leniwej osoby jak ja, że mogę zrobić wszystko co trzeba na moim komputerze nie ruszając się z kanapy. Lirc zapewnia wsparcie dla szerokiej gamy pilotów na podczerwień. Ja posiadam Creative LiveDrive wraz pilotem RM-1500. Oba urządzenia były częścią zestawu mojej karty dźwiękowej Creative SoundBlaster Audigy 4 Pro. Środowisko graficzne KDE posiada bezpośrednie wsparcie dla urządzeń Lirc i dzięki temu mogę zdalnie kontrolować dowolną aplikację korzystającą z Linuxowego systemu wymiany informacji Dbus. To co podoba mi się najbardziej w zdalnym zarządzaniu w Linuxie to fakt, że nie jestem związany czy ograniczony domyślną konfiguracją, której musiałbym się nauczyć. Mogę skonfigurować moje urządzenia i wybrać aplikację, którymi chcę zarządzać samodzielnie. Tylko moja wyobraźnia mnie ogranicza. Jest to podstawowa różnica między Linuxem a innymi systemami operacyjnymi. To ty sprawiasz, że Linux działa jak sobie życzysz a nie uczysz się na pamięć, jak powinien działać twój system.

Postaram się tutaj podzielić moją konfiguracją usług Lirc pochodzącą z mojego głównego komputera. Lirc nie jest jedynym Linuxowym projektem pozwalającym na zdalne kontrolowanie komputera. Na końcu znajdziesz, krótką informację na temat innych programów, które wykorzystuję do zdalnego zarządzania moim komputerem. Większość dostępnych tutaj informacji powinno dać się wykorzystać w dowolnej dystrybucji Linuxa, jednakże niektóre z nich są typowe dla dystrybucji Gentoo Linux. Jeśli posiadasz innego pilota niż ja, możesz mimo to skorzystać z niektórych podanych tutaj informacji. Rozpocznę od konfiguracji kernela i usług systemowych.

Konfiguracja kernela i usług systemowych

Mój pilot jest zintegrowany z moją kartą dźwiękową dlatego muszę go kontrolować używając modułu kernela dla mojej karty dźwiękowej. Aby skonfigurować kernel musiałem wejść do jego katalogu i uruchomić menuconfig wydając następujące komendy w terminalu:

cd /usr/src/linux
make menuconfig

Poniżej znajdziesz listę wymaganych modułów kernela dla mojego urządzenia lirc.

Konfiguracja Kernela Linuxa: Konfiguracja modułów kernela
Loadable module support --->
   [*] Module unloading
Device Drivers --->
       Input device support --->
          [*] Event interface
   <M> Sound card support --->
          <M> Advanced Linux Sound Architecture --->
             [*] PCI sound devices --->
                 <M> Emu10k1 (SB Live!, Audigy, E-mu APS)  

Jak widzisz wsparcie dla karty dźwiękowej zostanie zbudowane jako moduł. Moduł będzie załadowany przez mechanizm dynamicznej alokacji sprzętu udev i zainicjowany podczas startu systemu dźwiękowego alsa. Po zaznaczeniu wymaganych modułów kernela, można skompilować, zainstalować i wykorzystać nowy kernel. Zwykle dokonuję tego wydając następujące komendy w terminalu:

cd /usr/src/linux
make && make modules_install install

To jednakże nie koniec. Aby zainicjować obsługę pilota dla modułu kernela Emu10k1 musiałem przekazać dodatkowy parametr do modułu kernela. Dokonałem tego definiując konfigurację modułu dźwiękowego w pliku /etc/modprobe.d/alsa.conf. Poniżej możesz zobaczyć część mojego pliku alsa.conf dotyczącą konfiguracji karty dźwiękowej Audigy 4.

alias snd-card-0 snd-emu10k1
options snd-emu10k1 index=0 id=audigy4pro extin=0x3fcf extout=0x1fcf enable_ir=1
alias sound-slot-0 snd-emu10k1

Najważniejszą rzeczą jest linia options. Opcja modułu kernela enable_ir = 1 włącza obsługę pilota na podczerwień w mojej karcie dźwiękowej.

Teraz można zrestartować komputer, używając nowego kernela. Po uruchomieniu nowy moduł kernela powinien zostać załadowany a pilot na podczerwień powinien działać. Niestety przekonałem się, że powyższa konfiguracja nie jest wystarczająca aby sprawić, że mój LiveDrive z SoundBlastera Audigy 4 Pro będzie odbierał poprawnie sygnały pochodzące z jego pilota. Dioda kontrolna LiveDrive'a nie zapalała się kiedy przyciskałem przyciski na pilocie. Po przeszukaniu Internetu znalazłem informację, że urządzenie LiveDrive musi zostać zainicjowane specjalną komendą. Najlepszym sposobem aby to zrobić jest napisanie prostej usługi systemowej, która będzie zależna od usługi systemu dźwiękowego alsa. Nazwałem tę usługę audigy. Poniżej znajdziesz skrypt usługi systemowej, która sprawia, że mój pilot zaczyna funkcjonować prawidłowo.

Wyświetl pełny skrypt usługi systemowej /etc/init.d/audigy
  1. #!/sbin/runscript
  2.  
  3. depend() {
  4. need alsasound
  5. }
  6.  
  7. start() {
  8. ebegin "Initialising external I/O Hub"
  9. echo -e '\0360\0000\0040\0041\0141\0000\0000\0000\0177\0000\0367' > /dev/snd/midiC0D1
  10. eend $?
  11. }
  12.  
  13.  
  14. stop() {
  15. ebegin "Nothing to Stop"
  16. eend $?
  17.  

Jak możesz zauważyć w tym skrypcie moje urządzenie LiveDrive jest reprezentowane przez węzeł urządzenia /dev/snd/midiC0D1. Sam skrypt jest nieskompilowany, po prostu przekazuje ciąg inicjacyjny używając znaków ASCI zapisanych w kodzie ósemkowym. Teraz mogę dodać ten skrypt do domyślnego poziomu uruchomienia tak aby wykonywał się on podczas startu systemu. Aby tego dokonać muszę wykonać następującą komendę w terminalu:

rc-update add audigy default

Aby uruchomić ten skrypt bez potrzeby restartowania sytemu muszę wykonać następującą komendę w terminalu:

/etc/init.d/audigy start

Po uruchomieniu tej usługi dioda kontrolna urządzenia LiveDrive zaczęła się zapalać ilekroć wciksałem klawisze mojego pilota. Teraz możemy przejść do konfiguracji Lirca.

Konfiguracja Lirca

Przed zainstalowaniem pakietu Lirc w systemie Gentoo należy podać nazwę urządzenia lirc w pliku konfiguracyjnym /etc/make.conf. To sprawi, że lirc zainstaluje tylko te komponenty, których potrzebujesz. Konfiguracja lirca w moim pliku /etc/make.conf wygląda w ten sposób:

LIRC_DEVICES="livedrive_midi"

Aby zainstalować Lirc w systemie Gentoo musisz wydać następującą komendę w terminalu:

emerge -av sys-apps/lirc

Instalacja Lirca spwoduje powjawienie się usługi systemowej, która pozwoli nam uruchomić demon lirc. Zanim uruchomimy tę usługę powinniśmy we właściwy sposób ją skonfigurować. Pierwszą rzecz jaką musimy zrobić to powiedzieć usłudze lirc z jakiego typu urządzenia chcemy korzystać. Robiny to dodając opcję LIRCD_OPTS do pliku /etc/conf.d/lircd. Konfiguracja dla LiveDrive z Audigy 4 Pro powinna wyglądać w ten sposób:

LIRCD_OPTS="-H livedrive_midi -d /dev/snd/midiC0D1"

Drugą rzeczą jaką musimy zrobić to stworzyć plik konfiguracyjny, który powiąże sygnały podczerwone z przyciskami naszego pilota. Na stronie projektu Lirc możesz znaleźć szczegółowe informacje jak dokonać tego ręcznie, ale tak na prawdę nie ma potrzeby. Powinieneś bez większego problemu znaleźć konfigurację dla twojego pilota na stronie Lirca lub gdzieś w Internecie. Plik konfiguracyjny powinien zostać zapisany jako /etc/lirc/lircd.conf. Poniżej możesz zobaczyć plik konfiguracyjny dla moich urządzeń.

Wyświetl pełny plik konfiguracyjny /etc/init.d/lircd.conf
  1. ##############################################################
  2. #RM-1500 For Audigy 4 Pro
  3. ##############################################################
  4.  
  5. begin remote
  6.  
  7. name Creative_RM-1500
  8. bits 16
  9. flags SPACE_ENC|CONST_LENGTH
  10. eps 30
  11. aeps 100
  12.  
  13. header 9078 4671
  14. one 663 1607
  15. zero 663 497
  16. ptrail 662
  17. repeat 9078 2216
  18. pre_data_bits 16
  19. pre_data 0x8322
  20. gap 106974
  21. min_repeat 4
  22. toggle_bit 0
  23.  
  24. begin codes
  25. Power 0x000000000000619E
  26. 1 0x0000000000008B74
  27. 2 0x0000000000008F70
  28. 3 0x000000000000906F
  29. 4 0x0000000000008A75
  30. 5 0x000000000000847B
  31. 6 0x0000000000007887
  32. 7 0x0000000000008976
  33. 8 0x000000000000837C
  34. 9 0x0000000000007788
  35. 0 0x000000000000807F
  36. CMSS 0x000000000000718E
  37. EAX 0x0000000000008C73
  38. Mute 0x0000000000006E91
  39. Vol_Down 0x000000000000639C
  40. Vol_Up 0x000000000000629D
  41. Up 0x0000000000007B84
  42. Left 0x0000000000008778
  43. Ok 0x000000000000817E
  44. Right 0x000000000000758A
  45. Down 0x0000000000008D72
  46. Return 0x0000000000008E71
  47. Start 0x0000000000008877
  48. Cancel 0x0000000000007C83
  49. Rec 0x000000000000738C
  50. Options 0x000000000000827D
  51. Display 0x0000000000007689
  52. Previous 0x0000000000007F80
  53. Play 0x0000000000007986
  54. Next 0x0000000000007A85
  55. Slow 0x0000000000007D82
  56. Stop 0x000000000000857A
  57. Step 0x0000000000007E81
  58. end codes
  59.  
  60. end remote
  61.  
  62. #
  63. # contributed by Stefan Br�ns
  64. #
  65. # brand: Creative Audigy 2 ZS Platinum LiveDrive
  66. # model no. of remote control:
  67. # devices being controlled by this remote:
  68. #
  69. begin remote
  70.  
  71.  
  72. name LiveDrive
  73. flags SPACE_ENC|CONST_LENGTH
  74. bits 16
  75. eps 30
  76. aeps 100
  77.  
  78.  
  79. header 9000 4500
  80. one 563 1687
  81. zero 563 562
  82. pre_data_bits 16
  83. pre_data 0x8000
  84. gap 108000
  85. toggle_bit 0
  86.  
  87.  
  88. repeat 9000 2250
  89.  
  90.  
  91. frequency 38000
  92. duty_cycle 33
  93.  
  94.  
  95.  
  96.  
  97. begin codes
  98. mute 0x0000000000000040
  99. vol+ 0x0000000000008080
  100. vol- 0x0000000000008082
  101. cmss 0x0000000000000080
  102. end codes
  103. end remote
  104.  
  105. begin remote
  106.  
  107. name LiveDrive_Headphone
  108. bits 16
  109. flags SPACE_ENC|CONST_LENGTH
  110. eps 30
  111. aeps 100
  112.  
  113. header 9000 4500
  114. one 563 1687
  115. zero 563 562
  116. repeat 9000 2250
  117. pre_data_bits 16
  118. pre_data 0x8000
  119. gap 108000
  120. toggle_bit 0
  121.  
  122. frequency 38000
  123. duty_cycle 33
  124.  
  125. begin codes
  126. Headphone_out 0x4000
  127. Headphone_in 0x4080
  128. end codes
  129.  
  130. end remote

Jak widzisz mój plik przechowuję konfigurację trzech urządzeń. Pierwszym jest mój 33 przyciskowy pilot. Drugim jest odbiornik LiveDrive, który posiada 2 klawisze i pokrętło dźwięku. Ostanie urządzenie to monitor słuchawek, który pozwala mi reagować na zdarzenia podłączania i odłączania słuchawek. To kończy konfigurację urządzeń pilotów. Teraz mogę wykorzystać moje piloty. Mogę uruchomić usługę wydając następujące polecenie w terminalu.

/etc/init.d/lircd start

Aby sprawić, że usługa lircd uruchomi się jako usługa systemowa muszę wydać następujące polecenie w terminalu.

rc-update add lircd default

Teraz mogę skonfigurować programy, aby wykorzystywały moje urządzenia lirc.

Konfiguracja programów

Są dwa sposoby na kontrolowanie programów przy użyciu pakietu lirc. Pierwszym z nich jest bezpośrednio wbudowana w program obsługa lirc. Aby sprawić, że moje programy będą posiadały wsparcie dla lirc muszę dodać flagę use lirc do pliku konfiguracyjnego /etc/make.conf, następnie mogę przebudować programy z obsługą nowych flag use wydając następującą komendę w terminalu:

emerge --deep --update --newuse world

Aby sprawdzić, które z zainstalowanych programów mają bezpośrednie wsparcie dla lirca możesz wykorzystać narzędzie equery z pakietu gentoolkit w następujący sposób:

equery hasuse lirc
[ Searching for USE flag lirc in all categories among: ]
 * installed packages
[I--] [ ~] kde-base/kdeutils-meta-4.4.4 (4.4)
[I--] [  ] dev-python/kaa-base-0.6.0 (0)
[I--] [ ~] media-video/mplayer-1.0_rc4_p20100612 (0)
[I--] [  ] media-video/vlc-1.0.6 (0)
[I--] [ ~] media-plugins/audacious-plugins-2.3 (0)
[I--] [ ~] media-plugins/banshee-community-extensions-1.6.1 (0)
[I--] [ ~] media-tv/mythtv-0.23_p25073 (0)
 

Jak widzisz na przykładzie mojego sytemu istnieje spora liczba programów posiadających bezpośrednie wsparcie dla lirca. Aby mogły one korzystać z pakietu lirc musisz stworzyć specjalny plik konfiguracyjny ~/.lircrc w swoim katalogu domowym. Plik ten powiąże funkcje programów z przyciskami twojego pilota. Możesz sprawdzić, które z funkcji programów są dostępne do wykorzystania, używając pomocy programu lub czytając jego dokumentację. Poniżej możesz zobaczyć mój plik .lircrc storzony dla centrum multimedialnego MythTV oraz odtwarzaczy dźwięku Audacious i Banshee.

Wyświetl pełny plik konfiguracyjny ~/.lircrc
  1. #####################################################
  2. #MythTv LiveDrive Configuration
  3. #####################################################
  4. #Volume Down
  5. begin
  6. remote = LiveDrive
  7. button = vol-
  8. prog = mythtv
  9. config = [
  10. repeat = 1
  11. end
  12.  
  13. #Volume Up
  14. begin
  15. remote = LiveDrive
  16. button = vol+
  17. prog = mythtv
  18. config = ]
  19. repeat = 1
  20. end
  21.  
  22. #Mute
  23. begin
  24. remote = LiveDrive
  25. button = mute
  26. prog = mythtv
  27. config = |
  28. end
  29.  
  30. #Show teletex/caption
  31. begin
  32. remote = LiveDrive
  33. button = cmms
  34. prog = mythtv
  35. config = T
  36. end
  37.  
  38. #####################################################
  39. #Audacious LiveDrive Configuration
  40. #####################################################
  41.  
  42. #Volume Down
  43. begin
  44. remote = LiveDrive
  45. button = vol-
  46. prog = audacious
  47. config = VOL_DOWN
  48. repeat = 1
  49. end
  50.  
  51. #Volume Up
  52. begin
  53. remote = LiveDrive
  54. button = vol+
  55. prog = audacious
  56. config = VOL_UP
  57. repeat = 1
  58. end
  59. #Mute
  60. begin
  61. remote = LiveDrive
  62. button = mute
  63. prog = audacious
  64. config = MUTE
  65. end
  66.  
  67. # Playlist clear
  68. begin
  69. prog = audacious
  70. remote = LiveDrive
  71. button = cmss
  72. repeat = 0
  73. delay = 0
  74. config = PLAYLIST_CLEAR
  75. end
  76.  
  77. #####################################################
  78. #MythTV Creative RM-1500 Configuration
  79. #####################################################
  80.  
  81. begin
  82. remote = Creative_RM-1500
  83. button = Up
  84. prog = mythtv
  85. config = Up
  86. repeat = 1
  87. end
  88. begin
  89. remote = Creative_RM-1500
  90. button = Down
  91. prog = mythtv
  92. config = Down
  93. repeat = 1
  94. end
  95. begin
  96. remote = Creative_RM-1500
  97. button = Left
  98. prog = mythtv
  99. config = Left
  100. end
  101. begin
  102. remote = Creative_RM-1500
  103. button = Right
  104. prog = mythtv
  105. config = Right
  106. end
  107. #stop in mythmusic OR show osd
  108. begin
  109. remote = Creative_RM-1500
  110. button = Stop
  111. prog = mythtv
  112. config = O
  113. end
  114. begin
  115. remote = Creative_RM-1500
  116. button = Play
  117. prog = mythtv
  118. config = P
  119. end
  120. begin
  121. remote = Creative_RM-1500
  122. button = Previous
  123. prog = mythtv
  124. config = Home
  125. end
  126. begin
  127. remote = Creative_RM-1500
  128. button = Next
  129. prog = mythtv
  130. config = End
  131. end
  132. begin
  133. remote = Creative_RM-1500
  134. button = Vol_Down
  135. prog = mythtv
  136. config = [
  137. repeat = 1
  138. end
  139. begin
  140. remote = Creative_RM-1500
  141. button = Vol_Up
  142. prog = mythtv
  143. config = ]
  144. repeat = 1
  145. end
  146. begin
  147. remote = Creative_RM-1500
  148. button = Ok
  149. prog = mythtv
  150. config = Enter
  151. end
  152. begin
  153. remote = Creative_RM-1500
  154. button = Mute
  155. prog = mythtv
  156. config = |
  157. end
  158. #Numer Codes
  159. begin
  160. remote = Creative_RM-1500
  161. button = 1
  162. prog = mythtv
  163. config = 1
  164. end
  165. begin
  166. remote = Creative_RM-1500
  167. button = 2
  168. prog = mythtv
  169. config = 2
  170. end
  171. begin
  172. remote = Creative_RM-1500
  173. button = 3
  174. prog = mythtv
  175. config = 3
  176. end
  177. begin
  178. remote = Creative_RM-1500
  179. button = 4
  180. prog = mythtv
  181. config = 4
  182. end
  183. begin
  184. remote = Creative_RM-1500
  185. button = 5
  186. prog = mythtv
  187. config = 5
  188. end
  189. begin
  190. remote = Creative_RM-1500
  191. button = 6
  192. prog = mythtv
  193. config = 6
  194. end
  195. begin
  196. remote = Creative_RM-1500
  197. button = 7
  198. prog = mythtv
  199. config = 7
  200. end
  201. begin
  202. remote = Creative_RM-1500
  203. button = 8
  204. prog = mythtv
  205. config = 8
  206. end
  207. begin
  208. remote = Creative_RM-1500
  209. button = 9
  210. prog = mythtv
  211. config = 9
  212. end
  213. begin
  214. remote = Creative_RM-1500
  215. button = 0
  216. prog = mythtv
  217. config = 0
  218. end
  219.  
  220. #Show menu
  221. begin
  222. remote = Creative_RM-1500
  223. button = Options
  224. prog = mythtv
  225. config = M
  226. end
  227.  
  228. #Jump to bookmarked position
  229. begin
  230. remote = Creative_RM-1500
  231. button = Return
  232. prog = mythtv
  233. config = K
  234. end
  235. #Cycle through aspect ratios
  236. begin
  237. remote = Creative_RM-1500
  238. button = Display
  239. prog = mythtv
  240. config = W
  241. end
  242.  
  243. #close/cancel/escape
  244. begin
  245. remote = Creative_RM-1500
  246. button = Cancel
  247. prog = mythtv
  248. config = Esc
  249. repeat = 3
  250. end
  251.  
  252. #show teletext / captions
  253. begin
  254. remote = Creative_RM-1500
  255. button = CMSS
  256. prog = mythtv
  257. config = T
  258. end
  259. #Show information (OK button is Enter)
  260. begin
  261. remote = Creative_RM-1500
  262. button = Start
  263. prog = mythtv
  264. config = I
  265. end
  266. #adjust time stretch
  267. begin
  268. remote = Creative_RM-1500
  269. button = Slow
  270. prog = mythtv
  271. config = A
  272. end
  273.  
  274. #increase play speed
  275. begin
  276. remote = Creative_RM-1500
  277. button = Step
  278. prog = mythtv
  279. config = U
  280. end
  281.  
  282. #cycle through audio streams
  283. begin
  284. remote = Creative_RM-1500
  285. button = EAX
  286. prog = mythtv
  287. config = +
  288. end
  289.  
  290. begin
  291. remote = Creative_RM-1500
  292. button = Power
  293. prog = mythtv
  294. config = Esc
  295. end
  296. begin
  297. remote = Creative_RM-1500
  298. button = Rec
  299. prog = mythtv
  300. config = R
  301. end
  302.  
  303. #####################################################
  304. #Audacious Creative RM-1500 Configuration
  305. #####################################################
  306.  
  307. begin
  308. remote = Creative_RM-1500
  309. button = Play
  310. prog = audacious
  311. config = PLAYPAUSE
  312. end
  313.  
  314. begin
  315. remote = Creative_RM-1500
  316. button = Stop
  317. prog = audacious
  318. config = STOP
  319. end
  320.  
  321. begin
  322. remote = Creative_RM-1500
  323. button = Options
  324. prog = audacious
  325. config = SHUFFLE
  326. end
  327. begin
  328. remote = Creative_RM-1500
  329. button = Options
  330. prog = audacious
  331. config = SHUFFLE
  332. end
  333.  
  334. begin
  335. remote = Creative_RM-1500
  336. button = Return
  337. prog = audacious
  338. config = REPEAT
  339. end
  340.  
  341. begin
  342. remote = Creative_RM-1500
  343. button = Right
  344. prog = audacious
  345. config = FWD
  346. end
  347.  
  348. begin
  349. remote = Creative_RM-1500
  350. button = Left
  351. prog = audacious
  352. config = BWD
  353. end
  354.  
  355. begin
  356. remote = Creative_RM-1500
  357. button = Power
  358. prog = audacious
  359. config = QUIT
  360. end
  361.  
  362. begin
  363. remote = Creative_RM-1500
  364. button = Start
  365. prog = audacious
  366. config = LIST
  367. end
  368. begin
  369. remote = Creative_RM-1500
  370. button = EAX
  371. prog = audacious
  372. config = PLAYLIST_ADD
  373. end
  374.  
  375. begin
  376. remote = Creative_RM-1500
  377. button = CMSS
  378. prog = audacious
  379. config = PLAYLIST_CLEAR
  380. end
  381.  
  382. begin
  383. remote = Creative_RM-1500
  384. button = Previous
  385. prog = audacious
  386. config = PREV
  387. end
  388. begin
  389. remote = Creative_RM-1500
  390. button = Next
  391. prog = audacious
  392. config = NEXT
  393. endbegin
  394. remote = Creative_RM-1500
  395. button = Vol_Down
  396. prog = audacious
  397. config = VOL_DOWN
  398. repeat = 1
  399. end
  400. begin
  401. remote = Creative_RM-1500
  402. button = Vol_Up
  403. prog = audacious
  404. config = VOL_UP
  405. repeat = 1
  406. end
  407.  
  408. begin
  409. remote = Creative_RM-1500
  410. button = Mute
  411. prog = audacious
  412. config = MUTE
  413. end
  414.  
  415. #####################################################
  416. #Banshee LiveDrive Configuration
  417. #####################################################
  418.  
  419. #Volume Down
  420. begin
  421. remote = LiveDrive
  422. button = vol-
  423. prog = banshee
  424. config = volume-down
  425. repeat = 1
  426. end
  427.  
  428. #Volume Up
  429. begin
  430. remote = LiveDrive
  431. button = vol+
  432. prog = banshee
  433. config = volume-up
  434. repeat = 1
  435. end
  436.  
  437. #Mute
  438. begin
  439. remote = LiveDrive
  440. button = mute
  441. prog = banshee
  442. config = toggle-mute
  443. end
  444. # Play
  445. begin
  446. prog = banshee
  447. remote = LiveDrive
  448. button = cmss
  449. repeat = 0
  450. delay = 0
  451. config = play
  452. end
  453.  
  454. #####################################################
  455. #Banshee Creative RM-1500 Configuration
  456. #####################################################
  457.  
  458. begin
  459. remote = Creative_RM-1500
  460. button = Stop
  461. prog = banshee
  462. config = stop
  463. end
  464. begin
  465. remote = Creative_RM-1500
  466. button = Play
  467. prog = banshee
  468. config = play
  469. end
  470. begin
  471. remote = Creative_RM-1500
  472. button = Previous
  473. prog = banshee
  474. config = previous
  475. end
  476. begin
  477. remote = Creative_RM-1500
  478. button = Next
  479. prog = banshee
  480. config = next
  481. end
  482. begin
  483. remote = Creative_RM-1500
  484. button = Vol_Down
  485. prog = banshee
  486. config = volume-down
  487. repeat = 1
  488. end
  489. begin
  490. remote = Creative_RM-1500
  491. button = Vol_Up
  492. prog = banshee
  493. config = volume-up
  494. repeat = 1
  495. end
  496. begin
  497. remote = Creative_RM-1500
  498. button = Mute
  499. prog = banshee
  500. config = toggle-mute
  501. end

Jak widzisz ten plik nie jest skomplikowany. Dla każdej funkcji, która ma być kontrolowana zdalnie, tworzysz wpis ograniczony słowami begin i end. Dla każdego z wpisów podajesz nazwę pilota, nazwę konkretnego przycisku, nazwę programu oraz jego funkcję, która ma być przypisana do poprzednio zdefiniowanego przycisku. Opcjonalnie możesz zdefiniować parametr: repeat jeśli funkcja ma być powtarzana kiedy wciśniesz i przytrzymasz przycisk. Ten ostatni parametr jest przydatny głownie do sterowania głośnością. Ilość dostępnych funkcji jest zależna od implementacji wsparcia dla lirca przez daną aplikację. Jak widzisz na powyższym przykładzie MythTV i Audacious mają dużą ilość dostępnych funkcji podczas gdy wsparcie dla lirca w Banshee jest bardzo podstawowe.

Niektóre z aplikacji zapewniają swoje własne wsparcie dla lirca. XBMC najlepiej wyglądające centrum multimedialne dostępne dla Linuxa jest przykładem takiej aplikacji. Aby wykorzystywało ono Lirca do zdalnego zarządzania musisz stworzyć plik mapujący Lirc w formacie xml i zapisać go w swoim katalogu domowym jako ~/.xbmc/userdata/Lircmap.xml. Poniżej możesz zobaczyć mój plik Lircmap.xml.

Wyświetl pełny plik konfiguracyjny Lircmap.xml
  1. <lircmap>
  2. <remote device="LiveDrive">
  3. <volumeplus>vol+</volumeplus>
  4. <volumeminus>vol-</volumeminus>
  5. <mute>mute</mute>
  6. <power>cmss</power>
  7. </remote>
  8. <remote device="Creative_RM-1500">
  9. <power>Power</power>
  10. <one>1</one>
  11. <two>2</two>
  12. <three>3</three>
  13. <four>4</four>
  14. <five>5</five>
  15. <six>6</six>
  16. <seven>7</seven>
  17. <eight>8</eight>
  18. <nine>9</nine>
  19. <zero>0</zero>
  20. <info>CMSS</info>
  21. <menu>EAX</menu>
  22. <mute>Mute</mute>
  23. <volumeminus>Vol_Down</volumeminus>
  24. <volumeplus>Vol_Up</volumeplus>
  25. <up>Up</up>
  26. <left>Left</left>
  27. <select>Ok</select>
  28. <right>Right</right>
  29. <down>Down</down>
  30. <back>Return</back>
  31. <start>Start</start>
  32. <clear>Cancel</clear>
  33. <record>Rec</record>
  34. <title>Options</title>
  35. <display>Display</display>
  36. <skipminus>Previous</skipminus>
  37. <play>Play</play>
  38. <pageplus>Step</pageplus>
  39. <pause>Slow</pause>
  40. <stop>Stop</stop>
  41. <skipplus>Next</skipplus>
  42. </remote>
  43. </lircmap>

Ten plik wiąże przyciski moich pilotów z ciągami przycisków dostępnych w XBMC, które są zdefiniowane jako znaczniki xml. Pełną listę ciągów przycisków dostępnych w XBMC możesz znaleźć tutaj. Te przyciski są z kolei mapowane przez domyślną konfigurację XBMC na akcje centrum multimedialnego. Mógłbym utworzyć swój własny plik mapujący akcję ale uznałem to za zbędne, gdyż domyślna konfiguracja działa bardzo dobrze.

Drugą metodą na konfiguracje lirca w programach jest wykorzystanie wbudowanego w środowisko KDE narzędzia graficznej konfiguracji Lirc. To jest prawdopodobnie najprostszy możliwy sposób. Narzędzie KDE posiada bezpośrednie wsparcie i proste kreatory konfiguracji dla najpopularniejszych aplikacji KDE takich jak: odtwarzacz multimediów Kaffeine, przeglądarka internetowa Konqueror, mikser dźwięku KDE, odtwarzacz multimedialny VLC, odtwarzacz multimedialny Amarok, odtwarzacz audio CD KsCD, przeglądarkę dokumentów Okular i odtwarzacz multimedialny Dragon. Jeśli to nie wystarcza możesz wykorzystać zaawansowaną konfigurację pozwalającą na konfigurację programów wykorzystujących Linuxowy system przekazywania komunikatów DBus. W ten sposób mogłem zdalnie kontrolować dodatkowe programy jak na przykład odtwarzacz multimedialny Kmplayer. Przy użyciu tego narzędzia możesz także przypisać funkcje pilota do zdarzeń zamknięcia, uruchomienia ponownie, hibernowania czy uśpienia systemu. Ważną możliwością jest także możliwość definiowania akcji uruchamiających programy. To narzędzie jest tak proste w użyciu, że szkoda mi marnować mój czas aby tłumaczyć jak on działa. Możesz zobaczyć to narzędzie na niektórych zrzutach ekranu zamieszczonych poniżej.

Konfiguracja Lirca nie jest wcale trudna wymaga tylko czasu aby napisać wszystkie te pliki. Na szczęście większość z nich możesz znaleźć w internecie. Pakiet Lirc nie jest jedynym sposobem na zdalne kontrolowanie programów w twoim Linuxie. Używam także innych narzędzi, poniżej znajdziesz więcej informacji na ten temat.

Dodatkowe informacje

Poza pilotem na podczerwień posiadam też blutoothowy pad do gier Cordless Logitech Rumplepad 2. Używam go do zarządzania aplikacjami centrów multimedialnych MythTV i XBMC. Używam go także jako zdalnego urządzenia wskazującego. Aby zarządzać oboma centrami multimedialnymi musiałem skompilować je ze wsparciem dla obsługi joysticków. Dla MythTV dodatkowo musiałem utworzyć plik konfiguracyjny joysticka w moim katalogu domowym i zapisać go jako ~/.mythtv/joystickmenurc. Poniżej możesz zobaczyć plik konfiguracyjny joysticka stworzony dla mythtv.

Wyświetl pełny plik konfiguracyjny joystickmenurc
  1. devicename /dev/input/js0
  2.  
  3. button 0 Enter
  4. button 1 T
  5. button 2 P
  6. button 3 0
  7. button 4 M
  8. button 5 K
  9. button 6 I
  10. button 7 A
  11. button 8 U
  12. button 9 Esc
  13. button 10 |
  14. button 11 Escape
  15. axis 1 -32767 0 Home
  16. axis 1 32767 0 End
  17. axis 2 32767 0 [
  18. axis 2 -32767 0 ]
  19.  
  20. axis 4 -32767 0 Right
  21. axis 4 0 32767 Left
  22. axis 5 -32767 0 Down
  23. axis 5 0 32767 Up

W tym pliku podaję węzeł urządzenia i mapuje przyciski oraz osie joysticka na funkcje MythTV.

Kontrolowanie XBMC przy użyciu mojego game pada nie wymagało żadnej dodatkowej konfiguracji, jako że XBMC posiada wbudowane wpsarcie dla kontrolera gier Logitech Cordless RumplePad 2. Mój pad do gier działał w XBMC natychmiast po zainstalowaniu centrum multimedialnego.

Aby wykorzystać mój pad do gier jako zdalne urządzenie wskazujące musiałem dodatkowo zainstalować program QJoyPad. Jest to program pozwalający użytkownikowi tłumaczyć zdarzenia generowane przez Joystick na akcje myszy i klawiatury w środowisku graficznym Linuxa. Program ten posiada prosty w użyciu kreator konfiguracji, który pomaga użytkownikowi tworzyć wiele układów konfiguracyjnych. Użytkownik może przełączać się miedzy zdefiniowanymi układami w czasie pracy.

Dowód, że to działa

Źródła


Komentarze

Jeśli znalazłeś jakieś błędy w powyższej informacji lub po prostu chcesz wypowiedzieć swoje zdanie na jej temat, będę wdzięczny za pozostawienie komentarza.
Wszystkie komentarze będą pokazywać się na stronie po tym jak zostaną zatwierdzone. Przepraszam za to ale chcę mieć pewność, że moja strona będzie wolna od obraźliwych lub wulgarnych treści. Nie mam nic przeciwko krytyce ale zrób to właściwie dobierając słowa.

Pozostaw komentarz