Parallella Linaro Nano

From eLinux.org
Revision as of 19:05, 10 February 2014 by Carrierdetect (Talk | contribs) (Created page with "= How to Install Linaro nano 14.01 (minimal headless system) = Copied here from [http://forums.parallella.org/viewtopic.php?f=9&t=844&start=10#p5989 Shodruk's forum post]. ==...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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:

# apt-get install openssh-server
# 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