WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Boot time  (Read 1000 times)

Offline mzlj10

  • WikiUser
  • *
  • Posts: 16
Boot time
« on: October 11, 2016, 01:01:23 AM »
Can someone with more experience help me and explain me why is boot time so long?
Extensions I'm using at boot are xorg-base, jwm, mono-runtime, libmono-system-reactive-windows-forms2.2-cil
All extensions are in one file - sce_progs.
Boot time is around 60 sec, is there possibility to boot around 20sec?
I followed this post - http://forum.tinycorelinux.net/index.php/topic,11235.msg58715/topicseen.html#msg58715 but didn't make boot much faster.
I will be very grateful for your help.



« Last Edit: October 11, 2016, 01:04:42 AM by mzlj10 »

Offline nitram

  • Hero Member
  • *****
  • Posts: 1052
Re: Boot time
« Reply #1 on: October 11, 2016, 01:16:02 AM »
Hi mzlj10.

This topic didn't make it into the wiki yet, although this old thread might help:
http://forum.tinycorelinux.net/index.php/topic,19543.0/nowap.html

Backup your SCE(s) and re-import as a list (sce-import -l), as it sounds like you've done, but also configure and activate an sce.purge file before the re-import. On my hardware it made a noticeable difference. The purge entries listed in the thread shouldn't break anything, but they might, so it may take some adjusting. Heed the breakage warning in the sce.purge example.

Offline mzlj10

  • WikiUser
  • *
  • Posts: 16
Re: Boot time
« Reply #2 on: October 11, 2016, 02:53:13 AM »
thank you for your reply  :)
I managed to do 35 s boot time. Is there any other way to do it better?

Offline nitram

  • Hero Member
  • *****
  • Posts: 1052
Re: Boot time
« Reply #3 on: October 11, 2016, 05:07:14 AM »
That's a nice improvement, just doublecheck to ensure the purge didn't break any extensions. Having used both, ultimately TC7 will boot faster than dCore, however, i don't think the Tiny Core repository has some of the software you are running. Some other stuff you could consider, reduce BIOS splash or boot loader timeouts, remove items not regularly used from sceboot.lst and place in OnDemand, replace JWM with a lighter WM (eg. FLWM, dwm). Not sure what xorg-base is, if you mean xorg-all then replace this with the specific xorg-driver for your hardware (eg. xorg-intel). Or you could try Xvesa (not to be confused with xorg-vesa) instead of Xorg-all, but it may not work with your hardware or provide an adequate monitor resolution. There was previously a bug where sce-load was double-checking extension md5sums but that was fixed, wonder now if this fix also addressed sceboot.lst items, Jason would know best. That's all i can think of for now.

Offline nitram

  • Hero Member
  • *****
  • Posts: 1052
Re: Boot time
« Reply #4 on: October 11, 2016, 05:25:15 AM »
Was thinking dCore specific, just like Tiny Core ensure /etc/sysconfig/tcedir/mydata.tgz save file is small. If boot time is priority and it's >1-5MB then consider setting up a dedicated /home and/or /opt partition. You can run filetool, complete a 'dry run' => 'Go' save to search for large files. Or Control Panel -> System Stats -> bigHomeFiles. Some /home files can safely be excluded from backup, add specific items to /opt/.xfiletool.lst manually or via filetool -> Excluded from backup.
« Last Edit: October 11, 2016, 05:32:30 AM by nitram »

Offline mzlj10

  • WikiUser
  • *
  • Posts: 16
Re: Boot time
« Reply #5 on: October 12, 2016, 01:48:19 AM »
thank you for your efforts and research :)
I tried what you explained but can't get under 35s. With testing I discovered that the most time consuming is xorg.
It is there an option to run without xorg? I want to run only one app, for example in the kiosk mode. So basically don't need an xserver for hole OS, just for this one app.

Offline nitram

  • Hero Member
  • *****
  • Posts: 1052
Re: Boot time
« Reply #6 on: October 12, 2016, 03:02:07 AM »
Xorg is heavy and JWM has a lot of dependencies. Instead of Xorg, as mentioned earlier, have you tried:
Xvesa + dwm + your_application

Xvesa and lighter WM information:
http://wiki.tinycorelinux.net/dcore:xorg-video_driver_packages
http://wiki.tinycorelinux.net/dcore:x-desktop

Otherwise look at /tmp/tcloop and see if you can't add any more files or directories to the purge file, probably the biggest improvement to load times. If you can strip more, modify purge file, re-import SCE and test.

There's framebuffer but i don't know much about it. If there's a TTY or Ncurses alternative available to the software you use then you won't need Xorg or Xvesa. If you can compile your own software then try Tiny Core 7 with your custom compile. Tiny Core will usually be better stripped than dCore's Debian/Ubuntu packages.

But maybe a few seconds of extra boot time isn't a big deal for a kiosk system anyway.

Offline mzlj10

  • WikiUser
  • *
  • Posts: 16
Re: Boot time
« Reply #7 on: October 12, 2016, 05:22:39 AM »
Problem with Xvesa is that I will use a touch screen and touch screen isn't working right. Is there some options for calibration ?
Is there a lighter VM where can I disable topbar, menu and alt+F key combinations. Because with Flwm I couldn't do it.

Offline nitram

  • Hero Member
  • *****
  • Posts: 1052
Re: Boot time
« Reply #8 on: October 12, 2016, 07:11:23 AM »
I have no experience with touchscreen, Xorg may be needed, there's lots of configuration information online. FLWM is not very configurable. You may want a more full featured WM, like Openbox, that allows disabling window dressings, no default panel, keyboard shortcuts can be modified, but it's heavier. Personally i would use a basic tiling WM and recompile it if necessary to disable most features and keyboard shortcuts. Searching 'window manager kiosk' should be fruitful, some like Ratpoison. There was a recent thread about disabling Alt-F key combinations: http://forum.tinycorelinux.net/index.php/topic,20388.msg126968.html#msg126968

Offline mzlj10

  • WikiUser
  • *
  • Posts: 16
Re: Boot time
« Reply #9 on: October 13, 2016, 02:04:49 AM »
thank you for a comprehensive reply.  :)
I will try now to use TinyCore, because you said that is faster, I need mono package and gtk-sharp package. I was trying to compile gtk-sharp from source but with no success. In the early version of TinyCore there was an extension for gtk-sharp, I think 3.x. Is there a chance that someone make an extension for TinyCore 7.2?
I would asking in the forum if I didn't try every possible solution that I find in the internet.

Thank you in advance!

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 9153
Re: Boot time
« Reply #10 on: October 13, 2016, 03:32:48 AM »
gtk-sharp posted (not tested)

Offline mzlj10

  • WikiUser
  • *
  • Posts: 16
Re: Boot time
« Reply #11 on: October 13, 2016, 06:17:33 AM »
thank you for the post in the repository. But I stil have a problem  :-\
Now when I want to run the app with mono "app name" I get System.DllNotFoundException: libglib-2.0-0.dll
I searched the web and get the tip to load mono-dev package too, but the error is still present.
Anyone know how to solve this?
Is the problem in mono extension? Because in dCore is this program with mono-runtime and gtk-sharp package running fine.
Is maybe there a port of libmono-system-reactive-windows-forms2.2-cil? Is there any option to port .sce extensions to .tcz? Or is to hard to do it? Is there to much dependence of the packages?


Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 9153
Re: Boot time
« Reply #12 on: October 13, 2016, 06:51:25 AM »
does "MONO_LOG_LEVEL=debug mono app_name" give any more clues?
« Last Edit: October 13, 2016, 07:02:50 AM by Juanito »

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 9153
Re: Boot time
« Reply #13 on: October 14, 2016, 12:55:20 AM »
I reposted gtk-sharp with the correct location of perl in the scripts:

/usr/local/lib/gtk-sharp-2.0/gapi2xml.pl
/usr/local/lib/gtk-sharp-2.0/gapi_pp.pl

I don't know if this will help or not.

As per:
Code: [Select]
$ cat /tmp/pkg/usr/local/lib/mono/gac/glib-sharp/2.12.0.0__35e10195dab3c99f/glib-sharp.dll.config
<configuration>
  <dllmap dll="libglib-2.0-0.dll" target="libglib-2.0.so.0"/>
  <dllmap dll="libgobject-2.0-0.dll" target="libgobject-2.0.so.0"/>
  <dllmap dll="libgthread-2.0-0.dll" target="libgthread-2.0.so.0"/>
</configuration>

..libglib-2.0-0.dll/libglib-2.0.so.0 look to be correctly identified.

Does your app know to look under /usr/local/lib?