前些天领导安排任务,给OpenHarmony系统添加ssh服务。我之前在某些编译好的OpenHarmony系统中见到了dropbear服务,但我试了下我手里的几块开发板,大部分确实没有这个服务。于是找到那套带dropbear服务的系统源代码研究了一下,看到dropbear源代码的根目录下有个README文件,这个文件前半部分就是dropbear开发者写的,但后面有一大段中文,是当初把这套代码移植到OpenHarmony系统的人写的,他也是参考了前人的一些工作。我按照这个README中的中文部分操作成功了,特将其整理成本文,防止自己以后忘了,也可以造福他人。因此本文的代码和方法基于前人的工作,向这些人表示感谢。
1. 将dropbear代码复制到OpenHarmony系统源代码的//developtools/dropbear下。
如果信得过我的话,这些代码不要从官方取最新的,而是直接用我这套。因为我不知道前人做了什么适配OpenHarmony系统的修改。我把它们放在了https://github.com/bh1svr/dropbear_for_ohos
2. 修改//vendor/开发板厂家/开发板型号/ohos.build
比如我现在用的开发板是润和的DAYU 210, 就是修改//vendor/hihope/dayu210/ohos.build
在module_list数组的最后添加一行
"//developtools/dropbear:dropbear"
同时别忘了在前一行的末尾添加一个逗号,否则json文件解析失败
3. 修改//vendor/开发板厂家/开发板型号/config.json
在subsystems数组的末尾,添加
{
"subsystem": "developtools",
"components": [
{
"component": "dropbear",
"features": []
}
]
}
(blogspot没有针对源代码的格式,请自行调整缩进)
同样别忘了在上一个subsystem的末尾添加一个逗号
4. 重新编译系统
编译成功后,在//out/处理器平台/developtools/dropbear/ 下出现了一个dropbear_service,这个就是能与这套系统和谐共处的dropbear服务端
此外还有一个重要文件,是位于//developtools/dropbear下的dropbear.cfg (也就是第一步拷过来的源代码中的)。这个是OpenHarmony系统开机自启动的配置脚本,用它可以实现dropbear_service在每次板卡启动后都能自动运行,类似于Linux系统的systemd的xxx.service脚本。
这个文件中有一行重要配置
export DROPBEAR_PASSWORD 123456
123456就是用ssh登录的登录密码。如果不想用这个默认密码,就要修改这里。
5. 将上一步提到的dropbear_service用hdc传到板卡的/system/bin下,将dropbear.cfg传到板卡的/etc/init/下。并在hdc shell下执行chmod命令将这两个文件的权限修改为与通路径下其他文件相同
6. 重启板卡,上述步骤操作无误即可使用ssh客户端登录,用户名root, 密码没改的话默认123456。也可以使用scp传输文件。
没有评论:
发表评论