Προς το περιεχόμενο

[INFO] project Linux Μαρμελάδα


twiner

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

marmeladalinux.jpg

 

Γιατί Μαρμελάδα; :fear:

 

  • γιατί η σπιτική(home made) είναι καλύτερη, όπως και το σύστημα που θα στήσουμε
  • γιατί θα ανταλλάξουμε "συνταγές" -σαν τις θείτσες
  • γιατί έτσι αξιοποιούμε τα παραγινομένα φρούτα (ή τα pc)
  • γιατί το "project feather" ήταν πιασμένο και είπα να πρωτοτυπήσω.
  • για random lolz

 

Στόχος:

 

Συγκέντρωση και διαμοιρασμός της γνώσης για τo στήσιμο gnu/linux συστήματος

με customized γραφικό περιβάλλον και μικρό memory footprint.

 

Ξεκινώντας από ένα πολύ βασικό σύστημα (Debian ή Arch κατά προτίμηση)

να καταλήξουμε σ'ένα ελαφρύ αλλά πλήρες γραφικό περιβάλλον εργασίας.

 

Αυτό το topic φιλοδοξεί να μπει στο wiki (με ελαφρώς πιο συμβατικό τίτλο)

και χρειάζεται οπωσδήποτε τη βοήθεια σας!

 

Η ιδέα:

να πάμε το project του tritonas00 ένα βήμα παραπέρα.

 

Πώς μπορώ να βοηθήσω;

 

εγώ που διαβάζω αυτό το...πράγμα

 

 

0. Να γράψω (ή να βρω και να προσαρμώσω) σύντομο και απλό οδηγό

εγκατάστασης minimal συστήματος Debian, Arch ή άλλης διανομής.

 

Ο οδηγός να περιλαμβάνει δημιουργία χρήστη και ρύθμιση: Δικτύου, X και Alsa.

 

1. Να εντοπίσω χρήσιμα tips (σχετικά με ελαφριές εφαρμογές, window managers, file managers κτλ κτλ)

που είναι διάσπαρτα μέσα στο Linux Section, και να τα ποστάρω εδώ (σε quotes)

 

π.χ.

τερματισμός + επανεκκίνηση χωρίς δικαιώματα root

sudo chmod a+s /sbin/shutdown

 

Mια φορα το κανεις και τελος.

 

Και μετα φυσικα απο οποιοδηποτε χρηστη

 

/sbin/shutdown -h now για halt και

/sbin/shutdown -r now για reboot.

 

Τα εχω συντομευση στο fbpanel.

 

Αλλα φυσικα λυση που δουλευει ανεξαρτητως de,wm διανομης κλπ..

 

2. Να μοιραστώ δικά μου configuration files μαζί με screenshot.

 

3.Να προτείνω εφαρμογές που ταιριάζουν στο project.

 

4. Να καταθέσω ολοκληρωμένη πρόταση: συλλογή εφαρμογών και configuration files, για ένα πλήρες κι ελαφρύ Desktop.

 

όχι πολύ σιρόπι γιατί θα βαρύνει

 

 

Κανόνες για κατάθεση ολοκληρωμένης πρότασης:

1. παραθέτω οπωσδήποτε screenshot του τελικού αποτελέσματος.

2. δίνω σε code tags την εντολή εγκαστάσης (με apt,pacman κτλ) όλων των εφαρμογών της σύνθεσης μου.

3. παραθέτω αρχεία ρυθμίσεων: .xinitrc, .conkyrc κτλ. σε code tags

4. αν συμπεριλάβω εφαρμογή που κατέθεσε άλλος χρήστης βάζω σε quote ή αναφέρω ρητά το username του.

 

Αφού τελειώσει η πρώτη φάση και έχουμε π.χ 3-4 ολοκληρωμένες προτάσεις,

θα χρειαστούν εθελοντές για να τις δοκιμάσουν σε πραγματική εγκατάσταση ή virtualbox και να δώσουν feedback.

 

Παράδειγμα "ολοκληρωμένης" Πρότασης:

 

 

 

scrot.png

 

γραμμή εγκατάστασης: σε Arch Linux

>sudo pacman -S openbox obmenu obconf fbpanel nitrogen thunar thunar-volman xarchiver lxappearance lxtask gpicview gnome-icon-theme geany audacious smplayer chromium xfburn scrot terminus-font urxvt 

 

~/.xinitrc

># ~/.xinitrc

#automount usb, cd, dvd
thunar --daemon &

#wallpaper!
nitrogen --restore;

#panels
fbpanel -p top &
fbpanel -p bottom &

#window manager
exec ck-launch-session openbox

 

~/.config/fbpanel/top για το επάνω panel

># ~/.config/fbpanel/top

Global {
   edge = top
   allign = center
   margin = 0
   widthtype = percent
   width = 100
   height = 30
   transparent = false
   tintcolor = #ffffff
   alpha = 28
   setdocktype = true
   setpartialstrut = true
   autohide = false
   heightWhenHidden = 2
   roundcorners = false
   roundcornersradius = 7
   layer = above
   MaxElemHeight = 32
   setlayer = false
}
Plugin {
   type = space
   config {
       size = 2
   }
}
Plugin {
   type = menu
   config {
       IconSize = 22

       icon = start-here

       systemmenu {
       }
       separator {
       }
       menu {
           name = Computer 
           icon = computer
           item {
               name = Terminal
               icon = terminal
               action = urxvt
           }
           separator {
           }
           item {
               name = Reboot
               icon = gnome-session-reboot
               action = sudo shutdown -r now
           }
           item {
               name = Shutdown
               icon = gnome-session-halt
               action = sudo shutdown -h now
           }
       }
   }
}

Plugin {
   type = space
   config {
       size = 10
   }
}
Plugin {
   type = launchbar
   config {
       button {
           icon = file-manager
           tooltip = File Manager
           action = thunar
       }
       button {
           icon = terminal
           tooltip = Terminal
           action = urxvt
       }
       button {
           icon = web-browser
           tooltip = Web Browser
           action = chromium
       }
   }
}

Plugin {
   type = space
   expand = true
}

plugin {
   type = volume
}
Plugin {
   type = tray
}
Plugin {
   type = space
   config {
       size = 1
   }
}
Plugin {
   type = tclock
   config {
       ShowSeconds = false
       TooltipFmt = %A %x
       ShowCalendar = true
       ClockFmt = <span font="Verdana 17"><span color="black">%R</span></span>
   }
}
Plugin {
   type = icons
   config {
       DefaultIcon = /usr/share/fbpanel/images/default.xpm
       application {
           icon = gnome-terminal
           ClassName = XTerm
       }
       application {
           icon = gnome-terminal
           ClassName = mlterm
       }
       application {
           icon = gnome-terminal
           ClassName = URxvt
       }
       application {
           icon = gnome-emacs
           ClassName = Emacs
       }
       application {
           icon = mozilla-firefox
           ClassName = Firefox-bin
       }
       application {
           icon = mozilla-firefox
           ClassName = Firefox
       }
   }
}

 

~/.config/fbpanel/bottom για το κάτω panel

 

># ~/.config/fbpanel/bottom 


Global {
   edge = bottom
   allign = center
   margin = 0
   widthtype = percent
   width = 100
   height = 30
   transparent = false
   tintcolor = #ffffff
   alpha = 28
   setdocktype = true
   setpartialstrut = true
   autohide = false
   heightWhenHidden = 2
   roundcorners = false
   roundcornersradius = 7
   layer = none
   MaxElemHeight = 32
}

Plugin {
   type = wincmd
   config {
       icon = gnome-fs-desktop
       tooltip = Left click to iconify all windows. Middle click to shade them.
   }
}


Plugin {
   type = space
   config {
       size = 15
   }
}

Plugin {
   type = taskbar
   expand = true
   config {
       ShowIconified = true
       ShowMapped    = true
       ShowAllDesks  = false
       tooltips = true
       IconsOnly = false
       MaxTaskWidth = 150
   }
}


Plugin {
   type = space
config {
   size = 15
}
}

Plugin {
   type = pager
   config {
       showwallpaper = true
   }
}

 

~/.Xdefaults για όμορφο urxvt τερματικό

>Xft.dpi:                    96
Xft.antialias:           true
Xft.hinting:              full
Xft.hintstyle:           hintslight
Xft.rgba:                  rgb

!"terminus" font!!!
urxvt.font:              xft:terminus:pixelsize=20
urxvt*boldFont:          xft:terminus:pixelsize=20
urxvt.termName:          xterm
urxvt.scrollBar:         false
urxvt.imLocale:          en_US.UTF-8
urxvt.loginShell:        true
urxvt.saveLines:         512
urxvt.geometry:          60x20
urxvt.boldMode:          false
urxvt.inheritPixmap:     false
urxvt.shading:           40
urxvt.xftAntialias:      false
urxvt.jumpScroll:        true
urxvt.tintColor:         white
urxvt.internalBorder:    0
urxvt.cursorBlink:       false
urxvt.cursorColor:       grey
urxvt.cursorColor2:      #000000
urxvt.background:        #262729
urxvt.foreground:        light grey
urxvt.colorBD:           #ffffff
urxvt.colorIT:           #bbbbbb
urxvt.colorUL:           #999999
urxvt.underlineColor:    #999999
urxvt.borderless:        true

!black 
*color0 : #222222
*color8 : #454545
!red
*color1 : #F92672
*color9 : #F92672
!green
*color2 : #A6E22E
*color10: #A6E22E
!yellow
*color3 : #FD971F
*color11: #FD971F
!blue
*color4 : #4682B4
*color12: #4682B4
!magenta
*color5 : #AE81FF
*color13: #AE81FF
!cyan
*color6: #89b6e2
*color14: #46a4ff
!white
*color7 : #FFFFFF
*color15: #FFFFFF

 

~/.config/openbox/menu.xml για το μενού που εμφανίζεται με δεξί κλικ στο Desktop

><?xml version="1.0" encoding="utf-8"?>
<openbox_menu>
<menu id="root-menu" label="OpenBox 3">
	<item label="Τερματικό">
		<action name="Execute">
			<execute>
				urxvt
			</execute>
		</action>
	</item>
	<separator/>
	<item label="Web browser">
		<action name="Execute">
			<execute>
				chromium
			</execute>
		</action>
	</item>
	<separator/>
	<menu id="root-menu-36311" label="εμφάνιση">
		<item label="εικόνα επιφάνειας εργασίας">
			<action name="Execute">
				<execute>
					nitrogen ~/wallpapers
				</execute>
			</action>
		</item>
		<item label="lxappearance">
			<action name="Execute">
				<execute>
					lxappearance
				</execute>
			</action>
		</item>
	</menu>
	<separator/>
	<item label="screenshot!">
		<action name="Execute">
			<execute>
				scrot -d 4
			</execute>
		</action>
	</item>
	<separator/>
	<item label="επεξεργασία μενού">
		<action name="Execute">
			<execute>
				obmenu
			</execute>
		</action>
	</item>
	<separator/>
	<item label="ρύθμιση openbox">
		<action name="Execute">
			<execute>
				obconf
			</execute>
		</action>
	</item>
	<separator/>
	<menu id="40" label="OpenBox">
		<menu id="client-list-menu"/>
		<item label="Reconfigure">
			<action name="Reconfigure"/>
		</item>
		<separator/>
		<item label="Exit">
			<action name="Exit"/>
		</item>
	</menu>
</menu>
</openbox_menu>

 

καλή διασκέδαση!

 

 

 

Επεξ/σία από twiner
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 87
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσ. (επεξεργασμένο)

marmeladalinux.jpg

 

Γιατί Μαρμελάδα; :fear:

 

  • γιατί η σπιτική(home made) είναι καλύτερη, όπως και το σύστημα που θα στήσουμε
  • γιατί θα ανταλλάξουμε "συνταγές" -σαν τις θείτσες
  • γιατί έτσι αξιοποιούμε τα παραγινομένα φρούτα (ή τα pc)
  • γιατί το "project feather" ήταν πιασμένο και είπα να πρωτοτυπήσω.
  • για random lolz

 

Στόχος:

 

Συγκέντρωση και διαμοιρασμός της γνώσης για τo στήσιμο gnu/linux συστήματος

με customized γραφικό περιβάλλον και μικρό memory footprint.

 

Ξεκινώντας από ένα πολύ βασικό σύστημα (Debian ή Arch κατά προτίμηση)

να καταλήξουμε σ'ένα ελαφρύ αλλά πλήρες γραφικό περιβάλλον εργασίας.

 

Αυτό το topic φιλοδοξεί να μπει στο wiki (με ελαφρώς πιο συμβατικό τίτλο)

και χρειάζεται οπωσδήποτε τη βοήθεια σας!

 

Η ιδέα:

να πάμε το project του tritonas00 ένα βήμα παραπέρα.

 

Πώς μπορώ να βοηθήσω;

 

εγώ που διαβάζω αυτό το...πράγμα

 

 

0. Να γράψω (ή να βρω και να προσαρμώσω) σύντομο και απλό οδηγό

εγκατάστασης minimal συστήματος Debian, Arch ή άλλης διανομής.

 

Ο οδηγός να περιλαμβάνει δημιουργία χρήστη και ρύθμιση: Δικτύου, X και Alsa.

 

1. Να εντοπίσω χρήσιμα tips (σχετικά με ελαφριές εφαρμογές, window managers, file managers κτλ κτλ)

που είναι διάσπαρτα μέσα στο Linux Section, και να τα ποστάρω εδώ (σε quotes)

 

π.χ.

τερματισμός + επανεκκίνηση χωρίς δικαιώματα root

sudo chmod a+s /sbin/shutdown

 

Mια φορα το κανεις και τελος.

 

Και μετα φυσικα απο οποιοδηποτε χρηστη

 

/sbin/shutdown -h now για halt και

/sbin/shutdown -r now για reboot.

 

Τα εχω συντομευση στο fbpanel.

 

Αλλα φυσικα λυση που δουλευει ανεξαρτητως de,wm διανομης κλπ..

 

2. Να μοιραστώ δικά μου configuration files μαζί με screenshot.

 

3.Να προτείνω εφαρμογές που ταιριάζουν στο project.

 

4. Να καταθέσω ολοκληρωμένη πρόταση: συλλογή εφαρμογών και configuration files, για ένα πλήρες κι ελαφρύ Desktop.

 

όχι πολύ σιρόπι γιατί θα βαρύνει

 

 

Κανόνες για κατάθεση ολοκληρωμένης πρότασης:

1. παραθέτω οπωσδήποτε screenshot του τελικού αποτελέσματος.

2. δίνω σε code tags την εντολή εγκαστάσης (με apt,pacman κτλ) όλων των εφαρμογών της σύνθεσης μου.

3. παραθέτω αρχεία ρυθμίσεων: .xinitrc, .conkyrc κτλ. σε code tags

4. αν συμπεριλάβω εφαρμογή που κατέθεσε άλλος χρήστης βάζω σε quote ή αναφέρω ρητά το username του.

 

Αφού τελειώσει η πρώτη φάση και έχουμε π.χ 3-4 ολοκληρωμένες προτάσεις,

θα χρειαστούν εθελοντές για να τις δοκιμάσουν σε πραγματική εγκατάσταση ή virtualbox και να δώσουν feedback.

 

Παράδειγμα "ολοκληρωμένης" Πρότασης:

 

 

 

scrot.png

 

γραμμή εγκατάστασης: σε Arch Linux

>sudo pacman -S openbox obmenu obconf fbpanel nitrogen thunar thunar-volman xarchiver lxappearance lxtask gpicview gnome-icon-theme geany audacious smplayer chromium xfburn scrot terminus-font urxvt 

 

~/.xinitrc

># ~/.xinitrc

#automount usb, cd, dvd
thunar --daemon &

#wallpaper!
nitrogen --restore;

#panels
fbpanel -p top &
fbpanel -p bottom &

#window manager
exec ck-launch-session openbox

 

~/.config/fbpanel/top για το επάνω panel

># ~/.config/fbpanel/top

Global {
   edge = top
   allign = center
   margin = 0
   widthtype = percent
   width = 100
   height = 30
   transparent = false
   tintcolor = #ffffff
   alpha = 28
   setdocktype = true
   setpartialstrut = true
   autohide = false
   heightWhenHidden = 2
   roundcorners = false
   roundcornersradius = 7
   layer = above
   MaxElemHeight = 32
   setlayer = false
}
Plugin {
   type = space
   config {
       size = 2
   }
}
Plugin {
   type = menu
   config {
       IconSize = 22

       icon = start-here

       systemmenu {
       }
       separator {
       }
       menu {
           name = Computer 
           icon = computer
           item {
               name = Terminal
               icon = terminal
               action = urxvt
           }
           separator {
           }
           item {
               name = Reboot
               icon = gnome-session-reboot
               action = sudo shutdown -r now
           }
           item {
               name = Shutdown
               icon = gnome-session-halt
               action = sudo shutdown -h now
           }
       }
   }
}

Plugin {
   type = space
   config {
       size = 10
   }
}
Plugin {
   type = launchbar
   config {
       button {
           icon = file-manager
           tooltip = File Manager
           action = thunar
       }
       button {
           icon = terminal
           tooltip = Terminal
           action = urxvt
       }
       button {
           icon = web-browser
           tooltip = Web Browser
           action = chromium
       }
   }
}

Plugin {
   type = space
   expand = true
}

plugin {
   type = volume
}
Plugin {
   type = tray
}
Plugin {
   type = space
   config {
       size = 1
   }
}
Plugin {
   type = tclock
   config {
       ShowSeconds = false
       TooltipFmt = %A %x
       ShowCalendar = true
       ClockFmt = <span font="Verdana 17"><span color="black">%R</span></span>
   }
}
Plugin {
   type = icons
   config {
       DefaultIcon = /usr/share/fbpanel/images/default.xpm
       application {
           icon = gnome-terminal
           ClassName = XTerm
       }
       application {
           icon = gnome-terminal
           ClassName = mlterm
       }
       application {
           icon = gnome-terminal
           ClassName = URxvt
       }
       application {
           icon = gnome-emacs
           ClassName = Emacs
       }
       application {
           icon = mozilla-firefox
           ClassName = Firefox-bin
       }
       application {
           icon = mozilla-firefox
           ClassName = Firefox
       }
   }
}

 

~/.config/fbpanel/bottom για το κάτω panel

 

># ~/.config/fbpanel/bottom 


Global {
   edge = bottom
   allign = center
   margin = 0
   widthtype = percent
   width = 100
   height = 30
   transparent = false
   tintcolor = #ffffff
   alpha = 28
   setdocktype = true
   setpartialstrut = true
   autohide = false
   heightWhenHidden = 2
   roundcorners = false
   roundcornersradius = 7
   layer = none
   MaxElemHeight = 32
}

Plugin {
   type = wincmd
   config {
       icon = gnome-fs-desktop
       tooltip = Left click to iconify all windows. Middle click to shade them.
   }
}


Plugin {
   type = space
   config {
       size = 15
   }
}

Plugin {
   type = taskbar
   expand = true
   config {
       ShowIconified = true
       ShowMapped    = true
       ShowAllDesks  = false
       tooltips = true
       IconsOnly = false
       MaxTaskWidth = 150
   }
}


Plugin {
   type = space
config {
   size = 15
}
}

Plugin {
   type = pager
   config {
       showwallpaper = true
   }
}

 

~/.Xdefaults για όμορφο urxvt τερματικό

>Xft.dpi:                    96
Xft.antialias:           true
Xft.hinting:              full
Xft.hintstyle:           hintslight
Xft.rgba:                  rgb

!"terminus" font!!!
urxvt.font:              xft:terminus:pixelsize=20
urxvt*boldFont:          xft:terminus:pixelsize=20
urxvt.termName:          xterm
urxvt.scrollBar:         false
urxvt.imLocale:          en_US.UTF-8
urxvt.loginShell:        true
urxvt.saveLines:         512
urxvt.geometry:          60x20
urxvt.boldMode:          false
urxvt.inheritPixmap:     false
urxvt.shading:           40
urxvt.xftAntialias:      false
urxvt.jumpScroll:        true
urxvt.tintColor:         white
urxvt.internalBorder:    0
urxvt.cursorBlink:       false
urxvt.cursorColor:       grey
urxvt.cursorColor2:      #000000
urxvt.background:        #262729
urxvt.foreground:        light grey
urxvt.colorBD:           #ffffff
urxvt.colorIT:           #bbbbbb
urxvt.colorUL:           #999999
urxvt.underlineColor:    #999999
urxvt.borderless:        true

!black 
*color0 : #222222
*color8 : #454545
!red
*color1 : #F92672
*color9 : #F92672
!green
*color2 : #A6E22E
*color10: #A6E22E
!yellow
*color3 : #FD971F
*color11: #FD971F
!blue
*color4 : #4682B4
*color12: #4682B4
!magenta
*color5 : #AE81FF
*color13: #AE81FF
!cyan
*color6: #89b6e2
*color14: #46a4ff
!white
*color7 : #FFFFFF
*color15: #FFFFFF

 

~/.config/openbox/menu.xml για το μενού που εμφανίζεται με δεξί κλικ στο Desktop

><?xml version="1.0" encoding="utf-8"?>
<openbox_menu>
<menu id="root-menu" label="OpenBox 3">
	<item label="Τερματικό">
		<action name="Execute">
			<execute>
				urxvt
			</execute>
		</action>
	</item>
	<separator/>
	<item label="Web browser">
		<action name="Execute">
			<execute>
				chromium
			</execute>
		</action>
	</item>
	<separator/>
	<menu id="root-menu-36311" label="εμφάνιση">
		<item label="εικόνα επιφάνειας εργασίας">
			<action name="Execute">
				<execute>
					nitrogen ~/wallpapers
				</execute>
			</action>
		</item>
		<item label="lxappearance">
			<action name="Execute">
				<execute>
					lxappearance
				</execute>
			</action>
		</item>
	</menu>
	<separator/>
	<item label="screenshot!">
		<action name="Execute">
			<execute>
				scrot -d 4
			</execute>
		</action>
	</item>
	<separator/>
	<item label="επεξεργασία μενού">
		<action name="Execute">
			<execute>
				obmenu
			</execute>
		</action>
	</item>
	<separator/>
	<item label="ρύθμιση openbox">
		<action name="Execute">
			<execute>
				obconf
			</execute>
		</action>
	</item>
	<separator/>
	<menu id="40" label="OpenBox">
		<menu id="client-list-menu"/>
		<item label="Reconfigure">
			<action name="Reconfigure"/>
		</item>
		<separator/>
		<item label="Exit">
			<action name="Exit"/>
		</item>
	</menu>
</menu>
</openbox_menu>

 

καλή διασκέδαση!

 

 

 

Επεξ/σία από twiner
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

ΣΥΓΧΑΡΗΤΗΡΙΑ Κ.twiner για το εξαιρετικο project!

 

Συνταγη - Προταση

 

 

201010210401281024x768s.png

 

γραμμή εγκατάστασης: σε Arch Linux

 

>sudo pacman -S xorg xorg-xinit fluxbox fbpanel lxpanel thunar thunar-volman gtk-chtheme libnotify leafpad gpicview conky wicd chromium pidgin vlc mplayer gparted transmission-gtk links-g w3m gksu gexec xsmbrowser moc xarchiver lshw lxrandr centerim ultrasol xterm rxvt-unicode htop 

 

~/.xinitrc

 

>exec ck-launch-session fluxbox &
fbpid=$!

sleep 1
{
  tail -f /var/log/auth.log | grep --line-buffered -e "sshd:session" -e "password" > ssh &
  tail -n0 -f /home/babis/ssh | while read line; do notify-send "Authority" "$line"; done &
  tail -n0 -f /var/log/gnump3d/access.log | while read line; do notify-send "Gnump3d" "$line"; done &
  fbpanel &
  lxpanel &
  wicd-gtk &
  urxvt  &  
  conky & 
  setxkbmap -option terminate:ctrl_alt_bksp &
} &

wait $fbpid

 

~/.config/fbpanel/default για το κατω panel

 

>Global {
   edge = bottom 
   allign = center

   margin = 0
   widthtype = request
   width = 20
   height = 26
   transparent = true
   tintcolor = #ffffff
   alpha = 0
   setdocktype = true
   setpartialstrut = true
   autohide = false
   heightWhenHidden = 2
   roundcorners = false
   roundcornersradius = 7
   layer = none
}

Plugin {
   type = space
   config {
       size = 0
   }
}


Plugin {
   type = launchbar
   config {
      
       button {
           image = /usr/share/pixmaps/new/terminal.ico
           tooltip = Terminal
           action = xterm -bg black -fg orange
       }

       button {
           image = /usr/share/pixmaps//new/iTunes.ico
           tooltip = Moc audio player
           action =  urxvt2 -e mocp -T red_theme
}
button {
           image = /usr/share/pixmaps/new/Lightning-002.png
           tooltip = Links
           action = links -g
        }


        button {
           image = /usr/share/pixmaps/new/Web.ico
           tooltip = Light Web
           action = /home/babis/scripts/./web
       }
        button {
           image = /usr/share/pixmaps/new/msnmessenger.ico
           tooltip =Centerim
           #action = pidgin  
           action = xterm -bg black -fg orange -e centerim
       }

button {
           image = /usr/share/pixmaps/new/Transmission.ico
           tooltip = Torrent Client
           action = transmission
}
 button {
           image = /usr/share/pixmaps/new/paste.ico
           tooltip = Text Editor
           action = leafpad
       }
 button {
           image = /usr/share/pixmaps/new/jpg.ico
           tooltip = Image Viewer
           action = gpicview
}
button {
           image = /usr/share/pixmaps/new/Sandra.ico
           tooltip = Hardware List
           action =  gksu gtk-lshw
       }
       button {
           image = /usr/share/pixmaps/new/tinkertool.ico
           tooltip = Run
           action = gksu
       }
button {
           image = /usr/share/pixmaps/new/Winzip-005.png
           tooltip = Xarchiver
           action = xarchiver
    }
      button {
           image = /usr/share/pixmaps/new/Heart.ico
           tooltip = Solitaire
           action = ultrasol
       }
      button {
           image = /usr/share/pixmaps/new/Warning.ico
           tooltip = Kill
           action = xkill
       }

      button {
           image = /usr/share/pixmaps/new/network.ico
           tooltip = View samba shares
           action = xsmbrowser
       }
  
      button {
           image = /usr/share/pixmaps/new/Restorator.ico
           tooltip = Screen Resolution
           action = lxrandr
           }
     button {
           image = /usr/share/pixmaps/new/vmware.ico
           tooltip = Fit Wallpaper
           action = fbsetbg /home/babis/Files/pictures/Aqua_Blue_with_Leaves,_Mac_OS_Theme.jpg
           }
     button {
           image = /usr/share/pixmaps/new/keychain-005.png
           tooltip = Scripts menu
           action =  urxvt2 -e /home/babis/./menu
           }
  
      button {
           image = /usr/share/pixmaps/new/Reboot-005.png
           tooltip = Reboot
           action = rebot
           }
      button {
           image = /usr/share/pixmaps/new/poweroff.ico
           tooltip = Shutdown
           action = shut
           }

   }
}

Plugin {
   type = space
   config {
       size = 0
   }
}

 

Εικονιδια ----> Albook extended dark 782 icns

 

 

 

~/.config/lxpanel/default/panels/bottom για το επανω panel

 

 

>Global {
   edge=top
   allign=center
   margin=26
   widthtype=percent
   width=100
   height=20
   transparent=1
   tintcolor=#c1dacb
   alpha=142
   autohide=0
   heightwhenhidden=2
   setdocktype=1
   setpartialstrut=1
   usefontcolor=0
   fontcolor=#000000
   background=0
   backgroundfile=/usr/share/lxpanel/images/background.png
   iconsize=16
}

Plugin {
   type = menu
   Config {
       image=/usr/share/pixmaps/archlinux-icon-tango-64.png
       system {
       }
       separator {
       }
       item {
           command=run
       }
       separator {
       }
       item {
           image=gnome-logout
           command=logout
       }
   }
}

Plugin {
   type = taskbar
   expand=1
   Config {
       tooltips=0
       IconsOnly=0
       ShowAllDesks=0
       UseMouseWheel=0
       UseUrgencyHint=1
       FlatButton=1
       MaxTaskWidth=200
       spacing=1
       GroupedTasks=0
   }
}

Plugin {
   type = tray
}

Plugin {
   type = cpu
}

Plugin {
   type = volumealsa
}

Plugin {
   type = xkb
   Config {
       DisplayType=1
       PerAppLayout=1
       DefaultGroup=0
   }
}

Plugin {
   type = dclock
   Config {
       ClockFmt=%R
       TooltipFmt=%A %x
       BoldFont=1
       IconOnly=0
   }
}

 

~/.config/lxpanel/default/panels/panel για το panel δεξια

 

>Global {
   edge=right
   allign=left
   margin=125
   widthtype=percent
   width=43
   height=41
   transparent=1
   tintcolor=#000000
   alpha=0
   autohide=0
   heightwhenhidden=2
   setdocktype=0
   setpartialstrut=0
   usefontcolor=0
   fontcolor=#ffffff
   background=0
   backgroundfile=/usr/share/lxpanel/images/background.png
   iconsize=41
}

Plugin {
   type = launchbar
   Config {
       Button {
           id=/usr/share/applications/Thunar.desktop
       }
       Button {
           id=/usr/share/applications/thunar.desktop
       }
       Button {
           id=/usr/share/applications/chromium.desktop
       }
       Button {
           id=/usr/share/applications/pidgin.desktop
       }
       Button {
           id=/usr/share/applications/vlc.desktop
       }
       Button {
           id=/usr/share/applications/gparted.desktop
       }
   }
}

 

 

~/.conkyrc - Τροποποιηση του αρχικου configuration απο τον χρηστη markelos

 

>#avoid flicker
double_buffer yes

#own window to run simultanious 2 or more conkys
own_window no
own_window_transparent yes
own_window_type normal
own_window_hints undecorate,sticky,skip_taskbar,skip_pager

#borders
draw_borders no
border_inner_margin 1




#shades
draw_shades no

#position
gap_x 0
gap_y 22
alignment top_middle

#behaviour
update_interval 1

#colour
default_color FFDEAD
#default_shade_color 000000
own_window_colour 333333

#font
use_xft yes
xftfont droid sans:size=8

# Force UTF8? note that UTF8 support required XFT
override_utf8_locale yes

#to prevent window from moving
use_spacer none
minimum_size 10  30

maximum_width 1000

#mpd
#mpd_host localhost
#mpd_port 6600

TEXT
Cpu speed: ${color F0F8FF}${freq} Mhz ${color} Uptime: ${color F0F8FF}${uptime_short}${color} ${color} Memory ${color F0F8FF} ${memmax}${color} Used: ${color F0F8FF}${mem} ${color} Free:${color F0F8FF}${memeasyfree} ${color} Total Swap:${color F0F8FF} ${swapmax} ${color} Used: ${color F0F8FF}${swap} ${color} ${color} Net:${color F0F8FF} ${downspeed}${color F0F8FF} ${upspeed}

 

 

~/.Xdefaults για transparent urxvt και χρωματιστο xterm

 

>Xft.antialias: true
Xcursor.theme: Vanilla-DMZ-AA

## urxvt config
URxvt*termName: rxvt
URxvt*background:  #000000
URxvt*foreground:  #eab93d
URxvt*scrollBar_right:	false
URxvt*scrollBar:	false
URxvt*borderLess:	false
URxvt*inheritPixmap:	true
URxvt*geometry:		84x24
URxvt*tint:		white
#URxvt*font: xft:terminus-font:size=12x24
URxvt*color0:      #000000
URxvt*color1:      #A80000
URxvt*color2:      #00A800
URxvt*color3:      #A85400
URxvt*color4:      #0000A8
URxvt*color5:      #A800A8
URxvt*color6:      #00A8A8
URxvt*color7:      #A8A8A8
URxvt*color8:      #545054
URxvt*color9:      #F85450
URxvt*color10:     #50FC50
URxvt*color11:     #F2FC50
URxvt*color12:     #5054F8
URxvt*color13:     #F854F8
URxvt*color14:     #50FCF8
URxvt*color15:     #F8FCF8

## xterm config
xterm*termName: xterm
xterm*background: #000000
xterm*foreground: #eab93d

 

 

 

~/.fluxbox/apps για να οριζω το που και πως θα γινεται το decoration ανα εφαρμογη(βοηθησε και στην ενσωματωση του urxvt στο desktop καθως και του mplayer για ενσωματωμενο video playback στο desktop.)

 

>
[app] (name=urxvt)
 [Dimensions]	{400 298}
 [Position]	(UPPERLEFT)	{0 50}
 [Deco]	{NONE}
 [Hidden]	{yes}
[end]
[app] (name=xv) (class=MPlayer)
 [Dimensions]	{360 261}
 [Position]	(UPPERRIGHT)	{40 0}
 [Deco]	{NONE}
 [Hidden]	{yes}
[end]
[app] (name=Links) (class=Links)
 [Dimensions]	{1230 691}
 [Position]	(UPPERLEFT)	{50 -28}
 [Maximized]	{yes}
[end]
[app] (name=gpicview) (class=Gpicview)
 [Dimensions]	{800 659}
 [Position]	(UPPERLEFT)	{207 4}
[end]
[app] (name=leafpad) (class=Leafpad)
 [Dimensions]	{754 511}
 [Position]	(UPPERLEFT)	{178 143}
 [Close]	{yes}
[end]
[app] (name=Pidgin) (class=Pidgin) (role=buddy_list)
 [Dimensions]	{284 601}
 [Position]	(UPPERLEFT)	{673 37}
 [Close]	{yes}
[end]
[app] (name=Pidgin) (class=Pidgin) (role=conversation)
 [Dimensions]	{340 411}
 [Position]	(UPPERLEFT)	{127 90}
[end]
[app] (name=urxvt2) (class=URxvt)
 [Dimensions]	{480 187}
 [Position]	(LOWERRIGHT)	{0 0}
 [Deco]	{NONE}
 [Hidden]	{yes}
[end]
[app] (name=chromium) (class=Chromium)
 [Dimensions]	{948 671}
 [Position]	(UPPERLEFT)	{17 24}
 [Close]	{yes}
[end]
[app] (name=vlc) (class=Vlc) (role=vlc-main)
 [Dimensions]	{427 370}
 [Position]	(UPPERLEFT)	{259 149}
 [Close]	{yes}
[end]
[app] (name=ultrasol) (class=Ultrasol)
 [Dimensions]	{663 613}
 [Position]	(UPPERLEFT)	{239 30}
[end]
[app] (name=Thunar) (class=Thunar)
 [Dimensions]	{831 545}
 [Position]	(UPPERLEFT)	{88 62}
 [Close]	{yes}
[end]

 

Θεμα του fluxbox --------> Blendish

 

 

 

~/.mplayer/config

 

>
vo=xv
#vfm=ffmpeg
#lavdopts=lowres=1
#lavdopts=fast=yes
#lavdopts=skiploopfilter=all
font=/home/babis/.mplayer/font-arial-14-iso-8859-7/font.desc
subcp=enca:gr:greek
#fs=yes

 

 

 

MEΡΙΚΕΣ ΕΠΕΞΗΓΗΣΕΙΣ.

 

Θα αναρωτηθει κανεις τι στο καλο ειναι αυτα τα

 

action = rebot

action = shut

 

που υπαρχουν στο τελος του καταλογου του ~/.config/fbpanel/default και φυσικα αντιστοιχουν στα 2 τελευταια εικονιδια της κατω μπαρας(fbpanel)

 

Δυο απλουστατα scripts για για κανω επανεκκινηση και κλεισιμο του μηχανηματος με ενα κλικ σε....3 sec αφου το πατησω σε συνδυασμο με το libnotify.

 

/usr/bin/rebot

 

>#!/bin/sh

notify-send System "The system will reboot in 3 seconds!!" & sleep 3

/sbin/shutdown -r now

 

/usr/bin/shut

 

>#!/bin/sh

notify-send System "The system will halt in 3 seconds!!" & sleep 3

/sbin/shutdown -h now

 

Επισης τα

 

>
  tail -f /var/log/auth.log | grep --line-buffered -e "sshd:session" -e "password" > ssh &
  tail -n0 -f /home/babis/ssh | while read line; do notify-send "Authority" "$line"; done &
  tail -n0 -f /var/log/gnump3d/access.log | while read line; do notify-send "Gnump3d" "$line"; done &

 

στο ~/.xinitrc

 

ειναι για να ειδοποιουμαι με desktop notification (libnotify) ανα πασα στιγμη και ωρα για την δραστηριοτητα του ssh(ποιος μπαινει ποιος βγαινει ποιος δεν μπορεσε να μπει κ.λ.π) καθως και για τον media streaming server μου.(gnump3d)

 

Φυσικα εχουν δωθει και τα απαραιτητα read δικαιωματα στα συγκεκριμενα logs.

 

 

 

Επεξ/σία από tritonas00
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

ΣΥΓΧΑΡΗΤΗΡΙΑ Κ.twiner για το εξαιρετικο project!

 

Συνταγη - Προταση

 

 

201010210401281024x768s.png

 

γραμμή εγκατάστασης: σε Arch Linux

 

>sudo pacman -S xorg xorg-xinit fluxbox fbpanel lxpanel thunar thunar-volman gtk-chtheme libnotify leafpad gpicview conky wicd chromium pidgin vlc mplayer gparted transmission-gtk links-g w3m gksu gexec xsmbrowser moc xarchiver lshw lxrandr centerim ultrasol xterm rxvt-unicode htop 

 

~/.xinitrc

 

>exec ck-launch-session fluxbox &
fbpid=$!

sleep 1
{
  tail -f /var/log/auth.log | grep --line-buffered -e "sshd:session" -e "password" > ssh &
  tail -n0 -f /home/babis/ssh | while read line; do notify-send "Authority" "$line"; done &
  tail -n0 -f /var/log/gnump3d/access.log | while read line; do notify-send "Gnump3d" "$line"; done &
  fbpanel &
  lxpanel &
  wicd-gtk &
  urxvt  &  
  conky & 
  setxkbmap -option terminate:ctrl_alt_bksp &
} &

wait $fbpid

 

~/.config/fbpanel/default για το κατω panel

 

>Global {
   edge = bottom 
   allign = center

   margin = 0
   widthtype = request
   width = 20
   height = 26
   transparent = true
   tintcolor = #ffffff
   alpha = 0
   setdocktype = true
   setpartialstrut = true
   autohide = false
   heightWhenHidden = 2
   roundcorners = false
   roundcornersradius = 7
   layer = none
}

Plugin {
   type = space
   config {
       size = 0
   }
}


Plugin {
   type = launchbar
   config {
      
       button {
           image = /usr/share/pixmaps/new/terminal.ico
           tooltip = Terminal
           action = xterm -bg black -fg orange
       }

       button {
           image = /usr/share/pixmaps//new/iTunes.ico
           tooltip = Moc audio player
           action =  urxvt2 -e mocp -T red_theme
}
button {
           image = /usr/share/pixmaps/new/Lightning-002.png
           tooltip = Links
           action = links -g
        }


        button {
           image = /usr/share/pixmaps/new/Web.ico
           tooltip = Light Web
           action = /home/babis/scripts/./web
       }
        button {
           image = /usr/share/pixmaps/new/msnmessenger.ico
           tooltip =Centerim
           #action = pidgin  
           action = xterm -bg black -fg orange -e centerim
       }

button {
           image = /usr/share/pixmaps/new/Transmission.ico
           tooltip = Torrent Client
           action = transmission
}
 button {
           image = /usr/share/pixmaps/new/paste.ico
           tooltip = Text Editor
           action = leafpad
       }
 button {
           image = /usr/share/pixmaps/new/jpg.ico
           tooltip = Image Viewer
           action = gpicview
}
button {
           image = /usr/share/pixmaps/new/Sandra.ico
           tooltip = Hardware List
           action =  gksu gtk-lshw
       }
       button {
           image = /usr/share/pixmaps/new/tinkertool.ico
           tooltip = Run
           action = gksu
       }
button {
           image = /usr/share/pixmaps/new/Winzip-005.png
           tooltip = Xarchiver
           action = xarchiver
    }
      button {
           image = /usr/share/pixmaps/new/Heart.ico
           tooltip = Solitaire
           action = ultrasol
       }
      button {
           image = /usr/share/pixmaps/new/Warning.ico
           tooltip = Kill
           action = xkill
       }

      button {
           image = /usr/share/pixmaps/new/network.ico
           tooltip = View samba shares
           action = xsmbrowser
       }
  
      button {
           image = /usr/share/pixmaps/new/Restorator.ico
           tooltip = Screen Resolution
           action = lxrandr
           }
     button {
           image = /usr/share/pixmaps/new/vmware.ico
           tooltip = Fit Wallpaper
           action = fbsetbg /home/babis/Files/pictures/Aqua_Blue_with_Leaves,_Mac_OS_Theme.jpg
           }
     button {
           image = /usr/share/pixmaps/new/keychain-005.png
           tooltip = Scripts menu
           action =  urxvt2 -e /home/babis/./menu
           }
  
      button {
           image = /usr/share/pixmaps/new/Reboot-005.png
           tooltip = Reboot
           action = rebot
           }
      button {
           image = /usr/share/pixmaps/new/poweroff.ico
           tooltip = Shutdown
           action = shut
           }

   }
}

Plugin {
   type = space
   config {
       size = 0
   }
}

 

Εικονιδια ----> Albook extended dark 782 icns

 

 

 

~/.config/lxpanel/default/panels/bottom για το επανω panel

 

 

>Global {
   edge=top
   allign=center
   margin=26
   widthtype=percent
   width=100
   height=20
   transparent=1
   tintcolor=#c1dacb
   alpha=142
   autohide=0
   heightwhenhidden=2
   setdocktype=1
   setpartialstrut=1
   usefontcolor=0
   fontcolor=#000000
   background=0
   backgroundfile=/usr/share/lxpanel/images/background.png
   iconsize=16
}

Plugin {
   type = menu
   Config {
       image=/usr/share/pixmaps/archlinux-icon-tango-64.png
       system {
       }
       separator {
       }
       item {
           command=run
       }
       separator {
       }
       item {
           image=gnome-logout
           command=logout
       }
   }
}

Plugin {
   type = taskbar
   expand=1
   Config {
       tooltips=0
       IconsOnly=0
       ShowAllDesks=0
       UseMouseWheel=0
       UseUrgencyHint=1
       FlatButton=1
       MaxTaskWidth=200
       spacing=1
       GroupedTasks=0
   }
}

Plugin {
   type = tray
}

Plugin {
   type = cpu
}

Plugin {
   type = volumealsa
}

Plugin {
   type = xkb
   Config {
       DisplayType=1
       PerAppLayout=1
       DefaultGroup=0
   }
}

Plugin {
   type = dclock
   Config {
       ClockFmt=%R
       TooltipFmt=%A %x
       BoldFont=1
       IconOnly=0
   }
}

 

~/.config/lxpanel/default/panels/panel για το panel δεξια

 

>Global {
   edge=right
   allign=left
   margin=125
   widthtype=percent
   width=43
   height=41
   transparent=1
   tintcolor=#000000
   alpha=0
   autohide=0
   heightwhenhidden=2
   setdocktype=0
   setpartialstrut=0
   usefontcolor=0
   fontcolor=#ffffff
   background=0
   backgroundfile=/usr/share/lxpanel/images/background.png
   iconsize=41
}

Plugin {
   type = launchbar
   Config {
       Button {
           id=/usr/share/applications/Thunar.desktop
       }
       Button {
           id=/usr/share/applications/thunar.desktop
       }
       Button {
           id=/usr/share/applications/chromium.desktop
       }
       Button {
           id=/usr/share/applications/pidgin.desktop
       }
       Button {
           id=/usr/share/applications/vlc.desktop
       }
       Button {
           id=/usr/share/applications/gparted.desktop
       }
   }
}

 

 

~/.conkyrc - Τροποποιηση του αρχικου configuration απο τον χρηστη markelos

 

>#avoid flicker
double_buffer yes

#own window to run simultanious 2 or more conkys
own_window no
own_window_transparent yes
own_window_type normal
own_window_hints undecorate,sticky,skip_taskbar,skip_pager

#borders
draw_borders no
border_inner_margin 1




#shades
draw_shades no

#position
gap_x 0
gap_y 22
alignment top_middle

#behaviour
update_interval 1

#colour
default_color FFDEAD
#default_shade_color 000000
own_window_colour 333333

#font
use_xft yes
xftfont droid sans:size=8

# Force UTF8? note that UTF8 support required XFT
override_utf8_locale yes

#to prevent window from moving
use_spacer none
minimum_size 10  30

maximum_width 1000

#mpd
#mpd_host localhost
#mpd_port 6600

TEXT
Cpu speed: ${color F0F8FF}${freq} Mhz ${color} Uptime: ${color F0F8FF}${uptime_short}${color} ${color} Memory ${color F0F8FF} ${memmax}${color} Used: ${color F0F8FF}${mem} ${color} Free:${color F0F8FF}${memeasyfree} ${color} Total Swap:${color F0F8FF} ${swapmax} ${color} Used: ${color F0F8FF}${swap} ${color} ${color} Net:${color F0F8FF} ${downspeed}${color F0F8FF} ${upspeed}

 

 

~/.Xdefaults για transparent urxvt και χρωματιστο xterm

 

>Xft.antialias: true
Xcursor.theme: Vanilla-DMZ-AA

## urxvt config
URxvt*termName: rxvt
URxvt*background:  #000000
URxvt*foreground:  #eab93d
URxvt*scrollBar_right:	false
URxvt*scrollBar:	false
URxvt*borderLess:	false
URxvt*inheritPixmap:	true
URxvt*geometry:		84x24
URxvt*tint:		white
#URxvt*font: xft:terminus-font:size=12x24
URxvt*color0:      #000000
URxvt*color1:      #A80000
URxvt*color2:      #00A800
URxvt*color3:      #A85400
URxvt*color4:      #0000A8
URxvt*color5:      #A800A8
URxvt*color6:      #00A8A8
URxvt*color7:      #A8A8A8
URxvt*color8:      #545054
URxvt*color9:      #F85450
URxvt*color10:     #50FC50
URxvt*color11:     #F2FC50
URxvt*color12:     #5054F8
URxvt*color13:     #F854F8
URxvt*color14:     #50FCF8
URxvt*color15:     #F8FCF8

## xterm config
xterm*termName: xterm
xterm*background: #000000
xterm*foreground: #eab93d

 

 

 

~/.fluxbox/apps για να οριζω το που και πως θα γινεται το decoration ανα εφαρμογη(βοηθησε και στην ενσωματωση του urxvt στο desktop καθως και του mplayer για ενσωματωμενο video playback στο desktop.)

 

>
[app] (name=urxvt)
 [Dimensions]	{400 298}
 [Position]	(UPPERLEFT)	{0 50}
 [Deco]	{NONE}
 [Hidden]	{yes}
[end]
[app] (name=xv) (class=MPlayer)
 [Dimensions]	{360 261}
 [Position]	(UPPERRIGHT)	{40 0}
 [Deco]	{NONE}
 [Hidden]	{yes}
[end]
[app] (name=Links) (class=Links)
 [Dimensions]	{1230 691}
 [Position]	(UPPERLEFT)	{50 -28}
 [Maximized]	{yes}
[end]
[app] (name=gpicview) (class=Gpicview)
 [Dimensions]	{800 659}
 [Position]	(UPPERLEFT)	{207 4}
[end]
[app] (name=leafpad) (class=Leafpad)
 [Dimensions]	{754 511}
 [Position]	(UPPERLEFT)	{178 143}
 [Close]	{yes}
[end]
[app] (name=Pidgin) (class=Pidgin) (role=buddy_list)
 [Dimensions]	{284 601}
 [Position]	(UPPERLEFT)	{673 37}
 [Close]	{yes}
[end]
[app] (name=Pidgin) (class=Pidgin) (role=conversation)
 [Dimensions]	{340 411}
 [Position]	(UPPERLEFT)	{127 90}
[end]
[app] (name=urxvt2) (class=URxvt)
 [Dimensions]	{480 187}
 [Position]	(LOWERRIGHT)	{0 0}
 [Deco]	{NONE}
 [Hidden]	{yes}
[end]
[app] (name=chromium) (class=Chromium)
 [Dimensions]	{948 671}
 [Position]	(UPPERLEFT)	{17 24}
 [Close]	{yes}
[end]
[app] (name=vlc) (class=Vlc) (role=vlc-main)
 [Dimensions]	{427 370}
 [Position]	(UPPERLEFT)	{259 149}
 [Close]	{yes}
[end]
[app] (name=ultrasol) (class=Ultrasol)
 [Dimensions]	{663 613}
 [Position]	(UPPERLEFT)	{239 30}
[end]
[app] (name=Thunar) (class=Thunar)
 [Dimensions]	{831 545}
 [Position]	(UPPERLEFT)	{88 62}
 [Close]	{yes}
[end]

 

Θεμα του fluxbox --------> Blendish

 

 

 

~/.mplayer/config

 

>
vo=xv
#vfm=ffmpeg
#lavdopts=lowres=1
#lavdopts=fast=yes
#lavdopts=skiploopfilter=all
font=/home/babis/.mplayer/font-arial-14-iso-8859-7/font.desc
subcp=enca:gr:greek
#fs=yes

 

 

 

MEΡΙΚΕΣ ΕΠΕΞΗΓΗΣΕΙΣ.

 

Θα αναρωτηθει κανεις τι στο καλο ειναι αυτα τα

 

action = rebot

action = shut

 

που υπαρχουν στο τελος του καταλογου του ~/.config/fbpanel/default και φυσικα αντιστοιχουν στα 2 τελευταια εικονιδια της κατω μπαρας(fbpanel)

 

Δυο απλουστατα scripts για για κανω επανεκκινηση και κλεισιμο του μηχανηματος με ενα κλικ σε....3 sec αφου το πατησω σε συνδυασμο με το libnotify.

 

/usr/bin/rebot

 

>#!/bin/sh

notify-send System "The system will reboot in 3 seconds!!" & sleep 3

/sbin/shutdown -r now

 

/usr/bin/shut

 

>#!/bin/sh

notify-send System "The system will halt in 3 seconds!!" & sleep 3

/sbin/shutdown -h now

 

Επισης τα

 

>
  tail -f /var/log/auth.log | grep --line-buffered -e "sshd:session" -e "password" > ssh &
  tail -n0 -f /home/babis/ssh | while read line; do notify-send "Authority" "$line"; done &
  tail -n0 -f /var/log/gnump3d/access.log | while read line; do notify-send "Gnump3d" "$line"; done &

 

στο ~/.xinitrc

 

ειναι για να ειδοποιουμαι με desktop notification (libnotify) ανα πασα στιγμη και ωρα για την δραστηριοτητα του ssh(ποιος μπαινει ποιος βγαινει ποιος δεν μπορεσε να μπει κ.λ.π) καθως και για τον media streaming server μου.(gnump3d)

 

Φυσικα εχουν δωθει και τα απαραιτητα read δικαιωματα στα συγκεκριμενα logs.

 

 

 

Επεξ/σία από tritonas00
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δυο παρατηρησεις.

 

- Γιατι κανετε χρηση του xinitrc, το οποιο εκτελει τα περιεχομενα του ανεξαρτητως de και wm, και δεν κανετε χρηση του autostart που παρεχει ο καθε wm.

Πχ, αν βαλω αυριο fluxbox που μου παρεχει δικο του κατω πανελ και tray, για ποιο λογο να τρεχω και εκει το fbpanel που τρεχω στο openbox?

 

- Το notification (για τερματισμο/επανεκκινηση εδω) απαιτει καποιον daemon να τρεχει ηδη?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δυο παρατηρησεις.

 

- Γιατι κανετε χρηση του xinitrc, το οποιο εκτελει τα περιεχομενα του ανεξαρτητως de και wm, και δεν κανετε χρηση του autostart που παρεχει ο καθε wm.

Πχ, αν βαλω αυριο fluxbox που μου παρεχει δικο του κατω πανελ και tray, για ποιο λογο να τρεχω και εκει το fbpanel που τρεχω στο openbox?

 

- Το notification (για τερματισμο/επανεκκινηση εδω) απαιτει καποιον daemon να τρεχει ηδη?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πρόταση: Προσθήκη LCD οθόνης χαρακτήρων για προβολή live πληροφοριών + Παρακολούθηση θερμοκρασιών & fans με lm-sensors

 

 

Αν και το παρακάτω δεν αφορά ακριβώς «τo στήσιμο gnu/linux συστήματος με customized γραφικό περιβάλλον και μικρό memory footprint», πιστεύω να είναι κάπως on topic και (ίσως) να φανεί χρήσιμο σε κάποιους.

 

Σκοπός:

Κάποιοι πιστεύω χρησιμοποιούν widgets ώστε να παρακολουθούν διάφορες πληροφορίες για το σύστημά τους (Χρήση CPU/RAM, Χώρος στους δίσκους, Θερμοκρασίες, Ταχύτητα ανεμιστήρων, και άλλα...). Αυτές οι πληροφορίες δεν φαίνονται όμως όταν τρέχει κάποια full-screen εφαρμογή ή κάποιο παιχνίδι. Κάποιοι άλλοι μπορεί να χρησιμοποιούν τον υπολογιστή ως «κατεβαστήρι»/server και να μην έχουν καν οθόνη. Ο σκοπός αυτού του post είναι η εγκατάσταση, παραμετροοπίηση και χρήση μιας LCD οθόνης χαρακτήρων (20 χαρακτήρες x 4 γραμμές, controller HD44780) η οποία μπορεί να βρεθεί σε προσιτές τιμές στο Internet (πχ/ ebay).

Εκτός του παραπάνω, θα γίνει εγκατάσταση και παραμετροποίηση του προγράμματος lm-sensors για παρακολούθηση θερμοκρασιών και στροφών των ανεμιστήρων του συστήματος.

Δυστυχώς, η οθόνη που έχω στην διάθεσή μου απαιτεί παράλληλη θύρα (που πιθανώς αρκετοί να μην έχουν), αλλά δίνοντας λίγα παραπάνω χρήματα μπορείτε να αγοράσετε μια πλακέτα που επιτρέπει στην οθόνη να συνδεθεί μέσω USB (οι αντάπτορες USB -> Parallel δεν λειτουργούν, σύμφωνα με όσα έχω διαβάσει σε διάφορες σελίδες).

 

Το αποτέλεσμα:

lcd1.jpg

 

Στο ακόλουθο διάγραμμα παρουσιάζεται η συνδεσμολογία της LCD οθόνης με την παράλληλη θύρα.

 

lcd44780.gif

 

 

Τα ακόλουθα δοκιμάστηκαν σε Debian Squeeze/Sid (testing) με kernel 2.6.32-5-amd64. Η οθόνη έχει δοκιμαστεί και με παλαιότερο kernel (32bit, δυστυχώς δεν θυμάμαι ποιον) και έπαιζε μια χαρά.

 

Αρχίζοντας λίγο ανάποδα, θα δούμε πρώτα την εγκατάσταση και παραμετροποίηση του lm-sensors.

Ανοίγουμε την κονσόλα (είτε από το γραφικό περιβάλλον είτε μέσω ssh) και κάνουμε login σαν root (ή χρησιμοποιούμε sudo πριν από κάθε εντολή).

>apt-get install lm-sensors

Ενδεχομένως να εμφανίσει κάτι σαν το ακόλουθο, στο οποίο θα πρέπει να απαντήσουμε καταφατικά (y).

 

>Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
fancontrol libdb4.7 libsensors4 perl perl-modules
Suggested packages:
sensord read-edid i2c-tools perl-doc libterm-readline-gnu-perl libterm-readline-perl-perl make
The following NEW packages will be installed:
fancontrol libdb4.7 libsensors4 lm-sensors perl perl-modules
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 8,818 kB of archives.
After this operation, 37.5 MB of additional disk space will be used.
Do you want to continue [Y/n]?

 

Εφόσον εγκατασταθούν επιτυχώς όλα τα πακέτα εκτελούμε την εντολή

>sensors-detect

Θα ερωτηθούμε κάποια πράματα, στα οποία θα πρέπει να απαντήσουμε καταφατικά (y). Ένα παράδειγμα με όλες τις ερωτήσεις ακολουθεί (όπου υπάρχει ο χαρακτήρας "y" είναι η απάντησή μας):

 

># sensors-detect revision 5818 (2010-01-18 17:22:07 +0100)
# System: To Be Filled By O.E.M. To Be Filled By O.E.M.
# Board: ASRock A330GC

This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no): y

Silicon Integrated Systems SIS5595...                       No
VIA VT82C686 Integrated Sensors...                          No
VIA VT8231 Integrated Sensors...                            No
AMD K8 thermal sensors...                                   No
AMD Family 10h thermal sensors...                           No
AMD Family 11h thermal sensors...                           No
Intel Core family thermal sensor...                         No
Intel Atom thermal sensor...                                Success!
(driver `coretemp')
Intel AMB FB-DIMM thermal sensor...                         No
VIA C7 thermal sensor...                                    No
VIA Nano thermal sensor...                                  No

Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no): y

Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor'...                   No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               Yes
Found `Winbond W83627DHG-P Super IO Sensors'                Success!
(address 0x290, driver `w83627ehf')
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor'...                   No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      No

Some systems (mainly servers) implement IPMI, a set of common interfaces
through which system health data may be retrieved, amongst other things.
We first try to get the information from SMBIOS. If we don't find it
there, we have to read from arbitrary I/O ports to probe for such
interfaces. This is normally safe. Do you want to scan for IPMI
interfaces? (YES/no): y

Probing for `IPMI BMC KCS' at 0xca0...                      No
Probing for `IPMI BMC SMIC' at 0xca8...                     No

Some hardware monitoring chips are accessible through the ISA I/O ports.
We have to write to arbitrary I/O ports to probe them. This is usually
safe though. Yes, you do have ISA I/O ports even if you do not have any
ISA slots! Do you want to scan the ISA I/O ports? (yes/NO): y

Probing for `National Semiconductor LM78' at 0x290...       No
Probing for `National Semiconductor LM79' at 0x290...       No
Probing for `Winbond W83781D' at 0x290...                   No
Probing for `Winbond W83782D' at 0x290...                   No

Lastly, we can probe the I2C/SMBus adapters for connected hardware
monitoring devices. This is the most risky part, and while it works
reasonably well on most systems, it has been reported to cause trouble
on some systems.
Do you want to probe the I2C/SMBus adapters now? (YES/no): y

Using driver `i2c-i801' for device 0000:00:1f.3: Intel 82801G ICH7
Module i2c-dev loaded successfully.

Next adapter: SMBus I801 adapter at 0400 (i2c-0)
Do you want to scan it? (yes/NO/selectively): y

Client found at address 0x50
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 Yes
(confidence 8, not a hardware monitoring chip)
Probing for `EDID EEPROM'...                                No
Client found at address 0x52
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 Yes
(confidence 8, not a hardware monitoring chip)

Next adapter: intel drm CRTDDC_A (i2c-1)
Do you want to scan it? (YES/no/selectively): y

Client found at address 0x49
Probing for `National Semiconductor LM75'...                No
Probing for `Dallas Semiconductor DS75'...                  No
Probing for `National Semiconductor LM77'...                No
Probing for `Dallas Semiconductor DS1621/DS1631'...         No
Probing for `National Semiconductor LM73'...                No
Probing for `National Semiconductor LM92'...                No
Probing for `National Semiconductor LM76'...                No
Probing for `Maxim MAX6633/MAX6634/MAX6635'...              No
Client found at address 0x50
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 No
Probing for `EDID EEPROM'...                                Yes
(confidence 8, not a hardware monitoring chip)
Client found at address 0x51
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 No
Client found at address 0x52
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 No
Client found at address 0x53
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 No

Now follows a summary of the probes I have just done.
Just press ENTER to continue:

Driver `w83627ehf':
* ISA bus, address 0x290
Chip `Winbond W83627DHG-P Super IO Sensors' (confidence: 9)

Driver `coretemp':
* Chip `Intel Atom thermal sensor' (confidence: 9)

To load everything that is needed, add this to /etc/modules:
#----cut here----
# Chip drivers
coretemp
w83627ehf
#----cut here----
If you have some drivers built into your kernel, the list above will
contain too many modules. Skip the appropriate ones!

Do you want to add these lines automatically to /etc/modules? (yes/NO) y

Successful!

Monitoring programs won't work until the needed modules are
loaded. You may want to run '/etc/init.d/module-init-tools start'
to load them.

Unloading i2c-dev... OK

 

Παρατηρούμε ότι εντόπισε τα τα coretemp και w83627ehf σαν chip drivers, τα οποία θα πρέπει να τα «φορτώσουμε» στο σύστημά μας ώστε να πάρουμε το επιθυμητό αποτέλεσμα:

>modprobe coretemp
modprobe w83627ehf

Οι chip drivers ενδεχομένως να είναι διαφορετικοί για την κάθε μητρική.

Εφόσον απαντήσουμε "y" στην ερώτηση "Do you want to add these lines automatically to /etc/modules? (yes/NO)", οι chip drivers θα «φορτώνονται» αυτόματα κατά την εκκίνηση του συστήματος. Ειδάλλως, θα πρέπει να εκτελούμε συνέχεια το "modprobe xxx".

Εφόσον όλα έχουν πάει καλά, δίνουμε την εντολή

>sensors

και θα (πρέπει να) δούμε κάτι σαν το ακόλουθο:

 

>coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +49.0°C  (crit = +90.0°C)

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +52.0°C  (crit = +90.0°C)

w83627dhg-isa-0290
Adapter: ISA adapter
Vcore:       +1.10 V  (min =  +0.00 V, max =  +1.74 V)
in1:         +1.02 V  (min =  +1.03 V, max =  +0.04 V)   ALARM
AVCC:        +3.33 V  (min =  +3.20 V, max =  +3.09 V)   ALARM
VCC:         +3.33 V  (min =  +2.51 V, max =  +2.42 V)   ALARM
in4:         +1.66 V  (min =  +1.94 V, max =  +0.72 V)   ALARM
in5:         +1.66 V  (min =  +0.29 V, max =  +0.26 V)   ALARM
in6:         +1.91 V  (min =  +1.30 V, max =  +0.04 V)   ALARM
3VSB:        +3.46 V  (min =  +0.32 V, max =  +3.23 V)   ALARM
Vbat:        +3.31 V  (min =  +0.99 V, max =  +1.58 V)   ALARM
fan1:          0 RPM  (min =  767 RPM, div = 16)  ALARM
fan2:          0 RPM  (min = 42187 RPM, div = 16)  ALARM
fan3:          0 RPM  (min =  795 RPM, div = 16)  ALARM
fan4:          0 RPM  (min = 1140 RPM, div = 16)  ALARM
fan5:          0 RPM  (min = 1318 RPM, div = 16)  ALARM
temp1:       +47.0°C  (high = -121.0°C, hyst = +36.0°C)  ALARM  sensor = thermistor
temp2:       +56.5°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor
temp3:       +48.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor
cpu0_vid:   +0.000 V

 

 

 

 

 

Συνεχίζοντας και έχοντας ήδη συνδέσει την LCD οθόνη στον υπολογιστή, εκτελούμε την εντολή

>apt-get install lcdproc

η οποία θα εγκαταστήσει το πρόγραμμα LCDProc το οποίο στέλνει τα δεδομένα στην LCD οθόνη. Ενδεχομένως να εμφανίσει το ακόλουθο:

 

>Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
lcdproc
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 378 kB of archives.
After this operation, 1,204 kB of additional disk space will be used.

 

Εφόσον εγκατασταθεί επιτυχώς το πρόγραμμα, διαλέγουμε τον αγαπημένο μας text editor και επεξεργαζόμαστε το αρχείο "/etc/LCDd.conf"

>nano /etc/LCDd.conf

Στο "WaitTime=5" δίνουμε τον χρόνο (σε δευτερόλεπτα) που θέλουμε να εμφανίζεται η κάθε πληροφορία στην LCD οθόνη μας.

Βγάζουμε από σχόλιο (αφαιρώντας το # από την αρχή της γραμμής) το "ServerScreen=no". Αυτό θα εμποδίσει την αρχική «οθόνη» από το να εμφανίζεται σε κάθε κύκλο (η αρχική «οθόνη» θα παρουσιαστεί παρακάτω).

Αλλάζουμε το "Driver=curses" σε "Driver=hd44780".

Έπειτα προχωράμε (αρκετά) παρακάτω στο αρχείο ώσπου να συνατήσουμε το "## Hitachi HD44780 driver ##" και αλλάζουμε το "ConnectionType=4bit" με "ConnectionType=winamp". Αποθηκεύουμε το αρχείο και το κλείνουμε.

Στην συνέχεια (επαν)εκκινούμε τον «δαίμονα» δίνοντας την εντολή

>/etc/init.d/LCDd restart

Εαν όλα έχουν πάει καλά θα πρέπει να εμφανιστεί η αρχική «οθόνη» (η οποία αναφέρθηκε και παραπάνω):

lcd12.jpg

Παρατηρούμε ότι δεν υπάρχει κάποιος client συνδεμένος στον «δαίμονα» ούτε κάποια «οθόνη» πληροφοριών. Για να προσθέσουμε έναν client και μερικές «οθόνες» πρέπει να επεξεργαστούμε το αρχείο "/etc/lcdproc.conf"

>nano /etc/lcdproc.conf

Όλες οι «οθόνες» ενεργοποιούνται θέτοντας "Active=true" και απενεργοποιούνται θέτοντας "Active=false". Εάν επιλέξετε να εμφανιστούν όλες (ή οι πιο πολλές), ίσως αντιμετωπίσετε πρόβλημα με το πρόγραμμα (δεν εμφανίζει τίποτα). Πιθανώς υπάρχει ένα όριο, το οποίο δυστυχώς δεν γνωρίζω.

Εφόσον επιλέξουμε ποιες «οθόνες» θέλουμε να εμφανίζονται, αποθηκεύουμε το αρχείο και το κλείνουμε. Στην συνέχεια δίνουμε την εντολή

>lcdproc

Στην LCD οθόνη το "Clients" από 0 (μηδέν) θα γίνει 1 (ένα) και αντίστοιχα, το "Screens" από 0 (μηδέν) θα λάβει μια τιμή.

Ενδεικτικές «οθόνες» φαίνονται στις παρακάτω φωτογραφίες:

 

lcd11.jpg

 

 

lcd10.jpg

 

 

lcd9.jpg

 

 

 

 

 

Δυστυχώς, όπως θα παρατηρήσατε στο αρχείο "/etc/lcdproc.conf" δεν υπάρχει καμία «οθόνη» που να δείχνει πληροφορίες σχετικά με θερμοκρασίες και ταχύτητες των fans. Ευτυχώς όμως, μπορούμε να φτιάξουμε ότι «οθόνη» θέλουμε.

Δημιουργήστε ένα νέο αρχείο με όνομα "lcdsensors.pl" σε όποιο path σας βολεύει (το όνομα δεν έχει τόση σημασία, παρα μόνο η κατάληξη *.pl).

>nano /usr/scripts/lcdsensors.pl

και προσθέστε τις ακόλουθες γραμμές

 

>#!/usr/bin/perl

## --> CHANGE THESE VARIABLES !!!!!!
## variables regarding lm_sensors, update these conform to your system
my $chip='/sys/devices/platform/w83627ehf.656';        # directory where lm_sensors writes its data - Various temperatures
my $core0='/sys/devices/platform/coretemp.0';        # directory where lm_sensors writes its data - Core 0 temperatures
my $core1='/sys/devices/platform/coretemp.1';        # directory where lm_sensors writes its data - Core 1 temperatures

my $cpusens='temp1_input';
my $syssens='temp2_input';
my $mobsens='temp3_input';

my $c00sens='temp1_input';
my $c01sens='temp1_input';

my $fan1sens='fan1_input';
my $fan2sens='fan2_input';
my $fan3sens='fan3_input';

my $cpumaxsens='temp1_max';
my $cpuminsens='temp1_min';
my $sysmaxsens='temp2_max';
my $sysminsens='temp2_min';
my $mobmaxsens='temp3_max';
my $mobminsens='temp3_min';

my $c00maxsens='temp1_crit';
my $c01maxsens='temp1_crit';

## variables regarding LCDd, update if necessary, but normally these are correct
my $server='localhost';
my $port='13666';

########################################################################
##                                                                    ##
## don't change the following unless you know what you're doing       ##
##                                                                    ##
########################################################################

## Check if the values above are correct
if (!-d "$chip") { 
   print "$chip not found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}
if (!-e "$chip/$cpusens") {
   print "No cpu sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$syssens") {
   print "No system sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$mobsens") {
   print "No motherboard sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$c00sens") {
   print "No core 0 sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$c01sens") {
   print "No core 1 sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$fan1sens") {
   print "No cpu fan sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$fan2sens") {
   print "No case fan sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$fan3sens") {
   print "No system fan sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

## don't change these variables
my $cpumin;        # minimum cpu temperature as found in $cpusens
my $cpumax;        # maximum cpu temperature as found in $cpusens
my $sysmin;        # minimum system temperature as found in $syssens
my $sysmax;        # maximum system temperature as found in $syssens
my $mobmin;        # minimum motherboard temperature as found in $mobsens
my $mobmax;        # maximum motherboard temperature as found in $mobsens

my $c00min;        # minimum core 0 temperature - Is set to 0 further down
my $c00max;        # maximum core 0 temperature as found in $c00sens
my $c01min;             # minimum core 1 temperature - Is set to 0 further down
my $c01max;        # maximum core 1 temperature as found in $c01sens

my $cput;        # current cpu temperature
my $syst;        # current system temperature
my $mobt;        # current motherboard temperature

my $c00t;        # current core 0 temperature
my $c01t;        # current core 1 temperature

my $rpm1;        # current speed of cpu fan
my $rpm2;        # current speed of case fan
my $rpm3;        # current speed of system fan

my $dim1;        # dimension of cpu bar
my $dim2;        # dimension of system bar
my $dim3;        # dimension of motherboard bar

my $dim4;        # dimension of core 0 bar
my $dim5;        # dimension of core 1 bar

my $temp;        # temp variabele used for several purposes
my @veld;        # temp array
my $lcdwid;        # width of the lcd
my $lcdhgt;        # height of the lcd
my $title;        # title
my $pos;        # position of the temps to be placed
my $maxdim;        # maximum allowable dimension of the bars

my $version='1.0';

use IO::Socket;
use Fcntl;
use Getopt::Std;
use strict;
use vars qw($opt_h $opt_v);


## evaluate the options
&getopts("hv")||die "ERROR: Illegal option. -h for help\n";
&help if ($opt_h);
if($opt_v) {
   print ("LCDsensors $version\n");
   exit 0;
}


## determine minimum and maximum temperatures
$cpumax = getVal( "$chip/$cpumaxsens" );
$cpumin = getVal( "$chip/$cpuminsens" );

$sysmax = getVal( "$chip/$sysmaxsens" );
$sysmin = getVal( "$chip/$sysminsens" );

$mobmax = getVal( "$chip/$mobmaxsens" );
$mobmin = getVal( "$chip/$mobminsens" );

$c00max = getVal( "$core0/$c00maxsens" );
$c00min = 0;

$c01max = getVal( "$core1/$c01maxsens" );
$c01min = 0;


## create screen title
chomp($title = "System Temps");


## Connect to the server
my $remote = IO::Socket::INET->new(
       Proto     => "tcp",
       PeerAddr  => $server,
       PeerPort  => $port,
   )
   || die "Cannot connect to LCDproc at $server on port $port\n";

$remote->autoflush(1);        # Make sure our messages get there right away
sleep 1;            # Give server plenty of time to notice us...
print $remote "hello\n";    # tell the server we're here
$temp = <$remote>;        # read the server's answer
@veld = split(/ /,$temp);    # split up the contents
$lcdwid=$veld[7];        # read the lcd's dimensions - width
$lcdhgt=$veld[9];        # read the lcd's dimensions - height

# Turn off blocking mode...
fcntl($remote, F_SETFL, O_NONBLOCK);

## define where the widgets will be placed
$pos = $lcdwid - 3;        # temps will be placed next to right edge
$maxdim = 5 * ( $lcdwid - 6 );    # max ($lcdwid - 6) characters for the bars

print $remote "client_set name {Sensors}\n";            # tell the server our name

# set up some screens
print $remote "screen_add sensor\n";                # add sensors screen
print $remote "widget_add sensor title title\n";        # add the title
print $remote "widget_set sensor title {$title}\n";        # display the title
print $remote "widget_add sensor cpu string\n";            # add the cpu string
print $remote "widget_add sensor ctemp string\n";        # add the string holding the cpu temp
print $remote "widget_add sensor sys string\n";            # add the system string
print $remote "widget_add sensor stemp string\n";        # add the string holding the system temp
print $remote "widget_add sensor mob string\n";            # add the motherboard string
print $remote "widget_add sensor mtemp string\n";        # add the string holding the motherboard temp
print $remote "widget_add sensor alarm1 string\n";        # add a string indicating cpu alarm state
print $remote "widget_add sensor alarm2 string\n";        # add a string indicating system alarm state
print $remote "widget_add sensor alarm3 string\n";        # add the string indicating motherboard alarm state
print $remote "widget_add sensor bar1 hbar\n";            # add the bar for the cpu temp
print $remote "widget_add sensor bar2 hbar\n";            # add the bar for the system temp
print $remote "widget_add sensor bar3 hbar\n";            # add the bar for the motherboard temp
print $remote "widget_set sensor cpu 1 2 {CPU:}\n";        # display CPU:
print $remote "widget_set sensor sys 1 3 {SYS:}\n";        # display SYS:
print $remote "widget_set sensor mob 1 4 {MOB:}\n";        # display MOB:

print $remote "screen_add cores\n";                # add cores screen
print $remote "widget_add cores title title\n";            # add the title
print $remote "widget_set cores title {$title}\n";        # display the title
print $remote "widget_add cores core0 string\n";        # add the core 0 string
print $remote "widget_add cores c00temp string\n";        # add the string holding the core 0 temp
print $remote "widget_add cores core1 string\n";        # add the core 1 string
print $remote "widget_add cores c01temp string\n";        # add the string holding the core 1 temp
print $remote "widget_add cores alarm4 string\n";        # add a string indicating core 0 alarm state
print $remote "widget_add cores alarm5 string\n";        # add a string indicating core 1 alarm state
print $remote "widget_add cores bar4 hbar\n";            # add the bar for the core 0 temp
print $remote "widget_add cores bar5 hbar\n";            # add the bar for the core 1 temp
print $remote "widget_set cores core0 1 2 {C 0:}\n";        # display C 0:
print $remote "widget_set cores core1 1 3 {C 1:}\n";        # display C 1:

print $remote "screen_add fans\n";                # add fans screen
print $remote "widget_add fans title title\n";            # add the title
print $remote "widget_set fans title {$title}\n";        # display the title
print $remote "widget_add fans fan1 string\n";            # add the fan1 string
print $remote "widget_add fans rpm1 string\n";            # add the string holding the fan1 speed
print $remote "widget_add fans fan2 string\n";            # add the fan2 string
print $remote "widget_add fans rpm2 string\n";            # add the string holding the fan2 speed
print $remote "widget_add fans fan3 string\n";            # add the fan3 string
print $remote "widget_add fans rpm3 string\n";            # add the string holding the fan3 speed
print $remote "widget_set fans fan1 1 2 {Fan1:       rpm}\n";    # display Fan1:     rpm
print $remote "widget_set fans fan2 1 3 {Fan2:       rpm}\n";    # display Fan2:     rpm
print $remote "widget_set fans fan3 1 4 {Fan3:       rpm}\n";    # display Fan3:     rpm

# do forever
while(1) {
   chomp($cput = sprintf "%.1f", getVal ( "$chip/$cpusens" ));            # read the cpu temp value
   chomp($syst = sprintf "%.1f", getVal ( "$chip/$syssens" ));            # read the system temp value
   chomp($mobt = sprintf "%.1f", getVal ( "$chip/$mobsens" ));            # read the motherboard temp value

   chomp($c00t = sprintf "%.1f", getVal ( "$core0/$c00sens" ));            # read core 0 temp value
       chomp($c01t = sprintf "%.1f", getVal ( "$core1/$c01sens" ));            # read the core 1 temp value

   chomp($rpm1 = sprintf "%.4d", getVal2 ( "$chip/$fan1sens" ));            # read the fan1 speed value
   chomp($rpm2 = sprintf "%.4d", getVal2 ( "$chip/$fan2sens" ));            # read the fan2 speed value
   chomp($rpm3 = sprintf "%.4d", getVal2 ( "$chip/$fan3sens" ));            # read the fan3 speed value

   print $remote "widget_set sensor ctemp $pos 2 {$cput}\n";    # display the cpu temp
   print $remote "widget_set sensor stemp $pos 3 {$syst}\n";    # display the system temp
       print $remote "widget_set sensor mtemp $pos 4 {$mobt}\n";    # display the motherboard temp

   print $remote "widget_set cores c00temp $pos 2 {$c00t}\n";    # display the core 0 temp
       print $remote "widget_set cores c01temp $pos 3 {$c01t}\n";    # display the core 1 temp

   print $remote "widget_set fans rpm1 8 2 {$rpm1}\n";        # display the fan1 speed
   print $remote "widget_set fans rpm2 8 3 {$rpm2}\n";        # display the fan2 speed
   print $remote "widget_set fans rpm3 8 4 {$rpm3}\n";        # display the fan3 speed

   if ( $cput > $cpumax || $cput < $cpumin ) {            # check if the temp is within range
       print $remote "widget_set sensor alarm1 6 2 {ALARM!}\n";    # if not print ALARM
       $dim1 = 0;                            # set the bar's dimension to 0
   } else {
       print $remote "widget_set sensor alarm1 6 2 {}\n";
       $dim1 = ($cput - $cpumin )* $maxdim / ($cpumax - $cpumin);    # calculate the dimension of the bar
   }
   if ( $syst > $sysmax || $syst < $sysmin ) {            # check if the temp is within range
       print $remote "widget_set sensor alarm2 6 3 {ALARM!}\n";    # if not print ALARM
       $dim2 = 0;                            # set the bar's dimension to 0
   } else {
       print $remote "widget_set sensor alarm2 6 3 {}\n";
       $dim2 = ($syst - $sysmin )* $maxdim / ($sysmax - $sysmin);    # calculate the bar's dimension
   }
   if ( $mobt > $mobmax || $mobt < $mobmin ) {            # check if the temp is within range
           print $remote "widget_set sensor alarm3 6 4 {ALARM!}\n";    # if not print ALARM
           $dim3 = 0;                            # set the bar's dimension to 0
       } else {
           print $remote "widget_set sensor alarm3 6 4 {}\n";
           $dim3 = ($mobt - $mobmin )* $maxdim / ($mobmax - $mobmin);    # calculate the bar's dimension
       }

   if ( $c00t > $c00max || $c00t < $c00min ) {            # check if the temp is within range
           print $remote "widget_set cores alarm4 6 4 {ALARM!}\n";    # if not print ALARM
           $dim4 = 0;                            # set the bar's dimension to 0
       } else {
           print $remote "widget_set cores alarm4 6 4 {}\n";
           $dim4 = ($c00t - $c00min )* $maxdim / ($c00max - $c00min);    # calculate the bar's dimension
       }
   if ( $c01t > $c01max || $c01t < $c01min ) {            # check if the temp is within range
           print $remote "widget_set cores alarm5 6 4 {ALARM!}\n";    # if not print ALARM
           $dim5 = 0;                            # set the bar's dimension to 0
       } else {
           print $remote "widget_set cores alarm5 6 4 {}\n";
           $dim5 = ($c01t - $c01min )* $maxdim / ($c01max - $c01min);    # calculate the bar's dimension
       }

   print $remote "widget_set sensor bar1 6 2 $dim1\n";        # display cpu bar
   print $remote "widget_set sensor bar2 6 3 $dim2\n";        # display system bar
   print $remote "widget_set sensor bar3 6 4 $dim3\n";        # display motherboard bar

   print $remote "widget_set cores bar4 6 2 $dim4\n";        # display core 0 bar
       print $remote "widget_set cores bar5 6 3 $dim5\n";        # display core 1 bar

   sleep 5;                            # wait some time
   }

## help message
sub help {
   print <<EOM;

LCD-sensors $version
Script by Nick Van Helleputte
Modified by Macabre Sunsets

Displays data provided by lm-sensors on an LCD using LCDd provided by lcdproc.

Usage:      perl lcdsensors.pl [OPTIONS]

Options:    -h      Displays this message
           -v      Displays version

Important:  !! Be certain to edit the file and change the first variables 
           !! concerning LM-sensors to meet your specific system.

This script needs a working version of lm-sensors.
(see [url]http://www2.lm-sensors.nu/~lm78/[/url] for more details)

This script needs a working version of LCDd, the server daemon coming with the 
package lcdproc. (see [url]http://lcdproc.omnipotent.net/[/url] for more details)

This script is optimized for 20x4 displays.

EOM
exit 1;
} 

## subroutine to read a number out of a file
sub getVal {
   my ($filename, $index) = @_;    # first argument is where to read from, second is witch number to read
   
   open (FILE, $filename);        # open the file
   my $temp = <FILE>;            # store the contents
   close (FILE);
   
   return $temp / 1000;        # divide by 1000 to get actual temp
}

sub getVal2 {
   my ($filename, $index) = @_;    # first argument is where to read from, second is witch number to read

   open (FILE, $filename);        # open the file
   my $rpm = <FILE>;            # store the contents
   close (FILE);

   return $rpm;
}

exit 1;                    # normally, you will never come this far

 

Οι γραμμές

>my $chip='/sys/devices/platform/w83627ehf.656';        # directory where lm_sensors writes its data - Various temperatures
my $core0='/sys/devices/platform/coretemp.0';        # directory where lm_sensors writes its data - Core 0 temperatures
my $core1='/sys/devices/platform/coretemp.1';        # directory where lm_sensors writes its data - Core 1 temperatures

θα πρέπει να αλλαχτούν ανάλογα με την μητρική σας (θυμηθείτε τους chip drivers που «φορτώσαμε» για το lm-sensors).

Αποθηκεύουμε το αρχείο και το κλείνουμε. Στην συνέχεια το εκτελούμε δίνοντας

> perl lcdsensors.pl

Προϋπόθεση είναι να υπάρχει η perl εγκατεστημένη στον υπολογιστή.

Εαν όλα πάνε καλά, θα πρέπει να δείτε εκτός από τις «οθόνες» του "lcdproc.conf" και τις 3 (τρεις) ακόλουθες:

 

lcd7.jpg

 

 

lcd6.jpg

 

Εμφανίζονται 2 πυρήνες επειδή τόσους έχει ο επεξεργαστής μου. Για περισότερους πυρήνες θα πρέπει να παραμετροποιήσετε το παραπάνω αρχείο και να το φέρετε στα μέτρα σας (γίνεται πολύ απλά με copy/paste).

 

lcd5.jpg

 

Την στιγμή που έβγαλα την φωτογραφία δεν υπήρχαν συνδεμένοι ανεμιστήρες στην μητρική, για αυτό και όλοι δείχνουν 0 στροφές. Ομοίως με προηγουμένος, εάν θέλετε παραπάνω από 3 (τρεις) ανεμιστήρες θα πρέπει να επεξεργαστείτε το αντίστοιχο αρχείο.

Εφόσον είστε ευχαριστημένοι με το αποτέλεσμα, πατήστε Ctrl + C ώστε να τερματιστεί το εκτελέσιμο "lcdsensors.pl". Αυτό θα αφαιρέσει τις επιπλεον «οθόνες» για τώρα.

Για να κάνουμε τους clients να εκκινούν αυτόματα με τον «δαίμονα» ανοίγουμε το αρχείο "/etc/init.d/LCDd".

>nano /etc/init.d/LCDd

και προσθέτουμε τα ακόλουθα στο block "start"

>lcdproc
perl /usr/scripts/lcdsensors.pl &

Η τελική μορφή θα μοιάζει με το ακόλουθο:

>start)
       echo -n "Starting $DESC: "
       start-stop-daemon --start --quiet --background \
               --exec $DAEMON -- $DAEMON_OPTS
       lcdproc
       perl /usr/scripts/lcdsensors.pl &
       echo "$NAME."
       ;;

Αντικαταστήστε το "/usr/scripts/lcdsensors.pl" με το δικό σας path και όνομα αρχείου.

Τελευταίο βήμα η επανεκκίνηση του «δαίμονα»

>/etc/init.d/LCDd restart

Εάν όλα έχουν πάει καλά, θα πρέπει να εκκινήσει ο «δαίμονας» και αυτόματα και οι «οθόνες».

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πρόταση: Προσθήκη LCD οθόνης χαρακτήρων για προβολή live πληροφοριών + Παρακολούθηση θερμοκρασιών & fans με lm-sensors

 

 

Αν και το παρακάτω δεν αφορά ακριβώς «τo στήσιμο gnu/linux συστήματος με customized γραφικό περιβάλλον και μικρό memory footprint», πιστεύω να είναι κάπως on topic και (ίσως) να φανεί χρήσιμο σε κάποιους.

 

Σκοπός:

Κάποιοι πιστεύω χρησιμοποιούν widgets ώστε να παρακολουθούν διάφορες πληροφορίες για το σύστημά τους (Χρήση CPU/RAM, Χώρος στους δίσκους, Θερμοκρασίες, Ταχύτητα ανεμιστήρων, και άλλα...). Αυτές οι πληροφορίες δεν φαίνονται όμως όταν τρέχει κάποια full-screen εφαρμογή ή κάποιο παιχνίδι. Κάποιοι άλλοι μπορεί να χρησιμοποιούν τον υπολογιστή ως «κατεβαστήρι»/server και να μην έχουν καν οθόνη. Ο σκοπός αυτού του post είναι η εγκατάσταση, παραμετροοπίηση και χρήση μιας LCD οθόνης χαρακτήρων (20 χαρακτήρες x 4 γραμμές, controller HD44780) η οποία μπορεί να βρεθεί σε προσιτές τιμές στο Internet (πχ/ ebay).

Εκτός του παραπάνω, θα γίνει εγκατάσταση και παραμετροποίηση του προγράμματος lm-sensors για παρακολούθηση θερμοκρασιών και στροφών των ανεμιστήρων του συστήματος.

Δυστυχώς, η οθόνη που έχω στην διάθεσή μου απαιτεί παράλληλη θύρα (που πιθανώς αρκετοί να μην έχουν), αλλά δίνοντας λίγα παραπάνω χρήματα μπορείτε να αγοράσετε μια πλακέτα που επιτρέπει στην οθόνη να συνδεθεί μέσω USB (οι αντάπτορες USB -> Parallel δεν λειτουργούν, σύμφωνα με όσα έχω διαβάσει σε διάφορες σελίδες).

 

Το αποτέλεσμα:

lcd1.jpg

 

Στο ακόλουθο διάγραμμα παρουσιάζεται η συνδεσμολογία της LCD οθόνης με την παράλληλη θύρα.

 

lcd44780.gif

 

 

Τα ακόλουθα δοκιμάστηκαν σε Debian Squeeze/Sid (testing) με kernel 2.6.32-5-amd64. Η οθόνη έχει δοκιμαστεί και με παλαιότερο kernel (32bit, δυστυχώς δεν θυμάμαι ποιον) και έπαιζε μια χαρά.

 

Αρχίζοντας λίγο ανάποδα, θα δούμε πρώτα την εγκατάσταση και παραμετροποίηση του lm-sensors.

Ανοίγουμε την κονσόλα (είτε από το γραφικό περιβάλλον είτε μέσω ssh) και κάνουμε login σαν root (ή χρησιμοποιούμε sudo πριν από κάθε εντολή).

>apt-get install lm-sensors

Ενδεχομένως να εμφανίσει κάτι σαν το ακόλουθο, στο οποίο θα πρέπει να απαντήσουμε καταφατικά (y).

 

>Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
fancontrol libdb4.7 libsensors4 perl perl-modules
Suggested packages:
sensord read-edid i2c-tools perl-doc libterm-readline-gnu-perl libterm-readline-perl-perl make
The following NEW packages will be installed:
fancontrol libdb4.7 libsensors4 lm-sensors perl perl-modules
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 8,818 kB of archives.
After this operation, 37.5 MB of additional disk space will be used.
Do you want to continue [Y/n]?

 

Εφόσον εγκατασταθούν επιτυχώς όλα τα πακέτα εκτελούμε την εντολή

>sensors-detect

Θα ερωτηθούμε κάποια πράματα, στα οποία θα πρέπει να απαντήσουμε καταφατικά (y). Ένα παράδειγμα με όλες τις ερωτήσεις ακολουθεί (όπου υπάρχει ο χαρακτήρας "y" είναι η απάντησή μας):

 

># sensors-detect revision 5818 (2010-01-18 17:22:07 +0100)
# System: To Be Filled By O.E.M. To Be Filled By O.E.M.
# Board: ASRock A330GC

This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no): y

Silicon Integrated Systems SIS5595...                       No
VIA VT82C686 Integrated Sensors...                          No
VIA VT8231 Integrated Sensors...                            No
AMD K8 thermal sensors...                                   No
AMD Family 10h thermal sensors...                           No
AMD Family 11h thermal sensors...                           No
Intel Core family thermal sensor...                         No
Intel Atom thermal sensor...                                Success!
(driver `coretemp')
Intel AMB FB-DIMM thermal sensor...                         No
VIA C7 thermal sensor...                                    No
VIA Nano thermal sensor...                                  No

Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no): y

Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor'...                   No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               Yes
Found `Winbond W83627DHG-P Super IO Sensors'                Success!
(address 0x290, driver `w83627ehf')
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor'...                   No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      No

Some systems (mainly servers) implement IPMI, a set of common interfaces
through which system health data may be retrieved, amongst other things.
We first try to get the information from SMBIOS. If we don't find it
there, we have to read from arbitrary I/O ports to probe for such
interfaces. This is normally safe. Do you want to scan for IPMI
interfaces? (YES/no): y

Probing for `IPMI BMC KCS' at 0xca0...                      No
Probing for `IPMI BMC SMIC' at 0xca8...                     No

Some hardware monitoring chips are accessible through the ISA I/O ports.
We have to write to arbitrary I/O ports to probe them. This is usually
safe though. Yes, you do have ISA I/O ports even if you do not have any
ISA slots! Do you want to scan the ISA I/O ports? (yes/NO): y

Probing for `National Semiconductor LM78' at 0x290...       No
Probing for `National Semiconductor LM79' at 0x290...       No
Probing for `Winbond W83781D' at 0x290...                   No
Probing for `Winbond W83782D' at 0x290...                   No

Lastly, we can probe the I2C/SMBus adapters for connected hardware
monitoring devices. This is the most risky part, and while it works
reasonably well on most systems, it has been reported to cause trouble
on some systems.
Do you want to probe the I2C/SMBus adapters now? (YES/no): y

Using driver `i2c-i801' for device 0000:00:1f.3: Intel 82801G ICH7
Module i2c-dev loaded successfully.

Next adapter: SMBus I801 adapter at 0400 (i2c-0)
Do you want to scan it? (yes/NO/selectively): y

Client found at address 0x50
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 Yes
(confidence 8, not a hardware monitoring chip)
Probing for `EDID EEPROM'...                                No
Client found at address 0x52
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 Yes
(confidence 8, not a hardware monitoring chip)

Next adapter: intel drm CRTDDC_A (i2c-1)
Do you want to scan it? (YES/no/selectively): y

Client found at address 0x49
Probing for `National Semiconductor LM75'...                No
Probing for `Dallas Semiconductor DS75'...                  No
Probing for `National Semiconductor LM77'...                No
Probing for `Dallas Semiconductor DS1621/DS1631'...         No
Probing for `National Semiconductor LM73'...                No
Probing for `National Semiconductor LM92'...                No
Probing for `National Semiconductor LM76'...                No
Probing for `Maxim MAX6633/MAX6634/MAX6635'...              No
Client found at address 0x50
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 No
Probing for `EDID EEPROM'...                                Yes
(confidence 8, not a hardware monitoring chip)
Client found at address 0x51
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 No
Client found at address 0x52
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 No
Client found at address 0x53
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 No

Now follows a summary of the probes I have just done.
Just press ENTER to continue:

Driver `w83627ehf':
* ISA bus, address 0x290
Chip `Winbond W83627DHG-P Super IO Sensors' (confidence: 9)

Driver `coretemp':
* Chip `Intel Atom thermal sensor' (confidence: 9)

To load everything that is needed, add this to /etc/modules:
#----cut here----
# Chip drivers
coretemp
w83627ehf
#----cut here----
If you have some drivers built into your kernel, the list above will
contain too many modules. Skip the appropriate ones!

Do you want to add these lines automatically to /etc/modules? (yes/NO) y

Successful!

Monitoring programs won't work until the needed modules are
loaded. You may want to run '/etc/init.d/module-init-tools start'
to load them.

Unloading i2c-dev... OK

 

Παρατηρούμε ότι εντόπισε τα τα coretemp και w83627ehf σαν chip drivers, τα οποία θα πρέπει να τα «φορτώσουμε» στο σύστημά μας ώστε να πάρουμε το επιθυμητό αποτέλεσμα:

>modprobe coretemp
modprobe w83627ehf

Οι chip drivers ενδεχομένως να είναι διαφορετικοί για την κάθε μητρική.

Εφόσον απαντήσουμε "y" στην ερώτηση "Do you want to add these lines automatically to /etc/modules? (yes/NO)", οι chip drivers θα «φορτώνονται» αυτόματα κατά την εκκίνηση του συστήματος. Ειδάλλως, θα πρέπει να εκτελούμε συνέχεια το "modprobe xxx".

Εφόσον όλα έχουν πάει καλά, δίνουμε την εντολή

>sensors

και θα (πρέπει να) δούμε κάτι σαν το ακόλουθο:

 

>coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +49.0°C  (crit = +90.0°C)

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +52.0°C  (crit = +90.0°C)

w83627dhg-isa-0290
Adapter: ISA adapter
Vcore:       +1.10 V  (min =  +0.00 V, max =  +1.74 V)
in1:         +1.02 V  (min =  +1.03 V, max =  +0.04 V)   ALARM
AVCC:        +3.33 V  (min =  +3.20 V, max =  +3.09 V)   ALARM
VCC:         +3.33 V  (min =  +2.51 V, max =  +2.42 V)   ALARM
in4:         +1.66 V  (min =  +1.94 V, max =  +0.72 V)   ALARM
in5:         +1.66 V  (min =  +0.29 V, max =  +0.26 V)   ALARM
in6:         +1.91 V  (min =  +1.30 V, max =  +0.04 V)   ALARM
3VSB:        +3.46 V  (min =  +0.32 V, max =  +3.23 V)   ALARM
Vbat:        +3.31 V  (min =  +0.99 V, max =  +1.58 V)   ALARM
fan1:          0 RPM  (min =  767 RPM, div = 16)  ALARM
fan2:          0 RPM  (min = 42187 RPM, div = 16)  ALARM
fan3:          0 RPM  (min =  795 RPM, div = 16)  ALARM
fan4:          0 RPM  (min = 1140 RPM, div = 16)  ALARM
fan5:          0 RPM  (min = 1318 RPM, div = 16)  ALARM
temp1:       +47.0°C  (high = -121.0°C, hyst = +36.0°C)  ALARM  sensor = thermistor
temp2:       +56.5°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor
temp3:       +48.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor
cpu0_vid:   +0.000 V

 

 

 

 

 

Συνεχίζοντας και έχοντας ήδη συνδέσει την LCD οθόνη στον υπολογιστή, εκτελούμε την εντολή

>apt-get install lcdproc

η οποία θα εγκαταστήσει το πρόγραμμα LCDProc το οποίο στέλνει τα δεδομένα στην LCD οθόνη. Ενδεχομένως να εμφανίσει το ακόλουθο:

 

>Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
lcdproc
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 378 kB of archives.
After this operation, 1,204 kB of additional disk space will be used.

 

Εφόσον εγκατασταθεί επιτυχώς το πρόγραμμα, διαλέγουμε τον αγαπημένο μας text editor και επεξεργαζόμαστε το αρχείο "/etc/LCDd.conf"

>nano /etc/LCDd.conf

Στο "WaitTime=5" δίνουμε τον χρόνο (σε δευτερόλεπτα) που θέλουμε να εμφανίζεται η κάθε πληροφορία στην LCD οθόνη μας.

Βγάζουμε από σχόλιο (αφαιρώντας το # από την αρχή της γραμμής) το "ServerScreen=no". Αυτό θα εμποδίσει την αρχική «οθόνη» από το να εμφανίζεται σε κάθε κύκλο (η αρχική «οθόνη» θα παρουσιαστεί παρακάτω).

Αλλάζουμε το "Driver=curses" σε "Driver=hd44780".

Έπειτα προχωράμε (αρκετά) παρακάτω στο αρχείο ώσπου να συνατήσουμε το "## Hitachi HD44780 driver ##" και αλλάζουμε το "ConnectionType=4bit" με "ConnectionType=winamp". Αποθηκεύουμε το αρχείο και το κλείνουμε.

Στην συνέχεια (επαν)εκκινούμε τον «δαίμονα» δίνοντας την εντολή

>/etc/init.d/LCDd restart

Εαν όλα έχουν πάει καλά θα πρέπει να εμφανιστεί η αρχική «οθόνη» (η οποία αναφέρθηκε και παραπάνω):

lcd12.jpg

Παρατηρούμε ότι δεν υπάρχει κάποιος client συνδεμένος στον «δαίμονα» ούτε κάποια «οθόνη» πληροφοριών. Για να προσθέσουμε έναν client και μερικές «οθόνες» πρέπει να επεξεργαστούμε το αρχείο "/etc/lcdproc.conf"

>nano /etc/lcdproc.conf

Όλες οι «οθόνες» ενεργοποιούνται θέτοντας "Active=true" και απενεργοποιούνται θέτοντας "Active=false". Εάν επιλέξετε να εμφανιστούν όλες (ή οι πιο πολλές), ίσως αντιμετωπίσετε πρόβλημα με το πρόγραμμα (δεν εμφανίζει τίποτα). Πιθανώς υπάρχει ένα όριο, το οποίο δυστυχώς δεν γνωρίζω.

Εφόσον επιλέξουμε ποιες «οθόνες» θέλουμε να εμφανίζονται, αποθηκεύουμε το αρχείο και το κλείνουμε. Στην συνέχεια δίνουμε την εντολή

>lcdproc

Στην LCD οθόνη το "Clients" από 0 (μηδέν) θα γίνει 1 (ένα) και αντίστοιχα, το "Screens" από 0 (μηδέν) θα λάβει μια τιμή.

Ενδεικτικές «οθόνες» φαίνονται στις παρακάτω φωτογραφίες:

 

lcd11.jpg

 

 

lcd10.jpg

 

 

lcd9.jpg

 

 

 

 

 

Δυστυχώς, όπως θα παρατηρήσατε στο αρχείο "/etc/lcdproc.conf" δεν υπάρχει καμία «οθόνη» που να δείχνει πληροφορίες σχετικά με θερμοκρασίες και ταχύτητες των fans. Ευτυχώς όμως, μπορούμε να φτιάξουμε ότι «οθόνη» θέλουμε.

Δημιουργήστε ένα νέο αρχείο με όνομα "lcdsensors.pl" σε όποιο path σας βολεύει (το όνομα δεν έχει τόση σημασία, παρα μόνο η κατάληξη *.pl).

>nano /usr/scripts/lcdsensors.pl

και προσθέστε τις ακόλουθες γραμμές

 

>#!/usr/bin/perl

## --> CHANGE THESE VARIABLES !!!!!!
## variables regarding lm_sensors, update these conform to your system
my $chip='/sys/devices/platform/w83627ehf.656';        # directory where lm_sensors writes its data - Various temperatures
my $core0='/sys/devices/platform/coretemp.0';        # directory where lm_sensors writes its data - Core 0 temperatures
my $core1='/sys/devices/platform/coretemp.1';        # directory where lm_sensors writes its data - Core 1 temperatures

my $cpusens='temp1_input';
my $syssens='temp2_input';
my $mobsens='temp3_input';

my $c00sens='temp1_input';
my $c01sens='temp1_input';

my $fan1sens='fan1_input';
my $fan2sens='fan2_input';
my $fan3sens='fan3_input';

my $cpumaxsens='temp1_max';
my $cpuminsens='temp1_min';
my $sysmaxsens='temp2_max';
my $sysminsens='temp2_min';
my $mobmaxsens='temp3_max';
my $mobminsens='temp3_min';

my $c00maxsens='temp1_crit';
my $c01maxsens='temp1_crit';

## variables regarding LCDd, update if necessary, but normally these are correct
my $server='localhost';
my $port='13666';

########################################################################
##                                                                    ##
## don't change the following unless you know what you're doing       ##
##                                                                    ##
########################################################################

## Check if the values above are correct
if (!-d "$chip") { 
   print "$chip not found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}
if (!-e "$chip/$cpusens") {
   print "No cpu sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$syssens") {
   print "No system sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$mobsens") {
   print "No motherboard sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$c00sens") {
   print "No core 0 sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$c01sens") {
   print "No core 1 sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$fan1sens") {
   print "No cpu fan sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$fan2sens") {
   print "No case fan sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

if (!-e "$chip/$fan3sens") {
   print "No system fan sensor found! \n";
   print "Did you change the variables? Edit this file please.\n";
   exit 0;
}

## don't change these variables
my $cpumin;        # minimum cpu temperature as found in $cpusens
my $cpumax;        # maximum cpu temperature as found in $cpusens
my $sysmin;        # minimum system temperature as found in $syssens
my $sysmax;        # maximum system temperature as found in $syssens
my $mobmin;        # minimum motherboard temperature as found in $mobsens
my $mobmax;        # maximum motherboard temperature as found in $mobsens

my $c00min;        # minimum core 0 temperature - Is set to 0 further down
my $c00max;        # maximum core 0 temperature as found in $c00sens
my $c01min;             # minimum core 1 temperature - Is set to 0 further down
my $c01max;        # maximum core 1 temperature as found in $c01sens

my $cput;        # current cpu temperature
my $syst;        # current system temperature
my $mobt;        # current motherboard temperature

my $c00t;        # current core 0 temperature
my $c01t;        # current core 1 temperature

my $rpm1;        # current speed of cpu fan
my $rpm2;        # current speed of case fan
my $rpm3;        # current speed of system fan

my $dim1;        # dimension of cpu bar
my $dim2;        # dimension of system bar
my $dim3;        # dimension of motherboard bar

my $dim4;        # dimension of core 0 bar
my $dim5;        # dimension of core 1 bar

my $temp;        # temp variabele used for several purposes
my @veld;        # temp array
my $lcdwid;        # width of the lcd
my $lcdhgt;        # height of the lcd
my $title;        # title
my $pos;        # position of the temps to be placed
my $maxdim;        # maximum allowable dimension of the bars

my $version='1.0';

use IO::Socket;
use Fcntl;
use Getopt::Std;
use strict;
use vars qw($opt_h $opt_v);


## evaluate the options
&getopts("hv")||die "ERROR: Illegal option. -h for help\n";
&help if ($opt_h);
if($opt_v) {
   print ("LCDsensors $version\n");
   exit 0;
}


## determine minimum and maximum temperatures
$cpumax = getVal( "$chip/$cpumaxsens" );
$cpumin = getVal( "$chip/$cpuminsens" );

$sysmax = getVal( "$chip/$sysmaxsens" );
$sysmin = getVal( "$chip/$sysminsens" );

$mobmax = getVal( "$chip/$mobmaxsens" );
$mobmin = getVal( "$chip/$mobminsens" );

$c00max = getVal( "$core0/$c00maxsens" );
$c00min = 0;

$c01max = getVal( "$core1/$c01maxsens" );
$c01min = 0;


## create screen title
chomp($title = "System Temps");


## Connect to the server
my $remote = IO::Socket::INET->new(
       Proto     => "tcp",
       PeerAddr  => $server,
       PeerPort  => $port,
   )
   || die "Cannot connect to LCDproc at $server on port $port\n";

$remote->autoflush(1);        # Make sure our messages get there right away
sleep 1;            # Give server plenty of time to notice us...
print $remote "hello\n";    # tell the server we're here
$temp = <$remote>;        # read the server's answer
@veld = split(/ /,$temp);    # split up the contents
$lcdwid=$veld[7];        # read the lcd's dimensions - width
$lcdhgt=$veld[9];        # read the lcd's dimensions - height

# Turn off blocking mode...
fcntl($remote, F_SETFL, O_NONBLOCK);

## define where the widgets will be placed
$pos = $lcdwid - 3;        # temps will be placed next to right edge
$maxdim = 5 * ( $lcdwid - 6 );    # max ($lcdwid - 6) characters for the bars

print $remote "client_set name {Sensors}\n";            # tell the server our name

# set up some screens
print $remote "screen_add sensor\n";                # add sensors screen
print $remote "widget_add sensor title title\n";        # add the title
print $remote "widget_set sensor title {$title}\n";        # display the title
print $remote "widget_add sensor cpu string\n";            # add the cpu string
print $remote "widget_add sensor ctemp string\n";        # add the string holding the cpu temp
print $remote "widget_add sensor sys string\n";            # add the system string
print $remote "widget_add sensor stemp string\n";        # add the string holding the system temp
print $remote "widget_add sensor mob string\n";            # add the motherboard string
print $remote "widget_add sensor mtemp string\n";        # add the string holding the motherboard temp
print $remote "widget_add sensor alarm1 string\n";        # add a string indicating cpu alarm state
print $remote "widget_add sensor alarm2 string\n";        # add a string indicating system alarm state
print $remote "widget_add sensor alarm3 string\n";        # add the string indicating motherboard alarm state
print $remote "widget_add sensor bar1 hbar\n";            # add the bar for the cpu temp
print $remote "widget_add sensor bar2 hbar\n";            # add the bar for the system temp
print $remote "widget_add sensor bar3 hbar\n";            # add the bar for the motherboard temp
print $remote "widget_set sensor cpu 1 2 {CPU:}\n";        # display CPU:
print $remote "widget_set sensor sys 1 3 {SYS:}\n";        # display SYS:
print $remote "widget_set sensor mob 1 4 {MOB:}\n";        # display MOB:

print $remote "screen_add cores\n";                # add cores screen
print $remote "widget_add cores title title\n";            # add the title
print $remote "widget_set cores title {$title}\n";        # display the title
print $remote "widget_add cores core0 string\n";        # add the core 0 string
print $remote "widget_add cores c00temp string\n";        # add the string holding the core 0 temp
print $remote "widget_add cores core1 string\n";        # add the core 1 string
print $remote "widget_add cores c01temp string\n";        # add the string holding the core 1 temp
print $remote "widget_add cores alarm4 string\n";        # add a string indicating core 0 alarm state
print $remote "widget_add cores alarm5 string\n";        # add a string indicating core 1 alarm state
print $remote "widget_add cores bar4 hbar\n";            # add the bar for the core 0 temp
print $remote "widget_add cores bar5 hbar\n";            # add the bar for the core 1 temp
print $remote "widget_set cores core0 1 2 {C 0:}\n";        # display C 0:
print $remote "widget_set cores core1 1 3 {C 1:}\n";        # display C 1:

print $remote "screen_add fans\n";                # add fans screen
print $remote "widget_add fans title title\n";            # add the title
print $remote "widget_set fans title {$title}\n";        # display the title
print $remote "widget_add fans fan1 string\n";            # add the fan1 string
print $remote "widget_add fans rpm1 string\n";            # add the string holding the fan1 speed
print $remote "widget_add fans fan2 string\n";            # add the fan2 string
print $remote "widget_add fans rpm2 string\n";            # add the string holding the fan2 speed
print $remote "widget_add fans fan3 string\n";            # add the fan3 string
print $remote "widget_add fans rpm3 string\n";            # add the string holding the fan3 speed
print $remote "widget_set fans fan1 1 2 {Fan1:       rpm}\n";    # display Fan1:     rpm
print $remote "widget_set fans fan2 1 3 {Fan2:       rpm}\n";    # display Fan2:     rpm
print $remote "widget_set fans fan3 1 4 {Fan3:       rpm}\n";    # display Fan3:     rpm

# do forever
while(1) {
   chomp($cput = sprintf "%.1f", getVal ( "$chip/$cpusens" ));            # read the cpu temp value
   chomp($syst = sprintf "%.1f", getVal ( "$chip/$syssens" ));            # read the system temp value
   chomp($mobt = sprintf "%.1f", getVal ( "$chip/$mobsens" ));            # read the motherboard temp value

   chomp($c00t = sprintf "%.1f", getVal ( "$core0/$c00sens" ));            # read core 0 temp value
       chomp($c01t = sprintf "%.1f", getVal ( "$core1/$c01sens" ));            # read the core 1 temp value

   chomp($rpm1 = sprintf "%.4d", getVal2 ( "$chip/$fan1sens" ));            # read the fan1 speed value
   chomp($rpm2 = sprintf "%.4d", getVal2 ( "$chip/$fan2sens" ));            # read the fan2 speed value
   chomp($rpm3 = sprintf "%.4d", getVal2 ( "$chip/$fan3sens" ));            # read the fan3 speed value

   print $remote "widget_set sensor ctemp $pos 2 {$cput}\n";    # display the cpu temp
   print $remote "widget_set sensor stemp $pos 3 {$syst}\n";    # display the system temp
       print $remote "widget_set sensor mtemp $pos 4 {$mobt}\n";    # display the motherboard temp

   print $remote "widget_set cores c00temp $pos 2 {$c00t}\n";    # display the core 0 temp
       print $remote "widget_set cores c01temp $pos 3 {$c01t}\n";    # display the core 1 temp

   print $remote "widget_set fans rpm1 8 2 {$rpm1}\n";        # display the fan1 speed
   print $remote "widget_set fans rpm2 8 3 {$rpm2}\n";        # display the fan2 speed
   print $remote "widget_set fans rpm3 8 4 {$rpm3}\n";        # display the fan3 speed

   if ( $cput > $cpumax || $cput < $cpumin ) {            # check if the temp is within range
       print $remote "widget_set sensor alarm1 6 2 {ALARM!}\n";    # if not print ALARM
       $dim1 = 0;                            # set the bar's dimension to 0
   } else {
       print $remote "widget_set sensor alarm1 6 2 {}\n";
       $dim1 = ($cput - $cpumin )* $maxdim / ($cpumax - $cpumin);    # calculate the dimension of the bar
   }
   if ( $syst > $sysmax || $syst < $sysmin ) {            # check if the temp is within range
       print $remote "widget_set sensor alarm2 6 3 {ALARM!}\n";    # if not print ALARM
       $dim2 = 0;                            # set the bar's dimension to 0
   } else {
       print $remote "widget_set sensor alarm2 6 3 {}\n";
       $dim2 = ($syst - $sysmin )* $maxdim / ($sysmax - $sysmin);    # calculate the bar's dimension
   }
   if ( $mobt > $mobmax || $mobt < $mobmin ) {            # check if the temp is within range
           print $remote "widget_set sensor alarm3 6 4 {ALARM!}\n";    # if not print ALARM
           $dim3 = 0;                            # set the bar's dimension to 0
       } else {
           print $remote "widget_set sensor alarm3 6 4 {}\n";
           $dim3 = ($mobt - $mobmin )* $maxdim / ($mobmax - $mobmin);    # calculate the bar's dimension
       }

   if ( $c00t > $c00max || $c00t < $c00min ) {            # check if the temp is within range
           print $remote "widget_set cores alarm4 6 4 {ALARM!}\n";    # if not print ALARM
           $dim4 = 0;                            # set the bar's dimension to 0
       } else {
           print $remote "widget_set cores alarm4 6 4 {}\n";
           $dim4 = ($c00t - $c00min )* $maxdim / ($c00max - $c00min);    # calculate the bar's dimension
       }
   if ( $c01t > $c01max || $c01t < $c01min ) {            # check if the temp is within range
           print $remote "widget_set cores alarm5 6 4 {ALARM!}\n";    # if not print ALARM
           $dim5 = 0;                            # set the bar's dimension to 0
       } else {
           print $remote "widget_set cores alarm5 6 4 {}\n";
           $dim5 = ($c01t - $c01min )* $maxdim / ($c01max - $c01min);    # calculate the bar's dimension
       }

   print $remote "widget_set sensor bar1 6 2 $dim1\n";        # display cpu bar
   print $remote "widget_set sensor bar2 6 3 $dim2\n";        # display system bar
   print $remote "widget_set sensor bar3 6 4 $dim3\n";        # display motherboard bar

   print $remote "widget_set cores bar4 6 2 $dim4\n";        # display core 0 bar
       print $remote "widget_set cores bar5 6 3 $dim5\n";        # display core 1 bar

   sleep 5;                            # wait some time
   }

## help message
sub help {
   print <<EOM;

LCD-sensors $version
Script by Nick Van Helleputte
Modified by Macabre Sunsets

Displays data provided by lm-sensors on an LCD using LCDd provided by lcdproc.

Usage:      perl lcdsensors.pl [OPTIONS]

Options:    -h      Displays this message
           -v      Displays version

Important:  !! Be certain to edit the file and change the first variables 
           !! concerning LM-sensors to meet your specific system.

This script needs a working version of lm-sensors.
(see [url]http://www2.lm-sensors.nu/~lm78/[/url] for more details)

This script needs a working version of LCDd, the server daemon coming with the 
package lcdproc. (see [url]http://lcdproc.omnipotent.net/[/url] for more details)

This script is optimized for 20x4 displays.

EOM
exit 1;
} 

## subroutine to read a number out of a file
sub getVal {
   my ($filename, $index) = @_;    # first argument is where to read from, second is witch number to read
   
   open (FILE, $filename);        # open the file
   my $temp = <FILE>;            # store the contents
   close (FILE);
   
   return $temp / 1000;        # divide by 1000 to get actual temp
}

sub getVal2 {
   my ($filename, $index) = @_;    # first argument is where to read from, second is witch number to read

   open (FILE, $filename);        # open the file
   my $rpm = <FILE>;            # store the contents
   close (FILE);

   return $rpm;
}

exit 1;                    # normally, you will never come this far

 

Οι γραμμές

>my $chip='/sys/devices/platform/w83627ehf.656';        # directory where lm_sensors writes its data - Various temperatures
my $core0='/sys/devices/platform/coretemp.0';        # directory where lm_sensors writes its data - Core 0 temperatures
my $core1='/sys/devices/platform/coretemp.1';        # directory where lm_sensors writes its data - Core 1 temperatures

θα πρέπει να αλλαχτούν ανάλογα με την μητρική σας (θυμηθείτε τους chip drivers που «φορτώσαμε» για το lm-sensors).

Αποθηκεύουμε το αρχείο και το κλείνουμε. Στην συνέχεια το εκτελούμε δίνοντας

> perl lcdsensors.pl

Προϋπόθεση είναι να υπάρχει η perl εγκατεστημένη στον υπολογιστή.

Εαν όλα πάνε καλά, θα πρέπει να δείτε εκτός από τις «οθόνες» του "lcdproc.conf" και τις 3 (τρεις) ακόλουθες:

 

lcd7.jpg

 

 

lcd6.jpg

 

Εμφανίζονται 2 πυρήνες επειδή τόσους έχει ο επεξεργαστής μου. Για περισότερους πυρήνες θα πρέπει να παραμετροποιήσετε το παραπάνω αρχείο και να το φέρετε στα μέτρα σας (γίνεται πολύ απλά με copy/paste).

 

lcd5.jpg

 

Την στιγμή που έβγαλα την φωτογραφία δεν υπήρχαν συνδεμένοι ανεμιστήρες στην μητρική, για αυτό και όλοι δείχνουν 0 στροφές. Ομοίως με προηγουμένος, εάν θέλετε παραπάνω από 3 (τρεις) ανεμιστήρες θα πρέπει να επεξεργαστείτε το αντίστοιχο αρχείο.

Εφόσον είστε ευχαριστημένοι με το αποτέλεσμα, πατήστε Ctrl + C ώστε να τερματιστεί το εκτελέσιμο "lcdsensors.pl". Αυτό θα αφαιρέσει τις επιπλεον «οθόνες» για τώρα.

Για να κάνουμε τους clients να εκκινούν αυτόματα με τον «δαίμονα» ανοίγουμε το αρχείο "/etc/init.d/LCDd".

>nano /etc/init.d/LCDd

και προσθέτουμε τα ακόλουθα στο block "start"

>lcdproc
perl /usr/scripts/lcdsensors.pl &

Η τελική μορφή θα μοιάζει με το ακόλουθο:

>start)
       echo -n "Starting $DESC: "
       start-stop-daemon --start --quiet --background \
               --exec $DAEMON -- $DAEMON_OPTS
       lcdproc
       perl /usr/scripts/lcdsensors.pl &
       echo "$NAME."
       ;;

Αντικαταστήστε το "/usr/scripts/lcdsensors.pl" με το δικό σας path και όνομα αρχείου.

Τελευταίο βήμα η επανεκκίνηση του «δαίμονα»

>/etc/init.d/LCDd restart

Εάν όλα έχουν πάει καλά, θα πρέπει να εκκινήσει ο «δαίμονας» και αυτόματα και οι «οθόνες».

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
Δυο παρατηρησεις.

 

- Γιατι κανετε χρηση του xinitrc, το οποιο εκτελει τα περιεχομενα του ανεξαρτητως de και wm, και δεν κανετε χρηση του autostart που παρεχει ο καθε wm.

 

Μα ακριβως επειδη δεν θελουμε να μπλεξουμε με το καθε de,wm καθως και για να ξεκιναμε οποιο θελουμε μεσω αυτου και γενικως να εχουμε πληρη ελεγχο.Aν πχ αλλαξω wm ?Αντε παλι απτην αρχη?Αφου υπαρχει ενας ενιαιος - ανεξαρτητος τροπος.

 

Πχ, αν βαλω αυριο fluxbox που μου παρεχει δικο του κατω πανελ και tray, για ποιο λογο να τρεχω και εκει το fbpanel που τρεχω στο openbox?

 

Γιατι πχ δεν σου αρεσει το panel του fluxbox και θελεις καποιο αλλο.

Δεν καταλαβαινω την ερωτηση σου.

 

- Το notification (για τερματισμο/επανεκκινηση εδω) απαιτει καποιον daemon να τρεχει ηδη?

 

το notification-daemon που ειναι εξαρτηση του libnotify.

 

Σε περιπτωση που δεν τον ξερετε, ο nodm ειναι ενας display manager που απλα ξεκιναει το γραφικο περιβαλλον με autologin.

 

http://www.enricozini.org/sw/nodm/

 

Bασικα αυτο γινεται στο /etc/inittab αλλα thanks for the tip.

Επεξ/σία από tritonas00
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
Δυο παρατηρησεις.

 

- Γιατι κανετε χρηση του xinitrc, το οποιο εκτελει τα περιεχομενα του ανεξαρτητως de και wm, και δεν κανετε χρηση του autostart που παρεχει ο καθε wm.

 

Μα ακριβως επειδη δεν θελουμε να μπλεξουμε με το καθε de,wm καθως και για να ξεκιναμε οποιο θελουμε μεσω αυτου και γενικως να εχουμε πληρη ελεγχο.Aν πχ αλλαξω wm ?Αντε παλι απτην αρχη?Αφου υπαρχει ενας ενιαιος - ανεξαρτητος τροπος.

 

Πχ, αν βαλω αυριο fluxbox που μου παρεχει δικο του κατω πανελ και tray, για ποιο λογο να τρεχω και εκει το fbpanel που τρεχω στο openbox?

 

Γιατι πχ δεν σου αρεσει το panel του fluxbox και θελεις καποιο αλλο.

Δεν καταλαβαινω την ερωτηση σου.

 

- Το notification (για τερματισμο/επανεκκινηση εδω) απαιτει καποιον daemon να τρεχει ηδη?

 

το notification-daemon που ειναι εξαρτηση του libnotify.

 

Σε περιπτωση που δεν τον ξερετε, ο nodm ειναι ενας display manager που απλα ξεκιναει το γραφικο περιβαλλον με autologin.

 

http://www.enricozini.org/sw/nodm/

 

Bασικα αυτο γινεται στο /etc/inittab αλλα thanks for the tip.

Επεξ/σία από tritonas00
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ευχαριστώ πολύ για τη συμμετοχή σας παιδιά!

 

gtroza ευχαριστώ για την άμεση υποστήριξη. :-D

φοβόμουν ότι θα με πάρουν με τις...μαρμελάδες.

 

Χαίρομαι ιδιαίτερα που ο tritonas00 εγκαινίασε κι όλας το νεογέννητο project* με μια αξιόλογη συνταγή. keep them coming ;)

 

*που πατάει στις πλάτες του δικού του.

 

χρήσιμες οι παρεμβάσεις του jim_p, φυσικά αναμένουμε πολύ περισσότερα. :devil:

 

"συνταγή" και άνω

 

 

 

Η έκπληξη ήταν η πρόταση του macabre_sunset, που αν και δεν κολλάει ακριβώς στη "μαρμελάδα" ,

δίνει το έναυσμα για δημιουργία side project του στυλ: "headless server tips & tricks".

 

Δεν το κατέχω το άθλημα αλλά είμαι σίγουρος ότι μερικοί εδώ μέσα έχουν να συνεισφέρουν πολλά σε αυτό.

Πάντως αν θέλετε βοήθεια με την ονομασία...κάτι θα βρούμε.:P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...