WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Now that I have this installed,  (Read 10851 times)

Offline TomyTurbos

  • Jr. Member
  • **
  • Posts: 95
Now that I have this installed,
« on: February 03, 2019, 06:23:23 PM »
... how do I know which embedded modules in core.gz do not apply to my specific hardware, so I can eliminate them when remastering?

I want to 'trim the fat' now that I have a working system.

I realize this is something an experienced Linux user probably knows already, but I am a neophyte Windows guy who is trying to reform after seeing the error of my ways.

Online Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11635
Re: Now that I have this installed,
« Reply #1 on: February 03, 2019, 08:03:18 PM »
Hi TomyTurbos
To see which modules are loaded run:
Code: [Select]
lsmodWhat you are planning means your  core.gz  will likely only work on your system, and I recommend you don't do this. If you ever
need to move the drive to another system, you may have trouble booting it. Here's how much space the modules occupy:
Code: [Select]
tc@box:~$ du -cs /lib/modules/4.14.10-tinycore/kernel/
7.0M    /lib/modules/4.14.10-tinycore/kernel/
7.0M    total
tc@box:~$
And to be clear, the kernel only loads the modules it actually needs.

Offline TomyTurbos

  • Jr. Member
  • **
  • Posts: 95
Re: Now that I have this installed,
« Reply #2 on: February 03, 2019, 09:53:41 PM »
Hi TomyTurbos
To see which modules are loaded run:
Code: [Select]
lsmodWhat you are planning means your  core.gz  will likely only work on your system, and I recommend you don't do this. If you ever
need to move the drive to another system, you may have trouble booting it. Here's how much space the modules occupy:
Code: [Select]
tc@box:~$ du -cs /lib/modules/4.14.10-tinycore/kernel/
7.0M    /lib/modules/4.14.10-tinycore/kernel/
7.0M    total
tc@box:~$
And to be clear, the kernel only loads the modules it actually needs.

Gotcha.  I knew that moving to different hardware would mean using the original core.gz and starting over.  At present this is not an issue, however I am looking for a 'for dummies' method to reduce boot time while still including the necessary drivers.  The 'core concept' is still a bit new to me but it seems there should be (or maybe already is) a simple way to weed this out, such as outputting the results of the command above to a file and then reading it back to 'make' or whatever is appropriate.

Please forgive that I am a Windows Power User with just enough info to be dangerous.  I am trying to  change my evil ways and learn from my mistakes.

Online Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11635
Re: Now that I have this installed,
« Reply #3 on: February 03, 2019, 10:05:14 PM »
Hi TomyTurbos
... I am looking for a 'for dummies' method to reduce boot time while still including the necessary drivers. ...
Stripping out unused modules will not reduce boot time.

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
Re: Now that I have this installed,
« Reply #4 on: February 04, 2019, 03:21:54 AM »
Rich is correct on any last-10-years hw.

It will reduce RAM use by a mb or few, and reduce core.gz size similarly. There will be a tiny impact to boot speed, namely the part where the bootloader reads core.gz from disk. Given a modern hd reads 80+ mb/s, and ssds far more, the impact to boot time would be <25ms. :)

I would recommend doing it anyway, it helps get familiar with the system and linux in general.
The only barriers that can stop you are the ones you create yourself.

Online Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11635
Re: Now that I have this installed,
« Reply #5 on: February 04, 2019, 03:04:17 PM »
Hi TomyTurbos
... I am looking for a 'for dummies' method to reduce boot time while still including the necessary drivers. ...
Attached is a script that will match currently loaded modules to the locations they can be found in. After downloading, make
it executable like this:
Code: [Select]
chmod 774 FindModules.sh
Here is a sample run. The names next to the asterisks are the module names as they appear from the  lsmod  command. The
next line is where in the file system the module can be found.
Code: [Select]
tc@box:~$ ./FindModules.sh
/lib/modules/3.0.3-tinycore
***** nfsd
/lib/modules/3.0.3-tinycore/kernel.tclocal/fs/nfsd/nfsd.ko.gz:

***** cifs
/lib/modules/3.0.3-tinycore/kernel.tclocal/fs/cifs/cifs.ko.gz:

***** speedstep_lib
/lib/modules/3.0.3-tinycore/kernel/drivers/cpufreq/speedstep-lib.ko.gz:

***** cpufreq_userspace
/lib/modules/3.0.3-tinycore/kernel/drivers/cpufreq/cpufreq_userspace.ko.gz:

***** cpufreq_powersave
/lib/modules/3.0.3-tinycore/kernel/drivers/cpufreq/cpufreq_powersave.ko.gz:

***** cpufreq_stats
/lib/modules/3.0.3-tinycore/kernel/drivers/cpufreq/cpufreq_stats.ko.gz:

***** cpufreq_conservative
/lib/modules/3.0.3-tinycore/kernel/drivers/cpufreq/cpufreq_conservative.ko.gz:

***** nvidia
/lib/modules/3.0.3-tinycore/kernel.tclocal/drivers/video/nvidia.ko.gz:

***** i2c_i801
/lib/modules/3.0.3-tinycore/kernel.tclocal/drivers/i2c/busses/i2c-i801.ko.gz:

***** intel_agp
/lib/modules/3.0.3-tinycore/kernel.tclocal/drivers/char/agp/intel-agp.ko.gz:

***** intel_gtt
/lib/modules/3.0.3-tinycore/kernel.tclocal/drivers/char/agp/intel-gtt.ko.gz:

***** agpgart
/lib/modules/3.0.3-tinycore/kernel.tclocal/drivers/char/agp/agpgart.ko.gz:

***** ppdev
/lib/modules/3.0.3-tinycore/kernel/drivers/char/ppdev.ko.gz:

***** squashfs
/lib/modules/3.0.3-tinycore/kernel/fs/squashfs/squashfs.ko.gz:

***** pcspkr
/lib/modules/3.0.3-tinycore/kernel/drivers/input/misc/pcspkr.ko.gz:

***** tulip
/lib/modules/3.0.3-tinycore/kernel/drivers/net/tulip/tulip.ko.gz:

***** parport_pc
/lib/modules/3.0.3-tinycore/kernel/drivers/parport/parport_pc.ko.gz:

***** floppy
/lib/modules/3.0.3-tinycore/kernel/drivers/block/floppy.ko.gz:

***** parport
/lib/modules/3.0.3-tinycore/kernel/drivers/parport/parport.ko.gz:

***** scsi_wait_scan
/lib/modules/3.0.3-tinycore/kernel/drivers/scsi/scsi_wait_scan.ko.gz:

***** loop
/lib/modules/3.0.3-tinycore/kernel/drivers/block/loop.ko.gz:

tc@box:~$

Offline TomyTurbos

  • Jr. Member
  • **
  • Posts: 95
Re: Now that I have this installed,
« Reply #6 on: February 04, 2019, 07:44:52 PM »
Hi TomyTurbos
... I am looking for a 'for dummies' method to reduce boot time while still including the necessary drivers. ...
Attached is a script that will match currently loaded modules to the locations they can be found in. After downloading, make
it executable like this:
Code: [Select]
chmod 774 FindModules.sh
Here is a sample run. The names next to the asterisks are the module names as they appear from the  lsmod  command. The
next line is where in the file system the module can be found.

~snip~


Thanks, Rich.  Your prompt attention shows that you truly deserve the 'Hero Member' Title!

As it turns out, what I was really asking about was onboot.lst and auditing it to exclude items (particularly drivers) which are not germane to my hardware.

Bear in mind that in this case I am making a proprietary system, portability is not a concern.

What I say next is probably a 'Suggestion Box' item, but I'm putting it here because we're already on the topic.

So, after studying up on the way TC (and specifically Core+) is structured, I find the following:

The TCE (or CDE) has the same contents 'as-shipped'.  The difference in booting starts first with the selection of window manager.  Farther down the boot menu there are less-robust 'installs' and this is done via the 'lst=xxx.lst' boot code. (I realize that most of you already knew this.  I'm being verbose for the sake of any other newbs who may stumble upon this thread in search of an answer.)

So the first thing was that since i already know which window manager I want, there is no reason to load the others, yet all of them are loaded as 'onboot' items.

I copied onboot.lst to a separate filename and deleted the unnecessary desktops.  All is well in that regard.

This led to drivers, which are possibly needed, but after the fact have nothing to do with my hardware.  The problem (which is the reason why I started this thread) is that it is no small task to determine which ones to weed out.

I managed to get a list of the ones in use by using 'Control Panel>System Stats>Installed' and was able to (somewhat awkwardly) c&p these to a text file.  Unfortunately, System Stats sorts these alphabetically, where onboot.lst is in sequential order of loading.

First suggestion: Add an 'export' or 'dump' feature to System Stats.

From this I was able to derive that there are two broadcom drivers loading on boot which have no reason to exist.  (Ironically enough, the one that I DO need (b43) isn't in the packaged version's TCE, but that was resolved separately).

So, I deleted these and the unneeded/unwanted window managers from my customized .lst file.  All is well and I shaved whatever the load time for these is off my boot-up.

I will have to further audit my custom .lst against the 'installed' list I took from System Stats, but it is an arduous task in part because one is alphabetized and the other CAN'T be alphabetized.  As well, the 'maintenance' function of App Browser really brings no joy because it doesn't look at the output of System Stats>Installed when you say 'clean up onboot'.

This all seems to be rather simple to resolve, but other than thinking it up I am way beyond my pay grade.  Otherwise I'd offer to do it myself.

I am marking the topic as solved but still look forward to any further developments.

Online Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11635
Re: Now that I have this installed,
« Reply #7 on: February 04, 2019, 09:01:44 PM »
Hi TomyTurbos
The modules that have  kernel.tclocal  listed in their path are provided by extensions.  So if you execute:
Code: [Select]
tc@box:~$ ls -l `./FindModules.sh | grep -F kernel.tclocal | sed 's/.$//'`
lrwxrwxrwx 1 root root 110 Aug 19 20:12 /lib/modules/3.0.3-tinycore/kernel.tclocal/drivers/char/agp/agpgart.ko.gz -> /tmp/tcloop/graphics-3.0.3-tinycore/usr/local/lib/modules/3.0.3-tinycore/kernel/drivers/char/agp/agpgart.ko.gz
lrwxrwxrwx 1 root root 112 Aug 19 20:12 /lib/modules/3.0.3-tinycore/kernel.tclocal/drivers/char/agp/intel-agp.ko.gz -> /tmp/tcloop/graphics-3.0.3-tinycore/usr/local/lib/modules/3.0.3-tinycore/kernel/drivers/char/agp/intel-agp.ko.gz
lrwxrwxrwx 1 root root 112 Aug 19 20:12 /lib/modules/3.0.3-tinycore/kernel.tclocal/drivers/char/agp/intel-gtt.ko.gz -> /tmp/tcloop/graphics-3.0.3-tinycore/usr/local/lib/modules/3.0.3-tinycore/kernel/drivers/char/agp/intel-gtt.ko.gz
lrwxrwxrwx 1 root root 108 Aug 19 20:12 /lib/modules/3.0.3-tinycore/kernel.tclocal/drivers/i2c/busses/i2c-i801.ko.gz -> /tmp/tcloop/i2c-3.0.3-tinycore/usr/local/lib/modules/3.0.3-tinycore/kernel/drivers/i2c/busses/i2c-i801.ko.gz
lrwxrwxrwx 1 root root 113 Aug 19 20:12 /lib/modules/3.0.3-tinycore/kernel.tclocal/drivers/video/nvidia.ko.gz -> /tmp/tcloop/nvidia-96.43.20-3.0.3-tinycore/usr/local/lib/modules/3.0.3-tinycore/kernel/drivers/video/nvidia.ko.gz
lrwxrwxrwx 1 root root 101 Aug 19 20:12 /lib/modules/3.0.3-tinycore/kernel.tclocal/fs/cifs/cifs.ko.gz -> /tmp/tcloop/filesystems-3.0.3-tinycore/usr/local/lib/modules/3.0.3-tinycore/kernel/fs/cifs/cifs.ko.gz
lrwxrwxrwx 1 root root 101 Aug 19 20:12 /lib/modules/3.0.3-tinycore/kernel.tclocal/fs/nfsd/nfsd.ko.gz -> /tmp/tcloop/filesystems-3.0.3-tinycore/usr/local/lib/modules/3.0.3-tinycore/kernel/fs/nfsd/nfsd.ko.gz
tc@box:~$
The name just to the right of  -> /tmp/tcloop/  in the above list is the name of the extension. Or you can get the extension names
like this:
Code: [Select]
tc@box:~$ ls -l `./FindModules.sh | grep -F kernel.tclocal | sed 's/.$//'` | cut -d'>' -f2 | cut -d'/' -f4
graphics-3.0.3-tinycore
graphics-3.0.3-tinycore
graphics-3.0.3-tinycore
i2c-3.0.3-tinycore
nvidia-96.43.20-3.0.3-tinycore
filesystems-3.0.3-tinycore
filesystems-3.0.3-tinycore
tc@box:~$

While this does not tell you which extensions you don't need, it identifies extensions that are in use.

Offline coreplayer2

  • Hero Member
  • *****
  • Posts: 3020
Re: Now that I have this installed,
« Reply #8 on: February 05, 2019, 01:18:29 AM »
...
As it turns out, what I was really asking about was onboot.lst and auditing it to exclude items (particularly drivers) which are not germane to my hardware.

Bear in mind that in this case I am making a proprietary system, portability is not a concern.
...
So, after studying up on the way TC (and specifically Core+) is structured, I find the following:

The TCE (or CDE) has the same contents 'as-shipped'.  The difference in booting starts first with the selection of window manager.  Farther down the boot menu there are less-robust 'installs' and this is done via the 'lst=xxx.lst' boot code. (I realize that most of you already knew this.  I'm being verbose for the sake of any other newbs who may stumble upon this thread in search of an answer.)

So the first thing was that since i already know which window manager I want, there is no reason to load the others, yet all of them are loaded as 'onboot' items.

I copied onboot.lst to a separate filename and deleted the unnecessary desktops.  All is well in that regard.
...
So, I deleted these and the unneeded/unwanted window managers from my customized .lst file.  All is well and I shaved whatever the load time for these is off my boot-up.

I will have to further audit my custom .lst against the 'installed' list I took from System Stats, but it is an arduous task in part because one is alphabetized and the other CAN'T be alphabetized.  As well, the 'maintenance' function of App Browser really brings no joy because it doesn't look at the output of System Stats>Installed when you say 'clean up onboot'.

Hello TomyTurbos,
The onboot.lst and unneeded extensions accidentally copied from the coreplus.iso are exactly what i thought you were referring too, despite asking about core.gz modules.

The CorePlus onboot.lst  includes all basic extensions needed for most systems.  Now that you're ready to make an efficient system, you could start with a clean slate (ie an empty onboot.lst) however I recommend not doing that, instead you could extract the onboot.lst from TinyCore-current.iso.or TinyCore-10.0.iso, which provides a safe minimalist gui onboot.lst.    To save you the trouble I've included it here:

safe onboot.lst
Code: [Select]
aterm.tcz
bzip2-lib.tcz
fltk-1.3.tcz
flwm_topside.tcz
freetype.tcz
imlib2-bin.tcz
imlib2.tcz
libfontenc.tcz
libICE.tcz
libjpeg-turbo.tcz
libpng.tcz
libSM.tcz
libX11.tcz
libXau.tcz
libxcb.tcz
libXdmcp.tcz
libXext.tcz
libXfont.tcz
wbar.tcz
Xlibs.tcz
Xprogs.tcz
Xvesa.tcz

You'll likely make some mistake here.  As a safeguard you could make another boot entry in the boot config file to boot back into your current onboot.lst, while you investigate the purpose of each extension residing in the new TCE directory and determining if you need to add it to the new onboot.lst.

if you use wifi you'll need wifi.tcz added to the list, perhaps also a driver and a firmware extension, check dmesg output for clues.of missing modules and firmware.

Missing program dependencies will usually be advised when attempting to run desired program from a terminal command line.  Use APPS > Provides to search for the missing extension, then add it to your onboot.lst.  Having said that, the dependency should have been listed in the programs dep file but it's not always perfect..

When you've build an efficient system and discovered which extensions are not required, you can use APPS > Maintenance > Dependencies and Deletions to safely remove unwanted extensions from the TCE directory (deletions are performed on reboot).

if you accidentally delete a required extension, don't worry as you can always recover it from either the ISo or online quite easily

Good luck

     
« Last Edit: February 05, 2019, 01:26:35 AM by coreplayer2 »

Offline NewUser

  • Full Member
  • ***
  • Posts: 168
Re: Now that I have this installed,
« Reply #9 on: February 05, 2019, 03:04:16 AM »
I may well be wrong here, but. Assuming you know the hardware you have/need (read drivers and extensions), why not start with Tinycore adding what is needed, as opposed to starting with everything and deleting most.

Offline coreplayer2

  • Hero Member
  • *****
  • Posts: 3020
Re: Now that I have this installed,
« Reply #10 on: February 05, 2019, 03:09:13 AM »
Quote
So, I deleted these and the unneeded/unwanted window managers from my customized .lst file.  All is well and I shaved whatever the load time for these is off my boot-up.

I will have to further audit my custom .lst against the 'installed' list I took from System Stats, but it is an arduous task in part because one is alphabetized and the other CAN'T be alphabetized.  As well, the 'maintenance' function of App Browser really brings no joy because it doesn't look at the output of System Stats>Installed when you say 'clean up onboot'.

This all seems to be rather simple to resolve, but other than thinking it up I am way beyond my pay grade.  Otherwise I'd offer to do it myself.

@TomyTurbos
It's the Linux way to write one liner shell commands to make light of tedious work.

Like So; after creating an efficient onboot.lst  you might navigate to your tce/optional directory, open a Terminal and run this command

Code: [Select]
for i in *tcz ; do [ -f /usr/local/tce.installed/${i%.tcz} ] || echo $i ; donewhich will list all extensions found in your TCE extension directory that are not currently installed, therefore likely not needed.

eg from my currently running system:
Code: [Select]
/mnt/sdb3/tc10-x86_64/optional $ for i in *tcz ; do [ -f /usr/local/tce.installed/${i%.tcz} ] || echo $i ; done
adwaita-icon-theme.tcz
autoconf.tcz
automake.tcz
bc.tcz
binutils.tcz
bison.tcz
bzip2.tcz
ca-certificates.tcz
compiletc.tcz
curl.tcz
diffutils.tcz
e2fsprogs_base-dev.tcz
file.tcz
findutils.tcz
firefox_getLatest.tcz
flex.tcz
flwm_topside.tcz
gawk.tcz
gcc.tcz
gcc_base-dev.tcz
gcc_libs-dev.tcz
glibc_add_lib.tcz
glibc_apps.tcz
glibc_base-dev.tcz
grep.tcz
libzstd.tcz
linux-4.19_api_headers.tcz
linux-kernel-sources-env.tcz
lzo.tcz
m4.tcz
make.tcz
mpc.tcz
mpfr.tcz
ncursesw-dev.tcz
patch.tcz
perl5.tcz
perl_xml_parser.tcz
pkg-config.tcz
sed.tcz
squashfs-tools.tcz
tce-md5check.tcz
util-linux_base-dev.tcz
wget.tcz
xz.tcz
zlib_base-dev.tcz
/mnt/sdb3/tc10-x86_64/optional $

Thereafter and always use APPS > Maintenance > Dependencies and Deletions  to delete these unneeded extensions from your tce/optional directory.
Note: if you have any extensions listed in "ondemand" then remove these from the list as we only compared those apps currently installed via onboot.lst
« Last Edit: February 05, 2019, 03:26:08 AM by coreplayer2 »

Offline coreplayer2

  • Hero Member
  • *****
  • Posts: 3020
Re: Now that I have this installed,
« Reply #11 on: February 06, 2019, 07:08:53 PM »
Perhaps we should summarize the steps to a lean machine and expand on the extension audit command..?

Preface:  We installed from CorePlus.ISO which resulted in unnecessary onboot entries and many unneeded extensions in our TCE/Optional directory..  We assume a desktop GUI.

Step 1:
Start with a clean slate; use  the "onboot.lst" from tinycore-current.ISO
Which I've posted here:
Code: [Select]
aterm.tcz
bzip2-lib.tcz
fltk-1.3.tcz
flwm_topside.tcz
freetype.tcz
imlib2-bin.tcz
imlib2.tcz
libfontenc.tcz
libICE.tcz
libjpeg-turbo.tcz
libpng.tcz
libSM.tcz
libX11.tcz
libXau.tcz
libxcb.tcz
libXdmcp.tcz
libXext.tcz
libXfont.tcz
wbar.tcz
Xlibs.tcz
Xprogs.tcz
Xvesa.tcz

Step 2:
Add any required extensions required for your system, most importantly any firmware and Wifi extensions.  Check "dmesg" in the terminal for firmware files needed then determine which firmware extension they came from and add to onboot.lst, then add wifi extension.
At this point you can add any other extension you wish to have in the final build on every boot, like a file manager, any required hardware modules and a web browser   Also replace "flwm_topside.tcz" with a desktop window manager of your choice, or not..
Place any seldom used extensions you wish to keep in "ondemand" (use APPS).

Step 3:
Reboot...   Then load and close every program/extension listed in "ondemand" and use "APPS > Load Apps Locally"  to load any other local extensions you'd prefer to keep.

Step 4:
I've stepped up the game here with a modification to the one-liner commands previously mentioned.

Open a terminal and copy/paste and run this command:
Code: [Select]
cd $(readlink /etc/sysconfig/tcedir)/optional ; for i in *tcz ; do [ -f /usr/local/tce.installed/${i%.tcz} ] || tce-audit delete $i ; done
Which first navigates to your current in use tce/optional directory, then
compares each extension found with the list of installed extensions, then
if not installed is passed as an argument to tce-audit to be marked for deletion on next reboot.

example:
Code: [Select]
tc@box:~$ cd $(readlink /etc/sysconfig/tcedir)/optional ; for i in *tcz ; do [ -f /usr/local/tce.installed/${i%.tcz} ] || tce-audit delete $i ; done
/etc/sysconfig/tcedir/optional/Xorg-7.7-3d.tcz
/etc/sysconfig/tcedir/optional/bzip2.tcz
/etc/sysconfig/tcedir/optional/wget.tcz
tc@box:/mnt/sdb3/tc10-x86_64/optional$


Now check "/tmp/audit_marked.lst"  and verify the each extension listed as marked for deletion in this file are not required. if in doubt delete this file and no extensions will be deleted.  You can remove any entries of extensions you'd like to keep, then if all is as expected then
reboot

Step 5:
After reboot, open APPS > Maintenance > Dependencies and Deletions > Dependencies >
and Run
Build reporting database
Update .dep files
Fetch missing dependencies





I ran steps 3,4 &5 on all my systems as a spring cleaning, one system had more than 300 unused extensions which were promptly removed.
good luck

« Last Edit: February 06, 2019, 07:21:38 PM by coreplayer2 »

Offline TomyTurbos

  • Jr. Member
  • **
  • Posts: 95
Re: Now that I have this installed,
« Reply #12 on: February 07, 2019, 07:56:09 PM »
Thanks guys.  I managed to weed out most of the unnecessaries manually by opening two App Browsers --one with the onboot list open and the other with search. 

I went through the onboot list (particularly the firmware-xxx) to find out what each of these drivers were for and removed the ones which did not apply to my hardware.  As well, I removed all of the desktops I am not going to be using.  As a result I took a full ten seconds off my boot time.

But another result was the discovery of something which may be a flaw.  This flaw can be easily rectified however. Please think these abstracts through (even though I might not know what I'm talking about):

Starting with Core+ and it's boot menu:

When a user selects a pre-defined window manager or times-out to default, ALL of the other ones are still loaded.  This eats both time and RAM.

This can easily be resolved with the 'lst=xxx' boot command in the same manner that the stripped-down versions farther down the menu work.  The on-disk real estate for multiple *.lst files will be inconsequential but the improved boot times will be measurable.  All of this can be resolved by creating additional *.lst files and editing the bootloader .cfg.

A related aside:  I am running the most recent syslinux successfully.  It required the recompiled .c32 files for compatibility but once installed to the appropriate directory works just fine.  You might consider upgrading the distro in this manner as well.

Now, the drivers is another thing and I can tell why you pretty much had to do it the way you did.  You're trying for what the Redmond guys call 'out-of-box-experience', ie, 'user-friendly'.  (I hope I don't get banned for mentioning 'The Dark Side').  I offer a solution for this as well, though it is far more complicated to implement.  It involves improvements to the App Browser.

When we download an extension, it gets the MD5 and the required dependencies, but the .info stays on the server. This is why I used two App Browser windows as described above.  It was by reading the description of what a particular driver was for that I was able to determine that it was not appropos to my system.  But that was not locally available information.  Again, the footprint for these files on-disk as well as the download time is negligible, so why not make it more easily available?

I hope it's understood that my purpose in making these suggestions is most definitely NOT to bloat the system. The purpose is to streamline and simplify, which in turn will make an improved user experience which is also more accessible to neophytes such as myself.

I hope the above makes sense.


Offline TomyTurbos

  • Jr. Member
  • **
  • Posts: 95
Re: Now that I have this installed,
« Reply #13 on: February 07, 2019, 07:59:56 PM »
Perhaps we should summarize the steps to a lean machine and expand on the extension audit command..?

Preface:  We installed from CorePlus.ISO which resulted in unnecessary onboot entries and many unneeded extensions in our TCE/Optional directory..  We assume a desktop GUI.

Step 1:
Start with a clean slate; use  the "onboot.lst" from tinycore-current.ISO
Which I've posted here:
Code: [Select]
aterm.tcz
bzip2-lib.tcz
fltk-1.3.tcz
flwm_topside.tcz
freetype.tcz
imlib2-bin.tcz
imlib2.tcz
libfontenc.tcz
libICE.tcz
libjpeg-turbo.tcz
libpng.tcz
libSM.tcz
libX11.tcz
libXau.tcz
libxcb.tcz
libXdmcp.tcz
libXext.tcz
libXfont.tcz
wbar.tcz
Xlibs.tcz
Xprogs.tcz
Xvesa.tcz

Step 2:
Add any required extensions required for your system, most importantly any firmware and Wifi extensions.  Check "dmesg" in the terminal for firmware files needed then determine which firmware extension they came from and add to onboot.lst, then add wifi extension.
At this point you can add any other extension you wish to have in the final build on every boot, like a file manager, any required hardware modules and a web browser   Also replace "flwm_topside.tcz" with a desktop window manager of your choice, or not..
Place any seldom used extensions you wish to keep in "ondemand" (use APPS).

Step 3:
Reboot...   Then load and close every program/extension listed in "ondemand" and use "APPS > Load Apps Locally"  to load any other local extensions you'd prefer to keep.

Step 4:
I've stepped up the game here with a modification to the one-liner commands previously mentioned.

Open a terminal and copy/paste and run this command:
Code: [Select]
cd $(readlink /etc/sysconfig/tcedir)/optional ; for i in *tcz ; do [ -f /usr/local/tce.installed/${i%.tcz} ] || tce-audit delete $i ; done
Which first navigates to your current in use tce/optional directory, then
compares each extension found with the list of installed extensions, then
if not installed is passed as an argument to tce-audit to be marked for deletion on next reboot.

example:
Code: [Select]
tc@box:~$ cd $(readlink /etc/sysconfig/tcedir)/optional ; for i in *tcz ; do [ -f /usr/local/tce.installed/${i%.tcz} ] || tce-audit delete $i ; done
/etc/sysconfig/tcedir/optional/Xorg-7.7-3d.tcz
/etc/sysconfig/tcedir/optional/bzip2.tcz
/etc/sysconfig/tcedir/optional/wget.tcz
tc@box:/mnt/sdb3/tc10-x86_64/optional$


Now check "/tmp/audit_marked.lst"  and verify the each extension listed as marked for deletion in this file are not required. if in doubt delete this file and no extensions will be deleted.  You can remove any entries of extensions you'd like to keep, then if all is as expected then
reboot

Step 5:
After reboot, open APPS > Maintenance > Dependencies and Deletions > Dependencies >
and Run
Build reporting database
Update .dep files
Fetch missing dependencies





I ran steps 3,4 &5 on all my systems as a spring cleaning, one system had more than 300 unused extensions which were promptly removed.
good luck

Glad I could help!
(j/k!)

If you read my previous post you'll see that I managed to muddle-through in the meanwhile.
Thanks for your efforts regardless.

Offline coreplayer2

  • Hero Member
  • *****
  • Posts: 3020
Re: Now that I have this installed,
« Reply #14 on: February 07, 2019, 08:10:05 PM »
If you read my previous post you'll see that I managed to muddle-through in the meanwhile.
Thanks for your efforts regardless.
Hello Tommy
muddling through this is exactly the reason why I provided more complete method and in true linux fashion for your learning experience.. 

regards