DebianOn is an effort to document how to install, configure and use Debian on some specific hardware. Therefore potential buyers would know if that hardware is supported and owner would know how get the best out of that hardware.

The purpose is not to duplicate the Debian Official Documentation, but to document how to install Debian on some specific hardware.

Translation(s): none

Overall Status

Core Components


Boot Standard Kernel:


LAN network card (Generic Ethernet):


Detect hard drives:


Extra Features

CPU Frequency Scaling




Sleep / Suspend




- OpenGL


- Resize-and-Rotate(randr)


Keyboard's Hotkeys


Legend :
{OK} = OK ; {X} Unsupported(No Driver) ; /!\ = Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable
{i} = Configuration Required; X-( = Only works with a non-free driver and or firmware

Important Note

Bootloader support

The ZC702 use uboot version U-Boot 2013.07 (Dec 04 2013 - 17:47:58). Sources can be downloaded at github.


The kernel sources can alse be found at github.

uname -a
Linux zc702-1 3.13.0-xilinx #1 SMP PREEMPT Tue Apr 8 09:47:11 PDT 2014 armv7l GNU/Linux

System Summary


lspci -nn
don't return anything


lsusb -v | grep -E '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol)' 2>/dev/null
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         1 Single TT
  iProduct                2 Xilinx Zynq USB EHCI Host Controller

Installing Debian

NFS Root

On the server you need :

apt-get install nfs-kernel-server debootstrap tftpd

if you have ARM hardware at hand (like PC Utilite)

debootstrap wheezy /srv/zc702

or if you don't have ARM hardware at hand

debootstrap --foreign --arch armhf wheezy pc-utilite

follow PC Utilite to handle the debootstrap second stage

edit /srv/zc702/inittab, last new line :

T0:2345:respawn:/sbin/getty -L ttyPS0 115200 vt100

edit /srv/zc702/etc/securetty last new lines :

# Zynq zc70x

If you use ARM hardware as a server :

chroot /srv/zc702

download 2014.1-release.tar.xz from Zynq Release untar it

tar xf 2014.1-release.tar.xz
cp zc70x/zc702/devicetree.dtb /srv/tftp
cp uImage /srv/tftp

Start the zc702 board with SW16 switch to :













Stop autoboot (you need to be connected using the rs232 usb cable)

screen /dev/ttyUSB0 115200

setenv bootargs ${console} root=/dev/nfs nfsroot= ip=
setenv serverip
setenv ipaddr
setenv bootcmd "tftp 0x3000000 uImage && tftp 0x2A00000 devicetree.dtb && bootm 0x3000000 - 0x2A00000"

Boot again your board and you should have access to a login in the rs232 console.

SD Card root

Using the nfs root based system :

apt-get install debootstrap
mount -t vfat /dev/mmcblk0p1 /mnt
mkdir sd_card_save
cp /mnt/* sd_card_save
umount /mnt

cfdisk /dev/mmcblk0
sfdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 242560 cylinders, 4 heads, 16 sectors/track
Warning: The partition table looks like it was made
  for C/H/S=*/255/63 (instead of 242560/4/16).
For this listing I'll assume that geometry.
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/mmcblk0p1   *      0+      3-      4-     31180    b  W95 FAT32
                start: (c,h,s) expected (0,0,11) found (1023,254,63)
                end: (c,h,s) expected (3,224,63) found (1023,254,63)
/dev/mmcblk0p2          3+    966-    963-   7730735   83  Linux
                start: (c,h,s) expected (3,225,1) found (1023,254,63)
                end: (c,h,s) expected (966,80,10) found (1023,254,63)
/dev/mmcblk0p3          0       -       0          0    0  Empty
/dev/mmcblk0p4          0       -       0          0    0  Empty

mkfs.vfat /dev/mmcblk0p1
mkfs -t ext4 /dev/mmcblk0p2
mount -t ext4 /dev/mmcblk0p2 /mnt
mkdir /mnt/boot
mount -t vfat /dev/mmcblk0p1 /mnt/boot
cp devicetree.dtb uImage sd_card_save/BOOT.BIN /mnt/boot
debootstrap wheezy /mnt
cp /etc/inittab /etc/securetty /mnt/etc

#edit /mnt/etc/network/interfaces and add

auto eth0
iface eth0 inet dhcp

#edit /mnt/etc/fstab
cat /mnt/etc/fstab
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2

chroot /mnt
umount /mnt/boot
umount /mnt

Stop u-boot autoboot

setenv bootargs ${console} root=/dev/mmcblk0p2
setenv bootcmd "mmcinfo && fatload mmc 0:1 0x3000000 uImage && fatload mmc 0:1 0x2A00000 devicetree.dtb && bootm 0x3000000 - 0x2A00000"

You should have access to a login in the rs232 console.


CategoryDebianOn ?CategeoryEmbedeedComputer