WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Remastered ISO image not loading extensions using xbase.lst with base bootcode  (Read 1391 times)

Offline Miner38

  • Newbie
  • *
  • Posts: 8
This is my isolinux.cfg

Code: [Select]
DEFAULT corepure64
LABEL corepure64
KERNEL /boot/vmlinuz64
INITRD /boot/corepure64.gz
APPEND loglevel=2 cde vga=789 base showapps norestore
I have optional/, copy2fs.flg and, xbase.lst in my /cde/ directory. Nothing else because I specified base. When I boot in I find 0 extensions have loaded. (I used tce-status -i). When I use tce-load -i it doesn't work because /etc/sysconfig/tcedir/ is set to /tmp/tce/. The xbase.lst just has every file in the cde directory. No .tcz.md5.txt's are missing. I am building a Kiosk OS for your information.
« Last Edit: February 11, 2024, 02:05:46 AM by CentralWare »

Offline CentralWare

  • Retired Admins
  • Hero Member
  • *****
  • Posts: 661
@Miner38: You WANT base...  but yet you WANT extensions.  You may want to consider a Custom build.
« Last Edit: February 11, 2024, 02:07:42 AM by CentralWare »

Offline CentralWare

  • Retired Admins
  • Hero Member
  • *****
  • Posts: 661
...when you ask the boot code base to skip/disable TCE, it's going to act as though your TCE directory doesn't even exist in the first place, so your boot MEDIA is very likely not mounted when you get to the shell.  This is why TCEDIR points to /tmp.  IF this is actually what you want, you may wish to create an extension environment that "would" allow you to tce-load extensions, but bare in mind, you'll be eating RAM to accomplish this - twice over.  (First, to store the extension.tcz file and its support files and dependencies -- and secondly, to actually load the extension itself to be put to use.  It's more efficient to create your own custom image where the contents of the extension are included in the root file system.)

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11316
Hi Miner38
By default, extensions get loaded using  onboot.lst.
If you want to specify a different list file, do it like this:
Code: [Select]
APPEND loglevel=2 cde vga=789 lst=xbase.lst showapps norestore
When you specify  base  you are telling the system you
don't want any extensions loaded.

Offline Leee

  • Jr. Member
  • **
  • Posts: 92
...when you ask the boot code base to skip/disable TCE, it's going to act as though your TCE directory doesn't even exist in the first place, so your boot MEDIA is very likely not mounted when you get to the shell.  This is why TCEDIR points to /tmp.  IF this is actually what you want, you may wish to create an extension environment that "would" allow you to tce-load extensions, but bare in mind, you'll be eating RAM to accomplish this - twice over.  (First, to store the extension.tcz file and its support files and dependencies -- and secondly, to actually load the extension itself to be put to use.  It's more efficient to create your own custom image where the contents of the extension are included in the root file system.)
This seems closely related to something I've been wondering about for a while:

I sometimes want something like "base" but not "to act as though your TCE directory doesn't even exist". I specify my tce directory on the kernel command line and I don't want that to be ignored - is there something like "base" that just says, "don't load any extensions"?

I suppose setting "lst=<some empty file> might do the trick (I haven't tried that, nor specifying a non-existent file), but is there a cleaner way?
core 14.0 x86_64

Offline jazzbiker

  • Hero Member
  • *****
  • Posts: 934
Hi Leee!

I sometimes want something like "base" but not "to act as though your TCE directory doesn't even exist". I specify my tce directory on the kernel command line and I don't want that to be ignored - is there something like "base" that just says, "don't load any extensions"?

I suppose setting "lst=<some empty file> might do the trick (I haven't tried that, nor specifying a non-existent file), but is there a cleaner way?

What may be cleaner than an empty file ;-) ?

Code: [Select]
tc@box:~$ ls -l /mnt/sdb3/tce10
total 2432
-rw-rw-r--    1 tc       staff            0 Jan 31  2021 empty.lst
-rw-rw----    1 tc       staff            0 Jun  8  2020 firstrun
-rw-rw-r--    1 tc       staff          125 Aug 14 20:04 graphics.lst
-rw-rw-r--    1 tc       staff           93 Aug 14 20:04 locale.lst
-rw-r--r--    1 root     root       1174273 Sep 24 04:10 mydata.tgz
-rw-rw-r--    1 tc       staff      1214859 Sep 11 20:48 mydatabk.tgz
-rw-rw-r--    1 tc       staff           53 Sep 24 03:54 onboot.lst
drwxrwxr-x    2 tc       staff         4096 Jun  7  2020 ondemand/
drwxrwxr-x    3 tc       staff        77824 Jan  3 05:16 optional/

Offline Miner38

  • Newbie
  • *
  • Posts: 8
Ah. I see. I thought base meant the same as lst=xbase.lst. Thanks!

Offline CentralWare

  • Retired Admins
  • Hero Member
  • *****
  • Posts: 661
@Leee:
Quote
specifying a non-existent file
This might get you into a little trouble as it may end up leaving tcedir in an invalid state to where you try to use tce-load and it just quits, laughing at you in silence as it detects one thing and you've told it another.

If you go a route like this, I would suggest a blank (existing) file instead.
CDE mode is probably as clean as you can get WITH extension support but it's not exactly the definition of KIOSK.

MY take on what a kiosk is supposed to be, or at least those I've built for clients, is a bootable image which cannot change ON ITS OWN.  (Meaning, you're welcome to install extensions, alter files, etc. but the image that boots up never changes - so ALL changes that are made to the running OS, whether you like it or not, are lost on reboot.)  Additionally, KIOSK mode should ensure that when boot is complete, the MEDIA which it boot from should no longer be mounted... and should have been READ ONLY the entire time.  A kiosk must be impervious to power outages (without data corruption on its BOOT media) and stupidity as much as humanly possible; one being easier to accomplish than the other!

Can this be done with TinyCore?  Certainly!   The power outage part, though...  that's a hardware issue where you literally have to isolate the boot device after you boot with it.
If anyone wants to venture into a real "kiosk" based on the above definition, I'll put together an instructional.  It's too involved/wordy for a forum post, but still a rather simple process.

What's needed?  A couple USB sticks/cards/etc. (one to develop ON/WITH, the other to create into our resulting kiosk), an internet connection to fetch extensions with, a little time and an ounce of patience.  Bare in mind, hard drives, SD cards and USB sticks are not guaranteed read only no matter the circumstance (for example, the read/write lock switch on an SD card doesn't PREVENT writing; it just tells the OS "...I don't want you to write to me...  please!?" but it cannot enforce it.)  If you want a guarantee, you need to remove power from the device once booting is complete.

Offline Leee

  • Jr. Member
  • **
  • Posts: 92
Thanks CentralWare and jazzbiker,
I ended up rebooting today (that's twice in the space of a month, but I guess it's not gonna wear anything out) since I was installing some new furniture in "the data center" so I played with this a bit.
Code: [Select]
lst=some-non-existent-fileseemed to work ok, but I definitely feel a little safer using
Code: [Select]
lst=notcz.lstwhere notcz.lst is an empty file, thanks to CentralWare's suggestion.
In either case, I did still have my tce directory as specified and mydata.tgz was restored (I did not, of course, use "norestore") - which was exactly what I was looking for.

It seems like a "notcz" boot code would technically be a little cleaner but, yeah, for all the more often one is likely to use it, "lst=notcz.lst" isn't going to kill anyone.

core 14.0 x86_64