Поддержка русскоязычных пользователей

Хорошо, конкретные вопросы:

  1. Что будет с ОС на eMMC (Андроид) при установке OOWOW (с SD-card для Khadas VIM3) - она останется или же потребуется переустановка?
  2. Бэкап. Хотелось бы подробностей: Как делается бэкап, куда он пишется (на eMMC или же SD-card), возможно ли самому выбрать место для сохранения бэкапа. Делается ли сжатие образа при бэкапе, жаловались что “предыдущая версия” (Krescue) не умела сжимать сохраняемый образ.
    Хотелось бы Ответов ))

мы не устанавливаем oowow для vim3, пы просто запускаем его с SD карты

ЗЫ: почитайте внимательно что я написал выше

просто запустите oowow и посмотрите

бэкап делается с EMMC на SD или на USB или в сетевой диск

[quote=“hyphop, post:452, topic:353”]
мы не устанавливаем oowow для vim3, пы просто запускаем его с SD карты[/quote]
Тогда какой в этом этом смысл? SD карта в vim3 располагается настолько неудобоваримо, что все “внешние манипуляции с ней” просто… Я даже и не знаю, как написать. Тогда уж я лучше вынув карту (всё равно ведь вынимать придётся?) скопирую то, что мне нужно (в моём случае бэкап системы CoreELEC) на любом стороннем ПК.

[quote=“hyphop, post:452, topic:353”]
ЗЫ: почитайте внимательно что я написал выше[/quote]
Я читал. Просто не сразу понял.

[quote=“hyphop, post:453, topic:353”]
бэкап делается с EMMC на SD или на USB или в сетевой диск[/quote]
Т.е. в моём, конкретном случае, OOWOW мне даст возможность:

  1. Сделать бэкап ОС (Андроид) с eMMC. Мне, в принципе, пока это не очень-то и нужно - Андроид у меня до сих пор “чистый”, я его практически не использую.
  2. Установить CoreELEC в eMMC - это уже интереснее, стоит об этом подумать. К тому же, можно будет перед этим сделать бэкап с Андроид, и при случае всё вернуть назад, если я правильно всё понял.
    Остаётся один вопрос, именно про бэкап: а как OOWOW делает бэкап? Посекторно или же копируется только данные? Бэкап сжимается? Вы просто не ответили на вопрос о сжатии. Например, если делать бэкап того же Андроид на eMMC, сколько он займёт в Мб?

Бэкап делается для всего диска как есть посекторно и сжимается

мы запускаем oowow кратковременно мы ее не устанавливаем, а устанавливаем другую системы на ваш выбор, ну или делаем другой сервис как backup итд после чего убираем sd диск и пользуемся уже установленной системой

вот тут есть немного OOWOW FAQ [Khadas Docs]
задавайте вопросы что не понятно, я попытаюсь ответить заодно пополним FAQ

[quote=“hyphop, post:456, topic:353”]
мы запускаем oowow кратковременно мы ее не устанавливаем, а устанавливаем другую системы на ваш выбор, ну или делаем другой сервис как backup итд после чего убираем sd диск и пользуемся уже установленной системой[/quote]
Я понял. В случае с VIM3 это всё крайне неудобно ((. Да и вообще, логичнее IMHO, было бы сделать что-то типа TWRP и “оттуда уже плясать”…

Если только c USB этот OOWOW запускать… Но тоже не факт, что стартует (OOWOW) без “изъятия” SD карты - так-то у CoreELEC приоритет!
Моя задача, в общем, состоит в том чтобы SD карту лишний раз не “дёргать” - несподручно это…
А в USB у меня Hub вставлен - ну, туда-то “сам бог велел”. Вот только как сделать, чтобы оно с USB в приоритете загружалось? Может, комбинация джамперов есть, как для SD карты?

Добрый день,
подскажите пожалуйста какие linux дистрибутивы (кроме Android9) для VIM3 имеют поддержку экрана TS050?

Можно ли самостоятельно включить поддержку на Armbian?
Также интересует поддержка тачпанели в этих дистрибутивах, где она есть?

Если ли материалы по этой теме?
Можно ли в linux снимать координаты нажатий на экран touchscreen?
Если подскажите ссылки на материалы буду премного благодарен, заранее спасибо :slight_smile:

ктонить сумел собрать и запустить андроид на kvim1s с s905y4 или s905w2 ?

Всем привет, не нашел в последних 32/64 битных прошивках модуля ядра, отвечающего за работу с USB HID MULTITOUCH. Может быть, у кого то есть опыт подключения USB тачскрина к VIM?

Ядро андроида собрано с CONFIG_HID_MULTITOUCH=y. Что выдает dmesg при подключении тачскрина?

Вот мой девайс:

kvim3:/ $ lsusb
Bus 001 Device 006: ID 10c4:81b9

VID/PID есть в hid-ids.h:

#define USB_VENDOR_ID_CYGNAL		0x10c4
#define USB_DEVICE_ID_CYGNAL_RADIO_SI470X	0x818a
#define USB_DEVICE_ID_FOCALTECH_FTXXXX_MULTITOUCH	0x81b9
#define USB_DEVICE_ID_CYGNAL_CP2112	0xea90

dmesg при подключении:

[   86.582375] <6>[   86.582375@0] input: hmnvdk IIC2HID as /devices/platform/ff500000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1.4/1-1.4.4/1-1.4.4:1.0/0003:10C4:81B9.0002/input/input8
[   86.593617] <6>[   86.593617@0] hid-multitouch 0003:10C4:81B9.0002: input,hidraw1: USB HID v1.11 Device [hmnvdk IIC2HID] on usb-xhci-hcd.0.auto-1.4.4/input0

dumpsys input:


  Device 9: hmnvdk IIC2HID
    Generation: 49
    IsExternal: true
    HasMic:     false
    Sources: 0x00001002
    KeyboardType: 0
    Motion Ranges:
      X: source=0x00001002, min=0.000, max=1079.000, flat=0.000, fuzz=0.000, resolution=7.906
      Y: source=0x00001002, min=0.000, max=1919.000, flat=0.000, fuzz=0.000, resolution=8.433
      PRESSURE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
      SIZE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
      TOUCH_MAJOR: source=0x00001002, min=0.000, max=2202.907, flat=0.000, fuzz=0.000, resolution=0.000
      TOUCH_MINOR: source=0x00001002, min=0.000, max=2202.907, flat=0.000, fuzz=0.000, resolution=0.000
      TOOL_MAJOR: source=0x00001002, min=0.000, max=2202.907, flat=0.000, fuzz=0.000, resolution=0.000
      TOOL_MINOR: source=0x00001002, min=0.000, max=2202.907, flat=0.000, fuzz=0.000, resolution=0.000
      ORIENTATION: source=0x00001002, min=-1.571, max=1.571, flat=0.000, fuzz=0.000, resolution=0.000
    Touch Input Mapper (mode - direct):
      Parameters:
        GestureMode: multi-touch
        DeviceType: touchScreen
        AssociatedDisplay: hasAssociatedDisplay=true, isExternal=true, displayId=''
        OrientationAware: true
      Raw Touch Axes:
        X: min=0, max=2048, flat=0, fuzz=0, resolution=9
        Y: min=0, max=2048, flat=0, fuzz=0, resolution=15
        Pressure: unknown range
        TouchMajor: min=0, max=255, flat=0, fuzz=0, resolution=10
        TouchMinor: min=0, max=255, flat=0, fuzz=0, resolution=10
        ToolMajor: unknown range
        ToolMinor: unknown range
        Orientation: min=0, max=1, flat=0, fuzz=0, resolution=0
        Distance: unknown range
        TiltX: unknown range
        TiltY: unknown range
        TrackingId: min=0, max=65535, flat=0, fuzz=0, resolution=0
        Slot: min=0, max=4, flat=0, fuzz=0, resolution=0
      Calibration:
        touch.size.calibration: geometric
        touch.pressure.calibration: none
        touch.orientation.calibration: interpolated
        touch.distance.calibration: none
        touch.coverage.calibration: none
      Affine Transformation:
        X scale: 1.000
        X ymix: 0.000
        X offset: 0.000
        Y xmix: 0.000
        Y scale: 1.000
        Y offset: 0.000
      Viewport: displayId=0, orientation=1, logicalFrame=[0, 0, 1080, 1920], physicalFrame=[0, 0, 1080, 1920], deviceSize=[1080, 1920]
      SurfaceWidth: 1920px
      SurfaceHeight: 1080px
      SurfaceLeft: 0
      SurfaceTop: 0
      SurfaceOrientation: 1
      Translation and Scaling Factors:
        XTranslate: 0.000
        YTranslate: 0.000
        XScale: 0.937
        YScale: 0.527
        XPrecision: 1.067
        YPrecision: 1.897
        GeometricScale: 0.732
        PressureScale: 0.000
        SizeScale: 0.004
        OrientationScale: 1.571
        DistanceScale: 0.000
        HaveTilt: false
        TiltXCenter: 0.000
        TiltXScale: 0.000
        TiltYCenter: 0.000
        TiltYScale: 0.000
      Last Raw Button State: 0x00000000
      Last Raw Touch: pointerCount=0
      Last Cooked Button State: 0x00000000
      Last Cooked Touch: pointerCount=0
      Stylus Fusion:
        ExternalStylusConnected: false
        External Stylus ID: -1
        External Stylus Data Timeout: 9223372036854775807
      External Stylus State:
        When: 9223372036854775807
        Pressure: 0.000000
        Button State: 0x00000000
        Tool Type: 0
  Configuration:
    ExcludedDeviceNames: []
    VirtualKeyQuietTime: 0.0ms
    PointerVelocityControlParameters: scale=1.000, lowThreshold=500.000, highThreshold=3000.000, acceleration=3.000
    WheelVelocityControlParameters: scale=1.000, lowThreshold=15.000, highThreshold=50.000, acceleration=4.000
    PointerGesture:
      Enabled: true
      QuietInterval: 100.0ms
      DragMinSwitchSpeed: 50.0px/s
      TapInterval: 150.0ms
      TapDragInterval: 300.0ms
      TapSlop: 20.0px
      MultitouchSettleInterval: 100.0ms
      MultitouchMinDistance: 15.0px
      SwipeTransitionAngleCosine: 0.3
      SwipeMaxWidthRatio: 0.2
      MovementSpeedRatio: 0.8
      ZoomSpeedRatio: 0.3
      Viewports:
        ViewportInternal:
          Viewport: displayId=0, orientation=1, uniqueId='', logicalFrame=[0, 0, 1080, 1920], physicalFrame=[0, 0, 1080, 1920], deviceSize=[1080, 1920]
        ViewportExternal:
          Viewport: displayId=0, orientation=1, uniqueId='', logicalFrame=[0, 0, 1080, 1920], physicalFrame=[0, 0, 1080, 1920], deviceSize=[1080, 1920]
        ViewportVirtual:

Input Dispatcher State:
  DispatchEnabled: 1
  DispatchFrozen: 0
  FocusedApplication: name='AppWindowToken{930e8f8 token=Token{dd7385b ActivityRecord{6df6b6a u0 com.android.launcher3/.Launcher t2}}}', dispatchingTimeout=5000.000ms
  FocusedWindow: name='Window{c255a2 u0 com.android.launcher3/com.android.launcher3.Launcher}'
  TouchStates: <no displays touched>
  Windows:
    0: name='Window{bd86666 u0 NavigationBar}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x21840068, type=0x000007e3, layer=0, frame=[0,1824][1080,1920], scale=1.000000, touchableRegion=[0,1824][1080,1920], inputFeatures=0x00000000, ownerPid=3570, ownerUid=10031, dispatchingTimeout=5000.000ms
    1: name='Window{b685e4e u0 StatusBar}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x81840048, type=0x000007d0, layer=0, frame=[0,0][1080,48], scale=1.000000, touchableRegion=[0,0][1080,48], inputFeatures=0x00000000, ownerPid=3570, ownerUid=10031, dispatchingTimeout=5000.000ms
    2: name='Window{d517f3c u0 AssistPreviewPanel}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01000118, type=0x000007f1, layer=0, frame=[0,1920][1080,1920], scale=1.000000, touchableRegion=<empty>, inputFeatures=0x00000000, ownerPid=3570, ownerUid=10031, dispatchingTimeout=5000.000ms
    3: name='Window{9f04731 u0 DockedStackDivider}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x21840028, type=0x000007f2, layer=0, frame=[0,0][0,0], scale=1.000000, touchableRegion=[-96,0][96,96], inputFeatures=0x00000000, ownerPid=3570, ownerUid=10031, dispatchingTimeout=5000.000ms
    4: name='Window{c255a2 u0 com.android.launcher3/com.android.launcher3.Launcher}', displayId=0, paused=false, hasFocus=true, hasWallpaper=true, visible=true, canReceiveKeys=true, flags=0x81910120, type=0x00000001, layer=0, frame=[0,0][1080,1920], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000000, ownerPid=4168, ownerUid=10015, dispatchingTimeout=5000.000ms
    5: name='Window{2115bed u0 com.android.systemui.ImageWallpaper}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x00010318, type=0x000007dd, layer=0, frame=[0,0][1243,1920], scale=1.000000, touchableRegion=[0,0][1243,1920], inputFeatures=0x00000000, ownerPid=3570, ownerUid=10031, dispatchingTimeout=5000.000ms
  MonitoringChannels:
    0: 'WindowManager (server)'
  RecentQueue: length=10
    DeviceResetEvent(deviceId=4), policyFlags=0x00000000, age=961119.6ms
    DeviceResetEvent(deviceId=3), policyFlags=0x00000000, age=961119.6ms
    DeviceResetEvent(deviceId=1), policyFlags=0x00000000, age=961119.6ms
    ConfigurationChangedEvent(), policyFlags=0x00000000, age=961119.6ms
    DeviceResetEvent(deviceId=8), policyFlags=0x00000000, age=887691.0ms
    ConfigurationChangedEvent(), policyFlags=0x00000000, age=887691.0ms
    DeviceResetEvent(deviceId=8), policyFlags=0x00000000, age=610267.4ms
    ConfigurationChangedEvent(), policyFlags=0x00000000, age=610267.4ms
    DeviceResetEvent(deviceId=9), policyFlags=0x00000000, age=598895.1ms
    ConfigurationChangedEvent(), policyFlags=0x00000000, age=598895.1ms
  PendingEvent: <none>
  InboundQueue: <empty>
  ReplacedKeys: <empty>
  Connections:
    0: channelName='WindowManager (server)', windowName='monitor', status=NORMAL, monitor=true, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    1: channelName='9f04731 DockedStackDivider (server)', windowName='Window{9f04731 u0 DockedStackDivider}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    2: channelName='c255a2 com.android.launcher3/com.android.launcher3.Launcher (server)', windowName='Window{c255a2 u0 com.android.launcher3/com.android.launcher3.Launcher}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    3: channelName='b685e4e StatusBar (server)', windowName='Window{b685e4e u0 StatusBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    4: channelName='pip_input_consumer (server)', windowName='?', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    5: channelName='bd86666 NavigationBar (server)', windowName='Window{bd86666 u0 NavigationBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    6: channelName='2115bed com.android.systemui.ImageWallpaper (server)', windowName='Window{2115bed u0 com.android.systemui.ImageWallpaper}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    7: channelName='d517f3c AssistPreviewPanel (server)', windowName='Window{d517f3c u0 AssistPreviewPanel}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
  AppSwitch: not pending
  Configuration:
    KeyRepeatDelay: 50.0ms
    KeyRepeatTimeout: 500.0ms

Уже неплохо. Устройство опознается. А что происходит в ответ на команду
getevent /dev/input/event9
при касании экрана?

Поигрался тут ещё с Oowow; нашёлся добрый человек в соседствующем форуме, который подсказал особенности его (Oowow) использования - в принципе, очень понравилось. Возможности в качестве “ремонтной утилиты” воистину безграничные. Одно пожелание: хотелось бы ещё в качестве дополнительной возможности, умение загружать ОС из самого Oowow. Особенно это актуально в случае приоритета загрузки из SPI, а надо, скажем загрузить CoreElec из eMMC.

Всем привет! Пользуюсь Vim 3 Pro, решил сделать кастомную модель для Yolov5s (Забавный факт, у них на сайте веса для этой модели не работают). Так вот, тк я не хочу переписывать нейронку на с++ и не понимаю как это делать, я написал её на питоне, сделал в точности такую же архитектуру (Переделал модель ультралитиков), на питоновской Yolo всё работает, но после конвертации и квантования на Khadas-e он ругается на различие размерностей:

Но я хоть убей не понимаю что не так. Всё сделал по инструкции.
Самое забавное, что одну из первых моделей, которая была вооооообще неверно сделана, он принимает на ура и я тогда вообще не понимаю что и как и почему.

Кто сможет тут помочь?(