aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 692327e2cbc2b51cf60637e2dec549f0c947bce0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# Layer to support the DE10-Nano board

## Objective
This layer provides support for building a demonstration and development image of linux for the [Terasic DE10-Nano kit](https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=205&No=1046&PartNo=8) development board.  The FPGA project for the Terasic DE10-Nano Kit can be found at [DE10-Nano Hardware](https://github.com/01org/de10-nano-hardware)

## Build Intructions
Please refer to [README.md](https://github.com/Angstrom-distribution/angstrom-manifest/blob/master/README.md) for any prerequisits, these instuctions assume prerequisits have been met.  Please also note the instructions for configuring proxies.

### Step 1: Cloning the manifest
We need to clone the manifest to get all of the recipes required for building
```
mkdir de10-nano-build
cd de10-nano-build
repo init -u git://github.com/Angstrom-distribution/angstrom-manifest -b angstrom-v2016.12-yocto2.2 
```
### Step 2: Add the meta-de10-nano layer
The default manifests do not include the meta-de10-layer.  We will add the layer, and tidy up some issue encountered with errant layers.

```
mkdir .repo/local_manifests
```
Now we create manifest to add the meta-de10-layer, the follwing will create .repo/local_manifests/de10-nano.xml.  This speficies a specific revision for meta-altera and meta-de10-nano.

```
cat << EOF > .repo/local_manifests/de10-nano.xml
<?xml version="1.0" encoding="UTF-8"?>                                          
<manifest>                                                                      
        <remove-project name="kraj/meta-altera" />                              
        <remove-project name="koenkooi/meta-photography" />                     
        <remove-project name="openembedded/meta-linaro" />                      
        <project name="openembedded/meta-linaro" path="layers/meta-linaro" remote="linaro" revision="992eaa0a1969c2056a5321c122eaa8cd808c1c82" upstream="master"/>
        <project remote="github"  name="kraj/meta-altera" path="layers/meta-altera" revision="cf7fc462cc6a5e82f2de76bb21e09675be7ae316"/>
        <project name="01org/meta-de10-nano" path="layers/meta-de10-nano" remote="github" revision="refs/tags/VERSION-2017.03.31"/>
</manifest> 
EOF
```
The above also disables meta-photography, so we have to edit conf/bblayers.conf to remove the reference to it.
```
sed -i '/meta-photography/d' .repo/manifests/conf/bblayers.conf
```
We also need to add in the new meta-de10-nano layer to the bblayers.conf

```
sed -i '/meta-altera/a \ \ \$\{TOPDIR\}\/layers\/meta-de10-nano \\' .repo/manifests/conf/bblayers.conf
```

### Step 3: Fetch the repositories provided in the manifest
```
repo sync
```

### Step 4: Build
This will take a few hours. 
```
MACHINE=de10-nano . ./setup-environment
bitbake de10-nano-image
```

## What next?
The result of this lengthy build is an SDCard image that can be burned to allow the Terasic DE10-Nano Kit to boot Linux\*.  The image provides access via serial port, a graphical interface, USB, and Ethernet.  As part of the build, the recipes populate an FPGA image as well as the associated devicetrees.  

The build output is located in deploy/glibc/images/de10-nano/

```
[de10-nano]$ ls
Angstrom-de10-nano-image-glibc-ipk-v2016.12-de10-nano.rootfs.cpio           de10-nano.rbf                                                           u-boot-de10-nano.img
Angstrom-de10-nano-image-glibc-ipk-v2016.12-de10-nano.rootfs.ext3           dump_adv7513_edid.bin                                                   u-boot-de10-nano.img-de10-nano
Angstrom-de10-nano-image-glibc-ipk-v2016.12-de10-nano.rootfs.manifest       dump_adv7513_edid.srec                                                  u-boot-de10-nano-v2017.03+gitAUTOINC+d03450606b-r0.img
Angstrom-de10-nano-image-glibc-ipk-v2016.12-de10-nano.rootfs.socfpga-sdimg  dump_adv7513_regs.bin                                                   u-boot.img
Angstrom-de10-nano-image-glibc-ipk-v2016.12-de10-nano.rootfs.tar.gz         dump_adv7513_regs.srec                                                  u-boot.img-de10-nano
Angstrom-de10-nano-image-glibc-ipk-v2016.12-de10-nano.rootfs.tar.xz         extlinux.conf                                                           u-boot-with-spl.sfp
de10_nano_hdmi_config.bin                                                   extlinux.conf-de10-nano                                                 u-boot-with-spl.sfp-de10-nano
de10_nano_hdmi_config.srec                                                  extlinux.conf-de10-nano-r0                                              u-boot-with-spl.sfp-de10-nano-de10-nano
de10-nano-image-Angstrom-v2016.12.socfpga-sdimg                             LICENSE.de10-nano.rbf                                                   u-boot-with-spl.sfp-de10-nano-v2017.03+gitAUTOINC+d03450606b-r0-de10-nano-v2017.03+gitAUTOINC+d03450606b-r0
de10-nano-image-de10-nano.cpio                                              Log.txt                                                                 zImage
de10-nano-image-de10-nano.ext3                                              modules--4.1.33-ltsi+git0+b84195c056-r0.1-de10-nano-20170330172917.tgz  zImage--4.1.33-ltsi+git0+b84195c056-r0.1-de10-nano-20170330172917.bin
de10-nano-image-de10-nano.manifest                                          modules-de10-nano.tgz                                                   zImage--4.1.33-ltsi+git0+b84195c056-r0.1-socfpga_cyclone5_de10_nano-20170330172917.dtb
de10-nano-image-de10-nano.socfpga-sdimg                                     README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt                      zImage-de10-nano.bin
de10-nano-image-de10-nano.tar.gz                                            STARTUP.BMP                                                             zImage-socfpga_cyclone5_de10_nano.dtb
de10-nano-image-de10-nano.tar.xz                                            STARTUP.BMP.LICENSE

```
The SDCard image name in the above list is "Angstrom-de10-nano-image-glibc-ipk-v2016.12-de10-nano.rootfs.socfpga-sdimg".  Please remember that prebuilt images can be found [here](https://signin.intel.com/logout?target=https://software.intel.com/en-us/iot/hardware/fpga/de10-nano).

### Programming the SDCard image
These instructions only cover Linux\*, for alternate instructions please go [here](https://software.intel.com/en-us/write-image-to-micro-sd-card).

DD should be used with EXTREME CAUTION as it is very easy to accidentally overwrite the wrong device which can lead to data loss as well as hours spent rebuilding your machine.

The first step is to insert the SDCard using either a dedicated SDCard interface or a USB adapter into your machine.  This  usually shows up as /dev/sdX or /dev/mmcblkX where X is the device number.  For safety reasons these instructions will use /dev/mmcblkX as this should never be a real device.

It will take a few minutes to write the ~2GB image.
```
cd deploy/glibc/images/de10-nano/
sudo dd if=Angstrom-de10-nano-image-glibc-ipk-v2016.12-de10-nano.rootfs.socfpga-sdimg of=/dev/mmcblkX bs=1M && sync && sync
```
Once this is complete, plug the SDCard into the board and power it on.

 ## Additional Resources
* [Discover the Terasic DE10-Nano Kit](https://signin.intel.com/logout?target=https://software.intel.com/en-us/iot/hardware/fpga/de10-nano)
* [Terasic DE10-Nano Get Started Guide](https://software.intel.com/en-us/terasic-de10-nano-get-started-guide)
* [Project: My First FPGA](https://software.intel.com/en-us/articles/my-first-fpga)
* [Learn more about IntelĀ® FPGAs](https://software.intel.com/en-us/iot/hardware/fpga/)
* [DE10-Nano FPGA Hardware Project](https://github.com/01org/de10-nano-hardware)