€•¶qŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ)/translations/zh_CN/input/devices/yealink”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/zh_TW/input/devices/yealink”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/it_IT/input/devices/yealink”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ja_JP/input/devices/yealink”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ko_KR/input/devices/yealink”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/pt_BR/input/devices/yealink”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/sp_SP/input/devices/yealink”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ/Driver documentation for yealink usb-p1k phones”h]”hŒ/Driver documentation for yealink usb-p1k phones”…””}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒC/var/lib/git/docbuild/linux/Documentation/input/devices/yealink.rst”h´Kubh¶)”}”(hhh]”(h»)”}”(hŒStatus”h]”hŒStatus”…””}”(hhÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhËh²hh³hÊh´KubhŒ paragraph”“”)”}”(hŒ1The p1k is a relatively cheap usb 1.1 phone with:”h]”hŒ1The p1k is a relatively cheap usb 1.1 phone with:”…””}”(hhÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhhËh²hubhŒ block_quote”“”)”}”(hX­- keyboard full support, yealink.ko / input event API - LCD full support, yealink.ko / sysfs API - LED full support, yealink.ko / sysfs API - dialtone full support, yealink.ko / sysfs API - ringtone full support, yealink.ko / sysfs API - audio playback full support, snd_usb_audio.ko / alsa API - audio record full support, snd_usb_audio.ko / alsa API ”h]”hŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ>keyboard full support, yealink.ko / input event API”h]”hÝ)”}”(hhûh]”hŒ>keyboard full support, yealink.ko / input event API”…””}”(hhýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K hhùubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hhôubhø)”}”(hŒ8LCD full support, yealink.ko / sysfs API”h]”hÝ)”}”(hjh]”hŒ8LCD full support, yealink.ko / sysfs API”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hhôubhø)”}”(hŒ8LED full support, yealink.ko / sysfs API”h]”hÝ)”}”(hj)h]”hŒ8LED full support, yealink.ko / sysfs API”…””}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hhôubhø)”}”(hŒ8dialtone full support, yealink.ko / sysfs API”h]”hÝ)”}”(hj@h]”hŒ8dialtone full support, yealink.ko / sysfs API”…””}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K hj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hhôubhø)”}”(hŒ8ringtone full support, yealink.ko / sysfs API”h]”hÝ)”}”(hjWh]”hŒ8ringtone full support, yealink.ko / sysfs API”…””}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhjUubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hhôubhø)”}”(hŒ=audio playback full support, snd_usb_audio.ko / alsa API”h]”hÝ)”}”(hjnh]”hŒ=audio playback full support, snd_usb_audio.ko / alsa API”…””}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khjlubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hhôubhø)”}”(hŒ>audio record full support, snd_usb_audio.ko / alsa API ”h]”hÝ)”}”(hŒ=audio record full support, snd_usb_audio.ko / alsa API”h]”hŒ=audio record full support, snd_usb_audio.ko / alsa API”…””}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hhôubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1hòh³hÊh´K hhîubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³hÊh´K hhËh²hubhÝ)”}”(hŒ3For vendor documentation see http://www.yealink.com”h]”(hŒFor vendor documentation see ”…””}”(hj©h²hh³Nh´NubhŒ reference”“”)”}”(hŒhttp://www.yealink.com”h]”hŒhttp://www.yealink.com”…””}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jµuh1j±hj©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhhËh²hubeh}”(h]”Œstatus”ah ]”h"]”Œstatus”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)”}”(hhh]”(h»)”}”(hŒkeyboard features”h]”hŒkeyboard features”…””}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÐh²hh³hÊh´KubhÝ)”}”(hŒNThe current mapping in the kernel is provided by the map_p1k_to_key function::”h]”hŒMThe current mapping in the kernel is provided by the map_p1k_to_key function:”…””}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhjÐh²hubhŒ literal_block”“”)”}”(hX·Physical USB-P1K button layout input events up up IN OUT left, right down down pickup C hangup enter, backspace, escape 1 2 3 1, 2, 3 4 5 6 4, 5, 6, 7 8 9 7, 8, 9, * 0 # *, 0, #,”h]”hX·Physical USB-P1K button layout input events up up IN OUT left, right down down pickup C hangup enter, backspace, escape 1 2 3 1, 2, 3 4 5 6 4, 5, 6, 7 8 9 7, 8, 9, * 0 # *, 0, #,”…””}”hjñsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jïh³hÊh´KhjÐh²hubhÝ)”}”(hŒ—The "up" and "down" keys, are symbolised by arrows on the button. The "pickup" and "hangup" keys are symbolised by a green and red phone on the button.”h]”hŒ§The “up†and “down†keys, are symbolised by arrows on the button. The “pickup†and “hangup†keys are symbolised by a green and red phone on the button.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K(hjÐh²hubeh}”(h]”Œkeyboard-features”ah ]”h"]”Œkeyboard features”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)”}”(hhh]”(h»)”}”(hŒ LCD features”h]”hŒ LCD features”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³hÊh´K.ubhÝ)”}”(hŒ6The LCD is divided and organised as a 3 line display::”h]”hŒ5The LCD is divided and organised as a 3 line display:”…””}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K0hjh²hubjð)”}”(hXæ |[] [][] [][] [][] in |[][] |[] M [][] D [][] : [][] out |[][] store NEW REP SU MO TU WE TH FR SA [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] Line 1 Format (see below) : 18.e8.M8.88...188 Icon names : M D : IN OUT STORE Line 2 Format : ......... Icon name : NEW REP SU MO TU WE TH FR SA Line 3 Format : 888888888888”h]”hXæ |[] [][] [][] [][] in |[][] |[] M [][] D [][] : [][] out |[][] store NEW REP SU MO TU WE TH FR SA [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] Line 1 Format (see below) : 18.e8.M8.88...188 Icon names : M D : IN OUT STORE Line 2 Format : ......... Icon name : NEW REP SU MO TU WE TH FR SA Line 3 Format : 888888888888”…””}”hj6sbah}”(h]”h ]”h"]”h$]”h&]”jÿjuh1jïh³hÊh´K2hjh²hubhŒdefinition_list”“”)”}”(hhh]”hŒdefinition_list_item”“”)”}”(hX¡Format description: From a userspace perspective the world is separated into "digits" and "icons". A digit can have a character set, an icon can only be ON or OFF. Format specifier:: '8' : Generic 7 segment digit with individual addressable segments Reduced capability 7 segment digit, when segments are hard wired together. '1' : 2 segments digit only able to produce a 1. 'e' : Most significant day of the month digit, able to produce at least 1 2 3. 'M' : Most significant minute digit, able to produce at least 0 1 2 3 4 5. Icons or pictograms: '.' : For example like AM, PM, SU, a 'dot' .. or other single segment elements. ”h]”(hŒterm”“”)”}”(hŒFormat description:”h]”hŒFormat description:”…””}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jOh³hÊh´KUhjKubhŒ definition”“”)”}”(hhh]”(hÝ)”}”(hŒFrom a userspace perspective the world is separated into "digits" and "icons". A digit can have a character set, an icon can only be ON or OFF.”h]”hŒ—From a userspace perspective the world is separated into “digits†and “iconsâ€. A digit can have a character set, an icon can only be ON or OFF.”…””}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KDhjaubhÝ)”}”(hŒFormat specifier::”h]”hŒFormat specifier:”…””}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KGhjaubjð)”}”(hXÒ'8' : Generic 7 segment digit with individual addressable segments Reduced capability 7 segment digit, when segments are hard wired together. '1' : 2 segments digit only able to produce a 1. 'e' : Most significant day of the month digit, able to produce at least 1 2 3. 'M' : Most significant minute digit, able to produce at least 0 1 2 3 4 5. Icons or pictograms: '.' : For example like AM, PM, SU, a 'dot' .. or other single segment elements.”h]”hXÒ'8' : Generic 7 segment digit with individual addressable segments Reduced capability 7 segment digit, when segments are hard wired together. '1' : 2 segments digit only able to produce a 1. 'e' : Most significant day of the month digit, able to produce at least 1 2 3. 'M' : Most significant minute digit, able to produce at least 0 1 2 3 4 5. Icons or pictograms: '.' : For example like AM, PM, SU, a 'dot' .. or other single segment elements.”…””}”hj€sbah}”(h]”h ]”h"]”h$]”h&]”jÿjuh1jïh³hÊh´KIhjaubeh}”(h]”h ]”h"]”h$]”h&]”uh1j_hjKubeh}”(h]”h ]”h"]”h$]”h&]”uh1jIh³hÊh´KUhjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjh²hh³hÊh´Nubeh}”(h]”Œ lcd-features”ah ]”h"]”Œ lcd features”ah$]”h&]”uh1hµhh·h²hh³hÊh´K.ubh¶)”}”(hhh]”(h»)”}”(hŒ Driver usage”h]”hŒ Driver usage”…””}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj¨h²hh³hÊh´KXubhÝ)”}”(hŒOFor userland the following interfaces are available using the sysfs interface::”h]”hŒNFor userland the following interfaces are available using the sysfs interface:”…””}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KZhj¨h²hubjð)”}”(hX»/sys/.../ line1 Read/Write, lcd line1 line2 Read/Write, lcd line2 line3 Read/Write, lcd line3 get_icons Read, returns a set of available icons. hide_icon Write, hide the element by writing the icon name. show_icon Write, display the element by writing the icon name. map_seg7 Read/Write, the 7 segments char set, common for all yealink phones. (see map_to_7segment.h) ringtone Write, upload binary representation of a ringtone, see yealink.c. status EXPERIMENTAL due to potential races between async. and sync usb calls.”h]”hX»/sys/.../ line1 Read/Write, lcd line1 line2 Read/Write, lcd line2 line3 Read/Write, lcd line3 get_icons Read, returns a set of available icons. hide_icon Write, hide the element by writing the icon name. show_icon Write, display the element by writing the icon name. map_seg7 Read/Write, the 7 segments char set, common for all yealink phones. (see map_to_7segment.h) ringtone Write, upload binary representation of a ringtone, see yealink.c. status EXPERIMENTAL due to potential races between async. and sync usb calls.”…””}”hjÇsbah}”(h]”h ]”h"]”h$]”h&]”jÿjuh1jïh³hÊh´K\hj¨h²hubh¶)”}”(hhh]”(h»)”}”(hŒlineX”h]”hŒlineX”…””}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÕh²hh³hÊh´KnubhÝ)”}”(hŒKReading /sys/../lineX will return the format string with its current value.”h]”hŒKReading /sys/../lineX will return the format string with its current value.”…””}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KphjÕh²hubhí)”}”(hŒ7Example:: cat ./line3 888888888888 Linux Rocks! ”h]”(hÝ)”}”(hŒ Example::”h]”hŒExample:”…””}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Krhjôubjð)”}”(hŒ%cat ./line3 888888888888 Linux Rocks!”h]”hŒ%cat ./line3 888888888888 Linux Rocks!”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”jÿjuh1jïh³hÊh´Kthjôubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³hÊh´KrhjÕh²hubhÝ)”}”(hŒ=Writing to /sys/../lineX will set the corresponding LCD line.”h]”hŒ=Writing to /sys/../lineX will set the corresponding LCD line.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KxhjÕh²hubhí)”}”(hXj- Excess characters are ignored. - If less characters are written than allowed, the remaining digits are unchanged. - The tab '\t'and '\n' char does not overwrite the original content. - Writing a space to an icon will always hide its content. Example:: date +"%m.%e.%k:%M" | sed 's/^0/ /' > ./line1 Will update the LCD with the current date & time. ”h]”(hó)”}”(hhh]”(hø)”}”(hŒExcess characters are ignored.”h]”hÝ)”}”(hj1h]”hŒExcess characters are ignored.”…””}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Kzhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hj,ubhø)”}”(hŒPIf less characters are written than allowed, the remaining digits are unchanged.”h]”hÝ)”}”(hŒPIf less characters are written than allowed, the remaining digits are unchanged.”h]”hŒPIf less characters are written than allowed, the remaining digits are unchanged.”…””}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K{hjFubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hj,ubhø)”}”(hŒBThe tab '\t'and '\n' char does not overwrite the original content.”h]”hÝ)”}”(hj`h]”hŒJThe tab ‘t’and ‘n’ char does not overwrite the original content.”…””}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K}hj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hj,ubhø)”}”(hŒ9Writing a space to an icon will always hide its content. ”h]”hÝ)”}”(hŒ8Writing a space to an icon will always hide its content.”h]”hŒ8Writing a space to an icon will always hide its content.”…””}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K~hjuubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hj,ubeh}”(h]”h ]”h"]”h$]”h&]”j¡j¢uh1hòh³hÊh´Kzhj(ubhí)”}”(hŒpExample:: date +"%m.%e.%k:%M" | sed 's/^0/ /' > ./line1 Will update the LCD with the current date & time. ”h]”(hÝ)”}”(hŒ Example::”h]”hŒExample:”…””}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K€hj“ubjð)”}”(hŒ.date +"%m.%e.%k:%M" | sed 's/^0/ /' > ./line1”h]”hŒ.date +"%m.%e.%k:%M" | sed 's/^0/ /' > ./line1”…””}”hj¥sbah}”(h]”h ]”h"]”h$]”h&]”jÿjuh1jïh³hÊh´K‚hj“ubhÝ)”}”(hŒ1Will update the LCD with the current date & time.”h]”hŒ1Will update the LCD with the current date & time.”…””}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K„hj“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³hÊh´K€hj(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³hÊh´KzhjÕh²hubeh}”(h]”Œlinex”ah ]”h"]”Œlinex”ah$]”h&]”uh1hµhj¨h²hh³hÊh´Knubh¶)”}”(hhh]”(h»)”}”(hŒ get_icons”h]”hŒ get_icons”…””}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÕh²hh³hÊh´KˆubhÝ)”}”(hŒGReading will return all available icon names and its current settings::”h]”hŒFReading will return all available icon names and its current settings:”…””}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KŠhjÕh²hubjð)”}”(hŒ‹cat ./get_icons on M on D on : IN OUT STORE NEW REP SU MO TU WE TH FR SA LED DIALTONE RINGTONE”h]”hŒ‹cat ./get_icons on M on D on : IN OUT STORE NEW REP SU MO TU WE TH FR SA LED DIALTONE RINGTONE”…””}”hjôsbah}”(h]”h ]”h"]”h$]”h&]”jÿjuh1jïh³hÊh´KŒhjÕh²hubeh}”(h]”Œ get-icons”ah ]”h"]”Œ get_icons”ah$]”h&]”uh1hµhj¨h²hh³hÊh´Kˆubh¶)”}”(hhh]”(h»)”}”(hŒshow/hide icons”h]”hŒshow/hide icons”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj h²hh³hÊh´K¢ubhÝ)”}”(hŒaWriting to these files will update the state of the icon. Only one icon at a time can be updated.”h]”hŒaWriting to these files will update the state of the icon. Only one icon at a time can be updated.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K¤hj h²hubhÝ)”}”(hŒeIf an icon is also on a ./lineX the corresponding value is updated with the first letter of the icon.”h]”hŒeIf an icon is also on a ./lineX the corresponding value is updated with the first letter of the icon.”…””}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K§hj h²hubhí)”}”(hXExample - light up the store icon:: echo -n "STORE" > ./show_icon cat ./line1 18.e8.M8.88...188 S Example - sound the ringtone for 10 seconds:: echo -n RINGTONE > /sys/..../show_icon sleep 10 echo -n RINGTONE > /sys/..../hide_icon ”h]”(hÝ)”}”(hŒ#Example - light up the store icon::”h]”hŒ"Example - light up the store icon:”…””}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Kªhj7ubjð)”}”(hŒLecho -n "STORE" > ./show_icon cat ./line1 18.e8.M8.88...188 S”h]”hŒLecho -n "STORE" > ./show_icon cat ./line1 18.e8.M8.88...188 S”…””}”hjIsbah}”(h]”h ]”h"]”h$]”h&]”jÿjuh1jïh³hÊh´K¬hj7ubhÝ)”}”(hŒ-Example - sound the ringtone for 10 seconds::”h]”hŒ,Example - sound the ringtone for 10 seconds:”…””}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K²hj7ubjð)”}”(hŒVecho -n RINGTONE > /sys/..../show_icon sleep 10 echo -n RINGTONE > /sys/..../hide_icon”h]”hŒVecho -n RINGTONE > /sys/..../show_icon sleep 10 echo -n RINGTONE > /sys/..../hide_icon”…””}”hjesbah}”(h]”h ]”h"]”h$]”h&]”jÿjuh1jïh³hÊh´K´hj7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³hÊh´Kªhj h²hubeh}”(h]”Œshow-hide-icons”ah ]”h"]”Œshow/hide icons”ah$]”h&]”uh1hµhj¨h²hh³hÊh´K¢ubeh}”(h]”Œ driver-usage”ah ]”h"]”Œ driver usage”ah$]”h&]”uh1hµhh·h²hh³hÊh´KXubh¶)”}”(hhh]”(h»)”}”(hŒSound features”h]”hŒSound features”…””}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj‰h²hh³hÊh´KºubhÝ)”}”(hŒ4Sound is supported by the ALSA driver: snd_usb_audio”h]”hŒ4Sound is supported by the ALSA driver: snd_usb_audio”…””}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K¼hj‰h²hubhÝ)”}”(hŒbOne 16-bit channel with sample and playback rates of 8000 Hz is the practical limit of the device.”h]”hŒbOne 16-bit channel with sample and playback rates of 8000 Hz is the practical limit of the device.”…””}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K¾hj‰h²hubhí)”}”(hŒ„Example - recording test:: arecord -v -d 10 -r 8000 -f S16_LE -t wav foobar.wav Example - playback test:: aplay foobar.wav ”h]”(hÝ)”}”(hŒExample - recording test::”h]”hŒExample - recording test:”…””}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KÁhj¶ubjð)”}”(hŒ5arecord -v -d 10 -r 8000 -f S16_LE -t wav foobar.wav”h]”hŒ5arecord -v -d 10 -r 8000 -f S16_LE -t wav foobar.wav”…””}”hjÈsbah}”(h]”h ]”h"]”h$]”h&]”jÿjuh1jïh³hÊh´KÃhj¶ubhÝ)”}”(hŒExample - playback test::”h]”hŒExample - playback test:”…””}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KÅhj¶ubjð)”}”(hŒaplay foobar.wav”h]”hŒaplay foobar.wav”…””}”hjäsbah}”(h]”h ]”h"]”h$]”h&]”jÿjuh1jïh³hÊh´KÇhj¶ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³hÊh´KÁhj‰h²hubeh}”(h]”Œsound-features”ah ]”h"]”Œsound features”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kºubh¶)”}”(hhh]”(h»)”}”(hŒTroubleshooting”h]”hŒTroubleshooting”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³hÊh´KËubhŒ field_list”“”)”}”(hhh]”(hŒfield”“”)”}”(hhh]”(hŒ field_name”“”)”}”(hŒQ”h]”hŒQ”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh³hÊh´KubhŒ field_body”“”)”}”(hŒyModule yealink compiled and installed without any problem but phone is not initialized and does not react to any actions.”h]”hÝ)”}”(hŒyModule yealink compiled and installed without any problem but phone is not initialized and does not react to any actions.”h]”hŒyModule yealink compiled and installed without any problem but phone is not initialized and does not react to any actions.”…””}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KÍhj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j+hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KÍhjh²hubj)”}”(hhh]”(j)”}”(hŒA”h]”hŒA”…””}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjKh³hÊh´Kubj,)”}”(hX=If you see something like: hiddev0: USB HID v1.00 Device [Yealink Network Technology Ltd. VOIP USB Phone in dmesg, it means that the hid driver has grabbed the device first. Try to load module yealink before any other usb hid driver. Please see the instructions provided by your distribution on module configuration. ”h]”hÝ)”}”(hX<If you see something like: hiddev0: USB HID v1.00 Device [Yealink Network Technology Ltd. VOIP USB Phone in dmesg, it means that the hid driver has grabbed the device first. Try to load module yealink before any other usb hid driver. Please see the instructions provided by your distribution on module configuration.”h]”hX<If you see something like: hiddev0: USB HID v1.00 Device [Yealink Network Technology Ltd. VOIP USB Phone in dmesg, it means that the hid driver has grabbed the device first. Try to load module yealink before any other usb hid driver. Please see the instructions provided by your distribution on module configuration.”…””}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KÏhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1j+hjKubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KÏhjh²hubj)”}”(hhh]”(j)”}”(hjh]”hŒQ”…””}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjzh³hÊh´Kubj,)”}”(hŒbPhone is working now (displays version and accepts keypad input) but I can't find the sysfs files.”h]”hÝ)”}”(hŒbPhone is working now (displays version and accepts keypad input) but I can't find the sysfs files.”h]”hŒdPhone is working now (displays version and accepts keypad input) but I can’t find the sysfs files.”…””}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KÕhjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1j+hjzubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KÕhjh²hubj)”}”(hhh]”(j)”}”(hjPh]”hŒA”…””}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¨h³hÊh´Kubj,)”}”(hŒˆThe sysfs files are located on the particular usb endpoint. On most distributions you can do: "find /sys/ -name get_icons" for a hint. ”h]”hÝ)”}”(hŒ†The sysfs files are located on the particular usb endpoint. On most distributions you can do: "find /sys/ -name get_icons" for a hint.”h]”hŒŠThe sysfs files are located on the particular usb endpoint. On most distributions you can do: “find /sys/ -name get_icons†for a hint.”…””}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K×hj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1j+hj¨ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K×hjh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÊh´KÍubeh}”(h]”Œtroubleshooting”ah ]”h"]”Œtroubleshooting”ah$]”h&]”uh1hµhh·h²hh³hÊh´KËubh¶)”}”(hhh]”(h»)”}”(hŒCredits & Acknowledgments”h]”hŒCredits & Acknowledgments”…””}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjäh²hh³hÊh´KÜubhí)”}”(hŒè- Olivier Vandorpe, for starting the usbb2k-api project doing much of the reverse engineering. - Martin Diehl, for pointing out how to handle USB memory allocation. - Dmitry Torokhov, for the numerous code reviews and suggestions.”h]”hó)”}”(hhh]”(hø)”}”(hŒ\Olivier Vandorpe, for starting the usbb2k-api project doing much of the reverse engineering.”h]”hÝ)”}”(hŒ\Olivier Vandorpe, for starting the usbb2k-api project doing much of the reverse engineering.”h]”hŒ\Olivier Vandorpe, for starting the usbb2k-api project doing much of the reverse engineering.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KÞhjüubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hjùubhø)”}”(hŒCMartin Diehl, for pointing out how to handle USB memory allocation.”h]”hÝ)”}”(hjh]”hŒCMartin Diehl, for pointing out how to handle USB memory allocation.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Kàhjubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hjùubhø)”}”(hŒ?Dmitry Torokhov, for the numerous code reviews and suggestions.”h]”hÝ)”}”(hj-h]”hŒ?Dmitry Torokhov, for the numerous code reviews and suggestions.”…””}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Káhj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hjùubeh}”(h]”h ]”h"]”h$]”h&]”j¡j¢uh1hòh³hÊh´KÞhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³hÊh´KÞhjäh²hubeh}”(h]”Œcredits-acknowledgments”ah ]”h"]”Œcredits & acknowledgments”ah$]”h&]”uh1hµhh·h²hh³hÊh´KÜubeh}”(h]”Œ/driver-documentation-for-yealink-usb-p1k-phones”ah ]”h"]”Œ/driver documentation for yealink usb-p1k phones”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j[jXjÍjÊjjj¥j¢j†jƒjÒjÏjjj~j{jýjújájÞjSjPuŒ nametypes”}”(j[‰j͉j‰j¥‰j†‰jÒ‰j‰j~‰jý‰já‰jS‰uh}”(jXh·jÊhËjjÐj¢jjƒj¨jÏjÕjjÕj{j júj‰jÞjjPjäuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.