                               Introduction
                               ============

bbbCore is the BeagleBone Black 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 BeagleBone Black.


Concept
=======

bbbCore 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 bbbCore 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
============

bbbCore 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 BeagleBone Black. 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.


Booting the SD card
===================

Unpower board, insert uSD card. Press and hold down BOOT button and
connect power. Release button when two of the blue LED's come on.
Next time board will boot from the uSD card without ressing BOOT.


SD card partitioning
====================

First partition (mmcblk0p1) is VFAT type; it contains the basic bbbCore
system and the BeagleBone Black boot loader. Partition is unmounted during
operation, system is not using it after boot and never writes.

While bbbCore 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 BeagleBone Black
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, bbbCore-6.x has only the first partitions; images with
pre-installed extension, like bbbCore-6.x-SSH or bbbCore-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 bbbCore. 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 bbbCore 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 (bbbCore) 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 bbbCore-6.x-SSH password for tc user is

piCore

It is not possible to log in as root.


Support
=======

bbbCore is community supported. Use the BeagleBone Black section of the Tiny
Core Linux Forums:

http://forum.tinycorelinux.net/index.php/board,79.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 bbbCore.

Enjoy!

Bela Markus (bmarkus)

