移植openharmony之启动shell服务

接上篇已经添加好init进程,但是目前还是无法进入终端,现在就来添加进入shell终端的步骤,首先拷贝源码中hisilicon配置文件到我们的目录中,然后删除多余的文件,只保留我们需要的文件即可

cp hisilicon/hispark_taurus_linux/init_configs xingyun/t113_nand/ -r

修改如下文件,添加需要拷贝的文件

diff --git a/vendor/xingyun/t113_nand/BUILD.gn b/vendor/xingyun/t113_nand/BUILD.gn
index e39d9c2a82..bc7de55655 100755
--- a/vendor/xingyun/t113_nand/BUILD.gn
+++ b/vendor/xingyun/t113_nand/BUILD.gn
@@ -1,4 +1,9 @@
 # Copyright (C) 2020 Hisilicon (Shanghai) Technologies Co., Ltd. All rights reserved.

 group("t113_nand") {
+  deps = [
+    "init_configs",
+    "init_configs:init_initd",
+    "init_configs:init_fstab"
+  ]
 }

然后重新编译,可以看到多出了这么几句话,会将你的文件自动拷贝到对应的目录中,

在这里插入图片描述
然后直接运行,可以看到,能正常进入终端了。
在这里插入图片描述
至此,一个openharmony基本系统已经移植完成了。其中需要注意的点为init_t113_linux.cfg文件里面,

{
    "jobs" : [{
            "name" : "pre-init",
            "cmds" : [
                "mkdir /storage/data",
                "chmod 0755 /storage/data",
                "mkdir /storage/data/log",
                "chmod 0755 /storage/data/log",
                "chown 4 4 /storage/data/log",
                "chmod 0666 /dev/binder",
                "mkdir /storage/data/softbus",
                "chmod 0700 /storage/data/softbus",
                "chown 7 7 /storage/data/softbus",
                "mkdir /storage/data/system",
                "mkdir /storage/data/system/param",
                "chmod 0755 /storage/data/system/param",
                "mkdir /storage/data/timertask",
                "chmod 0755 /storage/data/timertask",
                "chown 7 7 /storage/data/timertask",
                "chown 4 4 /dev/hilog",
                "chown 4 4 /dev/hwlog_exception",
                "mkdir /userdata",
                "chmod 0777 /userdata",
                "mkdir /userdata/photo",
                "chmod 0777 /userdata/photo",
                "mkdir /userdata/thumb",
                "chmod 0777 /userdata/thumb",
                "mkdir /userdata/video",
                "chmod 0777 /userdata/video"
            ]
        }, {
            "name" : "init",
            "cmds" : [
                "start shell" //这里如果是只保留一个,不能有逗号,否则无法解析启动,可以自行测试
            ]
        }, {
            "name" : "post-init",
            "cmds" : []
        }
    ],
    "services" : [{
            "name" : "shell", //需要注意ttyS0,需要修改为板卡对应的串口
            "path" : ["/sbin/getty", "-n", "-l", "/bin/sh", "-L", "115200", "ttyS0", "vt100"],
            "uid" : 0,
            "gid" : 0,
            "once" : 0,
            "importance" : 0,
            "caps" : [4294967295]
        }
    ]
}

接着再来移植一下与日志服务相关的内核文件。轻量化内核日志服务代码包含drivers/staging/hilog和drivers/staging/hievent,执行如下命令

cp -r linux-5.10/drivers/staging/hilog linux-5.4/drivers/staging/
cp -r linux-5.10/drivers/staging/hievent/ linux-5.4/drivers/staging/

修改如下几个文件

diff --git a/kernel/linux/linux-5.4/drivers/staging/Kconfig b/kernel/linux/linux-5.4/drivers/staging/Kconfig
index 6f1fa4c849..57ace49198 100644
--- a/kernel/linux/linux-5.4/drivers/staging/Kconfig
+++ b/kernel/linux/linux-5.4/drivers/staging/Kconfig
@@ -125,4 +125,8 @@ source "drivers/staging/exfat/Kconfig"

 source "drivers/staging/qlge/Kconfig"

+source "drivers/staging/hilog/Kconfig"
+
+source "drivers/staging/hievent/Kconfig"
+
 endif # STAGING
diff --git a/kernel/linux/linux-5.4/drivers/staging/Makefile b/kernel/linux/linux-5.4/drivers/staging/Makefile
index a90f9b308c..19f1589648 100644
--- a/kernel/linux/linux-5.4/drivers/staging/Makefile
+++ b/kernel/linux/linux-5.4/drivers/staging/Makefile
@@ -53,3 +53,5 @@ obj-$(CONFIG_UWB)             += uwb/
 obj-$(CONFIG_USB_WUSB)         += wusbcore/
 obj-$(CONFIG_EXFAT_FS)         += exfat/
 obj-$(CONFIG_QLGE)             += qlge/
+obj-$(CONFIG_HILOG)            +=hilog/
+obj-$(CONFIG_HIEVENT)          +=hievent/

将驱动源文件拷贝到我们的linux内核源码中,然后修改内核配置文件,修改点如下

diff --git a/kernel/linux/config/linux-5.4/arch/arm/configs/t113_nand_linux_small_defconfig b/kernel/linux/config/linux-5.4/arch/arm/configs/t113_nand_linux_small_defconfig
index 00120106b8..8a16453e1e 100644
--- a/kernel/linux/config/linux-5.4/arch/arm/configs/t113_nand_linux_small_defconfig
+++ b/kernel/linux/config/linux-5.4/arch/arm/configs/t113_nand_linux_small_defconfig
@@ -214,3 +214,7 @@ CONFIG_DEBUG_LL=y
 CONFIG_DEBUG_UART_PHYS=0x02500000
 CONFIG_DEBUG_UART_VIRT=0xf2500000
 CONFIG_EARLY_PRINTK=y
+
+#hilog
+CONFIG_HILOG=y
+CONFIG_HIEVENT=y

然后重新编译内核,启动内核发现如下打印信息,说明驱动加成功,
在这里插入图片描述
然后修改如下几点,或者确保有以下几点存在

diff --git a/vendor/xingyun/t113_nand/config.json b/vendor/xingyun/t113_nand/config.json
index 62f74ff706..d1ed4769e9 100755
--- a/vendor/xingyun/t113_nand/config.json
+++ b/vendor/xingyun/t113_nand/config.json
@@ -20,6 +20,12 @@
           { "component": "init_lite", "features":[] },
           { "component": "appspawn_lite", "features":[] }
         ]
+      },^M
+      {^M
+        "subsystem": "hiviewdfx",^M
+        "components": [^M
+          { "component": "hilog", "features":[] }^M
+        ]^M
       }
     ],
     "third_party_dir": "//third_party",

index 373075b18e..15558a1740 100755
--- a/vendor/xingyun/t113_nand/init_configs/init_t113_linux.cfg
+++ b/vendor/xingyun/t113_nand/init_configs/init_t113_linux.cfg
@@ -31,7 +31,8 @@
         }, {
             "name" : "init",
             "cmds" : [
-                "start shell"
+                "start shell",^M
+               "start apphilogcat"^M
             ]
         }, {
             "name" : "post-init",
@@ -46,6 +47,14 @@
             "once" : 0,
             "importance" : 0,
             "caps" : [4294967295]
+        },{^M
+            "name" : "apphilogcat",^M
+            "path" : ["/bin/apphilogcat"],^M
+            "uid" : 4,^M
+            "gid" : 4,^M
+            "once" : 1,^M
+            "importance" : 0,^M
+            "caps" : []^M
         }
     ]
 }

启动后,有如下信息说明轻量化的日志打印功能启动成功。
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值