范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

树莓派4B运行鸿蒙系统增加HDF模块

  前言
  HDF驱动子系统是OpenHarmony重要的特色功能之一,其主要的功能是实现驱动程序在多内核多平台的物联网环境,实现一次驱动开发,多端部署。之前移植OHOS3.0使用了传统的linux驱动,比较遗憾,今天尝试将HDF驱动子系统加入编译框架。开始前先了解几个名词。
  HCS(HDF Configuration Source)是 HDF 驱动框架的配置描述源码,JSON存储。
  HC-GEN(HDF Configuration Generator)是 HCS 配置转换工具,可以将 HDF 配置文件HCS转换为二进制HCB
  HCB(HDF Configuration Binary)二进制文件,驱动可使用 HDF 框架提供的配置解析接口获取配置。 内核打补丁
  如何在内核加入HDF驱动,linux内核下主要实现是下面两个目录:
  driversadapterkhdflinux 和 driversframework
  这两个目录是通过链接的方式加入到内核编译的,流程如下
  kernellinuxbuildkernel.mk:75 $(hide) cd $(KERNEL_SRC_TMP_PATH) && patch -p1 < $(HDF_PATCH_FILE) && patch -p1 < $(DEVICE_PATCH_FILE)
  可以参考3516的HDF补丁:kernellinuxpatcheslinux-5.10hi3516dv300_patchhdf.patch patching file drivers/Kconfig patching file drivers/Makefile patching file drivers/hdf/Makefile patching symbolic link drivers/hdf/framework patching symbolic link drivers/hdf/khdf patching symbolic link include/hdf  # 添加到linux内核的补丁 drivers/hdf/framework -> /drivers/framework/        # 驱动子系统驱动框架、配置管理、配置解析、驱动通用框架模型、硬件通用平台能力接口等 drivers/hdf/khdf -> /drivers/adapter/khdf/linux/    # 在linux内核中部署OpenHarmony驱动框架 drivers/hdf/Makefile                                # 由hdf.patch提供 include/hdf -> /drivers/framework/include/          # 驱动框架对外提供能力的头文件内核配置
  只是打上补丁还不行,还得在内核的编译配置文件中加入HDF选项。最开始的做法就是参考3516的配置选择,但是发现有些配置会导致编译失败。测试发现下面的配置是可以编译成功的。 [*] Enable HDF manager                      (2)   Set HDF support platform              [*]   Enable HDF platform driver            [*]     Enable HDF platform mipi dsi driver [*]     Enable HDF platform gpio driver     [*]     Enable HDF platform i2c driver      [*]     Enable HDF platform watchdog driver [*] hi35xx pwm driver                       [*] Enable HDF platform pwm driver          [*] Enable HDF platform uart driver         [ ] Enable HDF platform sdio driver         [ ] Enable HDF platform emmc driver         [*] Enable HDF platform mmc driver          [*] Enable HDF platform spi driver          [*] Enable HDF platform rtc driver          [*] Enable HDF linux test                   [*] Enable HDF Display driver               [ ]   Enable HDF Lcdkit driver              [*]   Enable HDF Icn9700 driver             [ ]   Enable HDF St7789 driver              [*] Enable HDF input driver                 [*]   Enable HDF tp 5P5 GT911 driver        [*]   Enable HDF tp 2P35 FT6236 driver      [ ] Enable HDF wifi                         [ ] Enable HDF Bluetooth                    [*] Enable HDF sensor driver                [ ]   Enable HDF accel sensor driver        [ ]   Enable HDF gyro sensor driver         [ ]   Enable HDF barometer sensor driver    [ ]   Enable HDF hall sensor driver         [*] Enable HDF storage driver               [ ] Enable HDF USB PNP Notify driver        [ ] Enable F_GENERIC driver                 [ ] Enable HDF Audio driver                 [*] Enable HDF vibrator driver              [*]   Enable HDF linear vibrator driver     [ ] Enable HDF dsoftbus driver  CONFIG_DRIVERS_HDF=y CONFIG_HDF_SUPPORT_LEVEL=2 CONFIG_DRIVERS_HDF_PLATFORM=y CONFIG_DRIVERS_HDF_PLATFORM_MIPI_DSI=y CONFIG_DRIVERS_HDF_PLATFORM_GPIO=y CONFIG_DRIVERS_HDF_PLATFORM_I2C=y CONFIG_DRIVERS_HDF_PLATFORM_WATCHDOG=y CONFIG_PWM_HI35XX=y CONFIG_DRIVERS_HDF_PLATFORM_PWM=y CONFIG_DRIVERS_HDF_PLATFORM_UART=y # CONFIG_DRIVERS_HDF_PLATFORM_SDIO is not set # CONFIG_DRIVERS_HDF_PLATFORM_EMMC is not set CONFIG_DRIVERS_HDF_PLATFORM_MMC=y CONFIG_DRIVERS_HDF_PLATFORM_SPI=y CONFIG_DRIVERS_HDF_PLATFORM_RTC=y CONFIG_DRIVERS_HDF_TEST=y CONFIG_DRIVERS_HDF_DISP=y # CONFIG_DRIVERS_HDF_LCDKIT is not set CONFIG_DRIVERS_HDF_LCD_ICN9700=y # CONFIG_DRIVERS_HDF_LCD_ST7789 is not set CONFIG_DRIVERS_HDF_INPUT=y CONFIG_DRIVERS_HDF_TP_5P5_GT911=y CONFIG_DRIVERS_HDF_TP_2P35_FT6236=y # CONFIG_DRIVERS_HDF_WIFI is not set # CONFIG_DRIVERS_HDF_BT is not set CONFIG_DRIVERS_HDF_SENSOR=y # CONFIG_DRIVERS_HDF_SENSOR_ACCEL is not set # CONFIG_DRIVERS_HDF_SENSOR_GYRO is not set # CONFIG_DRIVERS_HDF_SENSOR_BAROMETER is not set # CONFIG_DRIVERS_HDF_SENSOR_HALL is not set CONFIG_DRIVERS_HDF_STORAGE=y # CONFIG_DRIVERS_HDF_USB_PNP_NOTIFY is not set # CONFIG_DRIVERS_HDF_USB_F_GENERIC is not set # CONFIG_DRIVERS_HDF_AUDIO is not set CONFIG_DRIVERS_HDF_VIBRATOR=y CONFIG_DRIVERS_HDF_VIBRATOR_LINEAR=y # CONFIG_DRIVERS_HDF_DSOFTBUS is not set # end of Device Drivers
  [*] Enable HDF linux test 是需要设置的,如果没有设置CONFIG_DRIVERS_HDF_TEST,目录结构就出问题了,会报这样的错误。 drivers/hdf/khdf/Makefile:22: PRODUCT_PATH=vendor/raspberrypi/RPI4B scripts/Makefile.build:44: drivers/hdf/khdf/../../../../vendor/raspberrypi/RPI4B/hdf_config/Makefile: No such file or directory make[5]: *** No rule to make target "drivers/hdf/khdf/../../../../vendor/raspberrypi/RPI4B/hdf_config/Makefile".  Stop. CC [M]  drivers/net/wireless/mac80211_hwsim.o make[4]: *** [scripts/Makefile.build:497: drivers/hdf/khdf/../../../../vendor/raspberrypi/RPI4B/hdf_config] Error 2 make[3]: *** [scripts/Makefile.build:497: drivers/hdf/khdf] Error 2 make[2]: *** [scripts/Makefile.build:497: drivers/hdf] Error 2 make[2]: *** Waiting for unfinished jobs....
  下面3个选项要关闭,不然会报下面的错误。
  [ ] Enable HDF platform sdio driver [ ] Enable HDF platform emmc driver [ ] Enable HDF wifi drivers/../../../../../../drivers/adapter/khdf/linux/platform/sdio/sdio_adapter.o: In function `Hi35xxLinuxSdioRescan": sdio_adapter.c:(.text+0x20): undefined reference to `hisi_sdio_rescan" sdio_adapter.c:(.text+0x34): undefined reference to `himci_get_mmc_host" drivers/../../../../../../drivers/adapter/khdf/linux/platform/sdio/sdio_adapter.o: In function `Hi35xxLinuxSdioFindFunc": sdio_adapter.c:(.text+0xc84): undefined reference to `himci_get_mmc_host" sdio_adapter.c:(.text+0xc9c): undefined reference to `himci_get_mmc_host" sdio_adapter.c:(.text+0xcb4): undefined reference to `himci_get_mmc_host" drivers/../../../../../../drivers/adapter/khdf/linux/platform/emmc/emmc_adapter.o: In function `Hi35xxLinuxEmmcBind": emmc_adapter.c:(.text+0x214): undefined reference to `himci_get_mmc_host" drivers/../../../../../../device/hisilicon/drivers/wifi/driver/hi3881/oal/oal_sdio_host.o: In function `sdio_card_detect_change": oal_sdio_host.c:(.text+0x2ce8): undefined reference to `hisi_sdio_rescan" make[1]: *** [Makefile:1179: vmlinux] Error 1 make[1]: Leaving directory "/home/liangzili/ohos/out/KERNEL_OBJ/kernel/src_tmp/linux-5.10" make: *** [kernel.mk:80: /home/liangzili/ohos/out/KERNEL_OBJ/kernel/src_tmp/linux-5.10/arch/arm/boot/zImage] Error 2 ninja: build stopped: subcommand failed.编译过程
  为了方便测试可以单独进行内核编译,比如我的编译命令是这样的。 ./build.sh --product-name RPI4B --ccache --build-target raspberrypi_products
  可以分析下HDF这部分的编译过程。
  linux-5.10drivershdfMakefile,hdf.patch会添加这个Makefile,将khdf文件夹加入编译。 obj-$(CONFIG_DRIVERS_HDF) += khdf/
  linux-5.10drivershdfkhdfMakefile export HDF_ROOT := drivers/hdf obj-$(CONFIG_DRIVERS_HDF)  += osal/ obj-$(CONFIG_DRIVERS_HDF)  += network/ obj-$(CONFIG_DRIVERS_HDF)  += config/  SUPPORT_LEVEL_STD_H := $(shell [ "$(CONFIG_HDF_SUPPORT_LEVEL)" -ge 2 ] && echo true)  $(warning PRODUCT_PATH=$(PRODUCT_PATH))     # 会检查PRODUCT_PATH变量 ifeq ($(PRODUCT_PATH),) $(error PRODUCT_PATH not) endif  # 这里有条注释指明了*.hcs配置文件的存放路径 # for L2+, hcs config should in vendor/product_company/product_name/config/khdf ifeq ($(SUPPORT_LEVEL_STD_H), true) SUB_DIR:=khdf/ endif  # HDF test的配置会使hcs目录结构不一样,我当时没有设置CONFIG_DRIVERS_HDF_TEST就掉这个坑里了。 ifeq ($(CONFIG_DRIVERS_HDF), y) ifeq ($(CONFIG_DRIVERS_HDF_TEST), y) obj-$(CONFIG_DRIVERS_HDF) += ../../../../$(PRODUCT_PATH)/hdf_config/$(SUB_DIR)/hdf_test/ obj-$(CONFIG_DRIVERS_HDF) += test/ else obj-$(CONFIG_DRIVERS_HDF) += ../../../../$(PRODUCT_PATH)/hdf_config/$(SUB_DIR) endif endif # ... 后面按照配置添加一些编译目录 ...
  driversadapterkhdflinuxMakefile:会调用 obj-$(CONFIG_DRIVERS_HDF) += ../../../../$(PRODUCT_PATH)/hdf_config/$(SUB_DIR)/hdf_test/ 这是OHOS3.0默认的HCS文件存放路径。官方的注释也说明了,所以将设备对应的*.hcs存放到 vendorraspberrypiRPI4Bhdf_configkhdf 文件夹,参考 3516 的 vendorhisiliconHi3516DV300hdf_configkhdfhdf.hcs 就可了。 #include "device_info/device_info.hcs" #include "platform/i2c_config.hcs" #include "platform/hi35xx_watchdog_config.hcs" #include "platform/hi35xx_pwm_config.hcs" #include "platform/hi35xx_uart_config.hcs" #include "platform/sdio_config.hcs" #include "platform/emmc_config.hcs" #include "platform/hi35xx_spi_config.hcs" #include "input/input_config.hcs" #include "wifi/wlan_platform.hcs" #include "wifi/wlan_chip_hi3881.hcs" #include "sensor/sensor_config.hcs" #include "audio/audio_config.hcs" #include "audio/codec_config.hcs" #include "audio/dai_config.hcs" #include "audio/dma_config.hcs" #include "audio/dsp_config.hcs" #include "vibrator/vibrator_config.hcs" #include "vibrator/linear_vibrator_config.hcs" #include "lcd/lcd_config.hcs"  root {     module = "hisilicon,hi35xx_chip"; }
  参考 3516 的 vendorhisiliconHi3516DV300hdf_configkhdfMakefile
  其中:PRODUCT_PATH环境变量的来源:kernel/linux/build/kernel_module_build.sh:42:export PRODUCT_PATH=$4 ifeq ($(LOCAL_HCS_ROOT),)   LOCAL_HCS_ROOT := $(PRODUCT_PATH) endif  SOURCE_ROOT:=$(abspath ../../../../../)  HC_GEN_DIR := $(abspath $(SOURCE_ROOT)/drivers/framework/tools/hc-gen) HC_GEN := $(HC_GEN_DIR)/build/hc-gen LOCAL_HCS_ROOT := $(abspath $(dir $(realpath $(lastword $(MAKEFILE_LIST)))))  HCS_DIR := $(LOCAL_HCS_ROOT)  ifneq ($(TARGET_BOARD_PLATFORM),)   HCS_DIR := $(LOCAL_HCS_ROOT)/$(TARGET_BOARD_PLATFORM) else   ifneq ($(CONFIG_ARCH_HI3516DV300),)     HCS_DIR := $(LOCAL_HCS_ROOT)   endif   ifneq ($(CONFIG_ARCH_HI3518EV300),)     HCS_DIR := $(LOCAL_HCS_ROOT)   endif endif $(info HCS_DIR = $(HCS_DIR)) HCB_FLAGS := -b -i -a  HCS_OBJ := hdf_hcs_hex.o HCS_OBJ_SRC := $(subst .o,.c,$(notdir $(HCS_OBJ)))  CONFIG_GEN_HEX_SRC := $(addprefix $(LOCAL_HCS_ROOT)/, $(HCS_OBJ_SRC)) CONFIG_HCS_SRC := $(subst _hcs_hex.o,.hcs,$(addprefix $(HCS_DIR)/, $(HCS_OBJ)))  $(obj)/$(HCS_OBJ): $(CONFIG_GEN_HEX_SRC)     $(Q)$(CC) $(c_flags) -c -o $@ lt;     $(Q)rm -f lt;  $(CONFIG_GEN_HEX_SRC):  $(LOCAL_HCS_ROOT)/%_hcs_hex.c: $(HCS_DIR)/%.hcs | $(HC_GEN)     $(Q)echo gen hdf built-in config     $(Q)if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi     $(Q)$(HC_GEN) $(HCB_FLAGS) -o $(subst _hex.c,,$(@)) lt;  $(CONFIG_GEN_SRCS): $(CONFIG_OUT_DIR)%.c: $(HCS_DIR)/%.hcs | $(HC_GEN)     $(Q)echo gen hdf driver config     $(Q)if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi     $(Q)$(HC_GEN) -t -o $@ lt;  $(HC_GEN):     $(HIDE)make -C $(HC_GEN_DIR)  obj-$(CONFIG_DRIVERS_HDF) += $(HCS_OBJ) 查看结果
  编译完成后,可以上传内核镜像到开发板,来查看HDF驱动框架是否启动成功。
  加入HDF前 # ls dev/ __parameters__  hwrng         tty1   tty28  tty46  tty7 __trigger__     input         tty10  tty29  tty47  tty8 autofs          kmsg          tty11  tty3   tty48  tty9 binder          linux,cma     tty12  tty30  tty49  ttyAMA0 block           loop-control  tty13  tty31  tty5   ttyS0 bus             mem           tty14  tty32  tty50  ttyprintk cachefiles      memcg         tty15  tty33  tty51  unix char            null          tty16  tty34  tty52  urandom console         port          tty17  tty35  tty53  vchiq cpuctl          ptmx          tty18  tty36  tty54  vcs cpuset          pts           tty19  tty37  tty55  vcs1 dri             random        tty2   tty38  tty56  vcsa fd              rawctl        tty20  tty39  tty57  vcsa1 freezer         snd           tty21  tty4   tty58  vcsu fscklogs        stderr        tty22  tty40  tty59  vcsu1 full            stdin         tty23  tty41  tty6   vga_arbiter gpiochip0       stdout        tty24  tty42  tty60  vndbinder gpiochip1       system        tty25  tty43  tty61  watchdog graphics        tty           tty26  tty44  tty62  watchdog0 hwbinder        tty0          tty27  tty45  tty63  zero
  加入HDF后 # ls dev/ HDF_PLATFORM_I2C_MANAGER  loop-control    tty24  tty54 HDF_PLATFORM_UART_1       mem             tty25  tty55 HDF_TEST                  memcg           tty26  tty56 I2C_TEST                  null            tty27  tty57 __parameters__            port            tty28  tty58 __trigger__               ptmx            tty29  tty59 autofs                    pts             tty3   tty6 binder                    random          tty30  tty60 block                     rawctl          tty31  tty61 bus                       sample_service  tty32  tty62 cachefiles                snd             tty33  tty63 char                      stderr          tty34  tty7 console                   stdin           tty35  tty8 cpuctl                    stdout          tty36  tty9 cpuset                    system          tty37  ttyAMA0 dev_mgr                   tty             tty38  ttyS0 dri                       tty0            tty39  ttyprintk fd                        tty1            tty4   unix freezer                   tty10           tty40  urandom fscklogs                  tty11           tty41  vchiq full                      tty12           tty42  vcs gpiochip0                 tty13           tty43  vcs1 gpiochip1                 tty14           tty44  vcsa graphics                  tty15           tty45  vcsa1 hdf_bl                    tty16           tty46  vcsu hdf_input_host            tty17           tty47  vcsu1 hdf_misc_vibrator         tty18           tty48  vga_arbiter hdf_sensor_manager_ap     tty19           tty49  vndbinder hwbinder                  tty2            tty5   watchdog hwrng                     tty20           tty50  watchdog0 input                     tty21           tty51  zero kmsg                      tty22           tty52 linux,cma                 tty23           tty53
  基本算是启动成功了,接下来考虑打算用HDF的方式添加一下设备。来验证HDF驱动框架是否运转正常。

WEYVV7新能源热销中价格稳定12月购车季,凡在本店购车送5年10基础保养,(指定车型)机会难得,不容错过!!只要您到店!豪礼送不停本店WEY可提裸车,综合优惠可达万元。1购WEY车型综合钜惠至高3万元多款贷款330亿打造,苹果总部大飞碟内部环境首次曝光编辑桃子新智元导读曾耗资330亿建造的ApplePark是一个充满设计灵感的地方。那么它的内部环境如何?这次,美国Wallpaper杂志首次向人们展示了苹果公司核心设计团队的工作环价格几乎差不多,荣耀60对比小米Civi,我们应该怎么选?都说小米手机很有性价比,荣耀手机是智商税,可手机厂商谁不渴求更高的利润呢,荣耀已经转型为线下品牌,而小米也在寻求改变,先是进军高端市场,还发布了小米Civi这样一款不像小米手机的手连亏3年,700亿芯片项目烂尾,败走中国后,美国格芯终于赚钱了点击关注,每天精彩不断!导读连亏3年,700亿芯片项目烂尾,败走中国后,美国格芯终于赚钱了!众所周知,随着半导体芯片市场的不断发展,科技企业对芯片的需求也开始不断地增加,这也让各大有没有好奇过路由器宽带拨号mtu值为什么是1492呢?了解MTU与分片作者一天首发公众号网络之路博客(IDNetworkBlog)MTU与IP分片(可选内容了解)这里来讲一个比较有趣的内容,相信大家都有设置过家用路由器的经历,不知道有没有发现一个事情330亿打造苹果总部首次解密!UFO造型,暗藏巨多黑科技这年头,作为一个高大上的科技公司,不出个几十亿盖总部大楼,似乎都有点拿不出手。比如阿里巴巴,怒砸10亿建了个18万平的总部,而国外电商老大亚马逊就更夸张了,直接在安排了300多种濒美国前第一夫人梅拉尼娅特朗普创办加密货币和区块链公司据路透社12月17日报道,美国前第一夫人梅拉尼娅特朗普加入了越来越多的名人提供数字纪念品的行列,推出了她的不可替代代币(NFT)和区块链科技公司。据梅拉尼娅特朗普办公室发布的一份声Python基础语法变量和数据类型Python环境的搭建这里就不赘述了,有需要的小伙伴可以在网上搜罗出很多教程,注意安装PyChom编辑工具。这次我们主要讲一下几点内容基础语法基本数据类型首先,我们打项立刚力挺联想,目的何在呢?请回答一下司马南的质疑吧最近,网上有个叫项立刚的进入了大家的视线。这个人一直力挺联想,批司马南不专业。老陈我上网查了查,这个项立刚究竟是何许人也?毕业于中国人民大学,中国通信业知名观察家智能互联网研究专家新蓝牙漏洞曝光,威胁全球数十亿WiFi设备IT之家12月17日消息,达姆施塔特大学布雷西亚CNIT和安全移动网络实验室的研究人员近日发表了一篇论文,揭示了攻击者可以通过针对具有多种无线技术的移动设备的蓝牙组件来提取密码并操折叠屏手机厂商抢椅子明年市场将迎第一次大爆发?本报记者贾丽2021年年末,手机巨头在折叠屏市场展开一轮大战,提前抢占明年有望规模化的市场。在华为曝光新一代折叠屏手机后,近日,OPPO也正式发布全新折叠旗舰OPPOFindN。而
2021世界VR产业大会新看点一年一度的世界VR产业大会于2021年10月17日10月20日,连续第四年在江西南昌举办。包括华为微软科大讯飞影创故宫百度大朋创维Nreal移动联通电信在内的约200家企业参展。展关爱家庭常呵护,亲友联系无烦恼相信每个成年人都有在外打拼的经历,并且有很多人都是背井离乡工作,家庭与父母成为了大家较为牵挂的对象,我们都会定时为我们送去关心,希望能够时刻关注到他们的身体或者生活状态。尤其是远离熬夜党的福利,这项业务太香了相信很多人都有熬夜刷手机的习惯,毕竟白天有很多事情要做,导致自己的时间只有在晚上得以放松,并且对于一些追剧者来说,熬夜追剧是常有的事情,如果我们拥有足够的流量或无线网络手机使用起来流量超出套餐后的100元,我是这样追回的最近,奶奶拿着手机跟我说宝,你帮我看看我的手机怎么打不出去,我一看这是停机了啊,但是奶奶说每个月固定消费18元,平时都是接听电话,怎么就停机了呢。为了找到真相,我拨通了10086客再也不怕遥控器走丢了前段时间家里中国移动魔百和机顶盒的遥控器不见了,翻箱倒柜地找了半天也没找到,于是乎电视近半个月没换台,值得庆幸的开机频道是CCTV1,而不是电视购物频道。这两天去移动营业厅办业务,WiFi切换连接太麻烦,Mesh组网实现无缝漫游WiFi已经成为工作和生活的必需品,让小李困惑烦恼的不是没有WiFi,而是身边的WiFi太多了,无论在家还是办公室,可连接的WiFi数量都是一长串,当上网位置移动变化时,需要手动去如此快的移动云盘,您不来试试吗?相信大家都用过某度云盘吧,这种场景是不是过于熟悉?客户发的资料同事发的文件老师网课的课件小文件使用微信传送给对方,大文件直接扔给对方一串某度云盘的二维码。某度云盘分享转发倒是很方便一根网线复用解决上网和看电视前两天忍痛把我使用了5年的电信宽带换成了移动宽带,原因很简单,因为移动宽带解决了困扰我家多年的一根网线复用解决上网和看电视问题。我家房子是很久之前装修的,入户信息箱到客厅的墙体内仅运营商家庭宽带网速大比拼本文选用成都地区两大运营商的家庭宽带进行对比测试,为测试公平性,均选用成都地区的100M宽带套餐,测试项目均使用比较常见的测速方法进行测试。1。专业测试网站测试speedtest是大决战夺金功勋0元全网追剧新玩法今年恰逢党的百年华诞,各个平台的年度大剧一个接一个地推出,品质都是杠杠的,可谓是广大宅男宅女们的追剧盛宴。不过碍于各个热播剧的版权原因,往往网友们都只能在一个视频平台收看一两部热剧开心要同享,生活更需要在繁忙的工作生活中,大家有时就会忘记对家庭的关注,这样多多少少会对家庭有一些影响。比如一些小的生活矛盾,经过时间的长久发酵,就会变成大的问题。就像现在各大运营商主推的家庭169或是