#abstraction-layer #version #servo #command #flash #dut #chromium-os

nightly bin+lib lium

ChromiumOS 开发抽象层

2 个版本

0.1.2 2023 年 10 月 20 日
0.1.1 2023 年 8 月 17 日

16 in #servo

自定义许可

1MB
5K SLoC

lium - ChromiumOS 开发抽象层

lium 是 ChromiumOS 开发环境和工作流程的抽象层。

它为 ChromiumOS 开发者提供简单的接口,用于常见任务,并具有丰富的自动错误恢复机制,以避免长时间盯着显示屏,给你一些时间休息或喝咖啡,或进行其他任务 ;)

此外,它还管理本地开发硬件,包括 DUT 和 Servos,并作为与它们交互的命令的工作示例。

构建和安装

安装 Rust 工具链 并运行

make install

Bash 完成性

您可以在任何时间运行以下命令来安装 bash 完成性文件

lium setup bash-completion && source ~/.bash_completion

如果您的默认 shell 是 bash,那么在运行 make install 后,将自动执行此操作。

...您使用其他 shell 吗?我们欢迎您的 pull-requests!

使用示例

注意:您可以将 lium 替换为 cargo run -- 来运行您修改后的 lium 版本。

DUT

# SSH into a DUT using testing_rsa
lium dut shell --dut ${DUT}

# Execute a shell command on a DUT
lium dut shell --dut ${DUT} -- uname -a

# Add a DUT to the list
lium dut list --add ${IP}

# Show the list of DUTs registered
lium dut list

# Check connection and remove DUTs that have reused IP addresses
lium dut list --update

# Show DUT info
lium dut info --dut ${DUT}

# Show specific DUT info (e.g. ipv6_addr)
lium dut info --dut ${DUT} ipv6_addr

# Scan DUTs on a remote network
lium dut discover --remote ${REMOTE} | tee /tmp/dut_discovered.json

Servo / Cr50

# Show list of Servo / Cr50 devices
lium servo list

# Do the same thing in JSON format
lium servo list --json

Flash

lium flash --repo ${CROS_DIR} --dut ${DUT}
lium flash --repo ${CROS_DIR} --board ${BOARD}

其他

lium arc guest_kernel_uprev --repo /work/chromiumos_stable/
lium build --repo /work/chromiumos_stable --board brya --packages sys-kernel/arcvm-kernel-ack-5_10
lium build --full --repo /work/chromiumos_stable --board brya
lium config set default_cros_checkout /work/chromiumos_stable/
lium config show
lium deploy --repo /work/chromiumos_stable --dut localhost:2282 --package sys-kernel/arcvm-kernel-ack-5_10 --autologin
lium dut discover --remote kled_SOMESERIALNUMBERS1234 --v6prefix 2001:DB8::
sudo `which lium` servo reset
lium sync --repo /work/chromiumos_stable/ --version 14899.0.0
lium sync --repo /work/chromiumos_stable/ --version R110-15263.0.0
# following command needs a mirror repo which has cloned with --mirror option
lium sync --repo /work/chromiumos_versions/R110-15248.0.0/ --version R110-15248.0.0 --reference /work/chromiumos_mirror/
lium sync --repo /work/chromiumos_versions/R110-15248.0.0/ --version R110-15248.0.0 # you can omit --reference if the config is set

如何贡献

在做出更改后,请运行

make commit

以在运行各种检查后进行提交。

一旦您的提交准备就绪,请根据 CONTRIBUTING.md 中的说明在 GitHub 上提交 pull request。

祝您编码愉快!

免责声明

这不是 Google 的官方支持产品。

依赖关系

~15–30MB
~449K SLoC