Tema 2 - Sistem Embedded de Monitorizare

Motivație

Obiectivul temei 2 de Linux este să compuneți un sistem Linux complet, care să prezinte grafice într-o interfață web. Se vor pune în aplicare cunoștințele dobândite în timpul laboratorului, aplicate pe placa arm_versatile din Qemu. Sistemul are un singur scop (afișarea de grafice pe Web cu parametrii sistemului), dar cu mici modificări poate fi folosit într-o multitudine de aplicații de monitorizare (stație meteo, home monitoring, datacenter monitoring, etc.)

Se urmăresc consolidarea următoarelor aptitudini:

  • lucrul cu Buildroot - generarea de distribuții pentru sisteme Linux
  • configurarea Buildroot și a kernel-ului de Linux pentru un sistem anume
  • configurări de bază pentru lucrul în rețea
  • configurarea unui server cu pagini dinamice

În plus, se dorește explorarea unor subiecte care nu au fost tratate în laborator decât la nivel de concept

  • optimizări de timp de boot pentru sisteme Linux (opțional)
  • optimizări de spațiu pentru întregul sistem (opțional)
  • logging în sisteme cu spațiu de stocare limitat (opțional)

Componenta principală a temei

  • Server-ul de HTTP cu pagini dinamice generate pe server (recomandăm PHP, dar puteți încerca să folosiți și altceva), care va afișa grafice cu diferiți parametri ai sistemului (în cazul nostru, memorie free, utilizare a procesorului, etc.)

Pentru acest lucru aveți nevoie de:

  • un server HTTP (oricare dintre cele prezente în Buildroot)
  • metodă de a genera pagini dinamice pe dispozitiv (recomandăm PHP, dar puteți folosi CGI simplu, Python, Ruby, etc.)
  • bibliotecă de grafice (pentru PHP recomandăm jpgraph)
  • fișier cu date generate din parametrii sistemului
    • poate fi generat cu un script, program C/C++, etc.
    • BONUS dacă este folosit cron și logrotate

Parametrii sistemului afișați în grafice vor fi:

  • Free memory - /proc/meminfo sau programul free
  • Average Load - /proc/avgload
  • alți parametri pe care vreți să-i adăugați

:!: Tema se va dezvolta în Qemu > 1.0.1. și buildroot-2012-08, pentru placa arm_versatile, așa cum este descris în Laboratorul de Qemu

Serviciile din sistem

  • ssh pe portul 22
  • http pe portul 80
  • avahi/mDNS

Alte trăsături ale sistemului

  • root parolă root:roota
  • IP luat prin dhcp automat la pornire
  • Sistemul se va prezenta ca temasi.local (hostname temasi, serviciu Avahi/mDNS)
  • login automat pe serială (fără să ceară parolă) - seriala este ceea ce apare în consolă la rularea Qemu

Arhiva temei

Arhiva trebuie să conțină:

  • partiția de ext2 a sistemului (sau de alt tip, dacă aveți motive solide)
  • imaginea kernel-ului
  • script de rulare Qemu - launch.sh
  • configurarea Buildroot
    • .config Buildroot din folder-ul principal buildroot, sub numele .config-buildroot
    • .config Busybox din folder-ul output/build/busybox-1.20.2 sub numele .config-busybox
    • .config kernel din folder-ul output/build/linux-3.3.7 sub numele .config-linux
  • Fișier readme cu explicații referitoare la probleme întâmpinate, opțiuni speciale de configurare/optimizare, etc.

Notare

Din 100p total, aveți:

  • (10p) Configurări de bază
    • User,parolă (root,roota)
    • IP luat la pornirea sistemului prin DHCP
    • hostname temasi
    • login automat pe serială
  • (10p) Configurare Avahi/mDNS
    • Sistemul trebuie să răspundă din exterior la ping temasi.local
  • (20p) Configurare HTTP+PHP(or equivalent)
    • Se va puncta rularea phpinfo în lipsa altei pagini
  • (20p) Afișarea de grafice în mod dinamic
    • Se va puncta afișarea cu date dummy în lipsa altui mecanism
  • (20p) Generarea datelor corecte în fișier log
  • (20p) Afișarea datelor în browser

Bonus

  • (5p) Dimensiunea imaginii de kernel/a întregului sistem sau timpul de boot sunt reduse față de default în mod semnificativ, cu explicații privind metoda de optimizare
    • Puteți avea câte un timestamp la fiecare printk din kernel cu opțiunea Kernel hacking→ Show timing information on printks din menuconfig-ul kernel-ului
$ make linux26-menuconfig
  • (5p) Se folosește cron pentru generarea datelor și logrotate pentru a ne asigura că nu va rămâne sistemul fără memorie
  • (5p) Pretty factor
si/lab/2020/teme/tema2linux.txt · Last modified: 2021/08/10 18:32 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0