Mam wiele dystrybucji, z którymi gram. Etykietuję karty SD, ale:
- Są do góry nogami
- Zazwyczaj jestem w innym pokoju z RPi
Skonfigurowałem usługę w init.d, która informuje mnie poprzez Pushover, kiedy moje Pi się wyłącza lub uruchamia (używając API przez curl).
Chciałbym, żeby to obejmowało to, z której aktualnie korzystam dystrybucji.
Widzę na moim najnowszym bootie (gra z adafruit Raspbian):
Linux raspberrypi 3.1.9adafruit+ #8 PREEMPT Wed Aug 1 18:02:42 EDT 2012 armv6l
Jak mogę uzyskać te informacje w swoim skrypcie?
Zainstalowałem lsb-release, ale daje mi to tylko:
pi@raspberrypi / $ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux testing/unstable
Release: testing/unstable
Codename: n/a
Który wyglądałby tak samo jak mój zwykły Raspbian.
Ponadto prawdopodobnie chciałbym wskazać coś na temat konkretnej instancji na karcie SD (ponieważ prawdopodobnie będę mieć wiele takich samych bazowych dystrybucji). Oczywiście mogę po prostu upuścić plik w tym samym miejscu na każdej karcie SD, ale czy istnieje konwencja, gdzie umieszczać tego rodzaju informacje?
Odpowiedzi:
źródło
Próbować
Na moim pulpicie daje
Po sprawdzeniu oficjalnych zdjęć Raspberry Pi (Raspbian i Arch)
/etc/os-release
jest dostępny na obu i zawiera co najmniej właściwości NAME i PRETTY_NAME.Jak wyodrębnić nazwę dystrybucji?
To całkiem proste, spróbuj
Bibliografia
źródło
Jak wspomniano, możesz użyć
uname
, ale pokaże to tylko wersję jądra. Jeśli masz tę samą wersję jądra na kilku różnych dystrybucjach / kartach (co jest bardzo prawdopodobne, ponieważ kilka z nich używa tego samego jądra podstawowego), otrzymasz taki sam wynik dla każdego z nich. Zatem najlepszym sposobem na rozróżnienie dystrybucji jest użycie czegoś innego niż jądro. Nie ma jednak uniwersalnego sposobu. Jednym prostym sposobem byłoby użycie nazwy hosta (i zmiana jej dla każdej dystrybucji).lub
źródło