임베디드 Linux 배포판을 확인하려고 합니다. 지금까지 입력한 명령은 다음과 같습니다.
$ uname -a
Linux LIN-SRV-EMB01 3.10.105 #25556 SMP Sat Aug 28 02:14:22 CST 2021 x86_64 GNU/Linux synology_bromolow_rs3412rpxs
$ lsb_release
-sh: lsb_release: command not found
$ ls /usr/lib/os-release
ls: cannot access /usr/lib/os-release: No such file or directory
$ cat /proc/version
Linux version 3.10.105 (root@build1) (gcc version 4.9.3 20150311 (prerelease) (crosstool-NG 1.20.0) ) #25556 SMP Sat Aug 28 02:14:22 CST 2021
$ cat /proc/cmdline
root=/dev/md0 netif_seq=2130 ahci=0 SataPortMap=34443 DiskIdxMap=03060e0a00 SataLedSpecial=1 ihd_num=0 netif_num=4 syno_hw_version=RS3412rpxs macs=001132109b1e,001132109b1f,001132109b20,001132109b21 sn=LDKKN90098
$ dmesg | grep "Linux version"
[ 0.000000] Linux version 3.10.105 (root@build1) (gcc version 4.9.3 20150311 (prerelease) (crosstool-NG 1.20.0) ) #25556 SMP Sat Aug 28 02:14:22 CST 2021
[ 342.396803] Loading modules backported from Linux version v3.18.1-0-g39ca484
$ python -m platform
Linux-3.10.105-x86_64-with-glibc2.2.5
$ which python2 && python2 -c "import platform;print platform.linux_distribution()[0]"
/bin/python2
$ which python3 && python3 -c "import distro;print(distro.name())"
$ more /etc/issue /etc/*release /etc/*version /boot/config*
more: stat of /etc/issue failed: No such file or directory
more: stat of /etc/*release failed: No such file or directory
more: stat of /etc/*version failed: No such file or directory
more: stat of /boot/config* failed: No such file or directory
$ zcat /proc/config.gz /usr/src/linux/config.gz | more
gzip: /proc/config.gz: No such file or directory
gzip: /usr/src/linux/config.gz: No such file or directory
$ which dpkg apt apt-get rpm urpmi yum dnf zypper
/bin/dpkg
$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/md0 2.3G 1.1G 1.1G 50% /
$ sudo parted /dev/md0 print
Password:
Model: Linux Software RAID Array (md)
Disk /dev/md0: 2550MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0.00B 2550MB 2550MB ext4
$ sudo mdadm -Q /dev/md0
/dev/md0: 2.37GiB raid1 10 devices, 0 spares. Use mdadm --detail for more detail.
$ which lsblk lscsci lshw lspci dmidecode
/bin/lspci
/sbin/dmidecode
EDIT0: 두 가지 명령을 더 시도했습니다.
$ strings $(ps -p 1 -o cmd= | cut -d" " -f1) | egrep -i "ubuntu|debian|centos|redhat" -o | sort -u
-sh: strings: command not found
[remoteserver] $ ssh embedded-linux 'cat $(ps -p 1 -o cmd= | cut -d" " -f1)' | strings | egrep -i "ubuntu|debian|centos|redhat" -o | sort -u
ubuntu
EDIT1: 세 가지 명령을 더 시도했습니다.
$ which initctl && initctl --version
/sbin/initctl
initctl (upstart 1.13.2)
Copyright (C) 2006-2014 Canonical Ltd., 2011 Scott James Remnant
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ which systemctl && systemctl --version
$ cat /sys/class/dmi/id/product_name
To be filled by O.E.M.
$
EDIT2: 명령을 하나 더 시도했습니다(Synology 관련).
$ grep productversion /etc/VERSION
productversion="6.2.4"
편집 3: 누구든지 하드웨어를 식별하려는 경우를 대비하여:
$ uname -u # Specific to Synology ?
synology_bromolow_rs3412rpxs
$ sudo dmidecode -t system | grep Product
Product Name: To be filled by O.E.M.
$
$ cat /sys/devices/virtual/dmi/id/product_name
To be filled by O.E.M.
$
EDIT4: 다른 Synology에서는 다음을 얻습니다.
$ uname -u
synology_broadwell_rs3618xs
Ubuntu+upstart를 기반으로 한 것 같습니다.
EDIT5: 식별을 위해 Distrib을 사용할 수 있습니다.이 관측소 스크립트또는이 LibreNMS 스크립트.
더 많은 통찰력을 얻기 위해 사용할 수 있는 다른 명령은 무엇입니까?
답변1
출력에서는 uname -a
해당 장치가 Synology 장치로 식별됩니다. 이러한 장치가 작동Synology DiskStation 관리자. 리눅스 기반이지만,아니요"전통적인" Linux 배포판을 실행하는 일반적인 Linux 시스템처럼 관리하세요. 자체 패키지 관리자가 있으며 synopkg
타사 패키지는 다음을 통해 액세스할 수 있습니다.시노 커뮤니티. 이것DiskStation CLI 가이드DSM에서 사용할 수 있는 몇 가지 관리 도구를 설명하십시오.
해당 장치에서 관리 작업을 자동화하는 데 관심이 있는 경우 다음을 참조하세요.Synology 중앙 관리 시스템효과가있다.
답변2
그리고 내 "2센트"는 다음과 같습니다.
$ cat /etc/*release*
버전 관련 파일 이름에 대시가 없는 경우도 있습니다.
/etc
그러면 파일 이름에 해당 단어가 포함된 디렉터리의 모든 파일 내용이 stdout 으로 출력됩니다 .release