我拥有多个使用装有 Linux 的 SD 卡的不同平台:Raspberry Pi、O-Droid、SabreLite、LS1021A、Panda、LattePanda……
我找到了三张 SD 卡,在 Linux PC 上读取它们时,我可以看到文件系统。但我显然无法执行uname -a
- 我没有启动它们,因为我不知道将它们插入哪个系统。
有人能建议一种合理可靠但又简单的方法,至少可以知道它们适用于哪个系统,如果不知道它们的具体版本?我希望有一个我可以访问的合理标准文件,恰好提到这些关键细节。
我可以想象需要设置一个每个系统表:
- “对于 RPi,请查看此处”
- “对于 SabreLite,请查看此处”
- “对于 1021A,请查看此处”
但我希望不是!
答案1
我实际上没有使用过 RPi 以外的任何东西,但我将从以下方面开始:
找到内核文件 (vmlinuz) – 通常位于单独的“启动”分区中 – 并运行
file
它。它会显示与 uname 大致相同的版本信息。(这意味着,如果它只是通用的 Raspbian,那么两者都同样没用。)在同一个“启动”分区中查找设备树数据(*.dtb 文件)。将它们转换回文本格式,然后
dtc -I dtb -O dts
在“兼容”字段中查找平台名称。查看主文件系统的 /var/log(可能使用
journalctl --directory=
)。早期启动日志将包含与平台相关的消息。
答案2
假设没有安装多个体系结构,则应该有一个/lib
名为 egx86_64-linux-gnu
或 的目录arm-linux-gnueabihf
。因此,要获得有关体系结构的提示,应该这样做:
find <mountpoint>/lib -maxdepth 1 -type d -name '*linux*'
然后列出可能的内核版本/lib/modules
- 您可能只想按数字排序以获取最新版本。
ls <mountpoint>/lib/modules | sort -rn | head -1
操作系统名称和版本通常以 命名/etc/issue
。