Development with Zynq – Part 4 – Boot Linaro from SD Card

This blog series describe the selection, set-up and usage of a development environment for Zynq.

Prepare SD Card

I work with a 1GB and 4GB SD card. Both work. The SD card which was part of the zedboard package did not work for me.

Two partitions are needed on the SD Card. The first partition with the boot files formated with FAT32 and the second partition with the Linux distribution formated with ext4. The boot partition have a size from 64 MB

A adapted the script from omap3-mkcard.sh. The mksdcard package include my script and  .desktop file for start. Extract mksdcard in a folder. Make a new subfolder Boot with all files for boot partition.

  • BOOT.BIN
  • devicetree.dtb
  • uImage

In mksdcard.desktop the SD card location have to be defined. Currently it is set to /dev/sdb. Start the script and wait until it is finished. At the latest after replug.

Copy linaro to SD Card

Download Linaro ALIP from http://www.linaro.org/downloads. We use Version 13.07 from http://releases.linaro.org/13.07/ubuntu/raring-images/alip. Normally Linaro Nano is the better choice. It is small and missing package can installed afterwards with apt-get. But with Linaro Nano the ethernet device from zedboard  is not working and so we have to install missing package offline. Offline installation is complicated and time-consuming because there is no easy resolution of dependencies.

Extract the download package to your SD card with following command. The Linux distribution is in a subfolder. The top foldername have to be removed with strip-components=1.

sudo tar --strip-components=1 -C /media/roy/rootfs -xzpf linaro-*.tar.gz binary

Running linux

Plug your SD card in the zedboard and boot from it. If your system does not boot, you can use this  Bootfiles to find the failure source.

For next steps the USB UART from zedboard have to be connected to your PC. Open a terminal to your zedboard with putty or a other tool. A tutorial can be found in the Getting Started Guide under http://www.zedboard.org/documentation/1521.

With the connected terminal we can run commands on zedboard. First we need a Internet connection. I use my PC as DHCP server (see Part 2). Problem is that the DNS nameserver have to been set manually.

A simple file editor can be opened with command
nano /etc/resolv.conf
Insert your nameserver and save the file. Example line

nameserver 192.168.137.1

On my system Internet is working with this changes. Update the system with.

apt-get update
apt-get upgrate

Next is to install important tools. The ssh package install a ssh and sftp server so we can connect to zedboard over ethernet.

apt-get install ssh

Linaro comes without password. Some tools only work with password. Use the command

passwd

to set the password to „root“.

For remote debugging we need a gdb server on the target. Install it with

apt-get install gdb

Optional I uninstall unnecessary tools with. The „apt-get install“ line is very import to be sure that Ethernet/Internet will still work after restart.

apt-get purge abiword abiword-common abiword-plugin-grammar abiword-plugin-mathview ace-of-penguins audacious audacious-plugins audacious-plugins-data blueman catfish chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg elementary-icon-theme fonts-lyx galculator gdebi gdebi-core gecko-mediaplayer giblib1 gnome-desktop-data gnome-icon-theme-full gnome-mplayer gnome-system-tools gnome-time-admin gnumeric gnumeric-common gnumeric-doc gpicview gtk2-engines-pixbuf guvcview hardinfo indicator-application-gtk2 leafpad libaacs0 libabiword-2.9 libass4 libaudclient2 libaudcore1 libavcodec53 libavformat53 libavutil51 libbinio1ldbl libbluray1 libbs2b0 libcddb2 libcolamd2.7.1 libcompfaceg1 libcue1 libdca0 libdirectfb-1.2-9 libenca0 libept1.4.12 libexo-1-0 libexo-common libexo-helpers libfaad2 libfluidsynth1 libfm-data libfm-gtk-bin libfm-gtk-data libfm-gtk3 libfm3 libgdome2-0 libgdome2-cpp-smart0c2a libglade2-0  libgoffice-0.8-8 libgoffice-0.8-8-common libgsf-1-114 libgsf-1-common libgsm1 libgtkmathview0c2a libgtkspell0 libguess1 libid3tag0 libimlib2 libindicate-gtk3 libjpeg-progs libjpeg-turbo-progs liblink-grammar4 libloudmouth1-0 libmms0 libmodplug1 libmowgli2 libmp3lame0 libmpg123-0 libmusicbrainz3-6 libnet-dbus-perl libobrender27 libobt0 libonig2 liboobs-1-5 libopts25 libots0 libpisock9 libpostproc52 librarian0 libresid-builder0c2a libschroedinger-1.0-0 libsdl1.2debian libsidplay2 libswscale2 libtidy-0.99-0 libtie-ixhash-perl libts-0.0-0 libuniconf4.6 libva1 libvdpau1 libvpx1 libvte-common libvte9 libwebcam0 libwv-1.2-4 libwvstreams4.6-base libwvstreams4.6-extras libxfce4ui-1-0 libxfce4util-bin libxfce4util-common libxfce4util6 libxfconf-0-2 libxml-parser-perl libxml-twig-perl libxml-xpath-perl libxvidcore4 lightdm-gtk-greeter link-grammar-dictionaries-en lm-sensors lp-solve lubuntu-artwork lubuntu-artwork-12-10 lubuntu-core lubuntu-default-settings lubuntu-desktop lubuntu-icon-theme lubuntu-lxpanel-icons lubuntu-software-center lxappearance lxappearance-obconf lxinput lxkeymap lxlauncher lxmenu-data lxpanel lxpanel-indicator-applet-plugin lxrandr lxsession lxsession-data lxsession-edit lxshortcut lxtask lxterminal mplayer2 mtpaint ntp obconf openbox openbox-themes pcmanfm pidgin pidgin-data pidgin-libnotify pidgin-microblog plymouth-theme-lubuntu-logo plymouth-theme-lubuntu-text python-pysqlite2 python-support python-xklavier rarian-compat scrot sylpheed sylpheed-doc sylpheed-i18n sylpheed-plugins synaptic system-tools-backends transmission tsconf uvcdynctrl uvcdynctrl-data wvdial xfburn xfce-keyboard-shortcuts xfce4-notifyd xfce4-power-manager xfce4-power-manager-data xfconf xfonts-100dpi xpad xscreensaver xscreensaver-data
apt-get purge xfonts* xserver* genisoimage ubuntu-wallpaper* ubuntu-extras-keyring wireless-tools x11-apps x11-utils x11-session-utils gnome-disk-utility desktop-file-utils dictionaries-common vim-tiny vim-common x11-common locales
apt-get purge icon-theme*
apt-get install glib-networking network-manager
apt-get autoremove

Use

dpkg --get-selections

to get a list of installed packages.

Connect to the target with SSH

For the SSH connection I write two desktop scripts SetZedIP and SSHConnect which are described in Part 2. If you get problems with SSHConnect copy ans start the command in terminal.
If you change between Linux distributions with different host key you get a spoofing warning. Use the command

ssh-keygen -f "/home/roy/.ssh/known_hosts" -R zedboard

on development system to resolve the warning.

Backup/Restore

It is time for a backup. I write desktop scripts to backup/restore the second partition of SD card. You can download them under rootfs_Backup_Restore. Maybe you have to adjust the used directories to your environment.

On windows systems win32diskimager is a good backup and restore tool.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.