在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenHarmony內核鼠標調試

OpenHarmony技術社區 ? 來源:OST開源開發者 ? 作者:OST開源開發者 ? 2023-04-17 10:16 ? 次閱讀

USB鼠標插入USB2不供電問題解決

①增加 IO 控制驅動

解壓 IO 控制驅動壓縮包:

io_zhouke.tar.gz
復制壓縮包的文件到 drivers/char/ 目錄下:
tarzxvfio_zhouke.tar.gz
cpio_zhouke/*drivers/char/-avf
注釋:這些文件可以在 3.1 LTS 版本中獲取,復制完之后 drivers/char 目錄結構如下。
-rw-rw-r--11000100013KDec1308:13id_card.cio:total28K-rw-rw-r--11000100044Jul1209:52Makefile-rw-rw-r--110001000138Dec1308:02built-in.a-rw-rw-r--1100010000Aug1706:41modules.order-rw-rw-r--1100010007.9KJul1209:52io.c-rw-rw-r--1100010002.6KJul1209:52io.h-rw-rw-r--1100010002.0KJul1209:52io_external.c-rw-rw-r--1100010004.0KJul1209:52io_stub.c
相應的修改Makefile文件,把驅動編譯到內核中
drivers/char/Makefile
#SPDX-License-Identifier:GPL-2.0#
#Makefileforthekernelcharacterdevicedrivers.#
obj-y+=jy.o
obj-y+=mcu.o
+obj-y+=io///增加此行obj-y+=mem.orandom.o
obj-$(CONFIG_TTY_PRINTK)+=ttyprintk.oobj-y+=misc.o
obj-$(CONFIG_ATARI_DSP56K)+=dsp56k.o
obj-$(CONFIG_VIRTIO_CONSOLE)+=virtio_console.oobj-$(CONFIG_RAW_DRIVER)+=raw.o
obj-$(CONFIG_MSPEC)+=mspec.o
obj-$(CONFIG_UV_MMTIMER)+=uv_mmtimer.oobj-$(CONFIG_IBM_BSR)+=bsr.o
obj-$(CONFIG_PRINTER)+=lp.o
obj-$(CONFIG_APM_EMULATION)+=apm-emulation.oobj-$(CONFIG_DTLK)+=dtlk.o
obj-$(CONFIG_APPLICOM)+=applicom.o
obj-$(CONFIG_SONYPI)+=sonypi.o
obj-$(CONFIG_HPET)+=hpet.o
obj-$(CONFIG_XILINX_HWICAP)+=xilinx_hwicap/obj-$(CONFIG_NVRAM)+=nvram.o
obj-$(CONFIG_TOSHIBA)+=toshiba.o
obj-$(CONFIG_DS1620)+=ds1620.o
obj-$(CONFIG_HW_RANDOM)+=hw_random/obj-$(CONFIG_PPDEV)+=ppdev.o
obj-$(CONFIG_NWBUTTON)+=nwbutton.o
obj-$(CONFIG_NWFLASH)+=nwflash.o
obj-$(CONFIG_SCx200_GPIO)+=scx200_gpio.oobj-$(CONFIG_PC8736x_GPIO)+=pc8736x_gpio.oobj-$(CONFIG_NSC_GPIO)+=nsc_gpio.o
obj-$(CONFIG_GPIO_TB0219)+=tb0219.o
obj-$(CONFIG_TELCLOCK)+=tlclk.o
obj-$(CONFIG_MWAVE)+=mwave/
obj-y+=agp/
obj-$(CONFIG_PCMCIA)+=pcmcia/
obj-$(CONFIG_HANGCHECK_TIMER)+=hangcheck-timer.oobj-$(CONFIG_TCG_TPM)+=tpm/
obj-$(CONFIG_PS3_FLASH)+=ps3flash.oobj-$(CONFIG_XILLYBUS)+=xillybus/
obj-$(CONFIG_POWERNV_OP_PANEL)+=powernv-op-panel.oobj-$(CONFIG_ADI)+=adi.o

②增加 USB 相關支持

修改 arch/arm64/configs/rockchip_linux_defconfig:

CONFIG_USB_ACM=yCONFIG_USB_SERIAL_QT2=y
重新編譯內核,此時 USB 可以正確識別鼠標生成對應的設備節點,但是鼠標還是不能正常工作。

內核崩潰問題解決

內核崩潰 log 如下:

[61.187709]kernelBUGatkernel/sched/walt.h:108![61.188143]Internalerror:Oops-BUG:0[#1]SMP[61.188573]Moduleslinkedin:
[61.188866]CPU:3PID:25Comm:migration/3Tainted:GW5.10.97#6[61.189541]Hardwarename:RockchipRK3399ExcavatorBoard(LinuxOpensource)(DT)[61.190214]pstate:80000085(NzcvdaIf-PAN-UAO-TCOBTYPE=--)
[61.190760]pc:dequeue_task_rt+0xf8/0xfc[61.191131]lr:dequeue_task_rt+0x68/0xfc[61.191497]sp:ffffffc011bd3ce0
[61.191797]x29:ffffffc011bd3ce0x28:0000000000000000[61.192281]x27:0000000000000000x26:0000000000000001[61.192765]x25:ffffffc011854000x24:ffffff800245cb00[61.193247]x23:ffffff80f779e440x22:ffffff800c799180[61.193729]x21:0000000000000000x20:ffffff800c798f00[61.194211]x19:ffffff80f779e440x18:00000000ffff1020[61.194693]x17:0000000000000000x16:00000000000000e0[61.195176]x15:ffffffc010645160x14:000000000000006c[61.195658]x13:ffffffc0100a2f8cx12:0000000000000000[61.196140]x11:0000000000000001x10:ffffffc010f7be28[61.196622]x9:0000000000000002x8:ffffffffffffffd8[61.197104]x7:6e6f636e69203a69x6:ffffffc011908110[61.197586]x5:0000000000000004x4:0000000000000001[61.198067]x3:0000000000000000x2:0000000000000000[61.198550]x1:0000000000000000x0:ffffff80f779e800[61.199034]Calltrace:[61.199264]dequeue_task_rt+0xf8/0xfc[61.199608]dequeue_task+0xbc/0x2c4[61.199935]deactivate_task+0x28/0x34[61.200278]rt_active_load_balance_cpu_stop+0x90/0x150[61.200749]cpu_stopper_thread+0xac/0x154[61.201119]smpboot_thread_fn+0x100/0x190[61.201491]kthread+0x11c/0x174[61.201787]ret_from_fork+0x10/0x30[61.202117]Code:f9400bf7a8c47bfdd50323bfd65f03c0(d4210000)[61.202662]---[endtrace72c26b1564636cfc]---[61.203076]Kernelpanic-notsyncing:Oops-BUG:Fatalexception[61.203639]SMP:stoppingsecondaryCPUs[62.370663]SMP:failedtostopsecondaryCPUs1,3-5[62.371105]CRU:[62.371291]00000000:0000004b0000130180000000000001080000000700007f000000000000000000[62.372052]00000020:0000004b0000110180000000000001080000000700007f000000000000000000[62.372812]00000040:0000006b000013018000031f000001080000000700007f000000000000000000[62.373573]00000060:0000008b000016048000031f000001080000000700007f000000000000000000
......

只需要修改 arch/arm64/configs/rockchip_linux_defconfig 文件,注釋掉以下內容即可(此修改包含第二部分 USB 支持):

CONFIG_PSI=y98c98
CONFIG_SCHED_RUNNING_AVG=y100c100
CONFIG_SCHED_CORE_CTRL=y139c139
CONFIG_SCHED_EAS=y4395c4395
#CONFIG_USB_ACMisnotset4433c4433
#CONFIG_USB_DWC3_HOSTisnotset4511c4511
#CONFIG_USB_SERIAL_QT2isnotset
注釋:紅色內容為修改后的文件。解決上邊崩潰問題只需要關閉 CONFIG_SCHED_EAS 一個配置即可。

①CONFIG_PSI

PSI (Pressure Stall Information) 機制,其核心思想是:如果有進程因為等待某種資源而 stall 了,那說明這個時候資源成了一個限制條件(生產資料的短缺導致了生產力的損失),那就應該適當增加分配給這個進程的資源。 在部署業務時,如果過于保守地追求安全,那資源往往得不到充分的利用,造成浪費,在成本上喪失競爭力。 而如果對資源進行過飽和使用(比如內存的 overcommit),又可能導致運行過程中的波動(spike),影響延遲敏感型的任務,甚至最終不得不走向 OOM。

所謂人盡其才,物盡其用,Linux 中 PSI 的目標就是讓硬件資源的效能最大化。

②CONFIG_SCHED_RUNNING_AVG

用于確定平均運行隊列的調度程序接口。

③CONFIG_SCHED_CORE_CTRL

OpenHarmony CPU 輕量級隔離特性介紹。 基本概念 CPU 輕量級隔離特性提供了根據系統負載和用戶配置來選擇合適的 CPU 進行動態隔離的能力。 內核會將被隔離 CPU 上的任務和中斷遷移到其他合適的 CPU 上執行,被隔離的 CPU 會進入 ilde 狀態,以此來達到功耗優化的目標。同時提供用戶的配置和查詢接口來實現更好的系統調優。 配置指導 使能 CPU 輕量級隔離特性:打開相關配置項及依賴。啟用 CPU 輕量級隔離,需要通過編譯內核時打開相應的配置項及依賴,相關 CONFIG 如下。

④CONFIG_SCHED_EAS

能量感知調度(EAS)使調度程序能夠預測其決策對 CPU 消耗的電量的影響。 EAS 依賴于 CPU的能量模型 (EM) 來為每個任務選擇省電的 CPU,同時要求對執行任務的吞吐量的影響最小。 EAS 僅在異構 CPU 架構上(例如 Arm big.LITTLE)上運行,因為這是通過調度器節省電量的效果最大的地方。

多模子系統服務加載錯誤

錯誤日志 log:

[pid=1][Init][ERROR][init_signal_handler.c:42]
Childprocessmultimodalinput(pid1351)exitwithsignal:11[pid=1][Init][INFO][init_signal_handler.c:51]
SigHandler,SIGCHLDreceived,Service:multimodalinputpid:1351uid:6696status:11.[pid=1][Init][INFO][init_common_service.c:497]
Reapservicemultimodalinput,pid1351.[pid=1][Init][ERROR][init_common_service.c:540]
Servicename=multimodalinput,crash4times,nomorestart.
修改foundation/multimodalinput/input/service/window_manager/src/input_windows_manager.cpp文件
diff--gita/service/window_manager/src/input_windows_manager.cppb/service/window_manager/src/iindex1be96f7..6146c01100644
---a/service/window_manager/src/input_windows_manager.cpp
+++b/service/window_manager/src/input_windows_manager.cpp@@-229,6+229,7@@
int32_tlogicX=mouseLocation.physicalX+displayInfo->x;int32_tlogicY=mouseLocation.physicalY+displayInfo->y;std::optionalwindowInfo;
+CHKPV(lastPointerEvent_);
if(lastPointerEvent_->GetPointerAction()==PointerEvent::POINTER_ACTION_MOVE&&lastPointerEvent_->GetPressedButtons().empty()){
windowInfo=GetWindowInfo(logicX,logicY);@@-396,6+397,7@@
{
CALL_INFO_TRACE;
std::optionalwindowInfo;
+CHKPV(lastPointerEvent_);
if(lastPointerEvent_->GetPointerAction()==PointerEvent::POINTER_ACTION_MOVE&&lastPointerEvent_->GetPressedButtons().empty()){
windowInfo=GetWindowInfo(lastLogicX_,lastLogicY_);

總結

經過以上修改之后,系統完全啟動進入桌面之后,輸入 power-shell setmode 602 命令,設置電源模式,防止系統重啟,鼠標可正常工作。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內核
    +關注

    關注

    3

    文章

    1382

    瀏覽量

    40424
  • usb
    usb
    +關注

    關注

    60

    文章

    7980

    瀏覽量

    266097
  • 鼠標
    +關注

    關注

    6

    文章

    591

    瀏覽量

    39914
  • 調試
    +關注

    關注

    7

    文章

    589

    瀏覽量

    34064
  • OpenHarmony
    +關注

    關注

    25

    文章

    3747

    瀏覽量

    16584

原文標題:OpenHarmony內核鼠標調試

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    [HarmonyOS][鴻蒙專欄開篇]快速入門OpenHarmony的LiteOS微內核

    ://openharmony.gitee.com]倉庫本專欄主要分析`OpenHarmony`內核的相關代碼:Cortex-A系列處理器內核:[kernel_liteos_a](htt
    發表于 09-14 19:40

    OpenHarmony LiteOS-A內核介紹

    簡介OpenHarmony LiteOS-A內核是基于Huawei LiteOS內核演進發展的新一代內核,Huawei LiteOS是面向IoT領域構建的輕量級物聯網操作系統。在IoT
    發表于 08-19 10:46

    OpenHarmony支持的系統類型及內核

    本文介紹OpenHarmony所不同的系統類型以及支持的內核。系統類型OpenHarmony支持以下幾種系統類型:輕量系統(迷你系統)給定的有限MCU類處理器例如Arm Cortex-M
    發表于 04-19 11:29

    OpenHarmony內核學習[1]--單獨編譯OpenHarmony標準系統內核

    內核是操作系統的核心,學習掌握OpenHarmony內核對于開發人員至關重要。筆者整理學習OpenHarmony標準系統內核筆記如下:閱讀本
    發表于 02-03 10:46

    OpenHarmony 內核鼠標調

    /configs/rockchip_linux_defconfig CONFIG_USB_ACM=y CONFIG_USB_SERIAL_QT2=y 1. 復制 重新編譯內核,此時USB可以正確識別鼠標生成
    發表于 05-11 09:23

    學會Linux內核調試方法!

    內核開發比用戶空間開發更難的一個因素就是內核調試艱難。內核錯誤往往會導致系統宕機,很難保留出錯時的現場。調試
    發表于 05-07 11:01 ?2370次閱讀

    Linux:QEMU調試內核的步驟

    Linux:QEMU調試內核的步驟
    的頭像 發表于 06-23 09:03 ?3194次閱讀
    Linux:QEMU<b class='flag-5'>調試</b><b class='flag-5'>內核</b>的步驟

    OpenHarmony內核是什么

    OpenHarmony源碼里面包含兩個內核代碼,分別是liteos_A和lite_M。
    的頭像 發表于 06-24 10:08 ?3658次閱讀

    嵌入式LINUX系統內核內核模塊調試

    嵌入式LINUX系統內核內核模塊調試(嵌入式開發和硬件開發)-嵌入式LINUX系統內核內核模塊調試
    發表于 07-30 13:55 ?10次下載
    嵌入式LINUX系統<b class='flag-5'>內核</b>和<b class='flag-5'>內核</b>模塊<b class='flag-5'>調試</b>

    OpenHarmony技術論壇:內核增強特性介紹

    OpenHarmony Tech Day·技術日》 技術論壇 內核增強特性介紹 用戶能夠根據性能來自由選擇Linux和LiteOS兩種不同的內核 Linux內核特性:QoS智能感知調
    的頭像 發表于 04-25 15:30 ?1067次閱讀
    <b class='flag-5'>OpenHarmony</b>技術論壇:<b class='flag-5'>內核</b>增強特性介紹

    OpenHarmony內核任務間IPC原理

    身為深開鴻 OS 內核開發師,我們常年深耕于 OpenHarmony內核開發,希望通過分享一些工作上的經驗,幫助大家掌握開源知識。
    的頭像 發表于 07-12 16:45 ?1800次閱讀

    OpenHarmony系統使用gdb調試init

    OpenHarmony適配新的開發板時,啟動流程init大概率會出現問題,其為內核直接拉起的第一個用戶態進程,問題定位手段只能依賴代碼走讀和增加調試打印,初始化過程中系統崩潰的問題就更難定位了
    的頭像 發表于 12-26 12:10 ?977次閱讀

    Linux內核調試的方式以及工具集錦

    內核總是那么捉摸不透, 內核也會犯錯, 但是調試卻不能像用戶空間程序那樣, 為此內核開發者為我們提供了一系列的工具和系統來支持內核
    的頭像 發表于 02-20 17:56 ?923次閱讀

    Linux內核調試方式以及工具總結

    內核總是那么捉摸不透, 內核也會犯錯, 但是調試卻不能像用戶空間程序那樣, 為此內核開發者為我們提供了一系列的工具和系統來支持內核
    的頭像 發表于 05-22 14:37 ?1519次閱讀
    Linux<b class='flag-5'>內核</b><b class='flag-5'>調試</b>方式以及工具總結

    OpenHarmony內核編程實戰

    編寫程序,讓開發板在串口調試工具中輸出”Hello,OpenHarmony“。▍操作在源碼的根目錄中有名為”applications“的文件,他存放著應用程序樣例
    的頭像 發表于 03-27 08:31 ?942次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>內核</b>編程實戰
    主站蜘蛛池模板: 最好免费高清视频观看韩国 | 123成人网| 888午夜不卡理论久久 | 亚洲怡红院在线观看 | 日本在线视频二区 | 特级片在线观看 | 国产高清a| 国产伦精品一区二区三区免费 | 国产一级特黄毛片 | 激情综合网站 | 欧美午夜精品一区二区三区 | 色综合久久综合欧美综合图片 | 网色视频 | 色老二精品视频在线观看 | 色婷婷在线观看视频 | 日本不卡在线观看免费v | 欧美精品色精品一区二区三区 | 1024 cc香蕉在线观看看中文 | 四虎院影永久在线观看 | 亚洲成人免费 | 免费看片你懂的 | 波多野结衣在线视频观看 | 农村女人的一级毛片 | 狠狠躁夜夜躁人人爽天天段 | 深爱五月激情五月 | 午夜精品一区二区三区在线观看 | 97影院午夜在线观看视频 | 成人伊人亚洲人综合网站222 | 狠狠干夜夜 | 日韩成a人片在线观看日本 日韩成人黄色 | 1024你懂的在线播放欧日韩 | 午夜视频1000部免费看 | 毛片观看网址 | 亚洲成人资源 | 精品午夜久久影视 | 天堂bt资源www在线 | 久久婷婷五综合一区二区 | 黄色一级视频欧美 | 加勒比日本道 | 成熟女性毛茸茸xx免费视频 | 黄黄网站 |