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-5.x has only the first partitions; images with pre-installed extension, like piCore-5.x-SSH or piCore-5.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 /dev/mmcblk0 Now list partitions with 'p' command and write down the starting and ending cylinders of the second partition. 2) Delete second partition with 'd' than recreate it with 'n' command. Use the same starting cylinder as deleted had and provide end cylinder 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-5.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)