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

systemd xbmc target


warlock9_0

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

όταν είχα init είχα φτιάξει μια εγγραφή στον grub η οποία έκανε boot σε ένα συγκεκριμένο runlevel

σε αυτό το runlevel είχα βάλει από το innittab να κάνει autologin ο χρήστης του xbmc , από τα init scripts να ξεκινάει ο bluetooth daemon για το wiimote και από το xinitrc να ξεκινάει το xbmc

 

τώρα με το systemd, από ότι διαβάζω μέχρι τώρα και αν τα έχω καταλάβει σωστά

 

πρέπει να φτιάξω ένα καινούριο target ίδιο με το graphical που είναι το default

απλά παίρνω το graphical.target και το αντιγράφω στο xbmc.target?

 

να κάνω κάπως autologin

 

να περάσω παράμετρο αυτό το target στον grub

 

πχ

systemd.unit=xbmc.target

μου έχει κάψει τον εγκέφαλο το systemd

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

Στο systemd μπορείς επίσης να έχεις την κατάλληλη εγραφή στο grub:

https://wiki.archlinux.org/index.php/Systemd#Change_default_target_to_boot_into

Για να φτιάξεις το δικό σου target, θα αντίγραψεις το graphical, θα αλλάξεις το όνομά του και θα βάλεις στα wants ότι χρειάζεται:

https://wiki.archlinux.org/index.php/Systemd#Change_default_target_to_boot_into

Το xbmc, αν είναι ακριβής η καταχώρηση στο wiki, δεν χρειάζεται DE/desktop manager, μπορείς όμως να κάνεις autologin σε κάποιον ελαφρύ wm και μετά autostart του xbmc από αυτόν:

https://wiki.archlinux.org/index.php/Xbmc#Autostarting_at_boot

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

το target το ψιλοέχω πως να το κάνω, όταν αρχίζουν τα wants αρχίζω και χάνομαι

το autostart του xbmc έχει διαφορά να το κάνω με service από το xinitrc που το έχω τώρα?

όσο λιγότερα έχει στο systemd τόσο καλύτερα, δεν μπορώ να το χειριστώ με τίποτα :P

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

Τα wants μάλλον θα είναι ίδια με το graphical.target - δεν έχει μάλλο νόημα να αφαιρέσεις κάτι, λόγω του τρόπου που λειτουργεί το systemd.

Αν το έχεις στο xinitrc άστο όπως είναι, δεν νομίζω πως κερδίζεις πολλά - το autostart από systemd έχει νόημα αν γίνεται "on demand". Tο ότι γίνεται πληρέστερο logging μάλλον δεν θα σου προσφέρει τίποτα.

_____________-

Κοιτώ το δικό μου graphical.target και ζητά μόνο τον desktop manager - οπότε μάλλον χρειάζεσαι μόνο το service που φορτώνει το xinit...

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

έτσι για την ιστορία, αν θέλει να το κάνει κανείς άλλος

 

αντέγραψα το graphical.target στο /etc/systemd/system/xbmc.target

$ cat /etc/systemd/system/xbmc.target
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=XBMC media center
Documentation=man:systemd.special(7)
Requires=multi-user.target
After=multi-user.target
Conflicts=rescue.target
Wants=display-manager.service
AllowIsolate=yes

έφτιαξα τον φάκελο /etc/systemd/system/xbmc.target.wants και του έβαλα μέσα το [email protected]

$ cat /etc/systemd/system/xbmc.target.wants/[email protected] 
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=http://0pointer.de/blog/projects/serial-console.html
After=systemd-user-sessions.service plymouth-quit-wait.service
After=rc-local.service

# If additional gettys are spawned during boot then we should make
# sure that this is synchronized before getty.target, even though
# getty.target didn't actually pull it in.
Before=getty.target
IgnoreOnIsolate=yes

# On systems without virtual consoles, don't start any getty. Note
# that serial gettys are covered by [email protected], not this
# unit.
ConditionPathExists=/dev/tty0

[Service]
# the VT is cleared by TTYVTDisallocate
ExecStart=-/sbin/agetty --autologin xbmc --noclear %I
Type=idle
Restart=always
RestartSec=0
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes

# Unset locale for the console getty since the console has problems
# displaying some internationalized messages.
Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=

[Install]
WantedBy=getty.target
[email protected]

έφτιαξα και στον grub μια custom εγγραφή με παράμετρο στον πυρήνα systemd.unit=xbmc.target

και είμαι έτοιμος

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

Στο επομενο επεισοδιο θα κανουμε update grub απο service για να μπουταρει αυτοματα στον τελευταιο πυρηνα το xbmc

Αν δουλεψει ποτε το.γ@μιδι!

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

το script

echo '#!/bin/sh
echo "Adding XBMC entries" >&2
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.' > /etc/grub.d/40_custom

for kernel in `ls -r /boot/initrd.img-*`; do

k=`expr substr $kernel 18 20`

echo "menuentry 'XBMC media center ($k)' --class debian --class gnu-linux --class gnu --class os {
        load_video
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='(hd3,msdos3)'
        search --no-floppy --fs-uuid --set=root 66248b4e-4ced-41fe-89a7-9207e3fb1a23
        echo    'Loading Linux $k ...'
        linux   /boot/vmlinuz-$k root=UUID=66248b4e-4ced-41fe-89a7-9207e3fb1a23 ro  quiet elevator=deadline 4 systemd.unit=xbmc.target
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-$k
}" >> /etc/grub.d/40_custom
done

το service

[Unit]
Description=XBMC GRUB entries

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/media/disk320GB/programming/bash/xbmcgrub.sh; grub-mkconfig -o /boot/grub/grub.cfg

[Install]
Alias=xbmcgrub.service
WantedBy=multi-user.target

ΖΩΑΡΑ!

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

Εδω παντως εχω κανει ενα dialog script που εκτελειται μετα το login σε tty και με το κωλοκοντρολ επιλεγω αν θα ανοιξει xbmc ή οχι.

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

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα
  • Δημιουργία νέου...