HDMI Resolutions testing

hello, i tryed 2 or 3 times, the same, please watch my logcat

Did you push the file TvSettings.odex to your VIM device?
You can check the shasum for that file.

# adb shell
# shasum /system/priv-app/TvSettings/TvSettings.apk
aee058a4d8539936d07760dae69f8f02c606001a  /system/priv-app/TvSettings/TvSettings.apk
# shasum /system/priv-app/TvSettings/oat/arm64/TvSettings.odex
8ad7fbe157fa3425443a244650db3465c69d3aac system/priv-app/TvSettings/oat/arm64/TvSettings.odex

Hello. I checked . Checksum the same. But shasum command work only like “sha1sum /system/…”

Hi Terry.
Do you have another version TvSettings.apk ? Thats not work. :frowning_face:

Or maybe you can make new ROM with working settings?


Hello Terry!
If you connect any monitor to Khadas via HDMI-VGA converter( I try 2 models, UGREEN and noname) in list of resolutions have only 1080p-60hz and 720p-60hz. How to solve this problem? How to can select others resolutions?

Hi, Gouwa.
How long to wait?

1 Like

Hi Terry, what news?

1 Like

if you have another HDMI in your tv try it, I change to another one, and it is feet the screen.

It has been more than 3 months, but the top product of khadas remains without full functionality. This is a big disappointment for users who changed the VIM1 to VIM2.

I am not satisfied with vim support for now, there are still bugs in Android, Linux is missing proper driver support, but things have improved, they are now much better than before.

If i have known all of this when i bought it, i wouldn’t have bought this board, but i am really hoping for proper Linux support with all the drivers needed, but i am afraid that we will need to wait a long time for it to come, if it ever comes.

I know it’s not only their fault, a lot of job is needed from Amlogic and Arm too, problem is that these two companies only support Android, there is no Linux support from them.

I am now using Android Nougat latest image, Nougat images before had a serious bug with systemui stopping, for the first time i can use this board to watch movies and other stuff, it was impossible to use it with previous images.

3 Likes

The VIM2 Vesa resolution patch is the same with VIM. In addition, you need to modify the kernel driver

--- a/drivers/amlogic/display/osd/osd_fb.c
+++ b/drivers/amlogic/display/osd/osd_fb.c
@@ -2581,12 +2581,10 @@ static int osd_probe(struct platform_device *pdev)
                        if (ret)
                                osd_log_info("not found display_size_default\n");
                        else {
-                               fb_def_var[index].xres = var_screeninfo[0];
-                               fb_def_var[index].yres = var_screeninfo[1];
-                               fb_def_var[index].xres_virtual =
-                                       var_screeninfo[2];
-                               fb_def_var[index].yres_virtual =
-                                       var_screeninfo[3];
+                               fb_def_var[index].xres = vinfo->width;
+                               fb_def_var[index].yres = vinfo->height;
+                               fb_def_var[index].xres_virtual = vinfo->width;
+                               fb_def_var[index].yres_virtual = vinfo->height*3;
                                fb_def_var[index].bits_per_pixel =
                                        var_screeninfo[4];
                                osd_log_info("init fbdev bpp is:%d\n",

Have a try. Thanks.

1 Like

Yes, I applied аll VESA patches. But if you do not disable the UI interface scaling, the image begins to twitch strongly.

— a/services/systemcontrol/DisplayMode.cpp
+++ b/services/systemcontrol/DisplayMode.cpp
@@ -1176,9 +1176,6 @@ void DisplayMode::setAutoSwitchFrameRate(int state) {
}

void DisplayMode::updateDefaultUI() {
— char outputmode[MODE_LEN] = {0};
— getBootEnv(UBOOTENV_OUTPUTMODE, outputmode);
— strcpy(mDefaultUI, outputmode);
if (!strncmp(mDefaultUI, “720”, 3)) {
fbset(1280,720,32);
mDisplayWidth= FULL_WIDTH_720;

Thank you, today I will try to apply new fix.

I check it. It does WORK!!!

SORRY, this is google translate…

You can download my ROM.
The resolutions are displayed in a full list regardless of the display.
“640x480p60hz”, “800x480p60hz”, “800x600p60hz”, “1024x600p60hz”, “1024x768p60hz”, “1280x800p60hz”, “1280x1024p60hz”, “1360x768p60hz”, “1366x768p60hz”, “1440x900p60hz”, “1600x900p60hz”, “1600x1200p60hz”, “1920x1200p60hz”.
List scroll down is possible with the keyboard only, mouse or touchscreen does not scroll through the list, be careful!

Аlso you can evaluate the hidden menu of the user interface editor in System UI Tuner (navigation Bar), which allows you to edit the navigation bar (NavBar) directly from the system. Basically, this menu is always hidden, but it happens that on some devices added from the factory. To activate the hidden menu, press and hold the gear in the shutter status bar, it will start to rotate quickly, after 5 seconds, release the gear and get into the menu More settings-system UI Tuner. In the status Bar submenu, you can turn off/on icons such as battery power or make a clock with seconds.


I modified the functionality of the system UI Tuner menu “navigation Bar”, I added keys: volume+ (vol up), volume - (voldown), turn off the sound (mute), previous song (prev), next song (next), music start/pause (play). Someone may object and say that using the “key Code” you can add any button and the picture on it, and why I added your button. So here is I answer: Yes, can be add, on the field 1-2-3 reboots, the button disappear and-button will become invisible. Although such a bug can be used to create a hidden button, it is enough to know its location and it will work. My buttons are considered system buttons and always work. We strongly recommend to modify navbar only when the screen resolution is 1920*1080, otherwise due to the peculiarities of the scale at other resolutions, the interface of the modifier is not removed from the screen, and the flipping function it does not support.

2 Likes

Hi, terry!

I build ROM with VESA resolutions for VIM1 and VIM2.
It work perfect. But it have some bug on 800x480 resolutions for VIM2 only (VIM1 has not this bug).

After first reboot, picture is well

But after second reboot:

third reboot:

fourth reboot again nice:

How to fix this bug on VIM2?

Can you provide some informations for me?

# adb shell
# cat /sys/class/display/mode
# wm size
# fbset
# getbootenv
# logcat
# dmesg
1 Like

Please tell:
Does ABD not work if I use:

arch/arm64/boot/dts/amlogic/kvim.dts
– controller-type = <2>
++ controller-type = <1>
device/khadas/kvim/init.amlogic.usb.rc
– insmod /system/lib/dwc_otg.ko

?

You can use wifi ADB and not usb ADB

# adb connect IP_ADDR
# adb shell
1 Like

Hello, Terry!
My name Alex, I testing DaveMF firmware for my carPC with Innolux AT065TN14 800x480 pixels (it`s my problem at the photos…)

My log:

C:\ADB>adb connect 192.168.0.105
connected to 192.168.0.105:5555

C:\ADB>adb devices
List of devices attached
192.168.0.105:5555      device

C:\ADB>adb shell
kvim2:/ $ su
kvim2:/ # cat /sys/class/display
tmp-mksh: cat: /sys/class/display: Is a directory
1|kvim2:/ # wm size
Physical size: 720x480
kvim2:/ # fbset

mode "720x480-0"
        # D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
        geometry 720 480 720 1440 32
        timings 0 0 0 0 0 0 0
        accel false
        rgba 8/0,8/8,8/16,8/24
endmode

kvim2:/ # getbootenv
[EnableSelinux]: [permissive]
[active_slot]: [_a]
[baudrate]: [115200]
[bcb_cmd]: [get_valid_slot;]
[boot_part]: [boot]
[bootcmd]: [run storeboot]
[bootdelay]: [1]
[cmdline_keys]: [if keyman init 0x1234; then if keyman read usid ${loadaddr} str
; then setenv bootargs ${bootargs} androidboot.serialno=${usid};setenv serial ${
usid};fi;kbi ethmac;setenv bootargs ${bootargs} mac=${eth_mac} androidboot.mac=$
{eth_mac};if keyman read deviceid ${loadaddr} str; then setenv bootargs ${bootar
gs} androidboot.deviceid=${deviceid};fi;fi;]
[combine_key]: [saradc open 0;if saradc get_in_range 0x0 0x1f; then echo Detect
function key;if gpio input GPIOAO_2; then echo Detect combine keys;store init 3;
 fi;fi;]
[cvbs_drv]: [0]
[cvbsmode]: [576cvbs]
[display_bpp]: [16]
[display_color_bg]: [0]
[display_color_fg]: [0xffff]
[display_color_index]: [16]
[display_height]: [1080]
[display_layer]: [osd1]
[display_width]: [1920]
[dtb_mem_addr]: [0x1000000]
[ethaddr]: [00:15:18:01:81:31]
[factory_reset_poweroff_protect]: [echo wipe_data=${wipe_data}; echo wipe_cache=
${wipe_cache};if test ${wipe_data} = failed; then run init_display; run storearg
s;if mmcinfo; then run recovery_from_sdcard;fi;if usb start 0; then run recovery
_from_udisk;fi;run recovery_from_flash;fi; if test ${wipe_cache} = failed; then
run init_display; run storeargs;if mmcinfo; then run recovery_from_sdcard;fi;if
usb start 0; then run recovery_from_udisk;fi;run recovery_from_flash;fi; ]
[fb_addr]: [0x3d800000]
[fb_height]: [1080]
[fb_width]: [1920]
[fdt_high]: [0x20000000]
[firstboot]: [0]
[gatewayip]: [10.18.9.1]
[hdmimode]: [800x480p60hz]
[hostname]: [arm_gxbb]
[init_display]: [osd open;osd clear;imgread pic logo bootup $loadaddr;bmp displa
y $bootup_offset;bmp scale]
[initargs]: [rootfstype=ramfs init=/init console=ttyS0,115200 no_console_suspend
 earlyprintk=aml-uart,0xc81004c0 ramoops.pstore_en=1 ramoops.record_size=0x8000
ramoops.console_size=0x4000 ]
[ipaddr]: [10.18.9.97]
[jtag]: [disable]
[loadaddr]: [1080000]
[netmask]: [255.255.255.0]
[outputmode]: [800x480p60hz]
[preboot]: [run bcb_cmd; run factory_reset_poweroff_protect;run upgrade_check;ru
n init_display;run storeargs;run combine_key;run upgrade_key;run vim2_check;run
wol_init;forceupdate;run switch_bootmode;]
[recovery_from_flash]: [setenv bootargs ${bootargs} aml_dt=${aml_dt} recovery_pa
rt={recovery_part} recovery_offset={recovery_offset};if itest ${upgrade_step} ==
 3; then if ext4load mmc 1:2 ${dtb_mem_addr} /recovery/dtb.img; then echo cache
dtb.img loaded; fi;if ext4load mmc 1:2 ${loadaddr} /recovery/recovery.img; then
echo cache recovery.img loaded; wipeisb; bootm ${loadaddr}; fi;else fi;if imgrea
d kernel ${recovery_part} ${loadaddr} ${recovery_offset}; then wipeisb; bootm ${
loadaddr}; fi;]
[recovery_from_sdcard]: [setenv bootargs ${bootargs} aml_dt=${aml_dt} recovery_p
art={recovery_part} recovery_offset={recovery_offset};if fatload mmc 0 ${loadadd
r} aml_autoscript; then autoscr ${loadaddr}; fi;if fatload mmc 0 ${loadaddr} rec
overy.img; then if fatload mmc 0 ${dtb_mem_addr} dtb.img; then echo sd dtb.img l
oaded; fi;wipeisb; bootm ${loadaddr};fi;]
[recovery_from_udisk]: [setenv bootargs ${bootargs} aml_dt=${aml_dt} recovery_pa
rt={recovery_part} recovery_offset={recovery_offset};if fatload usb 0 ${loadaddr
} aml_autoscript; then autoscr ${loadaddr}; fi;if fatload usb 0 ${loadaddr} reco
very.img; then if fatload usb 0 ${dtb_mem_addr} dtb.img; then echo udisk dtb.img
 loaded; fi;wipeisb; bootm ${loadaddr};fi;]
[recovery_offset]: [0]
[recovery_part]: [recovery]
[sdc_burning]: [sdc_burn ${sdcburncfg}]
[sdcburncfg]: [aml_sdc_burn.ini]
[serverip]: [10.18.9.113]
[storeargs]: [setenv bootargs ${initargs} androidboot.selinux=${EnableSelinux} l
ogo=${display_layer},loaded,${fb_addr},${outputmode} maxcpus=${maxcpus} vout=${o
utputmode},enable hdmimode=${hdmimode} cvbsmode=${cvbsmode} hdmitx=${cecconfig}
ddr_size=${ddr_size} cvbsdrv=${cvbs_drv}  pq=${pq} androidboot.firstboot=${first
boot} jtag=${jtag}; setenv bootargs ${bootargs} androidboot.hardware=amlogic;run
 cmdline_keys;setenv bootargs ${bootargs} androidboot.slot_suffix=${active_slot}
;]
[storeboot]: [if imgread kernel ${boot_part} ${loadaddr}; then bootm ${loadaddr}
; fi;run update;]
[switch_bootmode]: [get_rebootmode;if test ${reboot_mode} = factory_reset; then
run recovery_from_flash;else if test ${reboot_mode} = update; then run update;el
se if test ${reboot_mode} = cold_boot; then else if test ${reboot_mode} = fastbo
ot; then fastboot;fi;fi;fi;fi;]
[try_auto_burn]: [update 700 750;]
[update]: [run usb_burning; run sdc_burning; if mmcinfo; then run recovery_from_
sdcard;fi;if usb start 0; then run recovery_from_udisk;fi;run recovery_from_flas
h;]
[upgrade_check]: [echo upgrade_step=${upgrade_step}; if itest ${upgrade_step} ==
 3; then run init_display; run storeargs; run update;else fi;]
[upgrade_key]: [if gpio input GPIOAO_2; then echo detect upgrade key; sleep 3;if
 gpio input GPIOAO_2; then run update; fi;fi;]
[upgrade_step]: [2]
[usb_burning]: [update 1000]
[vim2_check]: [saradc open 1;if saradc get_in_range 0x1a0 0x220; then echo Produ
ct checking: pass!;else if saradc get_in_range 0x0 0x1cf; then echo Product chec
king: fail!; sleep 5; reboot;fi;fi;]
[wipe_cache]: [successful]
[wipe_data]: [successful]
[wol_init]: [kbi powerstate;kbi trigger wol r;setenv bootargs ${bootargs} wol_en
able=${wol_enable};if test ${power_state} = 1; then kbi trigger wol w 1;gpio set
 GPIODV_2;fi;]
[1080p60hz_deepcolor]: [rgb,8bit]
[colorattribute]: [444,8bit]
[1080p_x]: [0]
[1080p_y]: [0]
[1080p_w]: [1920]
[1080p_h]: [1080]
[is.bestmode]: [false]
[800x480p60hz_deepcolor]: [444,8bit]
[800x480p60hz_x]: [0]
[800x480p60hz_y]: [0]
[800x480p60hz_w]: [800]
[800x480p60hz_h]: [480]
kvim2:/ #

And logcat file in my cloud: logcat-full.txt
Thanks, Regards, Alex.

1 Like

Thank you for test!
:+1: