Parallella Linaro Nano

= How to Install Linaro nano 14.01 (minimal headless system) =

Copied here from Shodruk's forum post.

Requirements
Ubuntu PC, SD Card, SD Card adapter, Parallella

On the PC's terminal:

Download the files
$ wget ftp://ftp.parallella.org/parallella/gen1/Parallella16_z7020wGPIO_131224.zip

$ wget http://releases.linaro.org/14.01/ubuntu/saucy-images/nano/linaro-saucy-nano-20140126-627.tar.gz

$ wget https://github.com/parallella/parallella-bin/blob/master/rel.14.02.06.tgz

Unzip the files
$ unzip Parallella16_z7020wGPIO_131224.zip

$ tar xzf rel.14.02.06.tgz

Determine the device name of the SD Card
$ sudo parted -l

In case of a 2GB SD Card:

Model: SD/MM Reader Disk /dev/sdX: 2042MB Sector size (logical/physical): 512B/512B Partition Table: msdos

Number Start End Size Type File system Flags 1 1049kB 49.3MB 48.2MB primary fat16 2 49.3MB 2042MB 1992MB primary ext4

"/dev/sdX" is the device name of the SD Card (e.g. sdb, sdc, sdd, sde, ... and, Don't partition HDD!!!)

Partition the SD Card
Unmount the SD Card if it was automounted, then,

$ sudo parted -a optimal /dev/sdX

(parted) print

If there are two partitions on the SD Card,

Number Start End Size Type File system Flags 1 1049kB 99.6MB 98.6MB primary fat16 lba 2 99.6MB 2042MB 1942MB primary

Delete all existing partition

(parted) rm 2 (parted) rm 1

Make new partitions

(parted) mkpart p fat32 2048s 100m (parted) mkpart p ext2 100m -1m (parted) q

Check the partition

$ sudo fdisk -l /dev/sdX

Device Boot Start End Blocks Id System /dev/sdX1 2048 194559 96256 c W95 FAT32 (LBA) /dev/sdX2 194560 3987455 1896448 83 Linux

Format the partition

$ sudo mkfs.vfat -n BOOT /dev/sdX1 $ sudo mkfs.ext4 -L rootfs /dev/sdX2

Extract rootfs
$ sudo mkdir /tmp/mnt1 /tmp/mnt2 $ sudo mount /dev/sdX2 /tmp/mnt1 $ sudo tar --strip-components=1 -C /tmp/mnt1 -xzpf linaro-saucy-nano-20140126-627.tar.gz $ sudo sync $ sudo umount /tmp/mnt1

Extract BOOT partition
$ sudo losetup -o 32256 /dev/loop0 Parallella16_z7020wGPIO_131220.img $ sudo mount -o umask=000 -t vfat /dev/loop0 /tmp/mnt1 $ sudo mount -o umask=000 -t vfat /dev/sdX1 /tmp/mnt2 $ sudo cp -r /tmp/mnt1/* /tmp/mnt2/ $ sudo cp rel.14.02.06/* /tmp/mnt2/ $ sudo sync $ sudo umount /tmp/mnt1 $ sudo losetup -d /dev/loop0 $ sudo umount /tmp/mnt2

Edit some configuration files
$ sudo mount /dev/sdX2 /tmp/mnt1 $ sudo nano /tmp/mnt1/etc/apt/apt.conf.d/00InstallRecommends

APT::Install-Recommends "false";

For extreme minimalist :D

Network configuration:

If your router's IP address is 192.168.0.1 and the Parallella's IP address is 192.168.0.2,

$ sudo nano /tmp/mnt1/etc/network/interfaces

source-directory /etc/network/interfaces.d

auto lo iface lo inet loopback

auto eth0 iface eth0 inet static address 192.168.0.2 netmask 255.255.255.0 gateway 192.168.0.1 up sleep 3; mii-tool -F 1000baseT-FD

$ sudo nano /tmp/mnt1/etc/resolv.conf

nameserver 192.168.0.1

$ sudo sync $ sudo umount /tmp/mnt1


 * Insert the SD Card to the Parallella
 * Connect Ethernet only
 * Power-on
 * Wait 30 seconds
 * Connect HDMI, USB keyboard
 * You'll see a root terminal
 * Install openssh-server

On the Parallella:


 * 1) apt-get install openssh-server
 * 2) sync

Now you can login the Parallella from your PC. On the PC:

$ ssh linaro@192.168.0.2 password: linaro

Let's see how lightweight it is.

$ free

total used free shared buffers cached Mem: 992452 43696 948756 0 7512 13960 -/+ buffers/cache: 22224 970228 Swap: 0 0 0

Memory Consumption: Only 22MB !! :D

$ df

Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 1833872 270072 1452596 16% / none 99248 72 99176 1% /run none 5120 0 5120 0% /run/lock none 496224 0 496224 0% /run/shm none 102400 0 102400 0% /run/user

Disk Consumption: Only 270MB !!

$ ps axo pid,cmd,rss,vsz

PID CMD RSS VSZ 1 /sbin/init 1696 2756 2 [kthreadd] 0 0 3 [ksoftirqd/0] 0 0 4 [kworker/0:0] 0 0 5 [kworker/0:0H] 0 0 6 [kworker/u4:0] 0 0 7 [migration/0] 0 0 8 [rcu_preempt] 0 0 9 [rcu_bh] 0 0 10 [rcu_sched] 0 0 11 [migration/1] 0 0 12 [ksoftirqd/1] 0 0 13 [kworker/1:0] 0 0 14 [kworker/1:0H] 0 0 15 [khelper] 0 0 16 [kdevtmpfs] 0 0 17 [kworker/u4:1] 0 0 340 [writeback] 0 0 342 [bioset] 0 0 343 [kblockd] 0 0 361 [khubd] 0 0 384 [cfg80211] 0 0 468 [rpciod] 0 0 478 [khungtaskd] 0 0 483 [kswapd0] 0 0 484 [fsnotify_mark] 0 0 485 [nfsiod] 0 0 486 [crypto] 0 0 583 [.qspi] 0 0 627 [xemacps] 0 0 639 [aoe_tx0] 0 0 640 [aoe_ktio0] 0 0 654 [kpsmoused] 0 0 811 [mmcqd/0] 0 0 823 [binder] 0 0 849 [irq/39-] 0 0 898 [deferwq] 0 0 905 [kworker/1:1H] 0 0 906 [kworker/0:1H] 0 0 907 [kworker/1:1] 0 0 908 [jbd2/mmcblk0p2-] 0 0 909 [ext4-rsv-conver] 0 0 999 upstart-udev-bridge --daemo 720 1964 1006 /lib/systemd/systemd-udevd 1084 8712 1118 rsyslogd -c5 1400 30124 1439 upstart-socket-bridge --dae 420 1924 1441 upstart-file-bridge --daemo 764 2332 1517 /sbin/getty -8 38400 tty4 704 1796 1519 /sbin/getty -8 38400 tty5 704 1796 1529 /sbin/getty -8 38400 tty2 704 1796 1531 /sbin/getty -8 38400 tty3 704 1796 1534 /sbin/getty -8 38400 tty6 704 1796 1558 /usr/sbin/sshd -D 2080 5600 1563 cron 784 2324 1597 /bin/login -f 1256 3264 1613 -bash 1624 4280 3568 sshd: linaro [priv] 2708 8852 3591 sshd: linaro@pts/1 1432 8852 3594 -bash 1636 4272 4104 [kworker/0:2] 0 0 4269 /sbin/getty -n -l /bin/auto 684 1616 4272 ps axo pid,cmd,rss,vsz 840 3740

$ dpkg-query -Wf='${binary:Package}\n'

adduser apt apt-utils base-files base-passwd bash bsdutils busybox-initramfs console-setup coreutils cpio cron dash debconf debianutils diffutils dpkg e2fslibs:armhf e2fsprogs file findutils gcc-4.8-base:armhf gnupg gpgv grep gzip hostname ifupdown initramfs-tools initramfs-tools-bin initscripts insserv iproute iproute2 iputils-ping isc-dhcp-client isc-dhcp-common kbd keyboard-configuration klibc-utils kmod libacl1:armhf libapt-inst1.5:armhf libapt-pkg4.12:armhf libattr1:armhf libaudit-common libaudit1:armhf libblkid1:armhf libbsd0:armhf libbz2-1.0:armhf libc-bin libc6:armhf libcap2:armhf libck-connector0:armhf libcomerr2:armhf libdb5.1:armhf libdbus-1-3:armhf libdrm2:armhf libedit2:armhf libexpat1:armhf libffi6:armhf libfribidi0:armhf libgcc1:armhf libgcrypt11:armhf libgnutls-openssl27:armhf libgnutls26:armhf libgpg-error0:armhf libgssapi-krb5-2:armhf libjson-c2:armhf libjson0:armhf libk5crypto3:armhf libkeyutils1:armhf libklibc libkmod2:armhf libkrb5-3:armhf libkrb5support0:armhf liblocale-gettext-perl liblockfile-bin liblockfile1:armhf liblzma5:armhf libmagic1:armhf libmount1:armhf libncurses5:armhf libncursesw5:armhf libnewt0.52:armhf libnih-dbus1:armhf libnih1:armhf libp11-kit0:armhf libpam-modules:armhf libpam-modules-bin libpam-runtime libpam0g:armhf libpcre3:armhf libplymouth2:armhf libpng12-0:armhf libpopt0:armhf libprocps0:armhf libpython-stdlib:armhf libpython2.7-minimal:armhf libpython2.7-stdlib:armhf libreadline6:armhf libselinux1:armhf libsemanage-common libsemanage1:armhf libsepol1:armhf libslang2:armhf libsqlite3-0:armhf libss2:armhf libssl1.0.0:armhf libstdc++6:armhf libtasn1-3:armhf libtinfo5:armhf libudev1:armhf libusb-0.1-4:armhf libustr-1.0-1:armhf libuuid1:armhf libwrap0:armhf linaro-nano linaro-overlay linaro-overlay-minimal locales lockfile-progs login logrotate lsb-base makedev mawk mime-support module-init-tools mount mountall multiarch-support ncurses-base ncurses-bin net-tools netbase netcat-openbsd ntpdate openssh-client openssh-server passwd perl-base plymouth procps python python-minimal python2.7 python2.7-minimal readline-common rsyslog sed sensible-utils sudo sysv-rc sysvinit-utils tar tzdata ubuntu-keyring ucf udev upstart util-linux whiptail xkb-data zlib1g:armhf