Talk:Clean Core

From LinuxMCE
Revision as of 18:06, 28 August 2007 by Zaerc (Talk | contribs) (additional upstart files to modify)

(diff) ←Older revision | view current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search
you'll find all of the LinuxMCE scripts in /usr/pluto/bin. 
Two very interesting scripts are Start_X.sh (which I assume you already found?) and StartCoreServices.sh

My guess would be you could disable the Start_X script. 
This can be done from the web interface and goto Advanced: Software: Boot Sequence. 
Untick the box for Start_X. 
Then, manually launch /usr/pluto/bin/StartCoreServices.sh from some init script. 
I think that should do what you originally asked for, but I haven't tried it myself.
  • A request for more information on the forum was posted by KingCrab: How does a core system start?. If you don't want to sign up for the wiki or feel uncomfortable editing this page you could leave a message there.
  • More to come...


Personal Notes

So... what did you try, and how did it work out?


I've tried the way bobpaul described in his post, but unfortunately working with the Start_X box didn't change anything for me. Then I tried it the "old linux way" ;-) I removed the S99kdm script from /etc/rc2.d, giving me a text login at bootup. Next step was to modify the /etc/rc.local by adding /usr/pluto/bin/StartCoreServices.sh. After next bootup the login web page was up again. This is the point I stopped testing and tried to get more information on startup before moving on... (done with beta2 and rc1)

-- KingCrab


I looked on a dedicated core, but the Start_X box was already unticked in the web interface for the core. So I looked at "/etc/rc2.d/S99kdm" which turned out to be a symlink to a non-existant file. In the end I just rebooted to "rescue" mode and launched "/usr/pluto/bin/StartCoreServices.sh" by hand. After taking controll with "screen -r" I discover that the DCERouter is unable to connect to the MySQL server.

I reboot the machine to single usermode again to have a clean starting point, this time I decide to change to runlevel 3 with the command "telinit 3". LinuxMCE is only fully started in runlevel 2 so there are no screen sessions to attach to except for the "VoiceMailMonitor" one (obviously started by /etc/rc3.d/S99voiceMailMonitor). After launching "/usr/pluto/bin/StartCoreServices.sh" by hand again I see 2 additional screen sessions for "discovery" and "DCERouter", none of the sessions seem to show errors. The script itself however ended with the message "ERROR: Couldn't attach to DCOP server".

The web-admin appears to fully work, and so does booting a diskless Media Director. Storage might not fully work yet though, as there are still 2 pluto related scripts (symlinked) in "/etc/rc2.d" that I haven't started yet, "StorageDevices_SambaRadar.sh" and "StorageDevices_StatusRadar.sh" but I'm not entirely sure if they normally even get started since they don't have the usual S## prefix.

I tested this using a dedicated core installation of LMCE-1.1B2 running under VMWare as described in: Testing with VMWare, which I still had lying around.

-- Zaerc 15:53, 2 August 2007 (MST)


Not entirely unrelated, but I stumbled onto this neat trick. If you have installed your LinuxMCE hybrid as a "A dedicated LMCE System" so that it starts automaticly after boot you can switch to starting LinuxMCE from the desktop icon (and back) with these instructions. For this the otherwise unused runlevel 3 is used. Basicly this hack just activates the backup-config of KDE in another runlevel, and then sets that runlevel as the default, this way it's easy to switch back and forth.

These instructions require root privileges!

  1. Change the /etc/rc3.d/S99kdm symlink to point at ../init.d/kdm.saved.
  2. Create an /etc/inittab configuration file to start runlevel 3 by default (there should be none to start with, but you may want to check to be certain, if it already exists you can skip this step and edit it as described below).
  3. Reboot the machine.
ln -sfv ../init.d/kdm.saved /etc/rc3.d/S99kdm
cat >/etc/inittab << EOF
# WARNING: Do NOT set the default runlevel to 0 (shutdown) or 6 (reboot).
#id:2:initdefault: # LinuxMCE
id:3:initdefault: # KDE
#id:4:initdefault: # Unused
#id:5:initdefault: # Unused
EOF
reboot

You should be greeted by the KDE login screen, after logging in with the user you created during the Kubuntu installation, you should be able to start LinuxMCE with the icon as one normally would after a "Primary used as PC" type of installation.

If you want to change the default runlevel again, simply use your favorite text editor (as root) to uncomment one of the other lines in the /etc/inittab created earlier. WARNING: Do NOT set the default runlevel to 0 (shutdown) or 6 (reboot), if you do your system will either immediately shutdown or reboot! This can be fixed, but just don't do it ok?

I did this on my LinuxMCE-1.1RC1 hybrid installation, which was installed as a dedicated LMCE machine.

-- Zaerc 18:29, 4 August 2007 (MST)


And why stop there? (apart from that it's getting light outside again). I decided to try KingCrabs approach with an other runlevel.

  1. replace Startup_Core-Hybrid with StartCoreServices and save the result in a new file.
  2. remove the link that starts "kdm" in runlevel 4
  3. make a symlink in runlevel 4 to start our modified script
sed -e 's/Startup_Core-Hybrid/StartCoreServices/' /etc/init.d/kdm >/etc/init.d/lmce-core
rm -v /etc/rc4.d/S99kdm
ln -sfv ../init.d/lmce-core /etc/rc4.d/S99lmce-core

Now you can use the /etc/inittab trick described above and reboot. To change the default runlevel back to as it was you set it to runlevel 2, deleting the /etc/inittab file completely should have the same effect (deleting could break non-Kubuntu systems though if they rely on this file).

Not all services might be properly started yet, this is experimental! These start scripts might also still need to be started for full operation:

diff rc2.d/ rc4.d/
Only in rc2.d/: S10powernowd.early
Only in rc2.d/: S23instcheck.sh
Only in rc2.d/: S98LMCEUpdate
Only in rc2.d/: S990start_avwizard
Only in rc2.d/: S99kdm
Only in rc4.d/: S99lmce-core
Only in rc2.d/: S99stop-readahead
Only in rc2.d/: StorageDevices_SambaRadar.sh
Only in rc2.d/: StorageDevices_StatusRadar.sh

After booting a diskless media director I see a bunch of CIFS VFS errors on the console, but I have seen plenty of those before I even got started. The web-admin seems to work, the diskless MD plays media, however X10 lighting and the mobile orbitter on my phone, as well as restarting the core from the UI or web-admin don't seem to work, so were not quite done yet.

In the end I changed the default runlevel back to 2 and everything works as it did before and I can control the lights with the mobile again...

-- Zaerc 22:17, 4 August 2007 (MST)


Re: Starting CORE software automatically. Beta1.1

Posted by Cj_MaN at the forum on 20070613 [2]:

How To Start The Core Software automatically at boot:

First: Ubuntu/Kubuntu doesn't use anymore the System-V init  process, instead it uses upstart, more info on: http://upstart.ubuntu.com/
Second: The LMCE config file is: /etc/pluto.conf . Here you can configure if you what to automatically start the core and/or the orbiter:

            AutostartCore=0 : the CORE will not automatically start after Launch Manager starts
                               =1 : the CORE will automatically start after Launch Manager starts
   equivalent with the "Autostart CORE" check box from the Launch Manager

            AutostartMedia=0 : the Orbiter will not automatically start after Launch Manager starts
                                =1 : the Orbiter will automatically start after Launch Manager starts
   equivalent with the "Autostart Media Station" check box from the Launch Manager

Third:
A.How to change from: "Primary used as PC -- KDE starts by default" to "A dedicated LMCE System - You can start KDE when you need it"
Step0: Open a console (ALT+CTRL+F2), login, go root (sudo su - and your password when asked)
Step1: modify AutostartCore=1 option in /etc/pluto.conf file
          nano /etc/pluto.conf
Step2: rename /etc/init.d/kdm to /etc/init.d/kdm.saved
          mv /etc/init.d/kdm /etc/init.d/kdm.saved
Step3.1: create pluto file in /etc/event.d
          nano /etc/event.d/pluto
and write this line in it:
          
start on runlevel 2

stop on shutdown
stop on runlevel 3
stop on runlevel 4
stop on runlevel 5

script
/usr/pluto/bin/Startup_Core-Hybrid.sh
end script

Step3.2: Save it and set 644 rights on it
      CTRL+O , Enter, CTRL+X (in nano) , 
      then in console:
      chmod 644 /etc/event.d/pluto

Step4: Reboot your PC

B.How to change from: "A dedicated LMCE System - You can start KDE when you need it" to "Primary used as PC -- KDE starts by default"

Step0: Open a console (ALT+CTRL+F2), login, go root (sudo su - and your password when asked)

Step1: rename /etc/init.d/kdm.saved to /etc/init.d/kdm
          mv /etc/init.d/kdm.saved /etc/init.d/kdm

Step2: delete the pluto file from /etc/event.d
          rm /etc/event.d/pluto

Step3: Reboot your PC

It seems a bit outdated here and there, but contains interesting info on upstart and switching between dedicated and non-dedicated. --Zaerc 12:19, 26 August 2007 (MST)

additional upstart files to modify

/etc/event.d/media-center-startup

start on runlevel 2

stop on shutdown
stop on runlevel 3
stop on runlevel 4
stop on runlevel 5

script
/usr/pluto/bin/startup-script.sh
end script

/etc/event.d/pluto-dhcpd-plugin

start on runlevel 2

stop on shutdown
stop on runlevel 3
stop on runlevel 4
stop on runlevel 5

script
screen -d -m -S DhcpdPlugin /usr/pluto/bin/Dhcpd-Plugin.sh
end script

Seems pretty obvious what needs to be modified to start them in another runlevel as well.