Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:acc:vu8 [2017/01/19 10:45] joy.cho [2. Backlight ON/OFF.] |
en:acc:vu8 [2017/05/22 09:09] (current) odroid [ODROID-VU8C] |
||
---|---|---|---|
Line 6: | Line 6: | ||
[[http://www.hardkernel.com/main/products/prdt_info.php?g_code=G147918565945|Where to buy]] | [[http://www.hardkernel.com/main/products/prdt_info.php?g_code=G147918565945|Where to buy]] | ||
+ | |||
+ | Assembly guide by ETA PRIME ! | ||
+ | {{youtube>0eSQ7iG_PlY?medium}} | ||
====== Specifications ====== | ====== Specifications ====== | ||
* 8-inch TFT-LCD | * 8-inch TFT-LCD | ||
Line 64: | Line 67: | ||
<code> | <code> | ||
path="/sys/class/gpio" | path="/sys/class/gpio" | ||
- | echo 234 > $path/export | ||
echo 214 > $path/export | echo 214 > $path/export | ||
- | echo out > $path/gpio234/direction | ||
echo out > $path/gpio214/direction | echo out > $path/gpio214/direction | ||
- | echo 0 > $path/gpio234/value | ||
echo 0 > $path/gpio214/value | echo 0 > $path/gpio214/value | ||
</code> | </code> | ||
Line 75: | Line 75: | ||
path="/sys/class/gpio" | path="/sys/class/gpio" | ||
echo 97 > $path/export | echo 97 > $path/export | ||
- | echo 108 > $path/export | ||
echo out > $path/gpio97/direction | echo out > $path/gpio97/direction | ||
- | echo out > $path/gpio108/direction | ||
echo 0 > $path/gpio97/value | echo 0 > $path/gpio97/value | ||
- | echo 0 > $path/gpio108/value | ||
</code> | </code> | ||
Line 90: | Line 87: | ||
</code> | </code> | ||
- | Add "vu8c backlight control" part in "/init.odroid.board.rc" as following. | + | Make or download the following shell script of the board model that you're using (C1 or C2)\\ |
+ | and copy it in **/system/bin/**.\\ | ||
+ | And make its permission executable. | ||
- | **ODROID-C2** | ||
<code> | <code> | ||
- | .... | + | # su |
- | ..... | + | # chmod 755 /system/bin/vu8c_backlight_c2_android.sh |
- | on boot | + | </code> |
- | setprop ro.radio.noril true | + | |
- | write /sys/class/freq_limit/limit 0 | + | |
- | write /sys/devices/system/cpu/cpu0/cpufreq/scaling_dflt_freq 1536000 | + | |
- | # Permissions for bluetooth$ | + | **ODROID-C2** |
- | setprop ro.bt.bdaddr_path "/efs/bluetooth/bt_addr"$ | + | <file sh vu8c_backlight_c2_android.sh> |
- | chown bluetooth bluetooth ro.bt.bdaddr_path$ | + | #!/bin/sh |
- | # vu8c backlight control | + | path="/sys/class/gpio" |
- | echo 234 > /sys/class/gpio/export | + | |
- | echo 214 > /sys/class/gpio/export | + | echo 214 > $path/export |
- | echo out > /sys/class/gpio/gpio234/direction | + | |
- | echo out > /sys/class/gpio/gpio214/direction | + | echo out > $path/gpio214/direction |
- | echo 0 > /sys/class/gpio/gpio234/value | + | echo 0 > $path/gpio214/value |
- | echo 0 > /sys/class/gpio/gpio214/value | + | |
+ | chown system system $path/gpio214/value | ||
+ | </file> | ||
+ | |||
+ | Now, you need to register the service to run this script automatically on boot time.\\ | ||
+ | Add the following lines in the end of /init.odroid.board.rc.\\ | ||
+ | Don't forget the root filesystem should be writable as aforementioned. | ||
+ | <code> | ||
+ | # su | ||
+ | # vi /init.odroid.board.rc | ||
..... | ..... | ||
..... | ..... | ||
+ | service vu8c_backlight /system/bin/vu8c_backlight_c2_android.sh | ||
+ | class main | ||
+ | user root | ||
+ | group root | ||
+ | oneshot | ||
</code> | </code> | ||
+ | |||
Then, reboot. | Then, reboot. | ||
<code> | <code> | ||
$ reboot | $ reboot | ||
</code> | </code> | ||
- | After reboot, you can confirm if the nodes are configured normally by checking "gpio214" and "gpio234". | + | After reboot, you can confirm if the nodes are configured normally by checking "gpio214". |
<code> | <code> | ||
$ ls /sys/class/gpio/ | $ ls /sys/class/gpio/ | ||
export | export | ||
gpio214 | gpio214 | ||
- | gpio234 | ||
gpiochip122 | gpiochip122 | ||
gpiochip136 | gpiochip136 | ||
Line 130: | Line 139: | ||
</code> | </code> | ||
+ | **ODROID-C1** | ||
+ | <file sh vu8c_backlight_c1_android.sh> | ||
+ | #!/bin/sh | ||
+ | path="/sys/class/gpio" | ||
+ | |||
+ | echo 97 > $path/export | ||
+ | |||
+ | echo out > $path/gpio97/direction | ||
+ | echo 0 > $path/gpio97/value | ||
+ | |||
+ | chown system system $path/gpio97/value | ||
+ | </file> | ||
+ | Now, you need to register the service to run this script automatically on boot time.\\ | ||
+ | Add the following lines in the end of /init.odroid.board.rc.\\ | ||
+ | Don't forget the root filesystem should be writable as aforementioned. | ||
- | **ODROID-C1** | ||
<code> | <code> | ||
+ | # su | ||
+ | # vi /init.odroid.board.rc | ||
..... | ..... | ||
..... | ..... | ||
- | on boot | + | service vu8c_backlight /system/bin/vu8c_backlight_c2_android.sh |
- | write /sys/class/freq_limit/limit 0 | + | class main |
- | ..... | + | user root |
- | ..... | + | group root |
- | #add for mali scaling mode set | + | oneshot |
- | chown system /sys/module/mali/parameters/scaling_mode | + | |
- | + | ||
- | # vu8c backlight control | + | |
- | echo 97 > /sys/class/gpio/export | + | |
- | echo 108 > /sys/class/gpio/export | + | |
- | echo out > /sys/class/gpio/gpio97/direction | + | |
- | echo out > /sys/class/gpio/gpio108/direction | + | |
- | echo 0 > /sys/class/gpio/gpio97/value | + | |
- | echo 0 > /sys/class/gpio/gpio108/value | + | |
- | ..... | + | |
- | ..... | + | |
</code> | </code> | ||
Then, reboot. | Then, reboot. | ||
Line 157: | Line 171: | ||
$ reboot | $ reboot | ||
</code> | </code> | ||
- | After reboot, you can confirm if the nodes are configured normally by checking "gpio97" and "gpio108". | + | After reboot, you can confirm if the nodes are configured normally by checking "gpio97". |
<code> | <code> | ||
$ ls /sys/class/gpio/ | $ ls /sys/class/gpio/ | ||
export | export | ||
gpio97 | gpio97 | ||
- | gpio108 | ||
...... | ...... | ||
...... | ...... | ||
Line 169: | Line 182: | ||
==== 3. Backlight control with PWM. ==== | ==== 3. Backlight control with PWM. ==== | ||
+ | |||
=== GPIO configuration === | === GPIO configuration === | ||
== ODROID-C2 == | == ODROID-C2 == | ||
- | cd /sys/class/gpio | + | <code> |
- | echo 214 | sudo tee export | + | cd /sys/class/gpio |
- | echo out | sudo tee gpio214/direction | + | echo 214 | sudo tee export |
- | echo 0 | sudo tee gpio214/value | + | echo out | sudo tee gpio214/direction |
- | echo 234 | sudo tee unexport | + | echo 0 | sudo tee gpio214/value |
+ | echo 234 | sudo tee unexport | ||
+ | </code> | ||
== ODROID-C1+/C1/C0 == | == ODROID-C1+/C1/C0 == | ||
- | cd /sys/class/gpio | + | <code> |
- | echo 97 | sudo tee export | + | cd /sys/class/gpio |
- | echo out | sudo tee gpio97/direction | + | echo 97 | sudo tee export |
- | echo 0 | sudo tee gpio97/value | + | echo out | sudo tee gpio97/direction |
- | echo 108 | sudo tee unexport | + | echo 0 | sudo tee gpio97/value |
+ | echo 108 | sudo tee unexport | ||
+ | </code> | ||
=== PWM configuration === | === PWM configuration === | ||
+ | |||
+ | == [Ubuntu] == | ||
Load PWM driver modules. | Load PWM driver modules. | ||
- | sudo modprobe pwm-meson | + | <code> |
- | sudo modprobe pwm-ctrl | + | sudo modprobe pwm-meson |
- | Ignore warning message of "pwm-ctrl pwm-ctrl: cannot export to PWM-1 : modprobe pwm-meson npwm=2" | + | sudo modprobe pwm-ctrl |
+ | </code> | ||
+ | Ignore warning message of "pwm-ctrl pwm-ctrl: cannot export to PWM-1 : modprobe pwm-meson npwm=2" \\ | ||
+ | Enable PWM via sysfs. \\ | ||
+ | <code> | ||
+ | echo 100000 | sudo tee /sys/devices/platform/pwm-ctrl/freq0 | ||
+ | echo 1 | sudo tee /sys/devices/platform/pwm-ctrl/enable0 | ||
+ | </code> | ||
+ | Set duty ratio (value can be 0 to 1023. Lower is brighter) | ||
+ | <code> | ||
+ | echo 1023 | sudo tee /sys/devices/platform/pwm-ctrl/duty0 | ||
+ | </code> | ||
+ | == [Android] == | ||
+ | Load PWM driver modules. | ||
+ | <code> | ||
+ | root@odroidc2:/ # insmod /system/lib/modules/pwm-meson.ko npwm="1" | ||
+ | root@odroidc2:/ # insmod /system/lib/modules/pwm-ctrl.ko | ||
+ | </code> | ||
Enable PWM via sysfs. | Enable PWM via sysfs. | ||
- | echo 100000 | sudo tee /sys/devices/platform/pwm-ctrl/freq0 | + | |
- | echo 1 | sudo tee /sys/devices/platform/pwm-ctrl/enable0 | + | <code> |
- | Set duty ratio (value can be 0 to 1023. Higher is brighter) | + | root@odroidc2:/ # cd /sys/devices/pwm-ctrl.43/ |
- | echo 1023 | sudo tee /sys/devices/platform/pwm-ctrl/duty0 | + | root@odroidc2:/sys/devices/pwm-ctrl.43 # ls |
+ | driver | ||
+ | duty0 | ||
+ | enable0 | ||
+ | freq0 | ||
+ | modalias | ||
+ | power | ||
+ | subsystem | ||
+ | uevent | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 # cat enable0 | ||
+ | PWM_0 : off | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 # echo 1 > enable0 | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 # cat enable0 | ||
+ | PWM_0 : on | ||
+ | </code> | ||
+ | Set default frequency. | ||
+ | <code> | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 # echo 100000 > freq0 | ||
+ | </code> | ||
+ | Set duty ratio.\\ | ||
+ | Value can be 0 to 1023 and lower value means brighter. | ||
+ | <code> | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 # cat duty0 | ||
+ | 0 | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 #echo 160 > duty0 | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 # cat duty0 | ||
+ | 160 | ||
+ | </code> | ||
==== 4. How to Set Auto Backlight On/Off by Monitor Status ==== | ==== 4. How to Set Auto Backlight On/Off by Monitor Status ==== |