Changes

Jump to: navigation, search

Orange Pi Zero 2W

804 bytes added, 18:07, 25 September 2023
How to use the two LRADC buttons on the 24pin expansion board
<li><p>There are two LRADC buttons on the 24pin expansion board, and their locations are as shown in the figure below:</p>
<p>[[File:zero2w-img106.png]]</p></li>
<li><p>In the Linux system, the default key values of KEY1 and KEY2 are</p></li></ol>
{| class="wikitable" style="width:800px;text-align: center;"
|-
| '''Linux kernel'''
| '''KEY_ENTER, the enter key'''
|}
</ol>
<ol start="3" style="list-style-type: decimal;">
<li><p>Through the '''evtest''' command, we can check the key values reported after KEY1 and KEY2 are pressed.</p>
<ol style="list-style-type: lower-alpha;">
<li><p>linux5.4</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepizero2w:~$ '''evtest'''</p>
<p>No device specified, trying to scan all of /dev/input/event*</p>
<p>Not running as root, no devices may be available.</p>
<p>Available devices:</p>
<p>'''/dev/input/event0event<span style="color: #FF0000">0</span>: <span style="color:#FF0000">sunxi-keyboard</span>'''</p>
<p>/dev/input/event1: sunxi-ir</p>
<p>/dev/input/event2: axp2101-pek</p>
<p>/dev/input/event6: PixArt USB Optical Mouse</p>
<p>/dev/input/event7: BRLTTY 6.3 Linux Screen Driver Keyboard</p>
<p>Select the device event number [0-7]: '''<span style="color:#FF0000">0 </span> #You need to enter the serial number corresponding to sunxi-keyboard'''</p>
<p>Input driver version is 1.0.1</p>
<p>Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100</p>
<p>Input device name: &quot;sunxi-keyboard&quot;</p>
<p>Supported events:</p>
:<p>Event type 0 (EV_SYN)</p>:<p>Event type 1 (EV_KEY)</p>::<p>Event code 2 (KEY_1)</p>::<p>Event code 28 (KEY_ENTER)</p>
<p>Properties:</p>
<p>Testing ... (interrupt to exit)</p>
 
 
<p>'''#The following are the key values reported after pressing KEY1 and KEY2'''</p>
 
 
<p>Event: time 1693555298.132314, type 1 (EV_KEY), code 2 (KEY_1), value 1</p>
<p>Event: time 1693555298.132314, -------------- SYN_REPORT ------------</p>
<p>Event: time 1693555298.601042, -------------- SYN_REPORT ------------</p>
<p>Event: time 1693555298.710415, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0</p>
<p>Event: time 1693555298.710415, -------------- SYN_REPORT ------------</p>|}</li>
<li><p>linux6.1</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepizero2w:~$ evtest</p>
<p>No device specified, trying to scan all of /dev/input/event*</p>
<p>Available devices:</p>
<p>/dev/input/event0: axp20x-pek</p>
<p>'''/dev/input/event1event<span style="color: #FF0000">1</span>: <span style="color:#FF0000">5070800.lradc</span>'''</p>
<p>/dev/input/event2: SONiX USB Keyboard</p>
<p>/dev/input/event3: SONiX USB Keyboard Consumer Control</p>
<p>/dev/input/event5: PixArt USB Optical Mouse</p>
<p>/dev/input/event6: sunxi-ir</p>
<p>Select the device event number [0-6]: '''<span style="color:#FF0000">1 </span> #You need to enter the serial number corresponding to 5070800.lradc'''</p>
<p>Input driver version is 1.0.1</p>
<p>Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100</p>
<p>Input device name: &quot;5070800.lradc&quot;</p>
<p>Supported events:</p>
:<p>Event type 0 (EV_SYN)</p>:<p>Event type 1 (EV_KEY)</p>::<p>Event code 2 (KEY_1)</p>::<p>Event code 28 (KEY_ENTER)</p>
<p>Properties:</p>
<p>Testing ... (interrupt to exit)</p>
 
 
<p>'''#The following are the key values reported after pressing KEY1 and KEY2'''</p>
 
 
<p>Event: time 1694075818.810877, type 1 (EV_KEY), code 2 (KEY_1), value 1</p>
<p>Event: time 1694075818.810877, -------------- SYN_REPORT ------------</p>
<p>Event: time 1694075819.536128, -------------- SYN_REPORT ------------</p>
<p>Event: time 1694075819.705009, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0</p>
<p>Event: time 1694075819.705009, -------------- SYN_REPORT ------------</p>|}</li></ol>
</li>
<li><p>If you need to modify the key values reported after KEY1 and KEY2 are pressed, you can use the following method:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>There is a '''sun50i-h618-lradc-keys.dts''' file under the &gt; '''/usr/src/''' path, through which we can define KEY1 and KEY2 &gt; as the desired key values.</p>{| class="wikitable" style="width:800px;" |-|
<p>orangepi@orangepizero2w:~$ '''cd /usr/src/'''</p>
<p>orangepi@orangepizero2w:/usr/src$ '''ls *.dts'''</p>
<p>sun50i-h618-lradc-keys.dts</p>|}</li><li><p>The contents of the '''sun50i-h618-lradc-keys.dts''' file in the &gt; linux5.4 system are as follows:</p><ol style="list-style-type: lower-alphanone;"><li><p>a) KEY1 correspondence: modify '''key0 = &lt;600 2&gt;;''' where 2 is &gt; the number corresponding to the desired key value</p></li><li><p>b) KEY2 correspondence: modify '''key1 = &lt;800 28&gt;;''' where 28 &gt; is the number corresponding to the desired key value</p>{| class="wikitable" style="width:800px;" |-|
<p>orangepi@orangepizero2w:/usr/src$ '''sudo vim sun50i-h618-lradc-keys.dts'''</p>
<p>/dts-v1/;</p>
<p>/plugin/;</p>
 
 
<p>/ {</p>
:<p>fragment@0 {</p>::<p>target = &lt;&amp;keyboard&gt;;</p>  ::<p>__overlay__ {</p>:::<p>status = &quot;okay&quot;;</p>  :::<p>'''key0 = &lt;600 <span style="color:#FF0000">2</span>&gt;;'''</p>:::<p>'''key1 = &lt;800 <span style="color:#FF0000">28</span>&gt;;'''</p>::<p>};</p>:<p>};</p>
<p>};</p>
<p>|};</p><p>};</p></li></ol>
</li>
<li><p>The contents of the c.linux6.1 system &gt; '''sun50i-h618-lradc-keys.dts''' file are as follows:</p><ol style="list-style-type: lower-alphanone;"><li><p>a) KEY1 corresponding: modify '''linux,code = &lt;2&gt;;''' the 2 in &gt; it is the number corresponding to the desired key value</p></li><li><p>b) KEY2 correspondence: modify '''linux,code = &lt;28&gt;;''' the 28 &gt; in it is the number corresponding to the desired key value</p>{| class="wikitable" style="width:800px;" |-| <p>orangepi@orangepizero2w:/usr/src$ '''sudo ''' '''vim ''' '''sun50i-h618-lradc-keys.dts'''</p>
<p>/dts-v1/;</p>
<p>/plugin/;</p>
 
 
<p>/ {</p>
:<p>fragment@0 {</p>::<p>target = &lt;&amp;r_lradc&gt;;</p>  ::<p>__overlay__ {</p>:::<p>status = &quot;okay&quot;;</p>  :::<p>button-500 {</p>::::<p>label = &quot;KEY_1&quot;;</p>::::<p>'''linux,code = &lt;<span style="color:#FF0000">2</span>&gt;;'''</p>:::<p>};</p>  :::<p>button-800 {</p>::::<p>label = &quot;KEY_ENTER&quot;;</p>::::<p>'''linux,code = &lt;<span style="color:#FF0000">28</span>&gt;;'''</p>:::<p>};</p>::<p>};</p>:<p>};</p>
<p>};</p>
<p>button-800 {</p><p>label = &quot;KEY_ENTER&quot;;</p><p>'''linux,code = &lt;28&gt;;'''</p><p>};</p><p>};</p><p>|};</p><p>};</p></li></ol>
</li>
<li><p>For the key values that can be set, please refer to the macro &gt; definition in the '''input-event-codes.h''' header file. Its &gt; path in the kernel source code is:</p>{| class="wikitable" style="width:800px;" |-|
<p>orange-pi-5.4-sun50iw9/include/uapi/linux/input-event-codes.h</p>
<p>orange-pi-6.1-sun50iw9/include/uapi/linux/input-event-codes.h</p>|}</li><li><p>After modification, use the '''orangepi-add-overlay''' command to &gt; add the sun50i-h618-lradc-keys.dts configuration to the &gt; system.</p>{| class="wikitable" style="width:800px;" |-|
<p>orangepi@orangepizero2w:/usr/src$ '''sudo orangepi-add-overlay sun50i-h618-lradc-keys.dts'''</p>
<p>Compiling the overlay</p>
<p>Copying the compiled overlay file to /boot/overlay-user/</p>
<p>Reboot is required to apply the changes</p>|}</li><li><p>Then restart the system and the customized key values will take &gt; effect.</p></li></ol>
</li></ol>
<span id="network-connection-test"></span>
 
== Network connection test ==

Navigation menu