Introduction
============
piCore is the Raspberry Pi port of Tiny Core Linux, which is an
independent system architected by Robert Shingledecker and now
developed by a small team of developers with strong community support.
Tiny Core Linux is not a traditional distribution but a toolkit to
create your own customized system. It offers not only flexibility,
small footprint but a very recent kernel and set of applications making
it ideal for custom system, appliances as well as to learn Linux
specially on the Raspberry Pi.
Concept
=======
piCore is running entirely in RAM. Boot media is not used after boot
and there is no installation in conventional terms.
Default operational mode is Cloud (Internet) Mode. Extensions
(applications) are downloaded from the repository via Internet. File
system is in RAM, extensions are mounted to the file system read-only.
Changes are not saved over reboots, you get always the same clean
system after boot.
In Mounted Mode, which requires a persistent storage, a second LINUX
partition in piCore downloaded extensions are stored on the SD card and
available during next boot, but changes not saved automatically, it is
done manually or by a script, it can be configured what is backed up.
Backed up files are restored automatically by the system.
It is also possible to use partitions as persistent storage for /home
or /var but in most cases Mounted Mode is used.
For details on concept read
http://tinycorelinux.net/concepts.html
Installation
============
piCore is distributed in .zip archives containing raw SD card image
which can be installed with dd command on Linux or Win32 Disk Imager on
Windows. After successfully copying image to SD card it is ready to boot
in Raspberry Pi. While it works offline, advised to have a wired
Internet connections to have proper system time, to install packages or
for remote SSH access depending on which image you have installed.
SD card partitioning
====================
First partition (mmcblk0p1) is VFAT type; it contains the basic piCore
system and the Raspberry Pi boot loader, firmware and other support
files. Partition is unmounted during operation, system is not using it
after boot and never writes.
While piCore works fine in Cloud Mode without any additional
partition, for Mounted Mode there must be a LINUX ext4 type partition
to store downloaded extensions and backups. It can be created manually
with fdisk and formatted with mkfs.ext4 commands using the Raspberry Pi
running the base system. Its size can be anything from few hundred
megabytes up to several Gigabytes; you can use your older cards with
512Mbyte capacity for example.
System with pre-installed extensions
-----------------------------------
Base system, piCore-6.x has only the first partitions; images with
pre-installed extension, like piCore-6.x-SSH or piCore-6.x-X have
already a second ext4 type partition holding these extensions. You must
expand it size to have enough free space for additional extensions and
backups. It can be done on the running system locally or remote via SSH
following these steps:
1) Start fdisk partitioning tool as root:
sudo fdisk -u /dev/mmcblk0
Now list partitions with 'p' command and write down the starting and
ending sectors of the second partition.
2) Delete second partition with 'd' than recreate it with 'n' command.
Use the same starting sector as deleted had and provide end
sectore or size greater than deleted had having enough free space
for Mounted Mode. When finished, exit fdisk with 'w' command. Now
partition size increased but file system size is not yet changed.
3) Reboot piCore. It is necessary to make Kernel aware of changes.
4) After reboot expand file system to the new partition boundaries with
typing the following command as root:
resize2fs /dev/mmcblk0p2
Now you are ready to use the bigger partition.
Swap
----
By default piCore has a zlib compressed swap in RAM, automatically
sized to 25% of available RAM, 106 Mbyte on 'Version B' boards. This
can be disabled with the NOZSWAP boot code.
Create a swap partition with fdisk if you need more swap or not using
ZSWAP (do not forget to format with mkswap command). Size depends on
applications you are running, compilation of large programs may require
more than 512 Mbyte swap, while for everyday use 256k may be enough.
While swap file can be used, we encourage use of swap partition for
performance.
Note: You can use other tools, e.g. gparted on third-party Linux
systems to make necessary changes.
Boot codes
==========
Additionally to the common Linux boot codes there are many Tiny Core
Linux (piCore) specific options. See
http://tinycorelinux.net/faq.html#bootcodes
for list. Boot codes are specified in the /mnt/mmcblk0p1/cmdline.txt
file.
Login, passwords
================
Default user is tc. There are no user passwords, tc user is auto logged
in on the terminal. In case of piCore-6.x-SSH password for tc user is
piCore
It is not possible to log in as root.
Support
=======
piCore is community supported. Use the Raspberry Pi section of the Tiny
Core Linux Forums:
http://forum.tinycorelinux.net/index.php/board,57.0.html
You can find many useful information in other sections also, related to
Tiny Core Linux operation and use in general.
Core Book
=========
Also, strongly advised to read the Core book, "Into the Core":
http://tinycorelinux.net/book.html
It is about the x86 version in details, but generic parts, like
concept, tools, etc. valid for other ports, like piCore.
Enjoy!
Bela Markus (bmarkus)