> 文档中心 > 移植openharmony之启动shell服务

移植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.gnindex 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之启动shell服务
然后直接运行,可以看到,能正常进入终端了。
在这里插入图片描述
至此,一个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/Kconfigindex 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 # STAGINGdiff --git a/kernel/linux/linux-5.4/drivers/staging/Makefile b/kernel/linux/linux-5.4/drivers/staging/Makefileindex 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_defconfigindex 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.jsonindex 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  }     ] }

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

湖北工具网