Most TinyCore guides assume you're using, um, TinyCore. This is for future reference, written by myself, on how to install and use MicroCore, which doesn't come with any fancy GUI stuff. It is not assumed that you are using the default WM that comes with TinyCore, or even any display at all.
Before you read this, you should read the Key Concepts of TinyCore.
Note
should probably look into mylocale.tcz (getlocale.tcz)
Installing TinyCore differs from installing most other operating systems in that, since it loads the entirety of itself into RAM on startup, the typical hard-drive installation you're used to isn't the kind of thing you'd want to do in TinyCore (you could, but there wouldn't be a good reason to). You're probably going to want a frugal install, which stores the system in two files: vmlinuz, and core.gz, whose locations are specified by the bootloader. All user files and extensions are stored outside of the base operating system. This does mean that every system file is wiped on startup.
By default, the system will be in the default mode. This probably isn't what you want, but it's the default. It's similar to live CDs, but a bit different: TinyCore stores as much of itself in RAM as possible, with applications lasting only for the current session. The recommended mode is mount mode, which stores all applications in /tce/, located on a persistent store such as a supported disk partition.
You don't necessarily set the mode in a menu. If you want to switch over to mount mode then tell the app browser where to store extensions.
Additionally, TinyCore comes with a tool named "filetool" for saving personal settings and data. The file /opt/.filetool.lst controls which files and directories are backed up by filetool and restored on reboot. It writes this data to mydata.tgz which is in the location specified by the restore boot option (if none is specified, TinyCore will look for it in the available root directories); its name can be changed with the mydata boot option. If you want a more traditional persistent home directory, you can specify the device it's stored on with the home boot option. For example, if you have an ext4 home partition on /dev/sda2, home=sda2 will treat it as a regular, persistent home directory and mount it on startup. The same idea pretty much applies to the /opt/ directory with the opt boot option.
Individual TinyCore applications come in the form of .tcz files, which are compressed squashfs filesystems that contain their respective extension files. Running these applications requires them to first be mounted (since they are filesystems). This is why installing TinyCore applications comes in two forms: OnBoot and OnDemand. The former mounts applications on boot, whereas the latter mounts applications only when they are needed (such as when the user starts it manually from the taskbar).
You're gonna be in a command prompt, go ahead and open the application browser and install tc-install. After installation finishes, run sudo tc-install.sh and follow the instructions.
Optionally just run tce-load -wil tc-install.
Caution
i need to finish this
Before you do this, if you're choosing to go about this process on Core itself, you can find useful tools such as cfdisk in the "util-linux" extension.
In a "mount mode" system, as detailed above, the files stored on persistent storage are typically:
boot/
core.gz initrd mounted on / at boot
vmlinuz The Linux kernel
tce/
optional/ Installed extensions
mydata.tgz Gzipped tarball of files backed up by filetool, restored into / on boot
onboot.lst Newline-separated list of .tcz files to mount on startup
With the addition of a bootloader in /boot/.
To install
# download the current release build
wget "http://repo.tinycorelinux.net/16.x/x86_64/CorePure64-current.iso"
sudo mount -o loop,ro --mkdir ./CorePure64-current.iso /mnt/iso/
# or (havent tested)
wget "http://repo.tinycorelinux.net/16.x/x86_64/distribution_files/corepure64.gz"
wget "http://repo.tinycorelinux.net/16.x/x86_64/distribution_files/vmlinuz64"
# and then put them in /mnt/sys/boot/ when you have access to it
# partitions (MBR):
# Device Boot Size Type
# /dev/sda1 * 1G Linux
# /dev/sda2 5G Linux
# filesystems
tce-load -wil dosfstools
mkfs.vfat -F 32 /dev/sda1
mkfs.ext4 /dev/sda2
tce-load -wil syslinux
syslinux --directory syslinux --install /dev/sda1
dd bs=440 conv=notrunc count=1 if=/usr/local/share/syslinux/mbr.bin of=/dev/sda
sudo mount --mkdir /dev/sda2 /mnt/sys/
sudo mount --mkdir /dev/sda1 /mnt/sys/boot/
cp /mnt/iso/boot/corepure64.gz /mnt/sys/boot/
cp /mnt/iso/boot/vmlinuz64 /mnt/sys/boot/
tce-setdrive -s /mnt/sys/
# now edit /mnt/sys/boot/syslinux.cfgMinimal syslinux.cfg:
default core
prompt 0
label core
kernel ../vmlinuz64
initrd ../corepure64.gz
append root=/dev/sda2
Most of these are self-written but they are formatted to appear like manpages.
Usage: ondemand [-celrt] [appname]
Manage OnDemand items.
-c [/etc/sysconfig/tcedir/ondemand/*]
-e Execute an entry
-l List entries
-r Remove an entry
-t (TCZ=1 TYPE="tcz")
tce-ab is short for TinyCore Extension Application Browser. It allows you to install .tcz packages, and its usage is fairly self-explanatory.
You can list all of your installed extensions by running ls /usr/local/tce.installed/ in the terminal.
Usage: tce-load [options] extensions
Download and/or load one or more TCZ extensions.
Options:
-c
When used with -i, force a one-time copy to the filesystem.
-i
Mount an extension onto the filesystem and create symlinks so that it can be used normally.
When used with -w, additionally adds the extension to onboot.lst.
-l
When used with -i, mount the extension as usual, but without creating an entry in onboot.lst or ondemand/.
-o
When used with -w, create an entry in $TCEDIR/ondemand/. Use this for software or libraries you want to have access to from your PATH but without the loading of them slowing down startup significantly. OnDemand entries can be created and launched manually with the `ondemand` command.
-s
Suppress OK message used by apps GUI.
-w
Download the tcz file from the repository mirror chosen to $TCEDIR/optional/.
Example usage:
Load local extension:
tce-load -i ./nano.tcz
Download into tce/optional directory, updates OnBoot and installs:
tce-load -wi nano
Download only into tce/optional directory:
tce-load -w nano
The .tcz file extension at the end of remote extensions can be omitted (e.g. tce-load -wi util-linux). When loading a local extension, if it resides in $TCEDIR the path can be omitted as well.
Use -wi to download and install an extension, loading (mounting) it immediately and adding it to your OnBoot list. Use -wil to do the same without affecting either OnBoot or OnDemand; that is, it will just download and install it and do nothing else to your tce/ directory besides placing the installed extensions in tce/optional/. -wil is effectively the same as running the command with -w and -i separately, as the -i flag does not also create OnBoot entries unless it is provided alongside -w.
A list of extensions can be found at http://repo.tinycorelinux.net/16.x/x86[_64]/tcz/. To access an extension, just append its filename as shown in the list to the end of the URL. Information for each extension can be found by appending .info, and a list of dependencies can be found by appending .dep.
Usage: tce-setdrive { -l | -s [drive] }
Set up persistent storage for extensions.
-l Fetch drive list
-s Setup selected drive
Running this command with the -s option pointing to a mounted drive will populate it with a tce/ directory containing an empty optional/ directory and an empty mydata.tgz file.
Usage: tce-status -i | -u | -o
-i List installed extensions
-o Something about standby checking for tcz files??
-u List unmounted extensions?
To do the bare minimum with Wayland, you really only need to download Weston, which is effectively its equivalent of twm. Before you invoke it from the terminal, you need to start seatd and point XDG_RUNTIME_DIR to the directory inside of /run/user/ belonging to your UID (which can be obtained by invoking id -u).
seatd is a minimal seat management daemon which manages the provision of shared devices (such as graphics and input) among "seats" representing an individual user accessing a computer. Although multi-seat sessions are uncommon, seat management comes with the benefit of allowing you to grant applications access to a seat's devices without needing superuser access—meaning that so long as you run the daemon as root and point it to whatever group or user you have control of, a Wayland compositor can be started without needing elevated access. To start the daemon, first make sure you have it installed – it is included as a dependency for Weston, so you usually don't have to download it yourself – then run:
sudo seatd -g staff -n /run/seatd.sockThis starts the daemon with the seatd socket in /run/seatd.sock owned by the staff group, which the non-root account tc (or whatever kernel parameter user= is set to) is a part of.
From here, make sure your XDG_RUNTIME_DIR is pointing in the right place. Your ~/.profile script usually takes care of this for you, but if it doesn't:
XDG_RUNTIME_DIR=/run/user/$(id -u)Now run Weston or whatever and you'll be fine.
If you want to run X11 on Core while keeping things lightweight, you should use TinyX Xvesa. This is the version of X that comes with TinyCore (the version of Core that has a desktop environment included). TinyX has multiple differences compared to regular X, such as being generally smaller and including no support for Xkb, Xinput, Xinerama, and OpenGL.
If you want to install TinyX, it can be found in the application browser as Xvesa. Note that it is not available in 64-bit builds; you will have to use ordinary X instead.
If Xvesa isn't what you want and you want regular Xorg then you can install that too, as Xorg-7.7.tcz. If you need a size comparison, Xorg is 19.72 MB whereas Xvesa is 5.09 MB.
Boot options can be changed post-installation by editing the bootloader config file.
| Boot option | Description |
|---|---|
| base | Do not load any extensions |
| blacklist=ssb | Blacklist a single module |
| desktop=yyy | Specify alternate window manager |
| home={hda1|sda1} | Specify persistent home directory |
| host=xxxx | Set hostname to xxxx |
| iso=sdb1 | Boot directly from iso file at sdb1 |
| kmap=us | US only unless kmaps.tcz is installed |
| lst=yyy.lst | Load alternate static yyy.lst on boot |
| lang=en | C only unless getlocale.tcz is installed |
| laptop | Force load laptop related modules |
| mydata=yyy | Specify alternate backup file name |
| multivt | Allows for multiple virtual terminals |
| norestore | Turn off the automatic restore |
| noicons | Do not display icons |
| noicons=ondemand | Do not display ondemand icons |
| noswap | Do not use swap partition |
| nodhcp | Skip the dhcp request at boot |
| noutc | BIOS is using localtime |
| noautologin | Skip automatic login |
| noembed | Unpack initramfs to tmpfs |
| nozswap | Skip compressed swap in ram |
| opt={hda1|sda1} | Specify persistent opt directory |
| pause | Pause at completion of boot messages |
| protect | Password encrypted backup |
| restore={hda1|sda1|floppy} | Specify saved configuration location |
| swapfile{=hda1} | Scan or specify swapfile |
| safebackup | Saves a backup copy (mydatabk.tgz) |
| showapps | Display application names when booting |
| superuser | Textmode as user root |
| secure | Set password |
| tce={hda1|sda1} | Specify restore TCE apps directory |
| text | Textmode |
| tz=GMT+8 | Timezone tz=PST+8PDT,M3.2.0/2,M11.1.0/2 |
| user=abc | Specify alternate user |
| vga=7xx | Accepts either 'normal' or a value from this table |
| waitusb=X | Wait X seconds for slow USB devices |
| xsetup | Prompt user for Xvesa setup |
| xvesa=800x600x32 | Set Xvesa default screen resolution |
| {cron|syslog} | Start various daemons at boot |
| Color | Bits | 640x480 | 800x600 | 1024x768 | 1280x1024 |
|---|---|---|---|---|---|
| 256 | 8 bit | 769 | 771 | 773 | 775 |
| 32000 | 15 bit | 784 | 787 | 790 | 793 |
| 65000 | 16 bit | 785 | 788 | 791 | 794 |
| 16.7M | 24 bit | 786 | 789 | 792 | 795 |
