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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
Hardware Platforms
==================
DistroKit supports a range of hardware, supported by the ptxdist
platforms listed below. A platform can be built with one ``ptxdist
images`` and shares the same cross compiler and binary format.
v7a Platform
------------
The v7a platform is made for machines based on the ARMv7a architecture.
Select the platform with
::
$ ptxdist platform configs/platform-v7a/platformconfig
info: selected platformconfig:
'configs/platform-v7a/platformconfig'
To use the platform, the arm-v7a-linux-gnueabihf toolchain needs to be
installed; if installed from the debian packages or tarballs, ptxdist
is able to find and select the right toolchain with
::
$ ptxdist toolchain
found and using toolchain:
'/opt/OSELAS.Toolchain-2016.06.1/arm-v7a-linux-gnueabihf/gcc-5.4.0-glibc-2.23-binutils-2.26-kernel-4.6-sanitized/bin'
Now everything is prepared to build the platform with
::
$ ptxdist images
Hardware for the v7a Platform
-----------------------------
DistroKit supports various boards based on the ARMv7-A architecture.
For the following boards there is separate documentation:
.. toctree::
hardware_v7a_qemu
hardware_v7a_beaglebone_white
hardware_v7a_beaglebone_black
hardware_v7a_riot
hardware_v7a_raspi2
hardware_v7a_raspi3
hardware_v7a_udoo_neo
If you want to get DistroKit running on your ARMv7-A board which is not
listed above, here is a short overview of the generic way:
1. Build the device tree for your board by adding its DTS source file to the
variable ``PTXCONF_DTC_OFTREE_DTS`` (in ``ptxdist menuconfig platform`` →
*Build device tree* → *source dts file*).
The compiled device tree will appear in ``platform-v7a/images/`` after the
build.
2. Build a bootloader for your board.
If the hardware is very similar to one of the provided *barebox* packages,
you can simply adapt their config (``ptxdist menuconfig barebox-TARGET``)
and the respective rules in ``configs/platform-v7a/rules/barebox-*.make``.
If your hardware is too different, you can create a new bootloader package
with ``ptxdist newpackage barebox``.
Bootloader images can also be found in ``platform-v7a/images/`` after the
PTXdist build.
You can use these images to populate your board with a bootloader, for
example with imx-usb-loader, fastboot, or the tool of choice for your
respective SoC.
3. Adapt the kernel configuration to include support for your board with
``ptxdist menuconfig kernel``.
After the build, you will find the kernel zImage in
``platform-v7a/images/linuximage``.
4. The userland for ARMv7-A is built to ``platform-v7a/images/root.{ext2,tgz}``.
You can simply use these images too populate your boot media, or boot from
NFS instead (see section :ref:`nfsroot`).
5. If you want to build a separate hdimage for your board, for example to boot
barebox and the kernel from an SD card, create a new image package with
``ptxdist newpackage image-genimage`` (or fork one of the existing packages
in ``configs/platform-v7a/``).
6. Send patches to <distrokit@pengutronix.de> :)
Refer to the :ref:`ptx_dev_manual` for a more thorough documentation.
rpi Platform
------------
The rpi platform has support for the Raspberry Pi 1, which is based on
the Broadcom BCM2835 SoC (ARMv6). Select the platform with
::
$ ptxdist platform configs/platform-rpi/platformconfig
info: selected platformconfig:
'configs/platform-rpi/platformconfig'
You'll need the arm-1136jfs-linux-gnueabihf toolchain installed on your
system. If installed through the Pengutronix Debian or tarball
packages, ptxdist will pick it up automatically in this step.
::
$ ptxdist toolchain
found and using toolchain:
'/opt/OSELAS.Toolchain-2014.12.2/arm-1136jfs-linux-gnueabihf/gcc-4.9.2-glibc-2.20-binutils-2.24-kernel-3.16-sanitized/bin/'
Now everything is prepared to build the platform with
::
$ ptxdist images
Hardware for the rpi Platform
-----------------------------
.. toctree::
hardware_rpi_raspi1
|