On Thu, Aug 20, 2020 at 09:05:58PM +0800, Yu Chuan wrote:
这种有一般性, 网上搜一搜, 不需要自己写.
比如 ~/lkp-tests/lib/detect-system.sh
+function get_host_info() {
- HOST_OS=$(cat /etc/os-release |grep ^NAME|awk -F '"' '{print $2}'| tr '[:upper:]' '[:lower:]')
- HOST_ARCH=$(arch)
- HOST_VERSION=$(cat /etc/os-release |grep ^VERSION_ID|awk -F '"' '{print $2}')
- check_host
+}
ok, i'll googled about this.
Hi Fengguang,
我搜了下网上相关功能的实现,以及 ~/lkp-tests/lib/detect-system.sh. 发 现比较健壮可靠的方案是逐个系统进行判断。
所以我准备按如下方案进行实现,你看下是否可行?
detect-system.sh 还需要修改吗?
yes, i tested this, and here is the output:
[root@test ~]# cat ./get-info.sh #!/bin/bash
export LKP_SRC="/root/lkp-tests"
source ${LKP_SRC}/lib/detect-system.sh
detect_system detect_system_arch
echo _system_arch: $_system_arch echo _system_name: $_system_name echo _system_name_lowercase: $_system_name_lowercase echo _system_version: $_system_version [root@test ~]# sh ./get-info.sh _system_arch: aarch64 _system_name: openEuler _system_name_lowercase: openeuler _system_version: unknown
主要是有两个问题:
- system version 无法获取到。如20.03
这个需要直接 fix lkp-tests
- detect-system.sh需要用到lkp-tests库中的其他代码,如果要使用这种方式,
那么就需要分析其依赖,并将用到的所有代码都拷贝一份到iso2qcow2库中?
可以啊. 依赖就是 . $LKP_SRC/lib/env.sh 注意license兼容性即可.
Thanks, Fengguang
由于iso2qcow2对环境运行系统做了限制(conf/os/support-host.conf),所以 关于操作系统信息的获得,准备参考~/lkp-tests/lib/detect-system.sh,使用 “if-elif-fi”方式进行收集。
目前支持的系统仅为"openeuler-aarch64-20.03",所以"if-elif-fi"只需要支持 openeuler,随着以后支持系统的增多,再对此方法进行修正,增加支持新系统。