mirror of
https://github.com/agherzan/meta-raspberrypi.git
synced 2025-12-06 06:19:11 +00:00
Compare commits
229 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f2cff839f5 | ||
|
|
a967c15d75 | ||
|
|
bc0d788b47 | ||
|
|
0776b86c66 | ||
|
|
58806f6552 | ||
|
|
dba20cbb0a | ||
|
|
7cff0a0a9e | ||
|
|
50a7710718 | ||
|
|
fcbb1e6e91 | ||
|
|
7d2249a2e2 | ||
|
|
7f043ab724 | ||
|
|
aaf8e2e738 | ||
|
|
a7d629e569 | ||
|
|
c0563670d3 | ||
|
|
5546748231 | ||
|
|
0d7f01df10 | ||
|
|
36c2501130 | ||
|
|
10a5bace87 | ||
|
|
20c8e6a5bc | ||
|
|
f22ecc425c | ||
|
|
72ea51f87b | ||
|
|
4dfa633d23 | ||
|
|
c6f7ec52cf | ||
|
|
bdbe28d7f3 | ||
|
|
16718000cf | ||
|
|
17dad9328b | ||
|
|
ade923f17d | ||
|
|
4c06098563 | ||
|
|
b47cbb6996 | ||
|
|
bfe2307cc4 | ||
|
|
d676d54f04 | ||
|
|
f188f3d756 | ||
|
|
7457bf182c | ||
|
|
b78459f260 | ||
|
|
83c9ed7dc7 | ||
|
|
9182a217c9 | ||
|
|
27a8acecf5 | ||
|
|
5f057d9343 | ||
|
|
3eafe9d57a | ||
|
|
25d8f0b8d8 | ||
|
|
c8532df1c2 | ||
|
|
0fc2b1c3ac | ||
|
|
bfd50c24a2 | ||
|
|
4a4373c02d | ||
|
|
6ef9d94a2c | ||
|
|
bcae58ba84 | ||
|
|
e1c5efc658 | ||
|
|
c9f29df249 | ||
|
|
b896a7da70 | ||
|
|
a7ce059274 | ||
|
|
d1fa1c0b75 | ||
|
|
ddd1f03373 | ||
|
|
5810be737d | ||
|
|
c0ee9c7641 | ||
|
|
df7eeb6f86 | ||
|
|
57c8e6bffb | ||
|
|
4e59c28f70 | ||
|
|
23add242bc | ||
|
|
7146e12374 | ||
|
|
1350ba8acf | ||
|
|
6392a63985 | ||
|
|
1949a0d5ba | ||
|
|
ba383ecd35 | ||
|
|
4147bd7214 | ||
|
|
fde4b34aa2 | ||
|
|
72c43866c1 | ||
|
|
b7c3a935cc | ||
|
|
d8bf60ce6c | ||
|
|
463d0e2d7d | ||
|
|
54c5451a04 | ||
|
|
dedd45f4f8 | ||
|
|
8c8a5cd64c | ||
|
|
318f1b3994 | ||
|
|
7089e6a891 | ||
|
|
18e5856a25 | ||
|
|
e1d4448ce8 | ||
|
|
b89a2743fb | ||
|
|
b99a09b257 | ||
|
|
2dbc974596 | ||
|
|
4905c7cc2b | ||
|
|
4dc75cedf7 | ||
|
|
327c0c12b5 | ||
|
|
dc6327683e | ||
|
|
2adea22b46 | ||
|
|
4535ac053f | ||
|
|
12eeae3bdf | ||
|
|
b9a3b88ff9 | ||
|
|
9ac77c112e | ||
|
|
a335bf5fe6 | ||
|
|
67a1c4eaaf | ||
|
|
b6d899e4d2 | ||
|
|
efd760d0a2 | ||
|
|
1eda7e8b74 | ||
|
|
1ed383d466 | ||
|
|
eb3f087a56 | ||
|
|
a1f39c598e | ||
|
|
2dea23c4fb | ||
|
|
6c6f44136f | ||
|
|
6b63f6fcbd | ||
|
|
ec36d853d8 | ||
|
|
0a5b6bb390 | ||
|
|
d85f800dd9 | ||
|
|
5abdd93e35 | ||
|
|
6a8c859c2f | ||
|
|
e598f63fbb | ||
|
|
7ec84dd0a1 | ||
|
|
9939629b44 | ||
|
|
c3410fe342 | ||
|
|
c67cee2e95 | ||
|
|
f6680e791c | ||
|
|
4a6f326a23 | ||
|
|
9cb147d1dd | ||
|
|
25fd817f62 | ||
|
|
0409d0e521 | ||
|
|
aa790be2fa | ||
|
|
e7fdcad1fa | ||
|
|
f3a8693f08 | ||
|
|
4bdd72341c | ||
|
|
c07c5cdbf3 | ||
|
|
4167e7e210 | ||
|
|
abcd66b30d | ||
|
|
34c217d114 | ||
|
|
d470f32da2 | ||
|
|
d399605ea5 | ||
|
|
00e185cf52 | ||
|
|
02c9c4eded | ||
|
|
2f98f49fab | ||
|
|
cc74bf6c1f | ||
|
|
a986e168bc | ||
|
|
fbc0947e96 | ||
|
|
edce18f691 | ||
|
|
f638f7cf38 | ||
|
|
a760ea5fa2 | ||
|
|
bdb6b72284 | ||
|
|
9d626df7b8 | ||
|
|
9d8e47274b | ||
|
|
fcf5cb333e | ||
|
|
f83334b687 | ||
|
|
55e2c1c172 | ||
|
|
d06976118b | ||
|
|
8ba072fa76 | ||
|
|
2bcc11d41e | ||
|
|
54d3650fa1 | ||
|
|
27ae741581 | ||
|
|
9f79376203 | ||
|
|
c2102292fa | ||
|
|
5e62146ae3 | ||
|
|
d6468b7f91 | ||
|
|
833e61aa5c | ||
|
|
34047964fe | ||
|
|
dbc5ea02b2 | ||
|
|
d9ce376660 | ||
|
|
d0cb637e1b | ||
|
|
7b1791f45f | ||
|
|
48bd943382 | ||
|
|
26fa448b0c | ||
|
|
8778a3724c | ||
|
|
9fea357028 | ||
|
|
ca8a3eeaaf | ||
|
|
30e3972912 | ||
|
|
9a3ee96ea3 | ||
|
|
da3e157408 | ||
|
|
49c0872448 | ||
|
|
4ace9c24f0 | ||
|
|
c1b08f6704 | ||
|
|
07764b251d | ||
|
|
c4fd6d1102 | ||
|
|
5916b4abd2 | ||
|
|
31375eb909 | ||
|
|
c4527681d2 | ||
|
|
43414393af | ||
|
|
3d7a6edce0 | ||
|
|
cbb6008288 | ||
|
|
3994102d7b | ||
|
|
908e69151b | ||
|
|
7cb819a69b | ||
|
|
6305870896 | ||
|
|
be20e02dec | ||
|
|
78519944fe | ||
|
|
5aec26c461 | ||
|
|
7bea82b2b8 | ||
|
|
9cd9f42fa1 | ||
|
|
bfb7098335 | ||
|
|
acc1661473 | ||
|
|
5dc928066a | ||
|
|
6864865fd6 | ||
|
|
3f519e6b89 | ||
|
|
eff5ec9b75 | ||
|
|
aa662e8575 | ||
|
|
bfe7d23dd1 | ||
|
|
c96c590d0c | ||
|
|
4498a2be50 | ||
|
|
0680f82e91 | ||
|
|
c1f6772e6b | ||
|
|
8c35f8f296 | ||
|
|
4c3555651b | ||
|
|
1929844aab | ||
|
|
b7511f7fda | ||
|
|
184fa20444 | ||
|
|
5c8d2c08df | ||
|
|
298e28ff96 | ||
|
|
fef11f98cf | ||
|
|
9fb923aa8d | ||
|
|
e921fcc54c | ||
|
|
c454aef30f | ||
|
|
228f0a3ecb | ||
|
|
bb665e7140 | ||
|
|
164e87c291 | ||
|
|
40267fd013 | ||
|
|
c52d4b3da1 | ||
|
|
0537685dc7 | ||
|
|
8751681571 | ||
|
|
0ab5263f53 | ||
|
|
ca4e4659f6 | ||
|
|
78d3a9d68d | ||
|
|
caf5f88c65 | ||
|
|
0680e94115 | ||
|
|
cb6ee9867d | ||
|
|
cfd873e223 | ||
|
|
7c73b36d4a | ||
|
|
c95edb57d9 | ||
|
|
5da09b299e | ||
|
|
88f8ddceef | ||
|
|
996021a83a | ||
|
|
7b6aa02efe | ||
|
|
808f5e54f8 | ||
|
|
ac879f9e21 | ||
|
|
26000aace1 | ||
|
|
06630f323d |
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
build*
|
||||
*~
|
||||
280
README
280
README
@@ -1,89 +1,51 @@
|
||||
.8MMMMMMMM MMMMMMMM8.
|
||||
MMM77$$$$$$7MM MM$$$$$$$$$MMM
|
||||
MM$$$$$$$$$$$$M M$$$$$$$$$$$$MM
|
||||
MO7$$$$$8$$$$$MMM$$$$$N7$$$$7DM
|
||||
M7$$$$$$$M7$$MMM$$7M$$$$$$$7M.
|
||||
M7$$$$$$$$MMMMMMM$$$$$$$$7M.
|
||||
MM$$$$$$7MMMMMMM$$$$$$$MM
|
||||
.MM$7MMMMMMMMMMMMM7$MM.
|
||||
.MM8ZZZMMZZZZZZZMZZZ$MM.
|
||||
.MOZZZZMMZZZZZZZZZM8ZZZZMM
|
||||
MZZMMMZZZZ8MMMMM$ZZZ$MMZZMM
|
||||
.MMMMMZZZZZZZZMMMZZZZZZZMMMMM:
|
||||
M8ZZMMZZZZZZZZNMZZZZZZZZZMMZZMM
|
||||
MZZZZMZZZZZZZZZMMMZZZZZZZZ8MZZZMM
|
||||
.MZZZZMZZZZZZZZZMMMZZZZZZZZMMZZZ8M
|
||||
.MZZZMMMZZZZZZZMMMMM$ZZZZZ$MMZZZMM
|
||||
MMZZMMMMMM8MMNZZZZZ8MMMMMMMMMZZM
|
||||
MMMMZMMMMMMZZZZZZZZZMMMM$ZZZMM.
|
||||
MMZZZZZMMMZZZZZZZZZMMMZZZZZMM
|
||||
MZZZZZZZMNZZZZZZZMMZZZZZZZM.
|
||||
MMMMMZZZZZZZZZMMMM.
|
||||
.MMDZZZZZZZMMD
|
||||
.MMMMMMMM,
|
||||
....
|
||||
|
||||
Quick links
|
||||
===========
|
||||
Git repository web frontend:
|
||||
http://git.yoctoproject.org/cgit/cgit.cgi/meta-raspberrypi/
|
||||
Mailing list (yocto mailing list):
|
||||
yocto@yoctoproject.org
|
||||
Issues management (redmine):
|
||||
http://redmine.gherzan.ro/projects/meta-raspberrypi
|
||||
|
||||
|
||||
Contents:
|
||||
=========
|
||||
1. OpenEmbedded BSP Layer - RaspberryPi
|
||||
2. Yocto BSP Layer - RaspberryPi
|
||||
1. Description
|
||||
2. Yocto BSP Layer - Raspberry Pi
|
||||
2.A. Compressed deployed files
|
||||
2.B. GPU memory
|
||||
2.C. Add purchased license codecs
|
||||
2.D. Disable overscan
|
||||
2.E. Set overclocking options
|
||||
3. Contribution
|
||||
2.F. Optional - Video camera support with V4L2 drivers
|
||||
2.G. Optional - Enable offline compositing support
|
||||
2.H. Optional - Enable kgdb over console support
|
||||
2.I. Images
|
||||
2.J. Boot to U-Boot
|
||||
2.K. Image with Initramfs
|
||||
2.L. Device tree support
|
||||
3. Extra apps
|
||||
3.A. omxplayer
|
||||
4. Source code and mirrors
|
||||
5. Contribution
|
||||
5.A. Mailing List
|
||||
5.B. Redmine
|
||||
6. Maintainers
|
||||
|
||||
|
||||
|
||||
1. OpenEmbedded BSP Layer - RaspberryPi
|
||||
=======================================
|
||||
1. Description
|
||||
==============
|
||||
|
||||
This is the general hardware specific BSP overlay for the RaspberryPi device.
|
||||
It should be used with openembedded-core (not old-style org.openembedded.dev).
|
||||
|
||||
More information can be found at:
|
||||
|
||||
http://www.raspberrypi.org/ (Official Site)
|
||||
http://www.distant-earth.com/ (My Site)
|
||||
|
||||
Build scripts patched to support making a firmware image for the RaspberryPi
|
||||
with Angstrom can be found at:
|
||||
|
||||
http://github.com/Angstrom-distribution/setup-scripts
|
||||
|
||||
When not depending on meta-openembedded and not using systemd, you may need to
|
||||
mask few recipes requiring systemd or other recipes not included in your
|
||||
distribution of choice.
|
||||
|
||||
You can achieve this by adding something like the following to local.conf:
|
||||
|
||||
BBMASK = "meta-raspberrypi/recipes-multimedia/libav|\
|
||||
meta-raspberrypi/recipes-core/systemd"
|
||||
|
||||
You can adjust the BBMASK for any .bbappends that your distribution does not
|
||||
contain recipes for.
|
||||
|
||||
The core BSP part of meta-raspberrypi should work with different
|
||||
OpenEmbedded/Yocto distributions and layer stacks, such as:
|
||||
|
||||
* Distro-less (only with OE-Core).
|
||||
* Angstrom (main focus of testing).
|
||||
* Yocto/Poky.
|
||||
|
||||
This layer in its entirety depends on:
|
||||
|
||||
URI: git://git.openembedded.org/openembedded-core
|
||||
branch: master
|
||||
revision: HEAD
|
||||
|
||||
URI: git://git.openembedded.org/meta-openembedded
|
||||
branch: master
|
||||
revision: HEAD
|
||||
|
||||
|
||||
* Angstrom.
|
||||
* Yocto/Poky (main focus of testing).
|
||||
|
||||
2. Yocto BSP Layer - RaspberryPi
|
||||
================================
|
||||
@@ -95,16 +57,16 @@ branch: master
|
||||
revision: HEAD
|
||||
|
||||
URI: git://git.openembedded.org/meta-openembedded
|
||||
layers: meta-oe, meta-multimedia
|
||||
branch: master
|
||||
revision: HEAD
|
||||
|
||||
How to use it:
|
||||
|
||||
1. source poky/oe-init-build-env rpi-build
|
||||
2. Add needed layers to bblayers.conf:
|
||||
2. Add needed layer to bblayers.conf:
|
||||
- meta-raspberrypi
|
||||
- meta-openembedded/meta-oe
|
||||
3 Set MACHINE to raspberrypi in local.conf
|
||||
3 Set MACHINE to "raspberrypi"/"raspberrypi2" in local.conf
|
||||
4. bitbake rpi-hwup-image
|
||||
5. dd to a SD card the generated sdimg file (use xzcat if rpi-sdimg.xz is used)
|
||||
6. Boot your RPI.
|
||||
@@ -112,9 +74,11 @@ How to use it:
|
||||
2.A. Optional - compressed deployed files:
|
||||
==========================================
|
||||
1. Overwrite IMAGE_FSTYPES in local.conf
|
||||
IMAGE_FSTYPES = "tar.bz2 ext3.xz rpi-sdimg.xz
|
||||
IMAGE_FSTYPES = "tar.bz2 ext3.xz"
|
||||
2. Overwrite SDIMG_ROOTFS_TYPE in local.conf
|
||||
SDIMG_ROOTFS_TYPE = "ext3.xz"
|
||||
SDIMG_ROOTFS_TYPE = "ext3.xz"
|
||||
3. Overwrite SDIMG_COMPRESSION in local.conf
|
||||
SDIMG_COMPRESSION = "xz"
|
||||
*Accommodate the values above to your own needs (ex: ext3 / ext4).
|
||||
|
||||
2.B. Optional - GPU memory:
|
||||
@@ -141,7 +105,7 @@ KEY_DECODE_WVC1 = "0x12345678,0xabcdabcd,0x87654321"
|
||||
By default the GPU adds a black border around the video output to compensate for
|
||||
TVs which cut off part of the image. To disable this set this variable in
|
||||
local.conf:
|
||||
DISALE_OVERSCAN = "0"
|
||||
DISABLE_OVERSCAN = "1"
|
||||
|
||||
2.E. Optional - Set overclocking options:
|
||||
=========================================
|
||||
@@ -154,29 +118,175 @@ CORE_FREQ = "500"
|
||||
SDRAM_FREQ = "500"
|
||||
OVER_VOLTAGE = "6"
|
||||
|
||||
2.F. Optional - Video camera support with V4L2 drivers
|
||||
======================================================
|
||||
Set this variable to enable support for the video camera (Linux 3.12.4+ required)
|
||||
VIDEO_CAMERA = "1"
|
||||
|
||||
2.G. Optional - Enable offline compositing support
|
||||
==================================================
|
||||
|
||||
3. Contributing
|
||||
===============
|
||||
Set this variable to enable support for dispmanx offline compositing
|
||||
DISMANX_OFFLINE = "1"
|
||||
|
||||
To contribute to this layer you should send the patches for review to the
|
||||
mailing list.
|
||||
This will enable the firmware to fall back to off-line compositing of
|
||||
Dispmanx elements. Normally the compositing is done on-line, during scanout,
|
||||
but cannot handle too many elements. With off-line enabled, an off-screen
|
||||
buffer is allocated for compositing. When scene complexity (number and sizes
|
||||
of elements) is high, compositing will happen off-line into the buffer.
|
||||
|
||||
Mailing list:
|
||||
Heavily recommended for Wayland/Weston.
|
||||
|
||||
https://lists.yoctoproject.org/listinfo/yocto
|
||||
See: http://wayland.freedesktop.org/raspberrypi.html
|
||||
|
||||
Source code:
|
||||
2.H. Optional - Enable kgdb over console support
|
||||
================================================
|
||||
To add the kdbg over console (kgdboc) parameter to the kernel command line,
|
||||
set this variable in local.conf:
|
||||
ENABLE_KGDB = "1"
|
||||
|
||||
2.I. Images
|
||||
===========
|
||||
* rpi-hwup-image
|
||||
Hardware up image
|
||||
* rpi-basic-image
|
||||
Based on rpi-hwup-image with some added features (ex: splash)
|
||||
* rpi-test-image
|
||||
Image based on rpi-basic-image which includes most of the packages in this
|
||||
layer and some media samples.
|
||||
|
||||
2.J. Boot to U-Boot
|
||||
===================
|
||||
To have u-boot load kernel image, set in your local.conf
|
||||
KERNEL_IMAGETYPE = "uImage"
|
||||
|
||||
This will make kernel.img be u-boot image which will load uImage.
|
||||
By default, kernel.img is the actual kernel image (ex. Image).
|
||||
|
||||
2.K. Image with Initramfs
|
||||
=========================
|
||||
To build an initramfs image :
|
||||
* Set this 3 kernel variables (in linux-raspberrypi.inc for example)
|
||||
- kernel_configure_variable BLK_DEV_INITRD y
|
||||
- kernel_configure_variable INITRAMFS_SOURCE ""
|
||||
- kernel_configure_variable RD_GZIP y
|
||||
* Set the yocto variables (in linux-raspberrypi.inc for example)
|
||||
- INITRAMFS_IMAGE = "<a name for your initramfs image>"
|
||||
- INITRAMFS_IMAGE_BUNDLE = "1"
|
||||
* Set the meta-rasberrypi variable (in raspberrypi.conf for example)
|
||||
- KERNEL_INITRAMFS = "-initramfs"
|
||||
|
||||
2.L. Device tree support
|
||||
=========================
|
||||
Device tree for RPi is only supported when using linux-raspberrypi 3.18+
|
||||
kernels.
|
||||
|
||||
* Set KERNEL_DEVICETREE (in conf/machine/raspberrypi.conf)
|
||||
- the trailer is added to the kernel image before kernel install task.
|
||||
While creating the SDCard image, this modified kernel is put on
|
||||
boot partition (as kernel.img) as well as DeviceTree blobs (.dtb files).
|
||||
|
||||
NOTE: KERNEL_DEVICETREE is default enabled for kernel >= 3.18 and always disabled for
|
||||
older kernel versions.
|
||||
|
||||
2.M. Optional - enable SPI bus
|
||||
==============================
|
||||
When using device tree kernels, set this variable to enable the SPI bus
|
||||
ENABLE_SPI_BUS = "1"
|
||||
|
||||
3. Extra apps
|
||||
=============
|
||||
|
||||
3.A. omxplayer
|
||||
==============
|
||||
omxplayer depends on libav which has a commercial license. So in order to be
|
||||
able to compile omxplayer you will need to whiteflag the commercial license
|
||||
adding to you local.conf:
|
||||
LICENSE_FLAGS_WHITELIST = "commercial"
|
||||
|
||||
4. Board Configuration
|
||||
======================
|
||||
|
||||
4.A. Audio Routing
|
||||
==================
|
||||
To load audio driver
|
||||
|
||||
modprobe snd-bcm2835
|
||||
|
||||
To test audio playback
|
||||
|
||||
e.g. aplay test.wav
|
||||
|
||||
Note that without HDMI connected this emits audio from the 3.5in jack connector
|
||||
as expected. However With an HDMI display connected there is no audio output from
|
||||
the jack connector.
|
||||
|
||||
To force the audio routing via the 3.5in jack connector use
|
||||
|
||||
amixer cset numid=3 1
|
||||
|
||||
Options to amixer cset are:
|
||||
|
||||
0=auto
|
||||
1=headphones
|
||||
2=hdmi
|
||||
|
||||
5. Source code and mirrors
|
||||
==========================
|
||||
|
||||
Main repo:
|
||||
git://git.yoctoproject.org/meta-raspberrypi
|
||||
http://git.yoctoproject.org/git/meta-raspberrypi
|
||||
https://github.com/djwillis/meta-raspberrypi
|
||||
|
||||
When sending patches, please use something like:
|
||||
Github mirror:
|
||||
https://github.com/agherzan/meta-raspberrypi
|
||||
|
||||
git send-email --to yocto@yoctoproject.org \
|
||||
--subject-prefix='meta-raspberrypi][PATCH'
|
||||
Bitbucket mirror:
|
||||
https://bitbucket.org/agherzan/meta-raspberrypi
|
||||
|
||||
|
||||
Layer maintainers: John Willis <John.Willis at distant-earth.com>
|
||||
Andrei Gherzan <andrei at gherzan.ro>
|
||||
6. Contributing
|
||||
===============
|
||||
|
||||
6.A. Mailing list
|
||||
=================
|
||||
The main communication tool we use is a mailing list:
|
||||
yocto@yoctoproject.org
|
||||
https://lists.yoctoproject.org/listinfo/yocto
|
||||
|
||||
Feel free to ask any kind of questions but always prepend your email subject
|
||||
with "[meta-raspberrypi]". This is because we use the 'yocto' mailing list and
|
||||
not a perticular 'meta-raspberrypi' mailing list.
|
||||
|
||||
To contribute to this layer you should send the patches for review to the
|
||||
above specified mailing list.
|
||||
The patches should be compliant with the openembedded patch guidelines:
|
||||
http://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
|
||||
|
||||
|
||||
When creating patches, please use something like:
|
||||
|
||||
git format-patch -s --subject-prefix='meta-raspberrypi][PATCH' origin
|
||||
|
||||
When sending patches to mailing list, please use something like:
|
||||
|
||||
git send-email --to yocto@yoctoproject.org <generated patch>
|
||||
|
||||
6.B. Redmine
|
||||
============
|
||||
In order to manage and trace the meta-raspberrypi issues, we use redmine:
|
||||
http://redmine.gherzan.ro/projects/meta-raspberrypi
|
||||
|
||||
Here we report, trace and develop bugs, features or support tickets for this
|
||||
yocto BSP later.
|
||||
|
||||
If you push patches which have a redmine issue associated, please provide the
|
||||
issue number in the commit log just before "Signed-off-by" line(s). Example line
|
||||
for a bug:
|
||||
[Bug #13]
|
||||
|
||||
|
||||
7. Maintainers
|
||||
==============
|
||||
|
||||
Andrei Gherzan <andrei at gherzan.ro>
|
||||
|
||||
39
classes/linux-raspberrypi-base.bbclass
Normal file
39
classes/linux-raspberrypi-base.bbclass
Normal file
@@ -0,0 +1,39 @@
|
||||
inherit linux-kernel-base
|
||||
|
||||
|
||||
def get_dts(d, ver):
|
||||
staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR", True)
|
||||
dts = d.getVar("KERNEL_DEVICETREE", True)
|
||||
|
||||
# d.getVar() might return 'None' as a normal string
|
||||
# leading to 'is None' check isn't enough.
|
||||
# TODO: Investigate if this is a bug in bitbake
|
||||
if ver is None or ver == "None":
|
||||
''' if 'ver' isn't set try to grab the kernel version
|
||||
from the kernel staging '''
|
||||
ver = get_kernelversion_file(staging_dir)
|
||||
|
||||
if ver is not None:
|
||||
min_ver = ver.split('.', 3)
|
||||
else:
|
||||
return dts
|
||||
|
||||
# Always turn off device tree support for kernel's < 3.18
|
||||
try:
|
||||
if int(min_ver[0]) <= 3:
|
||||
if int(min_ver[1]) < 18:
|
||||
dts = ""
|
||||
except IndexError:
|
||||
min_ver = None
|
||||
|
||||
return dts
|
||||
|
||||
|
||||
def split_overlays(d, out):
|
||||
dts = get_dts(d, None)
|
||||
if out:
|
||||
overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d)
|
||||
else:
|
||||
overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d)
|
||||
|
||||
return overlays
|
||||
@@ -1,4 +1,5 @@
|
||||
inherit image_types
|
||||
inherit linux-raspberrypi-base
|
||||
|
||||
#
|
||||
# Create an image that can by written onto a SD card using dd.
|
||||
@@ -13,31 +14,40 @@ inherit image_types
|
||||
# Default Free space = 1.3x
|
||||
# Use IMAGE_OVERHEAD_FACTOR to add more space
|
||||
# <--------->
|
||||
# 4MiB 20MiB SDIMG_ROOTFS
|
||||
# 4MiB 40MiB SDIMG_ROOTFS
|
||||
# <-----------------------> <----------> <---------------------->
|
||||
# ------------------------ ------------ ------------------------
|
||||
# | IMAGE_ROOTFS_ALIGNMENT | BOOT_SPACE | ROOTFS_SIZE |
|
||||
# ------------------------ ------------ ------------------------
|
||||
# ^ ^ ^ ^
|
||||
# | | | |
|
||||
# 0 4MiB 4MiB + 20MiB 4MiB + 20Mib + SDIMG_ROOTFS
|
||||
# 0 4MiB 4MiB + 40MiB 4MiB + 40Mib + SDIMG_ROOTFS
|
||||
|
||||
# This image depends on the rootfs image
|
||||
IMAGE_TYPEDEP_rpi-sdimg = "${SDIMG_ROOTFS_TYPE}"
|
||||
|
||||
# Set kernel and boot loader
|
||||
IMAGE_BOOTLOADER ?= "bcm2835-bootfiles"
|
||||
|
||||
# Set initramfs extension
|
||||
KERNEL_INITRAMFS ?= ""
|
||||
|
||||
# Kernel image name
|
||||
SDIMG_KERNELIMAGE_raspberrypi ?= "kernel.img"
|
||||
SDIMG_KERNELIMAGE_raspberrypi2 ?= "kernel7.img"
|
||||
|
||||
# Boot partition volume id
|
||||
BOOTDD_VOLUME_ID ?= "${MACHINE}"
|
||||
|
||||
# Boot partition size [in KiB] (will be rounded up to IMAGE_ROOTFS_ALIGNMENT)
|
||||
BOOT_SPACE ?= "20480"
|
||||
BOOT_SPACE ?= "40960"
|
||||
|
||||
# Set alignment to 4MB [in KiB]
|
||||
IMAGE_ROOTFS_ALIGNMENT = "4096"
|
||||
|
||||
# Use an uncompressed ext3 by default as rootfs
|
||||
SDIMG_ROOTFS_TYPE ?= "ext3"
|
||||
SDIMG_ROOTFS = "${IMAGE_NAME}.rootfs.${SDIMG_ROOTFS_TYPE}"
|
||||
SDIMG_ROOTFS = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.${SDIMG_ROOTFS_TYPE}"
|
||||
|
||||
IMAGE_DEPENDS_rpi-sdimg = " \
|
||||
parted-native \
|
||||
@@ -45,11 +55,19 @@ IMAGE_DEPENDS_rpi-sdimg = " \
|
||||
dosfstools-native \
|
||||
virtual/kernel \
|
||||
${IMAGE_BOOTLOADER} \
|
||||
${@bb.utils.contains('KERNEL_IMAGETYPE', 'uImage', 'u-boot', '',d)} \
|
||||
"
|
||||
|
||||
# SD card image name
|
||||
SDIMG = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.rpi-sdimg"
|
||||
|
||||
# Compression method to apply to SDIMG after it has been created. Supported
|
||||
# compression formats are "gzip", "bzip2" or "xz". The original .rpi-sdimg file
|
||||
# is kept and a new compressed file is created if one of these compression
|
||||
# formats is chosen. If SDIMG_COMPRESSION is set to any other value it is
|
||||
# silently ignored.
|
||||
#SDIMG_COMPRESSION ?= ""
|
||||
|
||||
# Additional files and/or directories to be copied into the vfat partition from the IMAGE_ROOTFS.
|
||||
FATPAYLOAD ?= ""
|
||||
|
||||
@@ -60,13 +78,12 @@ IMAGE_CMD_rpi-sdimg () {
|
||||
# Align partitions
|
||||
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
|
||||
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE_ALIGNED} - ${BOOT_SPACE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
|
||||
ROOTFS_SIZE=`du -bks ${SDIMG_ROOTFS} | awk '{print $1}'`
|
||||
# Round up RootFS size to the alignment size as well
|
||||
ROOTFS_SIZE_ALIGNED=$(expr ${ROOTFS_SIZE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
|
||||
ROOTFS_SIZE_ALIGNED=$(expr ${ROOTFS_SIZE_ALIGNED} - ${ROOTFS_SIZE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
|
||||
SDIMG_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + ${ROOTFS_SIZE_ALIGNED})
|
||||
SDIMG_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + $ROOTFS_SIZE)
|
||||
|
||||
echo "Creating filesystem with Boot partition ${BOOT_SPACE_ALIGNED} KiB and RootFS ${ROOTFS_SIZE_ALIGNED} KiB"
|
||||
echo "Creating filesystem with Boot partition ${BOOT_SPACE_ALIGNED} KiB and RootFS $ROOTFS_SIZE KiB"
|
||||
|
||||
# Check if we are building with device tree support
|
||||
DTS="${@get_dts(d, None)}"
|
||||
|
||||
# Initialize sdcard image file
|
||||
dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
|
||||
@@ -82,9 +99,38 @@ IMAGE_CMD_rpi-sdimg () {
|
||||
|
||||
# Create a vfat image with boot files
|
||||
BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDIMG} unit b print | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 512 /2 }')
|
||||
rm -f ${WORKDIR}/boot.img
|
||||
mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* ::/
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin ::kernel.img
|
||||
case "${KERNEL_IMAGETYPE}" in
|
||||
"uImage")
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/u-boot.img ::${SDIMG_KERNELIMAGE}
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::uImage
|
||||
;;
|
||||
*)
|
||||
if test -n "${DTS}"; then
|
||||
# Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' string and will be put in a dedicated folder
|
||||
DT_OVERLAYS="${@split_overlays(d, 0)}"
|
||||
DT_ROOT="${@split_overlays(d, 1)}"
|
||||
|
||||
# Copy board device trees to root folder
|
||||
for DTB in ${DT_ROOT}; do
|
||||
DTB_BASE_NAME=`basename ${DTB} .dtb`
|
||||
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb ::${DTB_BASE_NAME}.dtb
|
||||
done
|
||||
|
||||
# Copy device tree overlays to dedicated folder
|
||||
mmd -i ${WORKDIR}/boot.img overlays
|
||||
for DTB in ${DT_OVERLAYS}; do
|
||||
DTB_BASE_NAME=`basename ${DTB} .dtb`
|
||||
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb ::overlays/${DTB_BASE_NAME}.dtb
|
||||
done
|
||||
fi
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::${SDIMG_KERNELIMAGE}
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -n ${FATPAYLOAD} ] ; then
|
||||
echo "Copying payload into VFAT"
|
||||
@@ -107,6 +153,19 @@ IMAGE_CMD_rpi-sdimg () {
|
||||
else
|
||||
dd if=${SDIMG_ROOTFS} of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
|
||||
fi
|
||||
|
||||
# Optionally apply compression
|
||||
case "${SDIMG_COMPRESSION}" in
|
||||
"gzip")
|
||||
gzip -k9 "${SDIMG}"
|
||||
;;
|
||||
"bzip2")
|
||||
bzip2 -k9 "${SDIMG}"
|
||||
;;
|
||||
"xz")
|
||||
xz -k "${SDIMG}"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
ROOTFS_POSTPROCESS_COMMAND += " rpi_generate_sysctl_config ; "
|
||||
|
||||
@@ -7,7 +7,7 @@ BBFILES += "${LAYERDIR}/recipes*/*/*.bb \
|
||||
|
||||
BBFILE_COLLECTIONS += "raspberrypi"
|
||||
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_raspberrypi = "6"
|
||||
BBFILE_PRIORITY_raspberrypi = "9"
|
||||
|
||||
# Additional license directories.
|
||||
LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
|
||||
|
||||
50
conf/machine/include/rpi-base.inc
Normal file
50
conf/machine/include/rpi-base.inc
Normal file
@@ -0,0 +1,50 @@
|
||||
include conf/machine/include/rpi-default-settings.inc
|
||||
include conf/machine/include/rpi-default-versions.inc
|
||||
include conf/machine/include/rpi-default-providers.inc
|
||||
|
||||
SOC_FAMILY = "rpi"
|
||||
include conf/machine/include/soc-family.inc
|
||||
|
||||
IMAGE_FSTYPES ?= "tar.bz2 ext3 rpi-sdimg"
|
||||
|
||||
SERIAL_CONSOLE = "115200 ttyAMA0"
|
||||
|
||||
XSERVER = " \
|
||||
xserver-xorg \
|
||||
xf86-input-evdev \
|
||||
xf86-input-mouse \
|
||||
xf86-input-keyboard \
|
||||
xf86-video-fbdev \
|
||||
"
|
||||
|
||||
# Really supported starting from linux-raspberrypi 3.18.y only
|
||||
KERNEL_DEVICETREE ?= " \
|
||||
bcm2708-rpi-b.dtb \
|
||||
bcm2708-rpi-b-plus.dtb \
|
||||
bcm2709-rpi-2-b.dtb \
|
||||
\
|
||||
overlays/hifiberry-amp-overlay.dtb \
|
||||
overlays/hifiberry-dac-overlay.dtb \
|
||||
overlays/hifiberry-dacplus-overlay.dtb \
|
||||
overlays/hifiberry-digi-overlay.dtb \
|
||||
overlays/i2c-rtc-overlay.dtb \
|
||||
overlays/iqaudio-dac-overlay.dtb \
|
||||
overlays/iqaudio-dacplus-overlay.dtb \
|
||||
overlays/lirc-rpi-overlay.dtb \
|
||||
overlays/pps-gpio-overlay.dtb \
|
||||
overlays/w1-gpio-overlay.dtb \
|
||||
overlays/w1-gpio-pullup-overlay.dtb \
|
||||
"
|
||||
KERNEL_IMAGETYPE ?= "Image"
|
||||
|
||||
MACHINE_FEATURES = "kernel26 apm usbhost keyboard vfat ext2 screen touchscreen alsa bluetooth wifi sdio"
|
||||
|
||||
# Raspberry Pi has no hardware clock
|
||||
MACHINE_FEATURES_BACKFILL_CONSIDERED = "rtc"
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS += " kernel-modules"
|
||||
|
||||
# Set Raspberrypi splash image
|
||||
SPLASH = "psplash-raspberrypi"
|
||||
|
||||
IMAGE_BOOT_FILES ?= "bcm2835-bootfiles/* ${KERNEL_IMAGETYPE};${SDIMG_KERNELIMAGE}"
|
||||
@@ -1,7 +1,10 @@
|
||||
# RaspberryPi BSP default providers
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel = "linux-raspberrypi"
|
||||
PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-raspberrypi"
|
||||
PREFERRED_PROVIDER_u-boot ?= "u-boot-rpi"
|
||||
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
|
||||
PREFERRED_PROVIDER_virtual/egl ?= "userland"
|
||||
PREFERRED_PROVIDER_virtual/libgles2 ?= "userland"
|
||||
PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers-raspberrypi"
|
||||
PREFERRED_PROVIDER_virtual/libgl ?= "mesa-gl"
|
||||
PREFERRED_PROVIDER_virtual/mesa ?= "mesa-gl"
|
||||
PREFERRED_PROVIDER_jpeg ?= "jpeg"
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
# RaspberryPi BSP default versions
|
||||
|
||||
PREFERRED_VERSION_linux-raspberrypi ?= "4.1.%"
|
||||
|
||||
@@ -4,8 +4,12 @@ require conf/machine/include/arm/arch-armv6.inc
|
||||
|
||||
TUNEVALID[arm1176jzfs] = "Enable arm1176jzfs specific processor optimizations"
|
||||
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "arm1176jzfs", "-mtune=arm1176jzf-s", "", d)}"
|
||||
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "vfp", "-mfpu=vfp", "", d)}"
|
||||
|
||||
AVAILTUNES += "arm1176jzfs"
|
||||
TUNE_FEATURES_tune-arm1176jzfs = "${TUNE_FEATURES_tune-armv6} arm1176jzfs"
|
||||
AVAILTUNES += "arm1176jzfs arm1176jzfshf"
|
||||
ARMPKGARCH_tune-arm1176jzfs = "arm1176jzfs"
|
||||
ARMPKGARCH_tune-arm1176jzfshf = "arm1176jzfs"
|
||||
TUNE_FEATURES_tune-arm1176jzfs = "${TUNE_FEATURES_tune-armv6} arm1176jzfs"
|
||||
TUNE_FEATURES_tune-arm1176jzfshf = "${TUNE_FEATURES_tune-arm1176jzfs} callconvention-hard"
|
||||
PACKAGE_EXTRA_ARCHS_tune-arm1176jzfs = "${PACKAGE_EXTRA_ARCHS_tune-armv6}"
|
||||
PACKAGE_EXTRA_ARCHS_tune-arm1176jzfshf = "${PACKAGE_EXTRA_ARCHS_tune-armv6hf} arm1176jzfshf-vfp"
|
||||
|
||||
@@ -1,34 +1,8 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: RaspberryPi Development Board
|
||||
#@DESCRIPTION: Machine configuration for the RaspberryPi http://www.raspberrypi.org/ Board
|
||||
#@MAINTAINER: John Willis
|
||||
|
||||
include conf/machine/include/rpi-default-settings.inc
|
||||
include conf/machine/include/rpi-default-versions.inc
|
||||
include conf/machine/include/rpi-default-providers.inc
|
||||
DEFAULTTUNE ?= "arm1176jzfshf"
|
||||
|
||||
require conf/machine/include/tune-arm1176jzf-s.inc
|
||||
|
||||
IMAGE_FSTYPES ?= "tar.bz2 ext3 rpi-sdimg"
|
||||
|
||||
SERIAL_CONSOLE = "115200 ttyAMA0"
|
||||
|
||||
MACHINE_KERNEL_PR = "r5"
|
||||
|
||||
XSERVER = " \
|
||||
xserver-xorg \
|
||||
xf86-input-evdev \
|
||||
xf86-input-mouse \
|
||||
xf86-input-keyboard \
|
||||
xf86-video-fbdev \
|
||||
"
|
||||
|
||||
KERNEL_IMAGETYPE = "Image"
|
||||
|
||||
MACHINE_FEATURES = "kernel26 apm usbgadget usbhost keyboard vfat ext2 screen touchscreen alsa bluetooth wifi sdio"
|
||||
|
||||
#RaspberryPi has no hardware clock
|
||||
MACHINE_FEATURES_BACKFILL_CONSIDERED = "rtc"
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS += " \
|
||||
kernel-modules \
|
||||
"
|
||||
include conf/machine/include/rpi-base.inc
|
||||
|
||||
8
conf/machine/raspberrypi2.conf
Normal file
8
conf/machine/raspberrypi2.conf
Normal file
@@ -0,0 +1,8 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: RaspberryPi 2 Development Board
|
||||
#@DESCRIPTION: Machine configuration for the RaspberryPi 2
|
||||
|
||||
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
|
||||
|
||||
require conf/machine/include/tune-cortexa7.inc
|
||||
include conf/machine/include/rpi-base.inc
|
||||
@@ -1,37 +0,0 @@
|
||||
DESCRIPTION = "Closed source binary files to help boot the ARM on the BCM2835."
|
||||
LICENSE = "Proprietary"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=e86e693d19572ee64cc8b17fb062faa9"
|
||||
|
||||
include ../common/firmware.inc
|
||||
|
||||
RDEPENDS_${PN} = "rpi-config"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
SRC_URI = " \
|
||||
git://github.com/raspberrypi/firmware.git;protocol=git;branch=master \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git/boot"
|
||||
|
||||
PR = "r3"
|
||||
|
||||
addtask deploy before do_package after do_install
|
||||
|
||||
do_deploy() {
|
||||
install -d ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles
|
||||
for i in *.elf ; do
|
||||
cp $i ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles
|
||||
done
|
||||
for i in *.dat ; do
|
||||
cp $i ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles
|
||||
done
|
||||
for i in *.bin ; do
|
||||
cp $i ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles
|
||||
done
|
||||
# Add stamp in deploy directory
|
||||
touch ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/${PN}-${PV}.stamp
|
||||
}
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
@@ -1,57 +0,0 @@
|
||||
DESCRIPTION = "Commented config.txt file for the Raspberry Pi. \
|
||||
The Raspberry Pi config.txt file is read by the GPU before \
|
||||
the ARM core is initialised. It can be used to set various \
|
||||
system configuration parameters."
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
SRCREV = "62bf3e9db62f547eb1a2a352dde957d2f94bd216"
|
||||
SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=git;branch=master \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
PR = "r3"
|
||||
|
||||
addtask deploy before do_package after do_install
|
||||
|
||||
do_deploy() {
|
||||
install -d ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles
|
||||
cp config.txt ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/
|
||||
if [ -n "${KEY_DECODE_MPG2}" ]; then
|
||||
sed -i '/#decode_MPG2/ c\decode_MPG2=${KEY_DECODE_MPG2}' ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${KEY_DECODE_WVC1}" ]; then
|
||||
sed -i '/#decode_WVC1/ c\decode_MVC1=${KEY_DECODE_WVC1}' ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${DISABLE_OVERSCAN}" ]; then
|
||||
sed -i '/#disable_overscan/ c\disable_overscan=${DISABLE_OVERSCAN}' ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${ARM_FREQ}" ]; then
|
||||
sed -i '/#arm_freq/ c\arm_freq=${ARM_FREQ}' ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${CORE_FREQ}" ]; then
|
||||
sed -i '/#core_freq/ c\core_freq=${CORE_FREQ}' ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${SDRAM_FREQ}" ]; then
|
||||
sed -i '/#sdram_freq/ c\sdram_freq=${SDRAM_FREQ}' ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${OVER_VOLTAGE}" ]; then
|
||||
sed -i '/#over_voltage/ c\over_voltage=${OVER_VOLTAGE}' ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
|
||||
# GPU memory
|
||||
if [ -n "${GPU_MEM}" ]; then
|
||||
sed -i '/#gpu_mem=/ c\gpu_mem=${GPU_MEM}' ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${GPU_MEM_256}" ]; then
|
||||
sed -i '/#gpu_mem_256/ c\gpu_mem_256=${GPU_MEM_256}' ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${GPU_MEM_512}" ]; then
|
||||
sed -i '/#gpu_mem_512/ c\gpu_mem_512=${GPU_MEM_512}' ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
}
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
@@ -1,6 +0,0 @@
|
||||
# 7/1/2013 firmware; this can be overridden from distro config
|
||||
RPIFW_SRCREV ?= "0ac68cce44d4550c251172e8524100090e8211fa"
|
||||
RPIFW_DATE ?= "20130107"
|
||||
|
||||
SRCREV = "${RPIFW_SRCREV}"
|
||||
PV = "${RPIFW_DATE}"
|
||||
39
recipes-bsp/bootfiles/bcm2835-bootfiles.bb
Normal file
39
recipes-bsp/bootfiles/bcm2835-bootfiles.bb
Normal file
@@ -0,0 +1,39 @@
|
||||
DESCRIPTION = "Closed source binary files to help boot the ARM on the BCM2835."
|
||||
LICENSE = "Proprietary"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=e86e693d19572ee64cc8b17fb062faa9"
|
||||
|
||||
inherit deploy
|
||||
|
||||
include recipes-bsp/common/firmware.inc
|
||||
|
||||
RDEPENDS_${PN} = "rpi-config"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
S = "${RPIFW_S}/boot"
|
||||
|
||||
PR = "r3"
|
||||
|
||||
do_deploy() {
|
||||
install -d ${DEPLOYDIR}/${PN}
|
||||
|
||||
for i in ${S}/*.elf ; do
|
||||
cp $i ${DEPLOYDIR}/${PN}
|
||||
done
|
||||
for i in ${S}/*.dat ; do
|
||||
cp $i ${DEPLOYDIR}/${PN}
|
||||
done
|
||||
for i in ${S}/*.bin ; do
|
||||
cp $i ${DEPLOYDIR}/${PN}
|
||||
done
|
||||
|
||||
# Add stamp in deploy directory
|
||||
touch ${DEPLOYDIR}/${PN}/${PN}-${PV}.stamp
|
||||
}
|
||||
|
||||
addtask deploy before do_package after do_install
|
||||
do_deploy[dirs] += "${DEPLOYDIR}/${PN}"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
80
recipes-bsp/bootfiles/rpi-config_git.bb
Normal file
80
recipes-bsp/bootfiles/rpi-config_git.bb
Normal file
@@ -0,0 +1,80 @@
|
||||
DESCRIPTION = "Commented config.txt file for the Raspberry Pi. \
|
||||
The Raspberry Pi config.txt file is read by the GPU before \
|
||||
the ARM core is initialised. It can be used to set various \
|
||||
system configuration parameters."
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
SRCREV = "5d2ca5f9bcb1b239c051e20c05a233fd79cf09d5"
|
||||
SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=git;branch=master \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
PR = "r4"
|
||||
|
||||
inherit deploy
|
||||
|
||||
do_deploy() {
|
||||
install -d ${DEPLOYDIR}/bcm2835-bootfiles
|
||||
|
||||
cp ${S}/config.txt ${DEPLOYDIR}/bcm2835-bootfiles/
|
||||
|
||||
if [ -n "${KEY_DECODE_MPG2}" ]; then
|
||||
sed -i '/#decode_MPG2/ c\decode_MPG2=${KEY_DECODE_MPG2}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${KEY_DECODE_WVC1}" ]; then
|
||||
sed -i '/#decode_WVC1/ c\decode_WVC1=${KEY_DECODE_WVC1}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${DISABLE_OVERSCAN}" ]; then
|
||||
sed -i '/#disable_overscan/ c\disable_overscan=${DISABLE_OVERSCAN}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${ARM_FREQ}" ]; then
|
||||
sed -i '/#arm_freq/ c\arm_freq=${ARM_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${CORE_FREQ}" ]; then
|
||||
sed -i '/#core_freq/ c\core_freq=${CORE_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${SDRAM_FREQ}" ]; then
|
||||
sed -i '/#sdram_freq/ c\sdram_freq=${SDRAM_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${OVER_VOLTAGE}" ]; then
|
||||
sed -i '/#over_voltage/ c\over_voltage=${OVER_VOLTAGE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
|
||||
# GPU memory
|
||||
if [ -n "${GPU_MEM}" ]; then
|
||||
sed -i '/#gpu_mem=/ c\gpu_mem=${GPU_MEM}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${GPU_MEM_256}" ]; then
|
||||
sed -i '/#gpu_mem_256/ c\gpu_mem_256=${GPU_MEM_256}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
if [ -n "${GPU_MEM_512}" ]; then
|
||||
sed -i '/#gpu_mem_512/ c\gpu_mem_512=${GPU_MEM_512}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
|
||||
# Video camera support
|
||||
if [ -n "${VIDEO_CAMERA}" ]; then
|
||||
echo "# Enable video camera" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
echo "start_x=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
|
||||
# Offline compositing support
|
||||
if [ -n "${DISPMANX_OFFLINE}" ]; then
|
||||
echo "# Enable offline compositing" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
echo "dispmanx_offline=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
|
||||
# SPI bus support
|
||||
if [ -n "${ENABLE_SPI_BUS}" ]; then
|
||||
echo "# Enable SPI bus" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
echo "dtparam=spi=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
}
|
||||
|
||||
addtask deploy before do_package after do_install
|
||||
do_deploy[dirs] += "${DEPLOYDIR}/bcm2835-bootfiles"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
8
recipes-bsp/common/firmware.inc
Normal file
8
recipes-bsp/common/firmware.inc
Normal file
@@ -0,0 +1,8 @@
|
||||
RPIFW_SRCREV ?= "f7108cfdc715f79c5fd051fb4c3ae6f4b1b01f23"
|
||||
RPIFW_DATE ?= "20151021"
|
||||
RPIFW_SRC_URI ?= "git://github.com/raspberrypi/firmware.git;protocol=git;branch=master"
|
||||
RPIFW_S ?= "${WORKDIR}/git"
|
||||
|
||||
SRC_URI = "${RPIFW_SRC_URI}"
|
||||
SRCREV = "${RPIFW_SRCREV}"
|
||||
PV = "${RPIFW_DATE}"
|
||||
@@ -1,2 +1 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||
PRINC = "1"
|
||||
|
||||
25
recipes-bsp/rpi-mkimage/rpi-mkimage/License
Normal file
25
recipes-bsp/rpi-mkimage/rpi-mkimage/License
Normal file
@@ -0,0 +1,25 @@
|
||||
Copyright (c) 2012, Broadcom Europe Ltd
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the copyright holder nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
When using open, use path relative to imagetool-uncompressed.py
|
||||
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
|
||||
Index: git/mkimage/imagetool-uncompressed.py
|
||||
===================================================================
|
||||
--- a/mkimage/imagetool-uncompressed.py
|
||||
+++ b/mkimage/imagetool-uncompressed.py
|
||||
@@ -18,7 +18,7 @@ re_line = re.compile(r"0x(?P<value>[0-9a
|
||||
mem = [0 for i in range(32768)]
|
||||
|
||||
def load_to_mem(name, addr):
|
||||
- f = open(name)
|
||||
+ f = open(os.path.dirname(__file__) + '/' + name)
|
||||
|
||||
for l in f.readlines():
|
||||
m = re_line.match(l)
|
||||
22
recipes-bsp/rpi-mkimage/rpi-mkimage_git.bb
Normal file
22
recipes-bsp/rpi-mkimage/rpi-mkimage_git.bb
Normal file
@@ -0,0 +1,22 @@
|
||||
SUMMARY = "RaspberryPi tool to produce kernel.img"
|
||||
LICENSE = "Broadcom"
|
||||
LIC_FILES_CHKSUM = "file://${WORKDIR}/License;md5=957f6640d5e2d2acfce73a36a56cb32f"
|
||||
SECTION = "bootloader"
|
||||
|
||||
DEPENDS = "python"
|
||||
|
||||
SRCREV = "f5642106425d430e1f82ee064121a5fd0e05a386"
|
||||
SRC_URI = " \
|
||||
git://github.com/raspberrypi/tools.git;branch=master;protocol=git \
|
||||
file://License \
|
||||
file://open-files-relative-to-script.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${libexecdir}
|
||||
cp ./mkimage/* ${D}${libexecdir}
|
||||
}
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
29
recipes-bsp/u-boot/u-boot-rpi_git.bb
Normal file
29
recipes-bsp/u-boot/u-boot-rpi_git.bb
Normal file
@@ -0,0 +1,29 @@
|
||||
DESCRIPTION = "U-Boot port for RaspberryPi"
|
||||
|
||||
require recipes-bsp/u-boot/u-boot.inc
|
||||
|
||||
DEPENDS += "rpi-mkimage-native"
|
||||
|
||||
PROVIDES += "u-boot"
|
||||
|
||||
LICENSE = "GPLv2+"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb"
|
||||
|
||||
SRCREV = "6709570cdc947c2a546f96d571551acf4474778c"
|
||||
SRC_URI = "git://github.com/gonzoua/u-boot-pi.git;branch=rpi"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
UBOOT_MACHINE = "rpi_b"
|
||||
UBOOT_MAKE_TARGET = "u-boot.bin"
|
||||
UBOOT_SUFFIX = "img"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
do_compile_append() {
|
||||
# Create kernel.img from uboot.bin and name it u-boot.img
|
||||
${STAGING_DIR_NATIVE}/usr/lib/rpi-mkimage/imagetool-uncompressed.py u-boot.bin
|
||||
mv kernel.img u-boot.img
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
# stock fstab for the RaspberryPi - you may want to tweak this to suit.
|
||||
|
||||
rootfs / auto defaults,noatime 1 1
|
||||
proc /proc proc defaults 0 0
|
||||
devpts /dev/pts devpts mode=0620,gid=5 0 0
|
||||
usbfs /proc/bus/usb usbfs defaults 0 0
|
||||
tmpfs /var/volatile tmpfs defaults 0 0
|
||||
tmpfs /dev/shm tmpfs mode=0777 0 0
|
||||
tmpfs /media/ram tmpfs defaults 0 0
|
||||
@@ -1,33 +0,0 @@
|
||||
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
|
||||
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
|
||||
|
||||
PATH="/usr/local/bin:/usr/bin:/bin"
|
||||
EDITOR="/bin/vi" # needed for packages like cron
|
||||
test -z "$TERM" && TERM="vt100" # Basic terminal capab. For screen etc.
|
||||
|
||||
if [ ! -e /etc/localtime -a ! -e /etc/TZ ]; then
|
||||
TZ="UTC" # Time Zone. Look at http://theory.uwinnipeg.ca/gnu/glibc/libc_303.html
|
||||
# for an explanation of how to set this to your local timezone.
|
||||
export TZ
|
||||
fi
|
||||
|
||||
if [ "`id -u`" -eq 0 ]; then
|
||||
PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin:
|
||||
fi
|
||||
if [ "$PS1" ]; then
|
||||
# works for bash and ash (no other shells known to be in use here)
|
||||
PS1='\u@\h:\w\$ '
|
||||
fi
|
||||
|
||||
if [ -d /etc/profile.d ]; then
|
||||
for i in /etc/profile.d/*.sh; do
|
||||
if [ -r $i ]; then
|
||||
. $i
|
||||
fi
|
||||
done
|
||||
unset i
|
||||
fi
|
||||
|
||||
export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
|
||||
|
||||
umask 022
|
||||
@@ -1,3 +0,0 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||
# Don't forget to bump PRINC if you update the extra files.
|
||||
PRINC = "1"
|
||||
@@ -1,4 +1,6 @@
|
||||
# Base this image on rpi-hwup-image
|
||||
include rpi-hwup-image.bb
|
||||
|
||||
SPLASH = "psplash-raspberrypi"
|
||||
|
||||
IMAGE_FEATURES += "ssh-server-dropbear splash"
|
||||
|
||||
4
recipes-core/images/rpi-test-image.bb
Normal file
4
recipes-core/images/rpi-test-image.bb
Normal file
@@ -0,0 +1,4 @@
|
||||
# Base this image on rpi-basic-image
|
||||
include rpi-basic-image.bb
|
||||
|
||||
IMAGE_INSTALL_append = " packagegroup-rpi-test"
|
||||
20
recipes-core/packagegroups/packagegroup-rpi-test.bb
Normal file
20
recipes-core/packagegroups/packagegroup-rpi-test.bb
Normal file
@@ -0,0 +1,20 @@
|
||||
DESCRIPTION = "RaspberryPi Test Packagegroup"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
|
||||
|
||||
inherit packagegroup
|
||||
|
||||
RDEPENDS_${PN} = "\
|
||||
omxplayer \
|
||||
bcm2835-tests \
|
||||
wiringpi \
|
||||
rpio \
|
||||
rpi-gpio \
|
||||
pi-blaster \
|
||||
"
|
||||
|
||||
RRECOMMENDS_${PN} = "\
|
||||
bigbuckbunny-1080p \
|
||||
bigbuckbunny-480p \
|
||||
bigbuckbunny-720p \
|
||||
"
|
||||
@@ -1,2 +1,2 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
|
||||
SPLASH_IMAGES = "file://psplash-raspberrypi-img.h;outsuffix=default"
|
||||
SPLASH_IMAGES += "file://psplash-raspberrypi-img.h;outsuffix=raspberrypi"
|
||||
|
||||
@@ -8,35 +8,33 @@ AUTHOR = "Mike McCauley (mikem@open.com.au)"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
|
||||
|
||||
PR = "r0"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
SRC_URI = "http://www.open.com.au/mikem/bcm2835/bcm2835-1.8.tar.gz"
|
||||
SRC_URI = "http://www.airspayce.com/mikem/bcm2835/bcm2835-${PV}.tar.gz"
|
||||
|
||||
SRC_URI[md5sum] = "cca8500049d4ebf9087de4bd1601d185"
|
||||
SRC_URI[sha256sum] = "64be77b10aaf48ecb2a9022e13057f3b564093916875c0fc56373b4142dd5cae"
|
||||
SRC_URI[md5sum] = "3a40c01ee7d81fbff80c54fbe1a351b5"
|
||||
SRC_URI[sha256sum] = "fc6b0412525e6b7e85aeffec67e2d01a99fb906346620041e6684d59ea5517a7"
|
||||
|
||||
inherit autotools
|
||||
|
||||
do_compile_append() {
|
||||
# Now compiling the examples provided by the package
|
||||
mkdir -p ${B}/examples
|
||||
for file in `ls ${S}/examples`; do
|
||||
${CC} ${S}/examples/${file}/${file}.c -o ${B}/examples/${file} -Bstatic -L${B}/src -lbcm2835 -I${S}/src
|
||||
done
|
||||
}
|
||||
|
||||
do_install_append() {
|
||||
install -d ${D}/${libdir}/${BPN}
|
||||
for file in ${B}/examples/*
|
||||
do
|
||||
install -m 0755 ${file} ${D}/${libdir}/${BPN}
|
||||
done
|
||||
}
|
||||
|
||||
PACKAGES += "${PN}-tests"
|
||||
|
||||
FILES_${PN} = ""
|
||||
FILES_${PN}-tests = "${libdir}/${BPN}"
|
||||
FILES_${PN}-dbg += "${libdir}/${BPN}/.debug"
|
||||
|
||||
inherit autotools
|
||||
|
||||
do_compile_append() {
|
||||
#Now compiling the examples provided by the package
|
||||
for file in examples/*
|
||||
do
|
||||
${CC} ${file}/${file##*/}.c -o ${file}/${file##*/} -Bstatic -L${S}/src -lbcm2835 -I${S}/src
|
||||
done
|
||||
}
|
||||
|
||||
do_install_append() {
|
||||
install -d ${D}/${libdir}/${BPN}
|
||||
for file in examples/*
|
||||
do
|
||||
install -m 0755 ${file}/${file##*/} ${D}/${libdir}/${BPN}
|
||||
done
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
Remove dependencies on LSB functions
|
||||
|
||||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
Signed-off-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
|
||||
|
||||
diff -ur git.org/pi-blaster.boot.sh git/pi-blaster.boot.sh
|
||||
--- git.org/pi-blaster.boot.sh 2014-05-20 14:49:44.378582168 +0100
|
||||
+++ git/pi-blaster.boot.sh 2014-05-20 14:51:08.330582386 +0100
|
||||
@@ -28,12 +28,12 @@
|
||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
||||
|
||||
# Load the VERBOSE setting and other rcS variables
|
||||
-. /lib/init/vars.sh
|
||||
+#. /lib/init/vars.sh
|
||||
|
||||
# Define LSB log_* functions.
|
||||
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
|
||||
# and status_of_proc is working.
|
||||
-. /lib/lsb/init-functions
|
||||
+#. /lib/lsb/init-functions
|
||||
|
||||
#
|
||||
# Function that starts the daemon/service
|
||||
@@ -77,48 +77,23 @@
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
- [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
||||
+ [ "$VERBOSE" != no ] && echo "Starting $DESC" "$NAME"
|
||||
do_start
|
||||
- case "$?" in
|
||||
- 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||
- 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||
- esac
|
||||
;;
|
||||
stop)
|
||||
- [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
||||
+ [ "$VERBOSE" != no ] && echo "Stopping $DESC" "$NAME"
|
||||
do_stop
|
||||
- case "$?" in
|
||||
- 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||
- 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||
- esac
|
||||
- ;;
|
||||
- status)
|
||||
- status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
||||
;;
|
||||
restart|force-reload)
|
||||
#
|
||||
# If the "reload" option is implemented then remove the
|
||||
# 'force-reload' alias
|
||||
#
|
||||
- log_daemon_msg "Restarting $DESC" "$NAME"
|
||||
do_stop
|
||||
- case "$?" in
|
||||
- 0|1)
|
||||
- do_start
|
||||
- case "$?" in
|
||||
- 0) log_end_msg 0 ;;
|
||||
- 1) log_end_msg 1 ;; # Old process is still running
|
||||
- *) log_end_msg 1 ;; # Failed to start
|
||||
- esac
|
||||
- ;;
|
||||
- *)
|
||||
- # Failed to stop
|
||||
- log_end_msg 1
|
||||
- ;;
|
||||
- esac
|
||||
+ do_start
|
||||
;;
|
||||
*)
|
||||
- echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
||||
+ echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
|
||||
exit 3
|
||||
;;
|
||||
esac
|
||||
21
recipes-devtools/pi-blaster/pi-blaster.inc
Normal file
21
recipes-devtools/pi-blaster/pi-blaster.inc
Normal file
@@ -0,0 +1,21 @@
|
||||
DESCRIPTION = "This project enables PWM on the GPIO pins you request of a Raspberry Pi."
|
||||
HOMEPAGE = "https://github.com/sarfata/pi-blaster/"
|
||||
SECTION = "devel/libs"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://README.md;beginline=157;endline=170;md5=f20832f31126609af5a7bf2340014540"
|
||||
|
||||
SRC_URI = "git://github.com/sarfata/pi-blaster \
|
||||
file://remove-initscript-lsb-dependency.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit update-rc.d autotools
|
||||
|
||||
INITSCRIPT_PACKAGES = "${PN}"
|
||||
INITSCRIPT_NAME_${PN} = "${PN}.boot.sh"
|
||||
INITSCRIPT_PARAMS_${PN} = "defaults 15 85"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
3
recipes-devtools/pi-blaster/pi-blaster_git.bb
Normal file
3
recipes-devtools/pi-blaster/pi-blaster_git.bb
Normal file
@@ -0,0 +1,3 @@
|
||||
require pi-blaster.inc
|
||||
|
||||
SRCREV = "ec5e1b4c6191d8f9a538497dbbb86f9cf0de7016"
|
||||
@@ -1,16 +0,0 @@
|
||||
We already have setuptools python module so we will use that and not the
|
||||
one provided in this package.
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
|
||||
Index: RPi.GPIO-0.2.0/setup.py
|
||||
===================================================================
|
||||
--- RPi.GPIO-0.2.0.orig/setup.py 2012-05-24 13:17:31.000000000 +0300
|
||||
+++ RPi.GPIO-0.2.0/setup.py 2012-08-22 00:56:59.049001018 +0300
|
||||
@@ -1,6 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
-import distribute_setup
|
||||
-distribute_setup.use_setuptools()
|
||||
from setuptools import setup, find_packages
|
||||
import platform
|
||||
@@ -2,20 +2,18 @@ DESCRIPTION = "A module to control Raspberry Pi GPIO channels"
|
||||
HOMEPAGE = "http://code.google.com/p/raspberry-gpio-python/"
|
||||
SECTION = "devel/python"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=ee5754ae9d5f8061d6d4ccd9c9fe0061"
|
||||
LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=9b95630a648966b142f1a0dcea001cb7"
|
||||
|
||||
SRCNAME = "RPi.GPIO"
|
||||
PR = "r0"
|
||||
|
||||
SRC_URI = "\
|
||||
http://pypi.python.org/packages/source/R/RPi.GPIO/${SRCNAME}-${PV}.tar.gz \
|
||||
file://don-t-install-setuptools.patch \
|
||||
"
|
||||
S = "${WORKDIR}/${SRCNAME}-${PV}"
|
||||
|
||||
inherit setuptools
|
||||
inherit distutils
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
SRC_URI[md5sum] = "0fc4bfa6aabc856b0b75252a40ac75cc"
|
||||
SRC_URI[sha256sum] = "fcfd97dc9687dde76b13b9d12c122e71b13e2ba09a62913d7b8d9ddbb3e8cabf"
|
||||
SRC_URI[md5sum] = "9dc3dab6ce2b7ccb833a866efb392821"
|
||||
SRC_URI[sha256sum] = "8d6f02da7f90e24512ad80ee4ccf34ef33687c88c47326f100cf7ac4d7ae4bf3"
|
||||
20
recipes-devtools/python/rpio_0.10.0.bb
Normal file
20
recipes-devtools/python/rpio_0.10.0.bb
Normal file
@@ -0,0 +1,20 @@
|
||||
DESCRIPTION = "Advanced GPIO for the Raspberry Pi. Extends RPi.GPIO with PWM, \
|
||||
GPIO interrups, TCP socket interrupts, command line tools and more"
|
||||
HOMEPAGE = "https://github.com/metachris/RPIO"
|
||||
SECTION = "devel/python"
|
||||
LICENSE = "LGPLv3+"
|
||||
LIC_FILES_CHKSUM = "file://README.rst;beginline=41;endline=53;md5=d5d95d7486a4d98c999675c23196b25a"
|
||||
|
||||
SRCNAME = "RPIO"
|
||||
|
||||
SRC_URI = "\
|
||||
http://pypi.python.org/packages/source/R/RPIO/${SRCNAME}-${PV}.tar.gz \
|
||||
"
|
||||
S = "${WORKDIR}/${SRCNAME}-${PV}"
|
||||
|
||||
inherit setuptools
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
SRC_URI[md5sum] = "cefc45422833dcafcd59b78dffc540f4"
|
||||
SRC_URI[sha256sum] = "b89f75dec9de354681209ebfaedfe22b7c178aacd91a604a7bd6d92024e4cf7e"
|
||||
@@ -0,0 +1,410 @@
|
||||
From 6d85e6cc3ab97c3f060e5e0a8e3f1945a14c86ba Mon Sep 17 00:00:00 2001
|
||||
From: Gianfranco Costamagna <gianfranco.costamagna@abinsula.com>
|
||||
Date: Mon, 12 Oct 2015 12:15:51 +0200
|
||||
Subject: [PATCH] Add initial cross compile support (rebase from Petter Mabäcker <petter@technux.se> version)
|
||||
|
||||
---
|
||||
devLib/Makefile | 54 ++++++++++++++++++++++++-------------------
|
||||
examples/Gertboard/Makefile | 22 +++++++++++-------
|
||||
examples/Makefile | 22 +++++++++++-------
|
||||
examples/PiFace/Makefile | 22 +++++++++++-------
|
||||
examples/PiGlow/Makefile | 4 ++--
|
||||
examples/q2w/Makefile | 4 ++--
|
||||
gpio/Makefile | 29 ++++++++++++-----------
|
||||
wiringPi/Makefile | 50 +++++++++++++++++++++------------------
|
||||
8 files changed, 119 insertions(+), 88 deletions(-)
|
||||
|
||||
diff --git a/devLib/Makefile b/devLib/Makefile
|
||||
index 0fb0033..cbea759 100644
|
||||
--- a/devLib/Makefile
|
||||
+++ b/devLib/Makefile
|
||||
@@ -31,15 +31,19 @@ ifneq ($V,1)
|
||||
Q ?= @
|
||||
endif
|
||||
|
||||
-STATIC=libwiringPiDev.a
|
||||
-DYNAMIC=libwiringPiDev.so.$(VERSION)
|
||||
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
|
||||
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
|
||||
|
||||
-#DEBUG = -g -O0
|
||||
-DEBUG = -O2
|
||||
-CC = gcc
|
||||
-INCLUDE = -I.
|
||||
-DEFS = -D_GNU_SOURCE
|
||||
-CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC
|
||||
+BASE_NAME=libwiringPiDev
|
||||
+STATIC=$(BASE_NAME).a
|
||||
+DYNAMIC=$(BASE_NAME).so.$(VERSION)
|
||||
+
|
||||
+#DEBUG ?= -g -O0
|
||||
+DEBUG ?= -O2
|
||||
+CC ?= gcc
|
||||
+INCLUDE ?= -I.
|
||||
+DEFS ?= -D_GNU_SOURCE
|
||||
+CFLAGS ?= $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC
|
||||
|
||||
LIBS =
|
||||
|
||||
@@ -66,16 +70,16 @@ $(STATIC): $(OBJ)
|
||||
|
||||
$(DYNAMIC): $(OBJ)
|
||||
$Q echo "[Link (Dynamic)]"
|
||||
- $Q $(CC) -shared -Wl,-soname,libwiringPiDev.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPiDev.so.$(VERSION) -lpthread $(OBJ)
|
||||
+ $Q $(CC) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ)
|
||||
|
||||
.c.o:
|
||||
$Q echo [Compile] $<
|
||||
- $Q $(CC) -c $(CFLAGS) $< -o $@
|
||||
+ $Q $(CC) -c $(CFLAGS) -fPIC $< -o $@
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
$Q echo "[Clean]"
|
||||
- $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPiDev.*
|
||||
+ $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak $(BASE_NAME).so* $(BASE_NAME).a
|
||||
|
||||
.PHONY: tags
|
||||
tags: $(SRC)
|
||||
@@ -86,22 +90,22 @@ tags: $(SRC)
|
||||
.PHONY: install
|
||||
install: $(DYNAMIC)
|
||||
$Q echo "[Install Headers]"
|
||||
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
|
||||
- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
|
||||
+ $Q install -m 0755 -d $(INCLUDE_DIR)
|
||||
+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
|
||||
$Q echo "[Install Dynamic Lib]"
|
||||
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
|
||||
- $Q install -m 0755 libwiringPiDev.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION)
|
||||
- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION) $(DESTDIR)/lib/libwiringPiDev.so
|
||||
- $Q $(LDCONFIG)
|
||||
+ $Q install -m 0755 -d $(LIB_DIR)
|
||||
+ $Q install -m 0755 $(BASE_NAME).so $(LIB_DIR)/$(DYNAMIC)
|
||||
+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so
|
||||
+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
|
||||
|
||||
.PHONY: install-static
|
||||
install-static: $(STATIC)
|
||||
$Q echo "[Install Headers]"
|
||||
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
|
||||
- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
|
||||
+ $Q install -m 0755 -d $(INCLUDE_DIR)
|
||||
+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
|
||||
$Q echo "[Install Static Lib]"
|
||||
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
|
||||
- $Q install -m 0755 libwiringPiDev.a $(DESTDIR)$(PREFIX)/lib
|
||||
+ $Q install -m 0755 -d $(LIB_DIR)
|
||||
+ $Q install -m 0755 $(STATIC) $(LIB_DIR)
|
||||
|
||||
.PHONY: install-deb
|
||||
install-deb: $(DYNAMIC)
|
||||
@@ -116,9 +120,11 @@ install-deb: $(DYNAMIC)
|
||||
.PHONY: uninstall
|
||||
uninstall:
|
||||
$Q echo "[UnInstall]"
|
||||
- $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS)
|
||||
- $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPiDev.*
|
||||
- $Q $(LDCONFIG)
|
||||
+ $Q cd $(INCLUDE_DIR) && rm -f $(HEADERS)
|
||||
+ $Q rm -f $(LIB_DIR)/$(STATIC)
|
||||
+ $Q rm -f $(LIB_DIR)/$(DYNAMIC)
|
||||
+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so
|
||||
+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
|
||||
|
||||
|
||||
.PHONY: depend
|
||||
diff --git a/examples/Gertboard/Makefile b/examples/Gertboard/Makefile
|
||||
index 1939ad6..98d1415 100644
|
||||
--- a/examples/Gertboard/Makefile
|
||||
+++ b/examples/Gertboard/Makefile
|
||||
@@ -9,14 +9,20 @@ ifneq ($V,1)
|
||||
Q ?= @
|
||||
endif
|
||||
|
||||
-#DEBUG = -g -O0
|
||||
-DEBUG = -O3
|
||||
-CC = gcc
|
||||
-INCLUDE = -I/usr/local/include
|
||||
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
-
|
||||
-LDFLAGS = -L/usr/local/lib
|
||||
-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
|
||||
+DESTDIR?=/usr
|
||||
+PREFIX?=/local
|
||||
+
|
||||
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
|
||||
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
|
||||
+
|
||||
+#DEBUG ?= -g -O0
|
||||
+DEBUG ?= -O3
|
||||
+CC ?= gcc
|
||||
+INCLUDE ?= -I$(INCLUDE_DIR)
|
||||
+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
+
|
||||
+LDFLAGS ?= -L$(LIB_DIR)
|
||||
+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm
|
||||
|
||||
# Should not alter anything below this line
|
||||
###############################################################################
|
||||
diff --git a/examples/Makefile b/examples/Makefile
|
||||
index e6b9b71..931b167 100644
|
||||
--- a/examples/Makefile
|
||||
+++ b/examples/Makefile
|
||||
@@ -26,14 +26,20 @@ ifneq ($V,1)
|
||||
Q ?= @
|
||||
endif
|
||||
|
||||
-#DEBUG = -g -O0
|
||||
-DEBUG = -O3
|
||||
-CC = gcc
|
||||
-INCLUDE = -I/usr/local/include
|
||||
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
-
|
||||
-LDFLAGS = -L/usr/local/lib
|
||||
-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
|
||||
+DESTDIR?=/usr
|
||||
+PREFIX?=/local
|
||||
+
|
||||
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
|
||||
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
|
||||
+
|
||||
+#DEBUG ?= -g -O0
|
||||
+DEBUG ?= -O3
|
||||
+CC ?= gcc
|
||||
+INCLUDE ?= -I$(INCLUDE_DIR)
|
||||
+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
+
|
||||
+LDFLAGS ?= -L$(LIB_DIR)
|
||||
+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm
|
||||
|
||||
# Should not alter anything below this line
|
||||
###############################################################################
|
||||
diff --git a/examples/PiFace/Makefile b/examples/PiFace/Makefile
|
||||
index 4685adc..cfaf902 100644
|
||||
--- a/examples/PiFace/Makefile
|
||||
+++ b/examples/PiFace/Makefile
|
||||
@@ -26,14 +26,20 @@ ifneq ($V,1)
|
||||
Q ?= @
|
||||
endif
|
||||
|
||||
-#DEBUG = -g -O0
|
||||
-DEBUG = -O3
|
||||
-CC = gcc
|
||||
-INCLUDE = -I/usr/local/include
|
||||
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
-
|
||||
-LDFLAGS = -L/usr/local/lib
|
||||
-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
|
||||
+DESTDIR?=/usr
|
||||
+PREFIX?=/local
|
||||
+
|
||||
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
|
||||
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
|
||||
+
|
||||
+#DEBUG ?= -g -O0
|
||||
+DEBUG ?= -O3
|
||||
+CC ?= gcc
|
||||
+INCLUDE ?= -I$(INCLUDE_DIR)
|
||||
+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
+
|
||||
+LDFLAGS ?= -L$(LIB_DIR)
|
||||
+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm
|
||||
|
||||
# Should not alter anything below this line
|
||||
###############################################################################
|
||||
diff --git a/examples/PiGlow/Makefile b/examples/PiGlow/Makefile
|
||||
index acd4818..dabd64e 100644
|
||||
--- a/examples/PiGlow/Makefile
|
||||
+++ b/examples/PiGlow/Makefile
|
||||
@@ -29,10 +29,10 @@ endif
|
||||
#DEBUG = -g -O0
|
||||
DEBUG = -O3
|
||||
CC = gcc
|
||||
-INCLUDE = -I/usr/local/include
|
||||
+INCLUDE = -I../wiringPi -I../wiringPiDev
|
||||
CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
|
||||
-LDFLAGS = -L/usr/local/lib
|
||||
+LDFLAGS = -L../wiringPi -L../wiringPiDev
|
||||
LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
|
||||
|
||||
# Should not alter anything below this line
|
||||
diff --git a/examples/q2w/Makefile b/examples/q2w/Makefile
|
||||
index 6f50fa0..c5e9f6e 100644
|
||||
--- a/examples/q2w/Makefile
|
||||
+++ b/examples/q2w/Makefile
|
||||
@@ -29,10 +29,10 @@ endif
|
||||
#DEBUG = -g -O0
|
||||
DEBUG = -O3
|
||||
CC = gcc
|
||||
-INCLUDE = -I/usr/local/include
|
||||
+INCLUDE = -I../wiringPi -I../devLib
|
||||
CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
|
||||
-LDFLAGS = -L/usr/local/lib
|
||||
+LDFLAGS = -L../wiringPi -L../devLib
|
||||
LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
|
||||
|
||||
###############################################################################
|
||||
diff --git a/gpio/Makefile b/gpio/Makefile
|
||||
index 7dcd090..83ec454 100644
|
||||
--- a/gpio/Makefile
|
||||
+++ b/gpio/Makefile
|
||||
@@ -30,13 +30,17 @@ ifneq ($V,1)
|
||||
Q ?= @
|
||||
endif
|
||||
|
||||
-#DEBUG = -g -O0
|
||||
-DEBUG = -O2
|
||||
-CC = gcc
|
||||
-INCLUDE = -I$(DESTDIR)$(PREFIX)/include
|
||||
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
|
||||
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
|
||||
+BIN_DIR?=$(DESTDIR)$(PREFIX)/bin
|
||||
|
||||
-LDFLAGS = -L$(DESTDIR)$(PREFIX)/lib
|
||||
+#DEBUG ?= -g -O0
|
||||
+DEBUG ?= -O2
|
||||
+CC ?= gcc
|
||||
+INCLUDE ?= -I$(INCLUDE_DIR)
|
||||
+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
+
|
||||
+LDFLAGS ?= -L$(LIB_DIR)
|
||||
LIBS = -lwiringPi -lwiringPiDev -lpthread
|
||||
|
||||
# May not need to alter anything below this line
|
||||
@@ -72,13 +76,10 @@ tags: $(SRC)
|
||||
.PHONY: install
|
||||
install: gpio
|
||||
$Q echo "[Install]"
|
||||
- $Q cp gpio $(DESTDIR)$(PREFIX)/bin
|
||||
-ifneq ($(WIRINGPI_SUID),0)
|
||||
- $Q chown root.root $(DESTDIR)$(PREFIX)/bin/gpio
|
||||
- $Q chmod 4755 $(DESTDIR)$(PREFIX)/bin/gpio
|
||||
-endif
|
||||
- $Q mkdir -p $(DESTDIR)$(PREFIX)/man/man1
|
||||
- $Q cp gpio.1 $(DESTDIR)$(PREFIX)/man/man1
|
||||
+ $Q install -d $(BIN_DIR)
|
||||
+ $Q install -m 4755 -o root -g root gpio $(BIN_DIR)
|
||||
+ $Q install -d $(DESTDIR)$(PREFIX)/share/man/man1
|
||||
+ $Q install -m 644 -o root -g root gpio.1 $(DESTDIR)$(PREFIX)/share/man/man1
|
||||
|
||||
.PHONY: install-deb
|
||||
install-deb: gpio
|
||||
@@ -89,7 +90,7 @@ install-deb: gpio
|
||||
.PHONY: uninstall
|
||||
uninstall:
|
||||
$Q echo "[UnInstall]"
|
||||
- $Q rm -f $(DESTDIR)$(PREFIX)/bin/gpio
|
||||
+ $Q rm -f $(BIN_DIR)/gpio
|
||||
$Q rm -f $(DESTDIR)$(PREFIX)/man/man1/gpio.1
|
||||
|
||||
.PHONY: depend
|
||||
diff --git a/wiringPi/Makefile b/wiringPi/Makefile
|
||||
index 6bbcc5d..5355b74 100644
|
||||
--- a/wiringPi/Makefile
|
||||
+++ b/wiringPi/Makefile
|
||||
@@ -25,19 +25,23 @@ VERSION=$(shell cat ../VERSION)
|
||||
DESTDIR?=/usr
|
||||
PREFIX?=/local
|
||||
|
||||
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
|
||||
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
|
||||
+
|
||||
LDCONFIG?=ldconfig
|
||||
|
||||
ifneq ($V,1)
|
||||
Q ?= @
|
||||
endif
|
||||
|
||||
-STATIC=libwiringPi.a
|
||||
-DYNAMIC=libwiringPi.so.$(VERSION)
|
||||
+BASE_NAME=libwiringPi
|
||||
+STATIC=$(BASE_NAME).a
|
||||
+DYNAMIC=$(BASE_NAME).so.$(VERSION)
|
||||
|
||||
-#DEBUG = -g -O0
|
||||
-DEBUG = -O2
|
||||
-CC = gcc
|
||||
-INCLUDE = -I.
|
||||
+#DEBUG ?= -g -O0
|
||||
+DEBUG ?= -O2
|
||||
+CC ?= gcc
|
||||
+INCLUDE ?= -I.
|
||||
DEFS = -D_GNU_SOURCE
|
||||
CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC
|
||||
|
||||
@@ -89,17 +93,17 @@ $(STATIC): $(OBJ)
|
||||
|
||||
$(DYNAMIC): $(OBJ)
|
||||
$Q echo "[Link (Dynamic)]"
|
||||
- $Q $(CC) -shared -Wl,-soname,libwiringPi.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPi.so.$(VERSION) -lpthread $(OBJ)
|
||||
+ $Q $(CC) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ)
|
||||
|
||||
.c.o:
|
||||
$Q echo [Compile] $<
|
||||
- $Q $(CC) -c $(CFLAGS) $< -o $@
|
||||
+ $Q $(CC) -c $(CFLAGS) -fPIC $< -o $@
|
||||
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
$Q echo "[Clean]"
|
||||
- $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPi.*
|
||||
+ $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak $(BASE_NAME).so* $(BASE_NAME).a
|
||||
|
||||
.PHONY: tags
|
||||
tags: $(SRC)
|
||||
@@ -110,22 +114,22 @@ tags: $(SRC)
|
||||
.PHONY: install
|
||||
install: $(DYNAMIC)
|
||||
$Q echo "[Install Headers]"
|
||||
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
|
||||
- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
|
||||
+ $Q install -m 0755 -d $(INCLUDE_DIR)
|
||||
+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
|
||||
$Q echo "[Install Dynamic Lib]"
|
||||
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
|
||||
- $Q install -m 0755 libwiringPi.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION)
|
||||
- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) $(DESTDIR)/lib/libwiringPi.so
|
||||
- $Q $(LDCONFIG)
|
||||
+ $Q install -m 0755 -d $(LIB_DIR)
|
||||
+ $Q install -m 0755 $(BASE_NAME).so $(LIB_DIR)/$(DYNAMIC)
|
||||
+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so
|
||||
+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
|
||||
|
||||
.PHONY: install-static
|
||||
install-static: $(STATIC)
|
||||
$Q echo "[Install Headers]"
|
||||
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
|
||||
- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
|
||||
+ $Q install -m 0755 -d $(INCLUDE_DIR)
|
||||
+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
|
||||
$Q echo "[Install Static Lib]"
|
||||
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
|
||||
- $Q install -m 0755 libwiringPi.a $(DESTDIR)$(PREFIX)/lib
|
||||
+ $Q install -m 0755 -d $(LIB_DIR)
|
||||
+ $Q install -m 0755 $(STATIC) $(LIB_DIR)
|
||||
|
||||
.PHONY: install-deb
|
||||
install-deb: $(DYNAMIC)
|
||||
@@ -140,9 +144,11 @@ install-deb: $(DYNAMIC)
|
||||
.PHONY: uninstall
|
||||
uninstall:
|
||||
$Q echo "[UnInstall]"
|
||||
- $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS)
|
||||
- $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPi.*
|
||||
- $Q $(LDCONFIG)
|
||||
+ $Q cd $(INCLUDE_DIR) && rm -f $(HEADERS)
|
||||
+ $Q rm -f $(LIB_DIR)/$(STATIC)
|
||||
+ $Q rm -f $(LIB_DIR)/$(DYNAMIC)
|
||||
+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so
|
||||
+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
|
||||
|
||||
|
||||
.PHONY: depend
|
||||
--
|
||||
2.1.4
|
||||
|
||||
34
recipes-devtools/wiringPi/wiringpi_git.bb
Normal file
34
recipes-devtools/wiringPi/wiringpi_git.bb
Normal file
@@ -0,0 +1,34 @@
|
||||
DESCRIPTION = "A library to control Raspberry Pi GPIO channels"
|
||||
HOMEPAGE = "https://projects.drogon.net/raspberry-pi/wiringpi/"
|
||||
SECTION = "devel/libs"
|
||||
LICENSE = "LGPLv3+"
|
||||
LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
|
||||
|
||||
# tag 2.29
|
||||
SRCREV = "d79506694d7ba1c3da865d095238289d6175057d"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SRC_URI = "\
|
||||
git://git.drogon.net/wiringPi \
|
||||
file://0001-Add-initial-cross-compile-support.patch \
|
||||
"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
CFLAGS_prepend = "-I${S}/wiringPi -I${S}/devLib"
|
||||
|
||||
EXTRA_OEMAKE += "'INCLUDE_DIR=${D}${includedir}' 'LIB_DIR=${D}${libdir}'"
|
||||
EXTRA_OEMAKE += "'DESTDIR=${D}/usr' 'PREFIX=""'"
|
||||
|
||||
do_compile() {
|
||||
oe_runmake -C devLib
|
||||
oe_runmake -C wiringPi
|
||||
oe_runmake -C gpio 'LDFLAGS=${LDFLAGS} -L${S}/wiringPi -L${S}/devLib'
|
||||
}
|
||||
|
||||
do_install() {
|
||||
oe_runmake -C devLib install
|
||||
oe_runmake -C wiringPi install
|
||||
oe_runmake -C gpio install
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
DESCRIPTION = "Scripts to support a first run wizard on the Raspberry Pi."
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
|
||||
|
||||
DEPENDS = "zenity dbus"
|
||||
RDEPENDS_${PN} = "slim sudo zenity dbus"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
PR = "r2"
|
||||
|
||||
SRC_URI = " \
|
||||
file://LICENSE \
|
||||
file://first-run-wizard.sh \
|
||||
file://rpi_startup.sh \
|
||||
file://rc.firstrun \
|
||||
"
|
||||
|
||||
inherit update-rc.d
|
||||
|
||||
INITSCRIPT_NAME = "rpi-run-init"
|
||||
INITSCRIPT_PARAMS = "start 29 2 3 4 5 . stop 29 2 3 4 5 ."
|
||||
|
||||
do_install() {
|
||||
install -d ${D}${prefix}/rpi/scripts/
|
||||
install -m 0755 ${WORKDIR}/first-run-wizard.sh ${D}${prefix}/rpi/scripts/
|
||||
install -m 0755 ${WORKDIR}/rpi_startup.sh ${D}${prefix}/rpi/scripts/
|
||||
|
||||
install -d ${D}${sysconfdir}/init.d/
|
||||
install -m 0755 ${WORKDIR}/rc.firstrun ${D}${sysconfdir}/init.d/rpi-run-init
|
||||
|
||||
install -d ${D}${sysconfdir}/rpi/
|
||||
}
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
FILES_${PN} += "${prefix} ${sysconfdir}"
|
||||
@@ -1,339 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
@@ -1,213 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Initially based on the scripts by JohnX/Mer Project - http://wiki.maemo.org/Mer/
|
||||
# Reworked for the OpenPandora - John Willis/Michael Mrozek
|
||||
# Quickly 'hacked' for the Raspberry Pi to provide a simple 1st boot wizard.
|
||||
|
||||
# You can start the wizard from the shell using 'xinit ./first-boot-init.sh'
|
||||
|
||||
export LANG=en_GB.UTF-8
|
||||
export GTK2_RC_FILES=/usr/share/themes/Xfce/gtk-2.0/gtkrc
|
||||
|
||||
# Ensure there is a wheel group for sudoers to be put into.
|
||||
# TODO: Do this somewhere better.
|
||||
groupadd wheel
|
||||
|
||||
# Default error message (should a user hit cancel, validation fail etc.).
|
||||
ERROR_WINDOW='zenity --title="Error" --error --text="Sorry! Please try again." --timeout 6'
|
||||
|
||||
RESET_ROOT="yes"
|
||||
|
||||
DISPLAY=:0 xset s off
|
||||
|
||||
# Greet the user.
|
||||
|
||||
if zenity --question --title="Pandoras Box has been opened." --text="Welcome!\n\nPandora's Box has been opened.\n\nThis wizard will help you setting up your new OpenPandora handheld before the first use.\n\nYou will be asked a few simple questions to personalise and configure your device.\n\nDo you want to set up your unit now or shut the unit down and do it later?" --ok-label="Start now" --cancel-label="Shutdown" ; then
|
||||
# ----
|
||||
|
||||
# Reset ROOT's password to something random
|
||||
|
||||
# (I know the image build sets the password to something pusdo-random)
|
||||
# (ok, urandom is not 100% secure but it's good enough for our needs)
|
||||
|
||||
if [ $RESET_ROOT == "yes" ]; then
|
||||
rootpwd=$(cat /dev/urandom|tr -dc "a-zA-Z0-9-_\$\?"|fold -w 30|head -n 1)
|
||||
passwd "root" <<EOF
|
||||
$rootpwd
|
||||
$rootpwd
|
||||
EOF
|
||||
rootpwd=""
|
||||
fi
|
||||
|
||||
# ----
|
||||
|
||||
# Setup swap partition if the user has placed an SD with a swap partition on it.
|
||||
|
||||
swap_part=$(sfdisk -l /dev/mmcblk? | grep swap | cut -d" " -f1)
|
||||
if [ x$swap_part != x ] ; then
|
||||
use_swap=$(zenity --title="Enable swap?" --text "Swap partition found on SD card. Would you like to use it?\n\nWarning: This SD must remain in the system to use the swap." --list --radiolist --column " " --column "Answer" TRUE "Use swap on $swap_part" FALSE "Do not use swap")
|
||||
if [ "$use_swap" = "Use swap on $swap_part" ] ; then
|
||||
swapon $swap_part
|
||||
echo "$swap_part none swap sw 0 0" >> /etc/fstab
|
||||
fi
|
||||
fi
|
||||
|
||||
# ----
|
||||
|
||||
# Setup the full name and username.
|
||||
|
||||
while ! name=$(zenity --title="Please enter your full name" --entry --text "Please enter your full name.") || [ "x$name" = "x" ] ; do
|
||||
zenity --title="Error" --error --text="Please try again." --timeout 6
|
||||
done
|
||||
|
||||
username_guess=$(echo "$name" | cut -d" " -f1 | tr A-Z a-z)
|
||||
|
||||
while ! username=$(zenity --title="Enter your username" --entry --text "Please choose a short username.\n\nIt should be all lowercase and contain only letters and numbers." --entry-text "$username_guess") || [ "x$username" = "x" ] ; do
|
||||
zenity --title="Error" --error --text="Please try again." --timeout 6
|
||||
done
|
||||
|
||||
while ! useradd -c "$name,,," -G adm,audio,video,netdev,wheel,plugdev,users "$username" ; do
|
||||
username=$(zenity --title="Please check username" --entry --text "Please ensure that your username consists of only\nletters and numbers and is not already in use on the system." --entry-text "$username")
|
||||
done
|
||||
|
||||
# ----
|
||||
|
||||
# Setup the users password.
|
||||
|
||||
password=""
|
||||
while [ x$password = x ] ; do
|
||||
password1=$(zenity --title=Password --entry --text="Please choose a new password." --hide-text)
|
||||
password2=$(zenity --title=Confirm --entry --text="Confirm your new password." --hide-text)
|
||||
if [ $password1 != $password2 ] ; then
|
||||
zenity --title="Error" --error --text="The passwords do not match.\n\nPlease try again." --timeout 6
|
||||
else
|
||||
if [ x$password1 = x ] ; then
|
||||
zenity --title="Error" --error --text="Password cannot be blank!\n\nPlease try again." --timeout 6
|
||||
else
|
||||
password=$password1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
passwd "$username" <<EOF
|
||||
$password
|
||||
$password
|
||||
EOF
|
||||
|
||||
# ----
|
||||
|
||||
# Pick a name for the OpenPandora.
|
||||
|
||||
while ! hostname=$(zenity --title="Name your Pandora" --entry --text "Please choose a name for your OpenPandora.\n\nIt should only contain letters, numbers and dashes, no spaces." --entry-text "$username-openpandora") || [ "x$hostname" = "x" ]; do
|
||||
zenity --title="Error" --error --text="Please try again."
|
||||
done
|
||||
|
||||
|
||||
echo $hostname > /etc/hostname
|
||||
hostname =$(sed 's/ /_/g' /etc/hostname)
|
||||
echo $hostname > /etc/hostname
|
||||
echo "127.0.0.1 localhost.localdomain localhost $hostname" > /etc/hosts
|
||||
hostname -F /etc/hostname
|
||||
|
||||
# Set the correct user for Autologin and enable / disable it.
|
||||
|
||||
if zenity --question --title="Autologin" --text="Do you wish to automatically login at startup?\n\nSecurity warning: This skips the password check on startup" --ok-label="Yes" --cancel-label="No"; then
|
||||
# echo "PREFERED_USER=$username" > /etc/default/autologin
|
||||
sed -i "s/.*default_user.*/default_user $username/g" /etc/slim.conf
|
||||
sed -i 's/.*auto_login.*/auto_login yes/g' /etc/slim.conf
|
||||
else
|
||||
if zenity --question --title="User" --text="Do you wish to have your username automatically populated in the login screen?\n\nNote: This is ideal if you're the only user of the OpenPandora but wish to disable autologin and use a password." --ok-label="Yes" --cancel-label="No"; then
|
||||
sed -i "s/.*default_user.*/default_user $username/g" /etc/slim.conf
|
||||
sed -i 's/.*auto_login.*/auto_login no/g' /etc/slim.conf
|
||||
else
|
||||
sed -i "s/.*default_user.*/default_user/g" /etc/slim.conf
|
||||
sed -i 's/.*auto_login.*/auto_login no/g' /etc/slim.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
# ----
|
||||
|
||||
# Select the default interface and setup SLiM to pass that as a sesion to ~./.xinitrc
|
||||
|
||||
selection=""
|
||||
while [ x$selection = x ]; do
|
||||
selection=$(cat /etc/pandora/conf/gui.conf | awk -F\; '{print $1 "\n" $2 }' | zenity --width=500 --height=300 --title="Select the Default GUI" --list --column "Name" --column "Description" --text "Please select the Default GUI" )
|
||||
if [ x$selection = x ]; then
|
||||
zenity --title="Error" --error --text="Please select a GUI." --timeout=6
|
||||
fi
|
||||
done
|
||||
|
||||
echo $selection
|
||||
|
||||
gui=$(grep $selection /etc/pandora/conf/gui.conf | awk -F\; '{print $3}')
|
||||
stopcommand=$(grep $selection /etc/pandora/conf/gui.conf | awk -F\; '{print $4}')
|
||||
|
||||
echo $gui
|
||||
|
||||
if [ $gui ]; then
|
||||
sed -i "s/.*DEFAULT_SESSION=.*/DEFAULT_SESSION=$gui/g" /home/$username/.xinitrc
|
||||
echo $selection selected as default interface
|
||||
zenity --info --title="Selected session" --text "You selected $selection as default setting. You can always change your default GUI later." --timeout 6
|
||||
else
|
||||
sed -i 's/.*DEFAULT_SESSION=.*/DEFAULT_SESSION=startxfce4/g' /home/$username/.xinitrc
|
||||
fi
|
||||
|
||||
# ----
|
||||
|
||||
# Set the timezone and date/time
|
||||
|
||||
while ! area=$(zenity --list --title "Select your time zone" --text="Please select your area" --column="Select your area" --print-column=1 "Africa" "America" "Asia" "Australia" "Europe" "Pacific" --width=500 --height=260) || [ "x$area" = "x" ] ; do
|
||||
zenity --title="Error" --error --text="Please select your area." --timeout=6
|
||||
done
|
||||
|
||||
while ! timezone=$(ls -1 /usr/share/zoneinfo/$area | zenity ---width=500 --height=200 --title="Select your closest location" --list --column "Closest Location" --text "Please select the location closest to you") || [ "x$timezone" = "x" ] ; do
|
||||
zenity --title="Error" --error --text="Please select your location." --timeout=6
|
||||
done
|
||||
|
||||
echo $timezone
|
||||
rm /etc/localtime && ln -s /usr/share/zoneinfo/$area/$timezone /etc/localtime
|
||||
|
||||
# Make sure we clean up any leading zeros in the day (as Zenity freaks out)
|
||||
date_d=`date +%d | sed 's/^0//'`
|
||||
date_m=`date +%m | sed 's/^0//'`
|
||||
date_y=`date +%Y`
|
||||
|
||||
while ! date=$(zenity --calendar --text="Please select the current date" --title "Please select the current date" --day=$date_d --month=$date_m --year=$date_y --date-format="%Y%m%d" --width=500) || [ "x$date" = "x" ] ; do
|
||||
zenity --title="Error" --error --text="Please select the date." --timeout 6
|
||||
done
|
||||
|
||||
echo $date
|
||||
|
||||
time_h=`date +%H`
|
||||
time_m=`date +%M`
|
||||
|
||||
while ! time=$(zenity --title="Enter actual time" --entry --text "Please enter the time in 24hour format (HH:MM):" --entry-text "$time_h:$time_m") || [ "x$time" = "x" ] ; do
|
||||
zenity --title="Error" --error --text="Please input the time." --timeout 6
|
||||
done
|
||||
|
||||
while ! date -d $time ; do
|
||||
time=$(zenity --title="Enter actual time" --entry --text "Please enter the time in 24hour format (HH:MM):" --entry-text "$time_h:$time_m")
|
||||
done
|
||||
|
||||
date +%Y%m%d -s $date
|
||||
date +%H:%M -s $time
|
||||
|
||||
# ----
|
||||
|
||||
# Finsh up and boot the system.
|
||||
|
||||
zenity --info --title="Finished" --text "This concludes the First Boot Wizard.\n\nYour chosen interface will start in a few seconds\n\nThankyou for buying the OpenPandora. Enjoy using the device!" --timeout 6
|
||||
|
||||
# ----
|
||||
|
||||
# Write the control file so this script is not run on next boot
|
||||
# (hackish I know but I want the flexability to drop a new script in later esp. in the early firmwares).
|
||||
|
||||
touch /etc/rpi/first-boot
|
||||
# Make the control file writeable by all to allow the user to delete to rerun the wizard on next boot.
|
||||
chmod 0666 /etc/rpi/first-boot
|
||||
|
||||
# ----
|
||||
else
|
||||
poweroff
|
||||
fi
|
||||
@@ -1,73 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
### BEGIN INIT INFO
|
||||
# Provides: rpiruninit
|
||||
# Required-Start: #adjust
|
||||
# Required-Stop: #adjust
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
### END INIT INFO
|
||||
|
||||
DESC="Raspberry Pi Startup Script Deamon"
|
||||
NAME="rpiruninit"
|
||||
|
||||
PID=`pidof -o %PPID -x rpi_startup.sh`
|
||||
OPRUNINIT='/usr/rpi/scripts/rpi_startup.sh'
|
||||
|
||||
d_stop() {
|
||||
if [ $PID ]
|
||||
then
|
||||
kill $PID
|
||||
else
|
||||
echo "$DESC: $NAME not running."
|
||||
fi
|
||||
}
|
||||
|
||||
d_start() {
|
||||
if [ $PID ]
|
||||
then
|
||||
echo "$DESC: $NAME already running."
|
||||
else
|
||||
$OPRUNINIT
|
||||
fi
|
||||
}
|
||||
|
||||
d_reload() {
|
||||
if [ $PID ]
|
||||
then
|
||||
kill -HUP $PID
|
||||
else
|
||||
echo "$DESC: $NAME not running."
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting $DESC: $NAME"
|
||||
d_start
|
||||
echo "."
|
||||
;;
|
||||
stop)
|
||||
echo -n "Stopping $DESC: $NAME"
|
||||
d_stop
|
||||
echo "."
|
||||
;;
|
||||
reload)
|
||||
echo -n "Reloading $DESC: $NAME"
|
||||
d_reload
|
||||
echo "."
|
||||
;;
|
||||
restart|force-reload)
|
||||
echo -n "Restarting $DESC: $NAME"
|
||||
d_stop
|
||||
sleep 1
|
||||
d_start
|
||||
echo "."
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
OP_CHECKFILE='/etc/rpi/first-boot'
|
||||
OP_FIRSTRUN='xinit /usr/rpi/scripts/first-run-wizard.sh'
|
||||
|
||||
[ -f $OP_CHECKFILE ] && echo -e "\nOP_STARTUP: $OP_CHECKFILE exists, not first boot." || $OP_FIRSTRUN
|
||||
@@ -0,0 +1,26 @@
|
||||
--- userland-fb11b39d97371c076eef7c85bbcab5733883a41e.orig/interface/vcos/vcos_types.h
|
||||
+++ userland-fb11b39d97371c076eef7c85bbcab5733883a41e/interface/vcos/vcos_types.h
|
||||
@@ -121,10 +121,10 @@
|
||||
#if defined(NDEBUG)
|
||||
|
||||
#ifdef __GNUC__
|
||||
-# define VCOS_INLINE_DECL extern __inline__
|
||||
+# define VCOS_INLINE_DECL extern
|
||||
# define VCOS_INLINE_IMPL static __inline__
|
||||
#else
|
||||
-# define VCOS_INLINE_DECL static _VCOS_INLINE /* declare a func */
|
||||
+# define VCOS_INLINE_DECL extern
|
||||
# define VCOS_INLINE_IMPL static _VCOS_INLINE /* implement a func inline */
|
||||
#endif
|
||||
|
||||
--- userland-fb11b39d97371c076eef7c85bbcab5733883a41e.orig/interface/vcos/pthreads/vcos_platform_types.h
|
||||
+++ userland-fb11b39d97371c076eef7c85bbcab5733883a41e/interface/vcos/pthreads/vcos_platform_types.h
|
||||
@@ -61,7 +61,7 @@
|
||||
#define VCOS_ASSERT_MSG(...) ((VCOS_ASSERT_LOGGING && !VCOS_ASSERT_LOGGING_DISABLE) ? vcos_pthreads_logging_assert(__FILE__, __func__, __LINE__, __VA_ARGS__) : (void)0)
|
||||
|
||||
#define VCOS_INLINE_BODIES
|
||||
-#define VCOS_INLINE_DECL extern __inline__
|
||||
+#define VCOS_INLINE_DECL extern
|
||||
#define VCOS_INLINE_IMPL static __inline__
|
||||
|
||||
#ifdef __cplusplus
|
||||
22
recipes-graphics/userland/userland/0002-fix-musl-build.patch
Normal file
22
recipes-graphics/userland/userland/0002-fix-musl-build.patch
Normal file
@@ -0,0 +1,22 @@
|
||||
--- userland-d4aa617de3b196399bb8e2ce32e181768cb52179.orig/host_applications/linux/apps/raspicam/RaspiVidYUV.c
|
||||
+++ userland-d4aa617de3b196399bb8e2ce32e181768cb52179/host_applications/linux/apps/raspicam/RaspiVidYUV.c
|
||||
@@ -106,8 +106,6 @@
|
||||
/// Run/record forever
|
||||
#define WAIT_METHOD_FOREVER 4
|
||||
|
||||
-extern FILE *stderr, *stdout;
|
||||
-
|
||||
int mmal_status_to_int(MMAL_STATUS_T status);
|
||||
static void signal_handler(int signal_number);
|
||||
|
||||
--- userland-d4aa617de3b196399bb8e2ce32e181768cb52179.orig/host_applications/linux/libs/debug_sym/debug_sym.c
|
||||
+++ userland-d4aa617de3b196399bb8e2ce32e181768cb52179/host_applications/linux/libs/debug_sym/debug_sym.c
|
||||
@@ -67,6 +67,8 @@
|
||||
# else
|
||||
# define PAGE_SIZE 4096
|
||||
# endif
|
||||
+#endif
|
||||
+#ifndef PAGE_MASK
|
||||
#define PAGE_MASK (~(PAGE_SIZE - 1))
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
From 05554d8486050546efc3c0605015786c8b267d19 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sun, 9 Aug 2015 23:58:17 -0700
|
||||
Subject: [PATCH 1/2] set VMCS_INSTALL_PREFIX to /usr
|
||||
|
||||
in OE we dont use /opt/vc but standard prefix
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Submitted
|
||||
makefiles/cmake/vmcs.cmake | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/makefiles/cmake/vmcs.cmake b/makefiles/cmake/vmcs.cmake
|
||||
index 0f8641b..e9d576d 100644
|
||||
--- a/makefiles/cmake/vmcs.cmake
|
||||
+++ b/makefiles/cmake/vmcs.cmake
|
||||
@@ -10,7 +10,7 @@ INCLUDE(CPack)
|
||||
if (ANDROID)
|
||||
SET(VMCS_INSTALL_PREFIX "/vendor/brcm/islands" CACHE PATH "Prefix prepended to install directories" FORCE)
|
||||
else()
|
||||
- SET(VMCS_INSTALL_PREFIX "/opt/vc" CACHE PATH "Prefix prepended to install directories" FORCE)
|
||||
+ SET(VMCS_INSTALL_PREFIX "/usr" CACHE PATH "Prefix prepended to install directories" FORCE)
|
||||
endif()
|
||||
|
||||
SET(CMAKE_INSTALL_PREFIX "${VMCS_INSTALL_PREFIX}" CACHE INTERNAL "Prefix
|
||||
--
|
||||
2.1.4
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
From ef43e09c2d13b88c2e92cffc94b68003afcb1f13 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sun, 9 Aug 2015 23:59:32 -0700
|
||||
Subject: [PATCH 2/2] cmake: generate and install pkgconfig files
|
||||
|
||||
many packages expect packageconfig support especially for detecting EGL
|
||||
libraries. This patch helps in compiling those packages on RPi
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Submitted
|
||||
CMakeLists.txt | 10 +++++++++-
|
||||
pkgconfig/bcm_host.pc.in | 10 ++++++++++
|
||||
pkgconfig/egl.pc.in | 12 ++++++++++++
|
||||
pkgconfig/glesv2.pc.in | 12 ++++++++++++
|
||||
pkgconfig/vg.pc.in | 11 +++++++++++
|
||||
5 files changed, 54 insertions(+), 1 deletion(-)
|
||||
create mode 100644 pkgconfig/bcm_host.pc.in
|
||||
create mode 100644 pkgconfig/egl.pc.in
|
||||
create mode 100644 pkgconfig/glesv2.pc.in
|
||||
create mode 100644 pkgconfig/vg.pc.in
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index d8f776c..f15dc2b 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -105,6 +105,14 @@ set(vmcs_host_apps_VERSION_MAJOR 1)
|
||||
set(vmcs_host_apps_VERSION_MINOR 0)
|
||||
|
||||
include_directories("${PROJECT_BINARY_DIR}")
|
||||
-
|
||||
+include(FindPkgConfig QUIET)
|
||||
+if(PKG_CONFIG_FOUND)
|
||||
+ # Produce a pkg-config file
|
||||
+ foreach(PCFILE bcm_host.pc egl.pc glesv2.pc vg.pc)
|
||||
+ configure_file("pkgconfig/${PCFILE}.in" "${PCFILE}" @ONLY)
|
||||
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PCFILE}"
|
||||
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
|
||||
+ endforeach()
|
||||
+endif()
|
||||
# Remove cache entry, if one added by command line
|
||||
unset(KHRONOS_EGL_PLATFORM CACHE)
|
||||
diff --git a/pkgconfig/bcm_host.pc.in b/pkgconfig/bcm_host.pc.in
|
||||
new file mode 100644
|
||||
index 0000000..c7237c5
|
||||
--- /dev/null
|
||||
+++ b/pkgconfig/bcm_host.pc.in
|
||||
@@ -0,0 +1,10 @@
|
||||
+prefix=@CMAKE_INSTALL_PREFIX@
|
||||
+exec_prefix=${prefix}
|
||||
+libdir=${exec_prefix}/lib
|
||||
+includedir=${prefix}/include
|
||||
+
|
||||
+Name: bcm_host
|
||||
+Description: Broadcom VideoCore host API library
|
||||
+Version: 1
|
||||
+Libs: -L${libdir} -lbcm_host -lvcos -lvchiq_arm -pthread
|
||||
+Cflags: -I${includedir} -I${includedir}/interface/vmcs_host/linux -I${includedir}/interface/vcos/pthreads -DUSE_VCHIQ_ARM
|
||||
diff --git a/pkgconfig/egl.pc.in b/pkgconfig/egl.pc.in
|
||||
new file mode 100644
|
||||
index 0000000..4e3d6ac
|
||||
--- /dev/null
|
||||
+++ b/pkgconfig/egl.pc.in
|
||||
@@ -0,0 +1,12 @@
|
||||
+prefix=@CMAKE_INSTALL_PREFIX@
|
||||
+exec_prefix=${prefix}
|
||||
+libdir=${exec_prefix}/lib
|
||||
+includedir=${prefix}/include
|
||||
+
|
||||
+Name: EGL
|
||||
+Description: Fake EGL package for RPi
|
||||
+Version: 10
|
||||
+Requires: bcm_host
|
||||
+Libs: -L${libdir} -lEGL
|
||||
+Cflags: -I${includedir}
|
||||
+
|
||||
diff --git a/pkgconfig/glesv2.pc.in b/pkgconfig/glesv2.pc.in
|
||||
new file mode 100644
|
||||
index 0000000..5900225
|
||||
--- /dev/null
|
||||
+++ b/pkgconfig/glesv2.pc.in
|
||||
@@ -0,0 +1,12 @@
|
||||
+prefix=@CMAKE_INSTALL_PREFIX@
|
||||
+exec_prefix=${prefix}
|
||||
+libdir=${exec_prefix}/lib
|
||||
+includedir=${prefix}/include
|
||||
+
|
||||
+Name: GLESv2
|
||||
+Description: Fake GL ES 2 package for RPi
|
||||
+Version: 10
|
||||
+Requires: bcm_host
|
||||
+Libs: -L${libdir} -lGLESv2
|
||||
+Cflags: -I${includedir}
|
||||
+
|
||||
diff --git a/pkgconfig/vg.pc.in b/pkgconfig/vg.pc.in
|
||||
new file mode 100644
|
||||
index 0000000..8c39c98
|
||||
--- /dev/null
|
||||
+++ b/pkgconfig/vg.pc.in
|
||||
@@ -0,0 +1,11 @@
|
||||
+prefix=@CMAKE_INSTALL_PREFIX@
|
||||
+exec_prefix=${prefix}
|
||||
+libdir=${exec_prefix}/lib
|
||||
+includedir=${prefix}/include
|
||||
+
|
||||
+Name: OpenVG
|
||||
+Description: Fake OpenVG package for RPi
|
||||
+Version: 10
|
||||
+Requires: bcm_host
|
||||
+Libs: -L${libdir} -lOpenVG
|
||||
+Cflags: -I${includedir}
|
||||
--
|
||||
2.1.4
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/host_applications/linux/apps/smem/smem.c b/host_applications/linux/apps/smem/smem.c
|
||||
index f780b79..618580e 100644
|
||||
--- a/host_applications/linux/apps/smem/smem.c
|
||||
+++ b/host_applications/linux/apps/smem/smem.c
|
||||
@@ -192,7 +192,7 @@ int main( int argc, char **argv )
|
||||
int opt;
|
||||
int opt_alloc = 0;
|
||||
int opt_status = 0;
|
||||
- uint32_t alloc_size;
|
||||
+ uint32_t alloc_size = 0;
|
||||
int opt_pid = -1;
|
||||
VCSM_STATUS_T status_mode = VCSM_STATUS_NONE;
|
||||
|
||||
@@ -5,35 +5,52 @@ vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG."
|
||||
LICENSE = "Broadcom"
|
||||
LIC_FILES_CHKSUM = "file://LICENCE;md5=957f6640d5e2d2acfce73a36a56cb32f"
|
||||
|
||||
PR = "r1"
|
||||
PR = "r5"
|
||||
|
||||
PROVIDES = "virtual/libgles2 \
|
||||
virtual/egl"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
SRCREV = "8700279495e266378d36092ccf86424f0ee2539f"
|
||||
SRC_URI = "git://github.com/raspberrypi/userland.git;protocol=git;branch=master \
|
||||
"
|
||||
SRCBRANCH = "master"
|
||||
SRCFORK = "raspberrypi"
|
||||
SRCREV = "40e377862410371a9962db79b81fd4f0f266430a"
|
||||
|
||||
SRC_URI = "\
|
||||
git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \
|
||||
file://0001-fix-gcc-5.x-inlines.patch \
|
||||
file://0002-fix-musl-build.patch \
|
||||
file://0003-fix-alloc-size-uninitialized.patch \
|
||||
file://0002-set-VMCS_INSTALL_PREFIX-to-usr.patch \
|
||||
file://0003-cmake-generate-and-install-pkgconfig-files.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit cmake
|
||||
inherit cmake pkgconfig
|
||||
|
||||
EXTRA_OECMAKE = " \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
"
|
||||
# The compiled binaries don't provide sonames.
|
||||
SOLIBS = "${SOLIBSDEV}"
|
||||
EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS='-Wl,--no-as-needed'"
|
||||
CFLAGS_append = " -fPIC"
|
||||
|
||||
do_install_append() {
|
||||
mkdir -p ${D}/${prefix}
|
||||
mv ${D}/opt/vc/* ${D}/${prefix}
|
||||
rm -rf ${D}/opt
|
||||
do_install_append () {
|
||||
for f in `find ${D}${includedir}/interface/vcos/ -name "*.h"`; do
|
||||
sed -i 's/include "vcos_platform.h"/include "pthreads\/vcos_platform.h"/g' ${f}
|
||||
sed -i 's/include "vcos_futex_mutex.h"/include "pthreads\/vcos_futex_mutex.h"/g' ${f}
|
||||
sed -i 's/include "vcos_platform_types.h"/include "pthreads\/vcos_platform_types.h"/g' ${f}
|
||||
done
|
||||
}
|
||||
|
||||
FILES_${PN} += "${libdir}/*${SOLIBS}"
|
||||
FILES_${PN}-dev = "${includedir} \
|
||||
# Shared libs from userland package build aren't versioned, so we need
|
||||
# to force the .so files into the runtime package (and keep them
|
||||
# out of -dev package).
|
||||
FILES_SOLIBSDEV = ""
|
||||
|
||||
FILES_${PN} += " \
|
||||
${libdir}/*.so \
|
||||
${libdir}/plugins"
|
||||
FILES_${PN}-dev += "${includedir} \
|
||||
${prefix}/src"
|
||||
FILES_${PN}-doc += "${datadir}/install"
|
||||
FILES_${PN}-dbg += "${libdir}/plugins/.debug"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
|
||||
CONFLICTS = "vc-graphics"
|
||||
|
||||
VCDIR = "hardfp/opt/vc"
|
||||
require vc-graphics.inc
|
||||
|
||||
PR = "${INCPR}.0"
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
|
||||
CONFLICTS = "vc-graphics-hardfp"
|
||||
|
||||
VCDIR = "opt/vc"
|
||||
require vc-graphics.inc
|
||||
|
||||
PR = "${INCPR}.0"
|
||||
|
||||
@@ -6,13 +6,14 @@ LIC_FILES_CHKSUM = "file://LICENCE;md5=86e53f5f5909ee66900418028de11780"
|
||||
PROVIDES = "virtual/libgles2 virtual/egl"
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
include ../common/firmware.inc
|
||||
include recipes-bsp/common/firmware.inc
|
||||
|
||||
SRC_URI = "git://github.com/raspberrypi/firmware.git;protocol=git;branch=master\
|
||||
file://egl.pc \
|
||||
file://vchiq.sh"
|
||||
SRC_URI += " \
|
||||
file://egl.pc \
|
||||
file://vchiq.sh \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git/${VCDIR}"
|
||||
S = "${RPIFW_S}/${VCDIR}"
|
||||
|
||||
INCPR = "r1"
|
||||
|
||||
@@ -48,6 +49,8 @@ INITSCRIPT_PARAMS = "start 03 S ."
|
||||
FILES_${PN} = "${bindir}/* \
|
||||
${sbindir}/* \
|
||||
${libdir}/lib*.so \
|
||||
${sysconfdir}/init.d"
|
||||
${sysconfdir}/init.d \
|
||||
${libdir}/plugins"
|
||||
FILES_${PN}-dev = "${libdir}/pkgconfig \
|
||||
${includedir}"
|
||||
FILES_${PN}-dbg += "${libdir}/plugins/.debug"
|
||||
@@ -1,16 +1,10 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
# Don't forget to bump PRINC if you update the extra files.
|
||||
PRINC := "${@int(PRINC) + 5}"
|
||||
SRC_URI_append_rpi = " file://xorg.conf.d/10-evdev.conf "
|
||||
|
||||
THISDIR := "${@os.path.dirname(bb.data.getVar('FILE', d, True))}"
|
||||
FILESPATH =. "${@base_set_filespath(["${THISDIR}/${PN}"], d)}:"
|
||||
|
||||
SRC_URI_append_raspberrypi = " file://xorg.conf.d/* "
|
||||
|
||||
do_install_append_raspberrypi () {
|
||||
do_install_append_rpi () {
|
||||
install -d ${D}/${sysconfdir}/X11/xorg.conf.d/
|
||||
install -m 0644 ${WORKDIR}/xorg.conf.d/* ${D}/${sysconfdir}/X11/xorg.conf.d/
|
||||
}
|
||||
|
||||
FILES_${PN}_raspberrypi += "${sysconfdir}/X11/xorg.conf ${sysconfdir}/X11/xorg.conf.d/*"
|
||||
FILES_${PN}_rpi += "${sysconfdir}/X11/xorg.conf ${sysconfdir}/X11/xorg.conf.d/*"
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
require recipes-kernel/linux-libc-headers/linux-libc-headers.inc
|
||||
|
||||
PR = "r0"
|
||||
|
||||
PROVIDES = "linux-libc-headers"
|
||||
RPROVIDES_${PN}-dev = "linux-libc-headers-dev"
|
||||
RPROVIDES_${PN}-dbg = "linux-libc-headers-dbg"
|
||||
|
||||
SRCREV = "10182a3bc434b27740f81c2b836a1af943060241"
|
||||
SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.2.27 \
|
||||
"
|
||||
S = "${WORKDIR}/git"
|
||||
67
recipes-kernel/linux/linux-raspberrypi.inc
Normal file
67
recipes-kernel/linux/linux-raspberrypi.inc
Normal file
@@ -0,0 +1,67 @@
|
||||
require linux.inc
|
||||
inherit linux-raspberrypi-base
|
||||
|
||||
DESCRIPTION = "Linux Kernel for Raspberry Pi"
|
||||
SECTION = "kernel"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
|
||||
|
||||
SRC_URI += " \
|
||||
file://defconfig \
|
||||
"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
PE = "1"
|
||||
PV = "${LINUX_VERSION}+git${SRCPV}"
|
||||
|
||||
# NOTE: For now we pull in the default config from the RPi kernel GIT tree.
|
||||
KERNEL_DEFCONFIG_raspberrypi ?= "bcmrpi_defconfig"
|
||||
KERNEL_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig"
|
||||
|
||||
# CMDLINE for raspberrypi
|
||||
CMDLINE = "dwc_otg.lpm_enable=0 console=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
|
||||
|
||||
# Add the kernel debugger over console kernel command line option if enabled
|
||||
CMDLINE_append = ' ${@base_conditional("ENABLE_KGDB", "1", "kgdboc=ttyAMA0,115200", "", d)}'
|
||||
|
||||
UDEV_GE_141 ?= "1"
|
||||
|
||||
# Set programmatically some variables during recipe parsing
|
||||
# See http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html#anonymous-python-functions
|
||||
python __anonymous () {
|
||||
kerneltype = d.getVar('KERNEL_IMAGETYPE', True)
|
||||
kerneldt = get_dts(d, d.getVar('LINUX_VERSION', True))
|
||||
d.setVar("KERNEL_DEVICETREE", kerneldt)
|
||||
|
||||
# Add dependency to 'rpi-mkimage-native' package only if RPi bootloader is used with DT-enable kernel
|
||||
if kerneldt:
|
||||
if kerneltype != 'uImage' and len(kerneldt.strip()) > 1:
|
||||
depends = d.getVar("DEPENDS", True)
|
||||
depends = "%s rpi-mkimage-native" % depends
|
||||
d.setVar("DEPENDS", depends)
|
||||
}
|
||||
|
||||
do_kernel_configme_prepend() {
|
||||
install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig || die "No default configuration for ${MACHINE} / ${KERNEL_DEFCONFIG} available."
|
||||
}
|
||||
|
||||
do_install_prepend() {
|
||||
install -d ${D}/lib/firmware
|
||||
}
|
||||
|
||||
do_deploy_append() {
|
||||
# Deploy cmdline.txt
|
||||
install -d ${DEPLOYDIR}/bcm2835-bootfiles
|
||||
echo "${CMDLINE}" > ${DEPLOYDIR}/bcm2835-bootfiles/cmdline.txt
|
||||
}
|
||||
|
||||
do_rpiboot_mkimage() {
|
||||
if test "x${KERNEL_IMAGETYPE}" != "xuImage" ; then
|
||||
if test -n "${KERNEL_DEVICETREE}"; then
|
||||
# Add RPi bootloader trailer to kernel image to enable DeviceTree support
|
||||
${STAGING_DIR_NATIVE}/usr/lib/rpi-mkimage/mkknlimg --dtok ${KERNEL_OUTPUT} ${KERNEL_OUTPUT}
|
||||
fi
|
||||
fi
|
||||
}
|
||||
addtask rpiboot_mkimage before do_install after do_compile
|
||||
@@ -0,0 +1,263 @@
|
||||
From e73a69601c65103b0e032e6093af0f00a1e1af3a Mon Sep 17 00:00:00 2001
|
||||
From: Florian Meier <florian.meier@koalo.de>
|
||||
Date: Fri, 22 Nov 2013 14:33:38 +0100
|
||||
Subject: [PATCH 1/2] ASoC: Add BCM2708 fixes
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
(cherry-pick remaining parts of
|
||||
730cb8a1216f9da3d097072cd9bb06e0db348172)
|
||||
|
||||
bcm2708-i2s: Update bclk_ratio to more correct values
|
||||
|
||||
Move GPIO setup to hw_params.
|
||||
|
||||
This is used to stop the I2S driver from breaking
|
||||
the GPIO setup for other uses of the PCM interface
|
||||
|
||||
Configure GPIOs for I2S based on revision/card settings
|
||||
|
||||
With RPi model B+, assignment of the I2S GPIO pins has changed.
|
||||
This patch uses the board revision to auto-detect the GPIOs used
|
||||
for I2S. It also allows sound card drivers to set the GPIOs that
|
||||
should be used. This is especially important with the Compute
|
||||
Module.
|
||||
|
||||
bcm2708-i2s: Avoid leak from iomap when accessing gpio
|
||||
|
||||
bcm2708: Eliminate i2s debugfs directory error
|
||||
|
||||
Qualify the two regmap ranges uses by bcm2708-i2s ('-i2s' and '-clk')
|
||||
to avoid the name clash when registering debugfs entries.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Petter Mabäcker <petter@technux.se>
|
||||
|
||||
Conflicts:
|
||||
sound/soc/bcm/Kconfig
|
||||
sound/soc/bcm/Makefile
|
||||
sound/soc/bcm/bcm2708-i2s.c
|
||||
---
|
||||
sound/soc/bcm/bcm2708-i2s.c | 82 ++++++++++++++++++++++++++++++++++++---------
|
||||
sound/soc/bcm/bcm2708-i2s.h | 35 +++++++++++++++++++
|
||||
2 files changed, 102 insertions(+), 15 deletions(-)
|
||||
create mode 100644 sound/soc/bcm/bcm2708-i2s.h
|
||||
|
||||
diff --git a/sound/soc/bcm/bcm2708-i2s.c b/sound/soc/bcm/bcm2708-i2s.c
|
||||
index 9976571..3fcb740 100644
|
||||
--- a/sound/soc/bcm/bcm2708-i2s.c
|
||||
+++ b/sound/soc/bcm/bcm2708-i2s.c
|
||||
@@ -31,6 +31,8 @@
|
||||
* General Public License for more details.
|
||||
*/
|
||||
|
||||
+#include "bcm2708-i2s.h"
|
||||
+
|
||||
#include <linux/init.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/device.h>
|
||||
@@ -38,6 +40,7 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/clk.h>
|
||||
+#include <mach/gpio.h>
|
||||
|
||||
#include <sound/core.h>
|
||||
#include <sound/pcm.h>
|
||||
@@ -46,6 +49,8 @@
|
||||
#include <sound/soc.h>
|
||||
#include <sound/dmaengine_pcm.h>
|
||||
|
||||
+#include <asm/system_info.h>
|
||||
+
|
||||
/* Clock registers */
|
||||
#define BCM2708_CLK_PCMCTL_REG 0x00
|
||||
#define BCM2708_CLK_PCMDIV_REG 0x04
|
||||
@@ -163,6 +168,9 @@ static const unsigned int bcm2708_clk_freq[BCM2708_CLK_SRC_HDMI+1] = {
|
||||
#define BCM2708_DMA_DREQ_PCM_TX 2
|
||||
#define BCM2708_DMA_DREQ_PCM_RX 3
|
||||
|
||||
+/* I2S pin configuration */
|
||||
+static int bcm2708_i2s_gpio=BCM2708_I2S_GPIO_AUTO;
|
||||
+
|
||||
/* General device struct */
|
||||
struct bcm2708_i2s_dev {
|
||||
struct device *dev;
|
||||
@@ -174,6 +182,12 @@ struct bcm2708_i2s_dev {
|
||||
struct regmap *clk_regmap;
|
||||
};
|
||||
|
||||
+void bcm2708_i2s_set_gpio(int gpio) {
|
||||
+ bcm2708_i2s_gpio=gpio;
|
||||
+}
|
||||
+EXPORT_SYMBOL(bcm2708_i2s_set_gpio);
|
||||
+
|
||||
+
|
||||
static void bcm2708_i2s_start_clock(struct bcm2708_i2s_dev *dev)
|
||||
{
|
||||
/* Start the clock if in master mode */
|
||||
@@ -306,6 +320,25 @@ static int bcm2708_i2s_set_dai_bclk_ratio(struct snd_soc_dai *dai,
|
||||
}
|
||||
|
||||
|
||||
+static int bcm2708_i2s_set_function(unsigned offset, int function)
|
||||
+{
|
||||
+ #define GPIOFSEL(x) (0x00+(x)*4)
|
||||
+ void __iomem *gpio = __io_address(GPIO_BASE);
|
||||
+ unsigned alt = function <= 3 ? function + 4: function == 4 ? 3 : 2;
|
||||
+ unsigned gpiodir;
|
||||
+ unsigned gpio_bank = offset / 10;
|
||||
+ unsigned gpio_field_offset = (offset - 10 * gpio_bank) * 3;
|
||||
+
|
||||
+ if (offset >= BCM2708_NR_GPIOS)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ gpiodir = readl(gpio + GPIOFSEL(gpio_bank));
|
||||
+ gpiodir &= ~(7 << gpio_field_offset);
|
||||
+ gpiodir |= alt << gpio_field_offset;
|
||||
+ writel(gpiodir, gpio + GPIOFSEL(gpio_bank));
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static void bcm2708_i2s_setup_gpio(void)
|
||||
{
|
||||
/*
|
||||
@@ -314,20 +347,37 @@ static void bcm2708_i2s_setup_gpio(void)
|
||||
* TODO Better way would be to handle
|
||||
* this in the device tree!
|
||||
*/
|
||||
-#define INP_GPIO(g) *(gpio+((g)/10)) &= ~(7<<(((g)%10)*3))
|
||||
-#define SET_GPIO_ALT(g,a) *(gpio+(((g)/10))) |= (((a)<=3?(a)+4:(a)==4?3:2)<<(((g)%10)*3))
|
||||
+ int pin,pinconfig,startpin,alt;
|
||||
+
|
||||
+ /* SPI is on different GPIOs on different boards */
|
||||
+ /* for Raspberry Pi B+, this is pin GPIO18-21, for original on 28-31 */
|
||||
+ if (bcm2708_i2s_gpio==BCM2708_I2S_GPIO_AUTO) {
|
||||
+ if ((system_rev & 0xffffff) >= 0x10) {
|
||||
+ /* Model B+ */
|
||||
+ pinconfig=BCM2708_I2S_GPIO_PIN18;
|
||||
+ } else {
|
||||
+ /* original */
|
||||
+ pinconfig=BCM2708_I2S_GPIO_PIN28;
|
||||
+ }
|
||||
+ } else {
|
||||
+ pinconfig=bcm2708_i2s_gpio;
|
||||
+ }
|
||||
|
||||
- unsigned int *gpio;
|
||||
- int pin;
|
||||
- gpio = ioremap(GPIO_BASE, SZ_16K);
|
||||
+ if (pinconfig==BCM2708_I2S_GPIO_PIN18) {
|
||||
+ startpin=18;
|
||||
+ alt=BCM2708_I2S_GPIO_PIN18_ALT;
|
||||
+ } else if (pinconfig==BCM2708_I2S_GPIO_PIN28) {
|
||||
+ startpin=28;
|
||||
+ alt=BCM2708_I2S_GPIO_PIN28_ALT;
|
||||
+ } else {
|
||||
+ printk(KERN_INFO "Can't configure I2S GPIOs, unknown pin mode for I2S: %i\n",pinconfig);
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
- /* SPI is on GPIO 7..11 */
|
||||
- for (pin = 28; pin <= 31; pin++) {
|
||||
- INP_GPIO(pin); /* set mode to GPIO input first */
|
||||
- SET_GPIO_ALT(pin, 2); /* set mode to ALT 0 */
|
||||
+ /* configure I2S pins to correct ALT mode */
|
||||
+ for (pin = startpin; pin <= startpin+3; pin++) {
|
||||
+ bcm2708_i2s_set_function(pin, alt);
|
||||
}
|
||||
-#undef INP_GPIO
|
||||
-#undef SET_GPIO_ALT
|
||||
}
|
||||
|
||||
static int bcm2708_i2s_hw_params(struct snd_pcm_substream *substream,
|
||||
@@ -372,15 +422,15 @@ static int bcm2708_i2s_hw_params(struct snd_pcm_substream *substream,
|
||||
switch (params_format(params)) {
|
||||
case SNDRV_PCM_FORMAT_S16_LE:
|
||||
data_length = 16;
|
||||
- bclk_ratio = 40;
|
||||
+ bclk_ratio = 50;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
data_length = 24;
|
||||
- bclk_ratio = 40;
|
||||
+ bclk_ratio = 50;
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
data_length = 32;
|
||||
- bclk_ratio = 80;
|
||||
+ bclk_ratio = 100;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
@@ -746,7 +796,7 @@ static struct snd_soc_dai_driver bcm2708_i2s_dai = {
|
||||
.channels_max = 2,
|
||||
.rates = SNDRV_PCM_RATE_8000_192000,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE
|
||||
- // | SNDRV_PCM_FMTBIT_S24_LE : disable for now, it causes white noise with xbmc
|
||||
+ | SNDRV_PCM_FMTBIT_S24_LE
|
||||
| SNDRV_PCM_FMTBIT_S32_LE
|
||||
},
|
||||
.capture = {
|
||||
@@ -803,6 +853,7 @@ static const struct regmap_config bcm2708_regmap_config[] = {
|
||||
.precious_reg = bcm2708_i2s_precious_reg,
|
||||
.volatile_reg = bcm2708_i2s_volatile_reg,
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
+ .name = "i2s",
|
||||
},
|
||||
{
|
||||
.reg_bits = 32,
|
||||
@@ -811,6 +862,7 @@ static const struct regmap_config bcm2708_regmap_config[] = {
|
||||
.max_register = BCM2708_CLK_PCMDIV_REG,
|
||||
.volatile_reg = bcm2708_clk_volatile_reg,
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
+ .name = "clk",
|
||||
},
|
||||
};
|
||||
|
||||
diff --git a/sound/soc/bcm/bcm2708-i2s.h b/sound/soc/bcm/bcm2708-i2s.h
|
||||
new file mode 100644
|
||||
index 0000000..94fed6a
|
||||
--- /dev/null
|
||||
+++ b/sound/soc/bcm/bcm2708-i2s.h
|
||||
@@ -0,0 +1,35 @@
|
||||
+/*
|
||||
+ * I2S configuration for sound cards.
|
||||
+ *
|
||||
+ * Copyright (c) 2014 Daniel Matuschek <daniel@hifiberry.com>
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 2 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
+ */
|
||||
+
|
||||
+#ifndef BCM2708_I2S_H
|
||||
+#define BCM2708_I2S_H
|
||||
+
|
||||
+/* I2S pin assignment */
|
||||
+#define BCM2708_I2S_GPIO_AUTO 0
|
||||
+#define BCM2708_I2S_GPIO_PIN18 1
|
||||
+#define BCM2708_I2S_GPIO_PIN28 2
|
||||
+
|
||||
+/* Alt mode to enable I2S */
|
||||
+#define BCM2708_I2S_GPIO_PIN18_ALT 0
|
||||
+#define BCM2708_I2S_GPIO_PIN28_ALT 2
|
||||
+
|
||||
+extern void bcm2708_i2s_set_gpio(int gpio);
|
||||
+
|
||||
+#endif
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -0,0 +1,235 @@
|
||||
From 2c84355bf200f4d19d7078dee2c63011ad715395 Mon Sep 17 00:00:00 2001
|
||||
From: jeanleflambeur <catalin.vasile@gmail.com>
|
||||
Date: Sun, 1 Feb 2015 12:35:38 +0100
|
||||
Subject: [PATCH 2/2] Fix grabbing lock from atomic context in i2c driver
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
(cherry-pick from 558d0bfc8fe80ccdccee7f03e881a80965ec987c)
|
||||
|
||||
2 main changes:
|
||||
- check for timeouts in the bcm2708_bsc_setup function as indicated by this comment:
|
||||
/* poll for transfer start bit (should only take 1-20 polls) */
|
||||
This implies that the setup function can now fail so account for this everywhere it's called
|
||||
- Removed the clk_get_rate call from inside the setup function as it locks a mutex and that's not ok since we call it from under a spin lock.
|
||||
|
||||
removed dead code and update comment
|
||||
|
||||
fixed typo in comment
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Petter Mabäcker <petter@technux.se>
|
||||
|
||||
Conflicts:
|
||||
drivers/i2c/busses/i2c-bcm2708.c
|
||||
---
|
||||
drivers/i2c/busses/i2c-bcm2708.c | 88 +++++++++++++++++++++++++++++-----------
|
||||
1 file changed, 65 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/drivers/i2c/busses/i2c-bcm2708.c b/drivers/i2c/busses/i2c-bcm2708.c
|
||||
index 05531db..886672c 100644
|
||||
--- a/drivers/i2c/busses/i2c-bcm2708.c
|
||||
+++ b/drivers/i2c/busses/i2c-bcm2708.c
|
||||
@@ -67,6 +67,7 @@
|
||||
#define BSC_S_TA 0x00000001
|
||||
|
||||
#define I2C_TIMEOUT_MS 150
|
||||
+#define I2C_WAIT_LOOP_COUNT 40
|
||||
|
||||
#define DRV_NAME "bcm2708_i2c"
|
||||
|
||||
@@ -85,6 +86,7 @@ struct bcm2708_i2c {
|
||||
void __iomem *base;
|
||||
int irq;
|
||||
struct clk *clk;
|
||||
+ u32 cdiv;
|
||||
|
||||
struct completion done;
|
||||
|
||||
@@ -108,10 +110,10 @@ static void bcm2708_i2c_init_pinmode(int id)
|
||||
int pin;
|
||||
u32 *gpio = ioremap(0x20200000, SZ_16K);
|
||||
|
||||
- BUG_ON(id != 0 && id != 1);
|
||||
+ BUG_ON(id != 0 && id != 1);
|
||||
/* BSC0 is on GPIO 0 & 1, BSC1 is on GPIO 2 & 3 */
|
||||
for (pin = id*2+0; pin <= id*2+1; pin++) {
|
||||
-printk("bcm2708_i2c_init_pinmode(%d,%d)\n", id, pin);
|
||||
+ printk("bcm2708_i2c_init_pinmode(%d,%d)\n", id, pin);
|
||||
INP_GPIO(pin); /* set mode to GPIO input first */
|
||||
SET_GPIO_ALT(pin, 0); /* set mode to ALT 0 */
|
||||
}
|
||||
@@ -150,16 +152,16 @@ static inline void bcm2708_bsc_fifo_fill(struct bcm2708_i2c *bi)
|
||||
bcm2708_wr(bi, BSC_FIFO, bi->msg->buf[bi->pos++]);
|
||||
}
|
||||
|
||||
-static inline void bcm2708_bsc_setup(struct bcm2708_i2c *bi)
|
||||
+static inline int bcm2708_bsc_setup(struct bcm2708_i2c *bi)
|
||||
{
|
||||
- unsigned long bus_hz;
|
||||
u32 cdiv, s;
|
||||
u32 c = BSC_C_I2CEN | BSC_C_INTD | BSC_C_ST | BSC_C_CLEAR_1;
|
||||
+ int wait_loops = I2C_WAIT_LOOP_COUNT;
|
||||
|
||||
- bus_hz = clk_get_rate(bi->clk);
|
||||
- cdiv = bus_hz / baudrate;
|
||||
- if (cdiv > 0xffff)
|
||||
- cdiv = 0xffff;
|
||||
+ /* Can't call clk_get_rate as it locks a mutex and here we are spinlocked.
|
||||
+ * Use the value that we cached in the probe.
|
||||
+ */
|
||||
+ cdiv = bi->cdiv;
|
||||
|
||||
if (bi->msg->flags & I2C_M_RD)
|
||||
c |= BSC_C_INTR | BSC_C_READ;
|
||||
@@ -176,17 +178,25 @@ static inline void bcm2708_bsc_setup(struct bcm2708_i2c *bi)
|
||||
- Both messages to same slave address
|
||||
- Write message can fit inside FIFO (16 bytes or less) */
|
||||
if ( (bi->nmsgs > 1) &&
|
||||
- !(bi->msg[0].flags & I2C_M_RD) && (bi->msg[1].flags & I2C_M_RD) &&
|
||||
- (bi->msg[0].addr == bi->msg[1].addr) && (bi->msg[0].len <= 16)) {
|
||||
+ !(bi->msg[0].flags & I2C_M_RD) && (bi->msg[1].flags & I2C_M_RD) &&
|
||||
+ (bi->msg[0].addr == bi->msg[1].addr) && (bi->msg[0].len <= 16)) {
|
||||
/* Fill FIFO with entire write message (16 byte FIFO) */
|
||||
- while (bi->pos < bi->msg->len)
|
||||
+ while (bi->pos < bi->msg->len) {
|
||||
bcm2708_wr(bi, BSC_FIFO, bi->msg->buf[bi->pos++]);
|
||||
+ }
|
||||
/* Start write transfer (no interrupts, don't clear FIFO) */
|
||||
bcm2708_wr(bi, BSC_C, BSC_C_I2CEN | BSC_C_ST);
|
||||
+
|
||||
/* poll for transfer start bit (should only take 1-20 polls) */
|
||||
do {
|
||||
s = bcm2708_rd(bi, BSC_S);
|
||||
- } while (!(s & (BSC_S_TA | BSC_S_ERR | BSC_S_CLKT | BSC_S_DONE)));
|
||||
+ } while (!(s & (BSC_S_TA | BSC_S_ERR | BSC_S_CLKT | BSC_S_DONE)) && --wait_loops >= 0);
|
||||
+
|
||||
+ /* did we time out or some error occured? */
|
||||
+ if (wait_loops < 0 || (s & (BSC_S_ERR | BSC_S_CLKT))) {
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
/* Send next read message before the write transfer finishes. */
|
||||
bi->nmsgs--;
|
||||
bi->msg++;
|
||||
@@ -196,6 +206,8 @@ static inline void bcm2708_bsc_setup(struct bcm2708_i2c *bi)
|
||||
}
|
||||
}
|
||||
bcm2708_wr(bi, BSC_C, c);
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static irqreturn_t bcm2708_i2c_interrupt(int irq, void *dev_id)
|
||||
@@ -203,13 +215,15 @@ static irqreturn_t bcm2708_i2c_interrupt(int irq, void *dev_id)
|
||||
struct bcm2708_i2c *bi = dev_id;
|
||||
bool handled = true;
|
||||
u32 s;
|
||||
+ int ret;
|
||||
|
||||
spin_lock(&bi->lock);
|
||||
|
||||
/* we may see camera interrupts on the "other" I2C channel
|
||||
- Just return if we've not sent anything */
|
||||
- if (!bi->nmsgs || !bi->msg )
|
||||
+ Just return if we've not sent anything */
|
||||
+ if (!bi->nmsgs || !bi->msg) {
|
||||
goto early_exit;
|
||||
+ }
|
||||
|
||||
s = bcm2708_rd(bi, BSC_S);
|
||||
|
||||
@@ -217,13 +231,16 @@ static irqreturn_t bcm2708_i2c_interrupt(int irq, void *dev_id)
|
||||
bcm2708_bsc_reset(bi);
|
||||
bi->error = true;
|
||||
|
||||
+ bi->msg = 0; /* to inform the that all work is done */
|
||||
+ bi->nmsgs = 0;
|
||||
/* wake up our bh */
|
||||
complete(&bi->done);
|
||||
} else if (s & BSC_S_DONE) {
|
||||
bi->nmsgs--;
|
||||
|
||||
- if (bi->msg->flags & I2C_M_RD)
|
||||
+ if (bi->msg->flags & I2C_M_RD) {
|
||||
bcm2708_bsc_fifo_drain(bi);
|
||||
+ }
|
||||
|
||||
bcm2708_bsc_reset(bi);
|
||||
|
||||
@@ -231,8 +248,19 @@ static irqreturn_t bcm2708_i2c_interrupt(int irq, void *dev_id)
|
||||
/* advance to next message */
|
||||
bi->msg++;
|
||||
bi->pos = 0;
|
||||
- bcm2708_bsc_setup(bi);
|
||||
+ ret = bcm2708_bsc_setup(bi);
|
||||
+ if (ret < 0) {
|
||||
+ bcm2708_bsc_reset(bi);
|
||||
+ bi->error = true;
|
||||
+ bi->msg = 0; /* to inform the that all work is done */
|
||||
+ bi->nmsgs = 0;
|
||||
+ /* wake up our bh */
|
||||
+ complete(&bi->done);
|
||||
+ goto early_exit;
|
||||
+ }
|
||||
} else {
|
||||
+ bi->msg = 0; /* to inform the that all work is done */
|
||||
+ bi->nmsgs = 0;
|
||||
/* wake up our bh */
|
||||
complete(&bi->done);
|
||||
}
|
||||
@@ -265,21 +293,34 @@ static int bcm2708_i2c_master_xfer(struct i2c_adapter *adap,
|
||||
bi->nmsgs = num;
|
||||
bi->error = false;
|
||||
|
||||
+ ret = bcm2708_bsc_setup(bi);
|
||||
spin_unlock_irqrestore(&bi->lock, flags);
|
||||
|
||||
bcm2708_bsc_setup(bi);
|
||||
|
||||
- ret = wait_for_completion_timeout(&bi->done,
|
||||
- msecs_to_jiffies(I2C_TIMEOUT_MS));
|
||||
+ /* check the result of the setup */
|
||||
+ if (ret < 0)
|
||||
+ {
|
||||
+ dev_err(&adap->dev, "transfer setup timed out\n");
|
||||
+ goto error_timeout;
|
||||
+ }
|
||||
+
|
||||
+ ret = wait_for_completion_timeout(&bi->done, msecs_to_jiffies(I2C_TIMEOUT_MS));
|
||||
if (ret == 0) {
|
||||
dev_err(&adap->dev, "transfer timed out\n");
|
||||
- spin_lock_irqsave(&bi->lock, flags);
|
||||
- bcm2708_bsc_reset(bi);
|
||||
- spin_unlock_irqrestore(&bi->lock, flags);
|
||||
- return -ETIMEDOUT;
|
||||
+ goto error_timeout;
|
||||
}
|
||||
|
||||
- return bi->error ? -EIO : num;
|
||||
+ ret = bi->error ? -EIO : num;
|
||||
+ return ret;
|
||||
+
|
||||
+error_timeout:
|
||||
+ spin_lock_irqsave(&bi->lock, flags);
|
||||
+ bcm2708_bsc_reset(bi);
|
||||
+ bi->msg = 0; /* to inform the interrupt handler that there's nothing else to be done */
|
||||
+ bi->nmsgs = 0;
|
||||
+ spin_unlock_irqrestore(&bi->lock, flags);
|
||||
+ return -ETIMEDOUT;
|
||||
}
|
||||
|
||||
static u32 bcm2708_i2c_functionality(struct i2c_adapter *adap)
|
||||
@@ -382,6 +423,7 @@ static int bcm2708_i2c_probe(struct platform_device *pdev)
|
||||
cdiv = 0xffff;
|
||||
baudrate = bus_hz / cdiv;
|
||||
}
|
||||
+ bi->cdiv = cdiv;
|
||||
|
||||
dev_info(&pdev->dev, "BSC%d Controller at 0x%08lx (irq %d) (baudrate %d)\n",
|
||||
pdev->id, (unsigned long)regs->start, irq, baudrate);
|
||||
--
|
||||
1.9.1
|
||||
|
||||
1
recipes-kernel/linux/linux-raspberrypi/defconfig
Normal file
1
recipes-kernel/linux/linux-raspberrypi/defconfig
Normal file
@@ -0,0 +1 @@
|
||||
# Dummy file to get through do_kernel_configme.
|
||||
9
recipes-kernel/linux/linux-raspberrypi_3.14.bb
Normal file
9
recipes-kernel/linux/linux-raspberrypi_3.14.bb
Normal file
@@ -0,0 +1,9 @@
|
||||
LINUX_VERSION ?= "3.14.28"
|
||||
|
||||
SRCREV = "e294028d7733a30f3befacc41d473c251096a515"
|
||||
SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.14.y \
|
||||
file://0001-ASoC-Add-BCM2708-fixes.patch \
|
||||
file://0002-Fix-grabbing-lock-from-atomic-context-in-i2c-driver.patch \
|
||||
"
|
||||
|
||||
require linux-raspberrypi.inc
|
||||
11
recipes-kernel/linux/linux-raspberrypi_3.18.bb
Normal file
11
recipes-kernel/linux/linux-raspberrypi_3.18.bb
Normal file
@@ -0,0 +1,11 @@
|
||||
LINUX_VERSION ?= "3.18.16"
|
||||
|
||||
SRCREV = "1bb18c8f721ef674a447f3622273f2e2de7a205c"
|
||||
SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.18.y"
|
||||
|
||||
require linux-raspberrypi.inc
|
||||
|
||||
# Create missing out of tree 'overlays' directory prior to install step
|
||||
do_compile_prepend() {
|
||||
mkdir -p ${B}/arch/arm/boot/dts/overlays
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
require linux.inc
|
||||
|
||||
DESCRIPTION = "Linux kernel for the RaspberryPi board"
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
PR = "r6"
|
||||
PV_append = "+git${SRCREV}"
|
||||
|
||||
SRCREV = "10182a3bc434b27740f81c2b836a1af943060241"
|
||||
SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.2.27 \
|
||||
"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
# NOTE: For now we pull in the default config from the RPi kernel GIT tree.
|
||||
KERNEL_DEFCONFIG = "bcmrpi_defconfig"
|
||||
|
||||
# CMDLINE for raspberrypi
|
||||
CMDLINE_raspberrypi = "dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
|
||||
|
||||
UDEV_GE_141 ?= "1"
|
||||
|
||||
do_configure_prepend() {
|
||||
install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig || die "No default configuration for ${MACHINE} / ${KERNEL_DEFCONFIG} available."
|
||||
}
|
||||
|
||||
do_install_prepend() {
|
||||
install -d ${D}/lib/firmware
|
||||
}
|
||||
|
||||
do_deploy_append() {
|
||||
# Deploy cmdline.txt
|
||||
install -d ${DEPLOYDIR}/bcm2835-bootfiles
|
||||
echo "${CMDLINE}" > ${DEPLOYDIR}/bcm2835-bootfiles/cmdline.txt
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
require linux.inc
|
||||
|
||||
DESCRIPTION = "Linux kernel for the RaspberryPi board"
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
PR = "r6"
|
||||
PV_append = "+git${SRCREV}"
|
||||
|
||||
SRCREV = "31a951046155b27361127d9cf85a1f58719fe9b3"
|
||||
SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.6.y \
|
||||
"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
# NOTE: For now we pull in the default config from the RPi kernel GIT tree.
|
||||
KERNEL_DEFCONFIG = "bcmrpi_defconfig"
|
||||
|
||||
# CMDLINE for raspberrypi
|
||||
CMDLINE_raspberrypi = "dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
|
||||
|
||||
UDEV_GE_141 ?= "1"
|
||||
|
||||
do_configure_prepend() {
|
||||
install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig || die "No default configuration for ${MACHINE} / ${KERNEL_DEFCONFIG} available."
|
||||
}
|
||||
|
||||
do_install_prepend() {
|
||||
install -d ${D}/lib/firmware
|
||||
}
|
||||
|
||||
do_deploy_append() {
|
||||
# Deploy cmdline.txt
|
||||
install -d ${DEPLOYDIR}/bcm2835-bootfiles
|
||||
echo "${CMDLINE}" > ${DEPLOYDIR}/bcm2835-bootfiles/cmdline.txt
|
||||
}
|
||||
6
recipes-kernel/linux/linux-raspberrypi_4.1.bb
Normal file
6
recipes-kernel/linux/linux-raspberrypi_4.1.bb
Normal file
@@ -0,0 +1,6 @@
|
||||
LINUX_VERSION ?= "4.1.10"
|
||||
|
||||
SRCREV = "b74df9228c27f55361c065bc5dbfba88861cc771"
|
||||
SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-4.1.y"
|
||||
|
||||
require linux-raspberrypi.inc
|
||||
@@ -5,6 +5,7 @@ LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
|
||||
|
||||
inherit kernel siteinfo
|
||||
require recipes-kernel/linux/linux-yocto.inc
|
||||
|
||||
# Enable OABI compat for people stuck with obsolete userspace
|
||||
ARM_KEEP_OABI ?= "1"
|
||||
@@ -21,96 +22,96 @@ CMDLINE_append = " ${CMDLINE_DEBUG}"
|
||||
# $1 - Configure variable to be set
|
||||
# $2 - value [n/y/value]
|
||||
kernel_configure_variable() {
|
||||
# Remove the config
|
||||
CONF_SED_SCRIPT="$CONF_SED_SCRIPT /CONFIG_$1[ =]/d;"
|
||||
if test "$2" = "n"
|
||||
then
|
||||
echo "# CONFIG_$1 is not set" >> ${S}/.config
|
||||
else
|
||||
echo "CONFIG_$1=$2" >> ${S}/.config
|
||||
fi
|
||||
# Remove the config
|
||||
CONF_SED_SCRIPT="$CONF_SED_SCRIPT /CONFIG_$1[ =]/d;"
|
||||
if test "$2" = "n"
|
||||
then
|
||||
echo "# CONFIG_$1 is not set" >> ${B}/.config
|
||||
else
|
||||
echo "CONFIG_$1=$2" >> ${B}/.config
|
||||
fi
|
||||
}
|
||||
|
||||
do_configure_prepend() {
|
||||
# Clean .config
|
||||
echo "" > ${S}/.config
|
||||
CONF_SED_SCRIPT=""
|
||||
# Clean .config
|
||||
echo "" > ${B}/.config
|
||||
CONF_SED_SCRIPT=""
|
||||
|
||||
# oabi / eabi support
|
||||
if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibceabi" ]; then
|
||||
kernel_configure_variable AEABI y
|
||||
if [ "${ARM_KEEP_OABI}" = "1" ] ; then
|
||||
kernel_configure_variable OABI_COMPAT y
|
||||
else
|
||||
kernel_configure_variable OABI_COMPAT n
|
||||
fi
|
||||
else
|
||||
kernel_configure_variable AEABI n
|
||||
kernel_configure_variable OABI_COMPAT n
|
||||
fi
|
||||
# oabi / eabi support
|
||||
if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibceabi" ]; then
|
||||
kernel_configure_variable AEABI y
|
||||
if [ "${ARM_KEEP_OABI}" = "1" ] ; then
|
||||
kernel_configure_variable OABI_COMPAT y
|
||||
else
|
||||
kernel_configure_variable OABI_COMPAT n
|
||||
fi
|
||||
else
|
||||
kernel_configure_variable AEABI n
|
||||
kernel_configure_variable OABI_COMPAT n
|
||||
fi
|
||||
|
||||
# Set cmdline
|
||||
kernel_configure_variable CMDLINE "\"${CMDLINE}\""
|
||||
# Set cmdline
|
||||
kernel_configure_variable CMDLINE "\"${CMDLINE}\""
|
||||
|
||||
# Localversion
|
||||
kernel_configure_variable LOCALVERSION "\"\""
|
||||
kernel_configure_variable LOCALVERSION_AUTO n
|
||||
# Localversion
|
||||
kernel_configure_variable LOCALVERSION "\"\""
|
||||
kernel_configure_variable LOCALVERSION_AUTO n
|
||||
|
||||
# Udev quirks
|
||||
# Newer versions of udev mandate that sysfs doesn't have deprecated entries
|
||||
if [ "${UDEV_GE_141}" = "1" ] ; then
|
||||
kernel_configure_variable SYSFS_DEPRECATED n
|
||||
kernel_configure_variable SYSFS_DEPRECATED_V2 n
|
||||
kernel_configure_variable HOTPLUG y
|
||||
kernel_configure_variable UEVENT_HELPER_PATH "\"\""
|
||||
kernel_configure_variable UNIX y
|
||||
kernel_configure_variable SYSFS y
|
||||
kernel_configure_variable PROC_FS y
|
||||
kernel_configure_variable TMPFS y
|
||||
kernel_configure_variable INOTIFY_USER y
|
||||
kernel_configure_variable SIGNALFD y
|
||||
kernel_configure_variable TMPFS_POSIX_ACL y
|
||||
kernel_configure_variable BLK_DEV_BSG y
|
||||
kernel_configure_variable DEVTMPFS y
|
||||
kernel_configure_variable DEVTMPFS_MOUNT y
|
||||
fi
|
||||
# Udev quirks
|
||||
# Newer versions of udev mandate that sysfs doesn't have deprecated entries
|
||||
if [ "${UDEV_GE_141}" = "1" ] ; then
|
||||
kernel_configure_variable SYSFS_DEPRECATED n
|
||||
kernel_configure_variable SYSFS_DEPRECATED_V2 n
|
||||
kernel_configure_variable HOTPLUG y
|
||||
kernel_configure_variable UEVENT_HELPER_PATH "\"\""
|
||||
kernel_configure_variable UNIX y
|
||||
kernel_configure_variable SYSFS y
|
||||
kernel_configure_variable PROC_FS y
|
||||
kernel_configure_variable TMPFS y
|
||||
kernel_configure_variable INOTIFY_USER y
|
||||
kernel_configure_variable SIGNALFD y
|
||||
kernel_configure_variable TMPFS_POSIX_ACL y
|
||||
kernel_configure_variable BLK_DEV_BSG y
|
||||
kernel_configure_variable DEVTMPFS y
|
||||
kernel_configure_variable DEVTMPFS_MOUNT y
|
||||
fi
|
||||
|
||||
# Newer inits like systemd need cgroup support
|
||||
if [ "${KERNEL_ENABLE_CGROUPS}" = "1" ] ; then
|
||||
kernel_configure_variable CGROUP_SCHED y
|
||||
kernel_configure_variable CGROUPS y
|
||||
kernel_configure_variable CGROUP_NS y
|
||||
kernel_configure_variable CGROUP_FREEZER y
|
||||
kernel_configure_variable CGROUP_DEVICE y
|
||||
kernel_configure_variable CPUSETS y
|
||||
kernel_configure_variable PROC_PID_CPUSET y
|
||||
kernel_configure_variable CGROUP_CPUACCT y
|
||||
kernel_configure_variable RESOURCE_COUNTERS y
|
||||
fi
|
||||
# Newer inits like systemd need cgroup support
|
||||
if [ "${KERNEL_ENABLE_CGROUPS}" = "1" ] ; then
|
||||
kernel_configure_variable CGROUP_SCHED y
|
||||
kernel_configure_variable CGROUPS y
|
||||
kernel_configure_variable CGROUP_NS y
|
||||
kernel_configure_variable CGROUP_FREEZER y
|
||||
kernel_configure_variable CGROUP_DEVICE y
|
||||
kernel_configure_variable CPUSETS y
|
||||
kernel_configure_variable PROC_PID_CPUSET y
|
||||
kernel_configure_variable CGROUP_CPUACCT y
|
||||
kernel_configure_variable RESOURCE_COUNTERS y
|
||||
fi
|
||||
|
||||
# root-over-nfs-over-usb-eth support. Limited, but should cover some cases
|
||||
# Enable this by setting a proper CMDLINE_NFSROOT_USB.
|
||||
if [ ! -z "${CMDLINE_NFSROOT_USB}" ]; then
|
||||
oenote "Configuring the kernel for root-over-nfs-over-usb-eth with CMDLINE ${CMDLINE_NFSROOT_USB}"
|
||||
kernel_configure_variable INET y
|
||||
kernel_configure_variable IP_PNP y
|
||||
kernel_configure_variable USB_GADGET y
|
||||
kernel_configure_variable USB_GADGET_SELECTED y
|
||||
kernel_configure_variable USB_ETH y
|
||||
kernel_configure_variable NFS_FS y
|
||||
kernel_configure_variable ROOT_NFS y
|
||||
kernel_configure_variable ROOT_NFS y
|
||||
kernel_configure_variable CMDLINE "\"${CMDLINE_NFSROOT_USB}\""
|
||||
fi
|
||||
# root-over-nfs-over-usb-eth support. Limited, but should cover some cases
|
||||
# Enable this by setting a proper CMDLINE_NFSROOT_USB.
|
||||
if [ ! -z "${CMDLINE_NFSROOT_USB}" ]; then
|
||||
oenote "Configuring the kernel for root-over-nfs-over-usb-eth with CMDLINE ${CMDLINE_NFSROOT_USB}"
|
||||
kernel_configure_variable INET y
|
||||
kernel_configure_variable IP_PNP y
|
||||
kernel_configure_variable USB_GADGET y
|
||||
kernel_configure_variable USB_GADGET_SELECTED y
|
||||
kernel_configure_variable USB_ETH y
|
||||
kernel_configure_variable NFS_FS y
|
||||
kernel_configure_variable ROOT_NFS y
|
||||
kernel_configure_variable ROOT_NFS y
|
||||
kernel_configure_variable CMDLINE "\"${CMDLINE_NFSROOT_USB}\""
|
||||
fi
|
||||
|
||||
# Activate CONFIG_LEGACY_PTYS
|
||||
kernel_configure_variable LEGACY_PTYS y
|
||||
# Activate CONFIG_LEGACY_PTYS
|
||||
kernel_configure_variable LEGACY_PTYS y
|
||||
|
||||
# Keep this the last line
|
||||
# Remove all modified configs and add the rest to .config
|
||||
sed -e "${CONF_SED_SCRIPT}" < '${WORKDIR}/defconfig' >> '${S}/.config'
|
||||
# Keep this the last line
|
||||
# Remove all modified configs and add the rest to .config
|
||||
sed -e "${CONF_SED_SCRIPT}" < '${WORKDIR}/defconfig' >> '${B}/.config'
|
||||
|
||||
yes '' | oe_runmake oldconfig
|
||||
yes '' | oe_runmake oldconfig
|
||||
}
|
||||
|
||||
# Automatically depend on lzop-native if CONFIG_KERNEL_LZO is enabled
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
EXTRA_OECONF_append_rpi = " CPPFLAGS='-I${STAGING_DIR_TARGET}/usr/include/interface/vcos/pthreads \
|
||||
-I${STAGING_DIR_TARGET}/usr/include/interface/vmcs_host/linux'"
|
||||
@@ -0,0 +1,77 @@
|
||||
From a2a28fb7c4e8354cc0f90454e9bd151c16a6bf8b Mon Sep 17 00:00:00 2001
|
||||
From: Andrei Gherzan <andrei@gherzan.ro>
|
||||
Date: Tue, 20 Aug 2013 16:10:51 +0300
|
||||
Subject: [PATCH] Remove Makefile.include which includes hardcoded
|
||||
|
||||
Remove Makefile.include which includes hardcoded paths and rely on
|
||||
variables provided by build system.
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
|
||||
Updated patch to apply to c0dd9502ed2c43c487674939195c69680f3d98b0 revision
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index f348465..65f7637 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,4 +1,3 @@
|
||||
-include Makefile.include
|
||||
|
||||
CFLAGS+=-std=c++0x -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DHAVE_LIBSWRESAMPLE_SWRESAMPLE_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST
|
||||
|
||||
diff --git a/Makefile.ffmpeg b/Makefile.ffmpeg
|
||||
index 083e214..3b31a82 100644
|
||||
--- a/Makefile.ffmpeg
|
||||
+++ b/Makefile.ffmpeg
|
||||
@@ -1,4 +1,3 @@
|
||||
-include Makefile.include
|
||||
|
||||
CFLAGS=-D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_HAVE_SBRK -D_LARGEFILE64_SOURCE -DHAVE_CMAKE_CONFIG -DHAVE_VMCS_CONFIG -D_REENTRANT -DUSE_VCHIQ_ARM -DVCHI_BULK_ALIGN=1 -DVCHI_BULK_GRANULARITY=1 -DEGL_SERVER_DISPMANX -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__VIDEOCORE4__ -DGRAPHICS_X_VG=1 -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DOMX -DOMX_SKIP64BIT
|
||||
|
||||
diff --git a/Makefile.include b/Makefile.include
|
||||
deleted file mode 100644
|
||||
index 58e9560..0000000
|
||||
--- a/Makefile.include
|
||||
+++ /dev/null
|
||||
@@ -1,40 +0,0 @@
|
||||
-USE_BUILDROOT=0
|
||||
-FLOAT=hard
|
||||
-
|
||||
-ifeq ($(USE_BUILDROOT), 1)
|
||||
-BUILDROOT :=/opt/xbmc-bcm/buildroot
|
||||
-SDKSTAGE :=$(BUILDROOT)/output/staging
|
||||
-TARGETFS :=$(BUILDROOT)/output/target
|
||||
-TOOLCHAIN :=$(BUILDROOT)/output/host/usr/
|
||||
-HOST :=arm-unknown-linux-gnueabi
|
||||
-SYSROOT :=$(BUILDROOT)/output/host/usr/arm-unknown-linux-gnueabi/sysroot
|
||||
-else
|
||||
-BUILDROOT :=/opt/bcm-rootfs
|
||||
-SDKSTAGE :=/opt/bcm-rootfs
|
||||
-TARGETFS :=/opt/bcm-rootfs
|
||||
-TOOLCHAIN :=/home/dc4/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/
|
||||
-HOST :=arm-linux-gnueabihf
|
||||
-#SYSROOT :=$(TOOLCHAIN)/arm-bcm2708hardfp-linux-gnueabi/sysroot
|
||||
-SYSROOT :=/opt/bcm-rootfs
|
||||
-endif
|
||||
-
|
||||
-JOBS=7
|
||||
-
|
||||
-CFLAGS := -isystem$(PREFIX)/include
|
||||
-CXXFLAGS := $(CFLAGS)
|
||||
-CPPFLAGS := $(CFLAGS)
|
||||
-LDFLAGS := -L$(BUILDROOT)/lib
|
||||
-LD := $(TOOLCHAIN)/bin/$(HOST)-ld --sysroot=$(SYSROOT)
|
||||
-CC := $(TOOLCHAIN)/bin/$(HOST)-gcc --sysroot=$(SYSROOT)
|
||||
-CXX := $(TOOLCHAIN)/bin/$(HOST)-g++ --sysroot=$(SYSROOT)
|
||||
-OBJDUMP := $(TOOLCHAIN)/bin/$(HOST)-objdump
|
||||
-RANLIB := $(TOOLCHAIN)/bin/$(HOST)-ranlib
|
||||
-STRIP := $(TOOLCHAIN)/bin/$(HOST)-strip
|
||||
-AR := $(TOOLCHAIN)/bin/$(HOST)-ar
|
||||
-CXXCP := $(CXX) -E
|
||||
-PATH := $(PREFIX)/bin:$(BUILDROOT)/output/host/usr/bin:$(PATH)
|
||||
-
|
||||
-CFLAGS += -pipe -mfloat-abi=$(FLOAT) -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -mno-apcs-stack-check -g -mstructure-size-boundary=32 -mno-sched-prolog
|
||||
-LDFLAGS += -L$(SDKSTAGE)/lib -L$(SDKSTAGE)/usr/lib -L$(SDKSTAGE)/opt/vc/lib/ -Lpcre/build
|
||||
-#INCLUDES += -isystem$(SDKSTAGE)/usr/include -isystem$(SDKSTAGE)/opt/vc/include -isystem$(SYSROOT)/usr/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads -isystem$(SDKSTAGE)/usr/include/freetype2
|
||||
-INCLUDES += -isystem$(SDKSTAGE)/opt/vc/include -isystem$(SYSROOT)/usr/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads -Ipcre/build -Iboost-trunk -Ifreetype2/include
|
||||
@@ -0,0 +1,51 @@
|
||||
From 1e92da659375eae1622984d4cc0ffd2a7b082fcf Mon Sep 17 00:00:00 2001
|
||||
From: Andrei Gherzan <andrei@gherzan.ro>
|
||||
Date: Sun, 24 Aug 2014 00:13:13 +0200
|
||||
Subject: [PATCH] Libraries and headers from ffmpeg are installed in /usr.
|
||||
|
||||
Don't search for libraries and headers in /usr/local.
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
---
|
||||
Makefile | 6 +++---
|
||||
Makefile.ffmpeg | 2 +-
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 38e1400..1b15999 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
CFLAGS+=-std=c++0x -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DHAVE_LIBSWRESAMPLE_SWRESAMPLE_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST
|
||||
|
||||
-LDFLAGS+=-L./ -Lffmpeg_compiled/usr/local/lib/ -lc -lWFC -lGLESv2 -lEGL -lbcm_host -lopenmaxil -lfreetype -lz
|
||||
+LDFLAGS+=-L./ -Lffmpeg_compiled/usr/lib/ -lc -lWFC -lGLESv2 -lEGL -lbcm_host -lopenmaxil -lfreetype -lz
|
||||
|
||||
-INCLUDES+=-I./ -Ilinux -Iffmpeg_compiled/usr/local/include/ -I /usr/include/dbus-1.0 -I /usr/lib/arm-linux-gnueabihf/dbus-1.0/include
|
||||
+INCLUDES+=-I./ -Ilinux -Iffmpeg_compiled/usr/include/ -I=/usr/include/dbus-1.0 -I /usr/lib/arm-linux-gnueabihf/dbus-1.0/include
|
||||
|
||||
DIST ?= omxplayer-dist
|
||||
|
||||
@@ -87,5 +87,5 @@ dist: omxplayer.bin omxplayer.1
|
||||
cp COPYING $(DIST)/usr/share/doc/omxplayer
|
||||
cp README.md $(DIST)/usr/share/doc/omxplayer/README
|
||||
cp omxplayer.1 $(DIST)/usr/share/man/man1
|
||||
- cp -a ffmpeg_compiled/usr/local/lib/*.so* $(DIST)/usr/lib/omxplayer/
|
||||
+ cp -a ffmpeg_compiled/usr/lib/*.so* $(DIST)/usr/lib/omxplayer/
|
||||
cd $(DIST); tar -czf ../$(DIST).tgz *
|
||||
diff --git a/Makefile.ffmpeg b/Makefile.ffmpeg
|
||||
index 4d2d720..9d66a85 100644
|
||||
--- a/Makefile.ffmpeg
|
||||
+++ b/Makefile.ffmpeg
|
||||
@@ -256,5 +256,5 @@ checkout:
|
||||
.PHONY : install
|
||||
install:
|
||||
cd ffmpeg; make -j9 DESTDIR="$(WORK)/ffmpeg_compiled" install
|
||||
- $(HOST)-strip ffmpeg_compiled/usr/local/lib/*.so
|
||||
+ $(HOST)-strip ffmpeg_compiled/usr/lib/*.so
|
||||
|
||||
--
|
||||
1.9.3
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From b738724c6ca45ee5fecebed01c7ac91c92446123 Mon Sep 17 00:00:00 2001
|
||||
From: Andrei Gherzan <andrei@gherzan.ro>
|
||||
Date: Sun, 24 Aug 2014 00:18:05 +0200
|
||||
Subject: [PATCH] Remove strip step in Makefile
|
||||
|
||||
Build system will strip binaries so remove strip step in Makefile.
|
||||
Avoid warnings/errors like:
|
||||
WARNING: File '/usr/lib/omxplayer/libavutil.so.51.56.100' from
|
||||
omxplayer was already stripped, this will prevent future debugging!
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
---
|
||||
Makefile.ffmpeg | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Makefile.ffmpeg b/Makefile.ffmpeg
|
||||
index 9d66a85..00df197 100644
|
||||
--- a/Makefile.ffmpeg
|
||||
+++ b/Makefile.ffmpeg
|
||||
@@ -243,7 +243,8 @@ configure:
|
||||
--disable-decoder=xbin \
|
||||
--disable-decoder=idf \
|
||||
--enable-decoder=opus \
|
||||
- --cross-prefix=$(HOST)-
|
||||
+ --cross-prefix=$(HOST)- \
|
||||
+ --disable-stripping
|
||||
|
||||
.PHONY : clean
|
||||
clean:
|
||||
@@ -256,5 +257,3 @@ checkout:
|
||||
.PHONY : install
|
||||
install:
|
||||
cd ffmpeg; make -j9 DESTDIR="$(WORK)/ffmpeg_compiled" install
|
||||
- $(HOST)-strip ffmpeg_compiled/usr/lib/*.so
|
||||
-
|
||||
--
|
||||
1.9.3
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
From 100982ee1fc1cb571c7453d14f9acd60e67d4765 Mon Sep 17 00:00:00 2001
|
||||
From: Andrei Gherzan <andrei.gherzan@windriver.com>
|
||||
Date: Sun, 25 Jan 2015 11:13:51 +0200
|
||||
Subject: [PATCH] Add FFMPEG_EXTRA_CFLAGS and FFMPEG_EXTRA_LDFLAGS
|
||||
|
||||
In this way we can inject flags to LD and CC using
|
||||
--extra-cflags and --extra-ldflags.
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
---
|
||||
Makefile.ffmpeg | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.ffmpeg b/Makefile.ffmpeg
|
||||
index abe4b26..c9d42d7 100644
|
||||
--- a/Makefile.ffmpeg
|
||||
+++ b/Makefile.ffmpeg
|
||||
@@ -22,7 +22,8 @@ configure:
|
||||
CFLAGS="$(CFLAGS) ${INCLUDES}" \
|
||||
LDFLAGS="" \
|
||||
./configure \
|
||||
- --extra-cflags="-mfpu=vfp -mfloat-abi=$(FLOAT) -mno-apcs-stack-check -mstructure-size-boundary=32 -mno-sched-prolog" \
|
||||
+ --extra-cflags="-mfpu=vfp -mfloat-abi=$(FLOAT) -mno-apcs-stack-check -mstructure-size-boundary=32 -mno-sched-prolog $(FFMPEG_EXTRA_CFLAGS)" \
|
||||
+ --extra-ldflags="$(FFMPEG_EXTRA_LDFLAGS)" \
|
||||
--enable-cross-compile \
|
||||
--enable-shared \
|
||||
--disable-static \
|
||||
--
|
||||
2.1.0
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
Build system will strip binaries so remove strip step in Makefile.
|
||||
Avoid warnings/errors like:
|
||||
WARNING: File '/usr/lib/omxplayer/libavutil.so.51.56.100' from
|
||||
omxplayer was already stripped, this will prevent future debugging!
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
|
||||
Index: git/Makefile.ffmpeg
|
||||
===================================================================
|
||||
--- git.orig/Makefile.ffmpeg 2012-08-26 15:38:45.099379852 +0300
|
||||
+++ git/Makefile.ffmpeg 2012-08-26 15:46:51.913055176 +0300
|
||||
@@ -52,7 +52,8 @@
|
||||
--enable-hardcoded-tables \
|
||||
--disable-runtime-cpudetect \
|
||||
--disable-debug \
|
||||
- --cross-prefix=$(HOST)-
|
||||
+ --cross-prefix=$(HOST)- \
|
||||
+ --disable-stripping
|
||||
|
||||
clean:
|
||||
@rm -rf ffmpeg
|
||||
@@ -63,5 +64,4 @@
|
||||
|
||||
install:
|
||||
cd ffmpeg; make -j9 DESTDIR="$(WORK)/ffmpeg_compiled" install
|
||||
- $(HOST)-strip ffmpeg_compiled/usr/lib/*.so
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
Revert the tar command change introduced in:
|
||||
https://github.com/popcornmix/omxplayer/commit/201c77973155861e60492e45d35467b19b69c1c4
|
||||
|
||||
This fails if DIST is an absolute path. The old command was working just fine.
|
||||
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
|
||||
Index: git/Makefile
|
||||
===================================================================
|
||||
--- git.orig/Makefile
|
||||
+++ git/Makefile
|
||||
@@ -71,4 +71,4 @@ dist: omxplayer.bin
|
||||
cp COPYING $(DIST)/usr/share/doc/
|
||||
cp README.md $(DIST)/usr/share/doc/README
|
||||
cp -a ffmpeg_compiled/usr/lib/*.so* $(DIST)/usr/lib/omxplayer/
|
||||
- cd $(DIST); tar -czf ../$(DIST).tgz *
|
||||
+ tar -czf omxplayer-dist.tar.gz $(DIST)
|
||||
\ No newline at end of file
|
||||
@@ -1,37 +0,0 @@
|
||||
Libraries and headers from ffmpeg are installed in usr/lib.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
|
||||
Index: git/Makefile.ffmpeg
|
||||
===================================================================
|
||||
--- git.orig/Makefile.ffmpeg 2012-08-26 02:46:40.380518313 +0300
|
||||
+++ git/Makefile.ffmpeg 2012-08-26 02:46:40.512511177 +0300
|
||||
@@ -63,5 +63,5 @@
|
||||
|
||||
install:
|
||||
cd ffmpeg; make -j9 DESTDIR="$(WORK)/ffmpeg_compiled" install
|
||||
- $(HOST)-strip ffmpeg_compiled/usr/local/lib/*.so
|
||||
+ $(HOST)-strip ffmpeg_compiled/usr/lib/*.so
|
||||
|
||||
Index: git/Makefile
|
||||
===================================================================
|
||||
--- git.orig/Makefile 2012-08-26 02:52:11.578611542 +0300
|
||||
+++ git/Makefile 2012-08-26 02:52:53.952320465 +0300
|
||||
@@ -1,7 +1,7 @@
|
||||
CFLAGS+=-std=c++0x -DSTANDALONE -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -D_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST
|
||||
|
||||
-LDFLAGS+=-L./ -lc -lWFC -lGLESv2 -lEGL -lbcm_host -lopenmaxil -lfreetype -lz -Lffmpeg_compiled/usr/local/lib/
|
||||
-INCLUDES+=-I./ -Ilinux -Iffmpeg_compiled/usr/local/include/
|
||||
+LDFLAGS+=-L./ -lc -lWFC -lGLESv2 -lEGL -lbcm_host -lopenmaxil -lfreetype -lz -Lffmpeg_compiled/usr/lib/
|
||||
+INCLUDES+=-I./ -Ilinux -Iffmpeg_compiled/usr/include/
|
||||
|
||||
SRC=linux/XMemUtils.cpp \
|
||||
utils/log.cpp \
|
||||
@@ -63,5 +63,5 @@
|
||||
cp omxplayer omxplayer.bin omxplayer-dist/usr/usr/bin
|
||||
cp COPYING omxplayer-dist/usr/share/doc/
|
||||
cp README.md omxplayer-dist/usr/share/doc/README
|
||||
- cp -a ffmpeg_compiled/usr/local/lib/*.so* omxplayer-dist/usr/lib/omxplayer/
|
||||
+ cp -a ffmpeg_compiled/usr/lib/*.so* omxplayer-dist/usr/lib/omxplayer/
|
||||
tar -czf omxplayer-dist.tar.gz omxplayer-dist
|
||||
@@ -1,32 +0,0 @@
|
||||
Modify install rule to use /usr/bin path and not /usr/usr/bin for
|
||||
installing omxplayer binary and script.
|
||||
As well, add a variable to let the user specify where to install
|
||||
the files.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
|
||||
Index: git/Makefile
|
||||
===================================================================
|
||||
--- git.orig/Makefile 2012-08-26 05:03:31.710678243 +0300
|
||||
+++ git/Makefile 2012-08-26 05:03:11.000000000 +0300
|
||||
@@ -59,11 +57,11 @@
|
||||
make -f Makefile.ffmpeg install
|
||||
|
||||
dist: omxplayer.bin
|
||||
- mkdir -p omxplayer-dist/usr/lib/omxplayer
|
||||
- mkdir -p omxplayer-dist/usr/usr/bin
|
||||
- mkdir -p omxplayer-dist/usr/share/doc
|
||||
- cp omxplayer omxplayer.bin omxplayer-dist/usr/usr/bin
|
||||
- cp COPYING omxplayer-dist/usr/share/doc/
|
||||
- cp README.md omxplayer-dist/usr/share/doc/README
|
||||
- cp -a ffmpeg_compiled/usr/lib/*.so* omxplayer-dist/usr/lib/omxplayer/
|
||||
- tar -czf omxplayer-dist.tar.gz omxplayer-dist
|
||||
+ mkdir -p $(DEST)/usr/lib/omxplayer
|
||||
+ mkdir -p $(DEST)/usr/bin
|
||||
+ mkdir -p $(DEST)/usr/share/doc
|
||||
+ cp omxplayer omxplayer.bin $(DEST)/usr/bin
|
||||
+ cp COPYING $(DEST)/usr/share/doc/
|
||||
+ cp README.md $(DEST)/usr/share/doc/README
|
||||
+ cp -a ffmpeg_compiled/usr/lib/*.so* $(DEST)/usr/lib/omxplayer/
|
||||
+ tar -czf omxplayer-dist.tar.gz $(DEST)
|
||||
@@ -1,69 +0,0 @@
|
||||
Remove Makefile.include which includes hardcoded paths and rely on
|
||||
variables provided by build system.
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
|
||||
Index: git/Makefile.ffmpeg
|
||||
===================================================================
|
||||
--- git.orig/Makefile.ffmpeg 2012-08-26 01:04:27.208235775 +0300
|
||||
+++ git/Makefile.ffmpeg 2012-08-26 01:05:03.958245731 +0300
|
||||
@@ -1,5 +1,3 @@
|
||||
-include Makefile.include
|
||||
-
|
||||
CFLAGS=-D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -D_LINUX -fPIC -DPIC -D_REENTRANT -D_HAVE_SBRK -D_LARGEFILE64_SOURCE -DHAVE_CMAKE_CONFIG -DHAVE_VMCS_CONFIG -D_REENTRANT -DUSE_VCHIQ_ARM -DVCHI_BULK_ALIGN=1 -DVCHI_BULK_GRANULARITY=1 -DEGL_SERVER_DISPMANX -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__VIDEOCORE4__ -DGRAPHICS_X_VG=1 -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DOMX -DOMX_SKIP64BIT
|
||||
|
||||
WORK=$(PWD)
|
||||
Index: git/Makefile
|
||||
===================================================================
|
||||
--- git.orig/Makefile 2012-08-25 21:46:44.771745783 +0300
|
||||
+++ git/Makefile 2012-08-25 21:48:59.220406089 +0300
|
||||
@@ -1,5 +1,3 @@
|
||||
-include Makefile.include
|
||||
-
|
||||
CFLAGS+=-std=c++0x -DSTANDALONE -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -D_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST
|
||||
|
||||
LDFLAGS+=-L./ -lc -lWFC -lGLESv2 -lEGL -lbcm_host -lopenmaxil -lfreetype -lz -Lffmpeg_compiled/usr/local/lib/
|
||||
Index: git/Makefile.include
|
||||
===================================================================
|
||||
--- git.orig/Makefile.include 2012-08-25 21:46:44.771745783 +0300
|
||||
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
@@ -1,38 +0,0 @@
|
||||
-USE_BUILDROOT=1
|
||||
-FLOAT=hard
|
||||
-
|
||||
-ifeq ($(USE_BUILDROOT), 1)
|
||||
-BUILDROOT :=/opt/xbmc-bcm/buildroot
|
||||
-SDKSTAGE :=$(BUILDROOT)/output/staging
|
||||
-TARGETFS :=$(BUILDROOT)/output/target
|
||||
-TOOLCHAIN :=$(BUILDROOT)/output/host/usr/
|
||||
-HOST :=arm-unknown-linux-gnueabi
|
||||
-SYSROOT :=$(BUILDROOT)/output/host/usr/arm-unknown-linux-gnueabi/sysroot
|
||||
-else
|
||||
-BUILDROOT :=/opt/bcm-rootfs
|
||||
-SDKSTAGE :=/opt/bcm-rootfs
|
||||
-TARGETFS :=/opt/bcm-rootfs
|
||||
-TOOLCHAIN :=/usr/local/bcm-gcc
|
||||
-HOST :=bcm2708
|
||||
-SYSROOT :=$(TOOLCHAIN)/arm-bcm2708-linux-gnueabi/sys-root
|
||||
-endif
|
||||
-
|
||||
-JOBS=7
|
||||
-
|
||||
-CFLAGS := -isystem$(PREFIX)/include
|
||||
-CXXFLAGS := $(CFLAGS)
|
||||
-CPPFLAGS := $(CFLAGS)
|
||||
-LDFLAGS := -L$(BUILDROOT)/lib
|
||||
-LD := $(TOOLCHAIN)/bin/$(HOST)-ld --sysroot=$(SYSROOT)
|
||||
-CC := $(TOOLCHAIN)/bin/$(HOST)-gcc --sysroot=$(SYSROOT)
|
||||
-CXX := $(TOOLCHAIN)/bin/$(HOST)-g++ --sysroot=$(SYSROOT)
|
||||
-OBJDUMP := $(TOOLCHAIN)/bin/$(HOST)-objdump
|
||||
-RANLIB := $(TOOLCHAIN)/bin/$(HOST)-ranlib
|
||||
-STRIP := $(TOOLCHAIN)/bin/$(HOST)-strip
|
||||
-AR := $(TOOLCHAIN)/bin/$(HOST)-ar
|
||||
-CXXCP := $(CXX) -E
|
||||
-PATH := $(PREFIX)/bin:$(BUILDROOT)/output/host/usr/bin:$(PATH)
|
||||
-
|
||||
-CFLAGS += -pipe -mfloat-abi=$(FLOAT) -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -mno-apcs-stack-check -O3 -mstructure-size-boundary=32 -mno-sched-prolog
|
||||
-LDFLAGS += -L$(SDKSTAGE)/lib -L$(SDKSTAGE)/usr/lib -L$(SDKSTAGE)/opt/vc/lib/
|
||||
-INCLUDES += -isystem$(SDKSTAGE)/usr/include -isystem$(SDKSTAGE)/opt/vc/include -isystem$(SYSROOT)/usr/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads -isystem$(SDKSTAGE)/usr/include/freetype2
|
||||
@@ -0,0 +1,19 @@
|
||||
Force the pkg-config native tool. Strangely ffmpeg prepends cross_prefix
|
||||
to the default value which obviously is wrong.
|
||||
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
|
||||
Index: git/Makefile.ffmpeg
|
||||
===================================================================
|
||||
--- git.orig/Makefile.ffmpeg
|
||||
+++ git/Makefile.ffmpeg
|
||||
@@ -245,7 +245,8 @@ configure:
|
||||
--disable-decoder=idf \
|
||||
--enable-decoder=opus \
|
||||
--cross-prefix=$(HOST)- \
|
||||
- --disable-stripping
|
||||
+ --disable-stripping \
|
||||
+ --pkg-config=pkg-config
|
||||
|
||||
.PHONY : clean
|
||||
clean:
|
||||
@@ -1,62 +1,72 @@
|
||||
DESCRIPTION = "OMXPlayer is a commandline OMX player for the Raspberry Pi"
|
||||
HOMEPAGE = "https://github.com/huceke/omxplayer"
|
||||
SUMMARY = "A commandline OMX player for the Raspberry Pi"
|
||||
DESCRIPTION = "This player was developed as a testbed for the XBMC \
|
||||
Raspberry PI implementation and is quite handy to use standalone"
|
||||
HOMEPAGE = "https://github.com/popcornmix/omxplayer"
|
||||
SECTION = "console/utils"
|
||||
LICENSE = "GPLv2"
|
||||
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
|
||||
|
||||
DEPENDS = "libpcre libav virtual/egl boost freetype"
|
||||
DEPENDS = "libpcre libav virtual/egl boost freetype dbus openssl samba libssh"
|
||||
PR = "r4"
|
||||
|
||||
PR = "r0"
|
||||
|
||||
SRCREV = "231c08b42005e3de565013bc1cee18bd5a349c1f"
|
||||
SRC_URI = "git://github.com/huceke/omxplayer.git;protocol=git;branch=master \
|
||||
file://remove-makefile-include.patch \
|
||||
file://libraries-are-installed-in-usr-lib.patch \
|
||||
file://remove-hardcoded-directory-omxplayer-dist.patch \
|
||||
file://don-t-strip-while-installing.patch \
|
||||
"
|
||||
SRCREV = "d99bd86c9fd80ea01f98761e130d7ac9a2bb7588"
|
||||
SRC_URI = "git://github.com/popcornmix/omxplayer.git;protocol=git;branch=master \
|
||||
file://0001-Remove-Makefile.include-which-includes-hardcoded.patch \
|
||||
file://0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch \
|
||||
file://0003-Remove-strip-step-in-Makefile.patch \
|
||||
file://0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch \
|
||||
file://fix-tar-command-with-DIST.patch \
|
||||
file://use-native-pkg-config.patch \
|
||||
"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
|
||||
inherit autotools
|
||||
inherit autotools-brokensep pkgconfig
|
||||
|
||||
# Variable added in Makefile to INCLUDE
|
||||
export ADD_INCDIR = "-I${STAGING_INCDIR}/interface/vcos/pthreads -I${STAGING_INCDIR}/freetype2"
|
||||
# Needed in ffmpeg configure
|
||||
export TEMPDIR = "${S}/tmp"
|
||||
|
||||
# Needed in configure from Makefile.ffmpeg
|
||||
# Needed in Makefile.ffmpeg
|
||||
export HOST = "${HOST_SYS}"
|
||||
export WORK = "${S}"
|
||||
export TEMPDIR = "${S}/tmp"
|
||||
export FLOAT = "softfp"
|
||||
export FLOAT = "${@bb.utils.contains("TUNE_FEATURES", "callconvention-hard", "hard", "softfp", d)}"
|
||||
export FFMPEG_EXTRA_CFLAGS = "--sysroot=${STAGING_DIR_TARGET}"
|
||||
export FFMPEG_EXTRA_LDFLAGS = "--sysroot=${STAGING_DIR_TARGET}"
|
||||
|
||||
# Needed in top Makefile
|
||||
export LDFLAGS = "-L${S}/ffmpeg_compiled/usr/lib \
|
||||
-L${STAGING_DIR_HOST}/lib \
|
||||
-L${STAGING_DIR_HOST}/usr/lib \
|
||||
"
|
||||
|
||||
export INCLUDES = "-isystem${STAGING_DIR_HOST}/usr/include \
|
||||
-isystem${STAGING_DIR_HOST}/usr/include/interface/vcos/pthreads \
|
||||
-isystem${STAGING_DIR_HOST}/usr/include/freetype2 \
|
||||
-isystem${STAGING_DIR_HOST}/usr/include/interface/vmcs_host/linux \
|
||||
-isystem${STAGING_DIR_HOST}/usr/include/dbus-1.0 \
|
||||
-isystem${STAGING_DIR_HOST}/usr/lib/dbus-1.0/include \
|
||||
"
|
||||
|
||||
# Install in ${D}
|
||||
export DEST = "${D}"
|
||||
export DIST = "${D}"
|
||||
|
||||
do_compile() {
|
||||
# Needed for compiler test in ffmpeg's configure
|
||||
mkdir -p tmp
|
||||
# Needed for compiler test in ffmpeg's configure
|
||||
mkdir -p tmp
|
||||
|
||||
oe_runmake ffmpeg
|
||||
oe_runmake
|
||||
oe_runmake ffmpeg
|
||||
oe_runmake
|
||||
}
|
||||
|
||||
do_install() {
|
||||
oe_runmake dist
|
||||
oe_runmake STRIP='echo skipping strip' dist
|
||||
mkdir -p ${D}${datadir}/fonts/truetype/freefont/
|
||||
install ${S}/fonts/* ${D}${datadir}/fonts/truetype/freefont/
|
||||
}
|
||||
|
||||
FILES_${PN} = "${bindir}/omxplayer* \
|
||||
${libdir}/omxplayer/lib*${SOLIBS}"
|
||||
${libdir}/omxplayer/lib*${SOLIBS} \
|
||||
${datadir}/fonts"
|
||||
|
||||
FILES_${PN}-dev += "${libdir}/omxplayer/*.so"
|
||||
|
||||
RDEPENDS_${PN} += "bash procps"
|
||||
|
||||
6
scripts/lib/image/canned-wks/sdimage-raspberrypi.wks
Normal file
6
scripts/lib/image/canned-wks/sdimage-raspberrypi.wks
Normal file
@@ -0,0 +1,6 @@
|
||||
# short-description: Create Raspberry Pi SD card image
|
||||
# long-description: Creates a partitioned SD card image for use with
|
||||
# Raspberry Pi. Boot files are located in the first vfat partition.
|
||||
|
||||
part /boot --source bootimg-partition --ondisk mmcblk --fstype=vfat --label boot --active --align 4096 --size 20
|
||||
part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 4096
|
||||
Reference in New Issue
Block a user