mirror of
https://github.com/agherzan/meta-raspberrypi.git
synced 2025-12-06 14:19:12 +00:00
Compare commits
414 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6786c0709d | ||
|
|
3fa61f096f | ||
|
|
89a9e2d88d | ||
|
|
b7defa119a | ||
|
|
d4ce736c91 | ||
|
|
b0acfb8dd3 | ||
|
|
8bd0459044 | ||
|
|
40447de478 | ||
|
|
a6ebf95260 | ||
|
|
9bb89a75c0 | ||
|
|
015999bc02 | ||
|
|
093286dae8 | ||
|
|
ed3b254454 | ||
|
|
1220c461d8 | ||
|
|
c981f01a2c | ||
|
|
8291756c3f | ||
|
|
6521c4db7d | ||
|
|
6b38f3c6f9 | ||
|
|
62ecc5a45b | ||
|
|
8ba2d6fc80 | ||
|
|
ff59ad9d4b | ||
|
|
c750b0ac5d | ||
|
|
31a813c069 | ||
|
|
081405feaa | ||
|
|
e147e12d94 | ||
|
|
a71483f9d9 | ||
|
|
371f85ce53 | ||
|
|
5eb159d32d | ||
|
|
caabd6a608 | ||
|
|
34113350f4 | ||
|
|
a30708d49c | ||
|
|
bf02bfd2ed | ||
|
|
654d84d68a | ||
|
|
03976f7ff1 | ||
|
|
f6764c85e3 | ||
|
|
7f88c39eeb | ||
|
|
b32257c841 | ||
|
|
4f2dd0f0e8 | ||
|
|
45ece9cd0a | ||
|
|
e5f33333ca | ||
|
|
3d43e174d2 | ||
|
|
c4e6ff4f9f | ||
|
|
39e1d49097 | ||
|
|
adf62cd9e8 | ||
|
|
e28e6e6422 | ||
|
|
4a2e37f96e | ||
|
|
6d5d83f1d6 | ||
|
|
a438f1d514 | ||
|
|
a001d9f316 | ||
|
|
9eaff5ce1a | ||
|
|
135a7ae55f | ||
|
|
63aa85268c | ||
|
|
d0abd927f5 | ||
|
|
abeddc3b0d | ||
|
|
d8da77b57e | ||
|
|
3cf2582cc9 | ||
|
|
d9e94b87a7 | ||
|
|
2aa6b1a637 | ||
|
|
8527a396d3 | ||
|
|
decdacf30c | ||
|
|
0d28786dac | ||
|
|
b05e5e32a4 | ||
|
|
e8682225ef | ||
|
|
7d064961c2 | ||
|
|
962ba44ec8 | ||
|
|
668446e283 | ||
|
|
8a450f0a8a | ||
|
|
af79504e44 | ||
|
|
0ef0667550 | ||
|
|
e11d38f8dc | ||
|
|
d70e311c43 | ||
|
|
7e941bb1ed | ||
|
|
1a42bce360 | ||
|
|
fe909cd5b9 | ||
|
|
1b05ca6bb4 | ||
|
|
78612dfcc5 | ||
|
|
723f04622f | ||
|
|
66e0e37ce3 | ||
|
|
aa454eea68 | ||
|
|
e3620fc038 | ||
|
|
58b2015564 | ||
|
|
2adfc6818e | ||
|
|
4b0bc450e0 | ||
|
|
d0c152d7f8 | ||
|
|
da32aac453 | ||
|
|
0948d17ded | ||
|
|
6c8ca9ccf1 | ||
|
|
e070005aa8 | ||
|
|
a84ba9b73c | ||
|
|
65b9376450 | ||
|
|
7a9c3e48b2 | ||
|
|
65723a9455 | ||
|
|
bfae6d8952 | ||
|
|
6561befc96 | ||
|
|
52bec45b67 | ||
|
|
c01466aabb | ||
|
|
6bafea4f37 | ||
|
|
ff914ff622 | ||
|
|
a23003794f | ||
|
|
8873478623 | ||
|
|
59d111195d | ||
|
|
12f8a354bf | ||
|
|
6ce6e57782 | ||
|
|
9aded8f9d4 | ||
|
|
c768a3d1ae | ||
|
|
9d418db5ed | ||
|
|
f81e9ac1bb | ||
|
|
11d376d2fe | ||
|
|
50f769f82c | ||
|
|
9eee2833c3 | ||
|
|
8990caf8b7 | ||
|
|
c9cf319f47 | ||
|
|
d01bf8751b | ||
|
|
39bd54a3f6 | ||
|
|
d9c6b7903e | ||
|
|
0be123e5b8 | ||
|
|
9ed927caae | ||
|
|
36a3895d4e | ||
|
|
67e0216492 | ||
|
|
acbbe4b252 | ||
|
|
68634deeed | ||
|
|
ae2be3aff9 | ||
|
|
8f1511d72d | ||
|
|
9d4b68dc77 | ||
|
|
f43dd79dcc | ||
|
|
3ea6f9f455 | ||
|
|
ec28a0d5b3 | ||
|
|
9288778503 | ||
|
|
7f99a4cb6d | ||
|
|
ac715f78f8 | ||
|
|
6dcdb7fba3 | ||
|
|
8716d7027c | ||
|
|
642d5c25b2 | ||
|
|
3ad29d11e7 | ||
|
|
e1f69daa80 | ||
|
|
02c0d41478 | ||
|
|
031e26954b | ||
|
|
c40558173f | ||
|
|
d77f3d46e3 | ||
|
|
672e025e2d | ||
|
|
1bf09a45a9 | ||
|
|
22fb2b4b25 | ||
|
|
90c45b48f6 | ||
|
|
96b9c633d7 | ||
|
|
17f0c23305 | ||
|
|
064aa0a388 | ||
|
|
0e66d6953c | ||
|
|
18cf04d167 | ||
|
|
1f64604570 | ||
|
|
44d41bf3e9 | ||
|
|
6bd1bfe472 | ||
|
|
b0308141c1 | ||
|
|
9c12ac8280 | ||
|
|
380740d866 | ||
|
|
a5f95f4233 | ||
|
|
716b6a9cd7 | ||
|
|
6c755af275 | ||
|
|
b9e6f04ce6 | ||
|
|
00300d9df8 | ||
|
|
3e6e890437 | ||
|
|
12aa27df80 | ||
|
|
ab39653ed0 | ||
|
|
17a6933adf | ||
|
|
ddc9390c2a | ||
|
|
d51a8a7373 | ||
|
|
e9911480e0 | ||
|
|
ed54bd3788 | ||
|
|
3360f98cad | ||
|
|
1d629b1925 | ||
|
|
56047ad7db | ||
|
|
1f24992a3c | ||
|
|
c62e088a65 | ||
|
|
1ebb370e81 | ||
|
|
8d17669588 | ||
|
|
3b9aebd6ae | ||
|
|
de016ceef6 | ||
|
|
b6c954de58 | ||
|
|
d778d0a23d | ||
|
|
1e3983fbfc | ||
|
|
ecd8875d6d | ||
|
|
05be947a31 | ||
|
|
585838e7a2 | ||
|
|
41689e8fe2 | ||
|
|
5697e77ec4 | ||
|
|
4817e2c087 | ||
|
|
ac6f357271 | ||
|
|
760ddd0f18 | ||
|
|
ed84c2c8a2 | ||
|
|
55388a5101 | ||
|
|
b24afdc2e7 | ||
|
|
e993bdc7cd | ||
|
|
c2f76439cc | ||
|
|
d511c7ceb6 | ||
|
|
ef22ff49e9 | ||
|
|
6b4de2bb90 | ||
|
|
bee7643b6c | ||
|
|
72b9635c66 | ||
|
|
ba9c4660d6 | ||
|
|
5d2722c33b | ||
|
|
824b78c4f0 | ||
|
|
dfce95fa3d | ||
|
|
224b9e9a39 | ||
|
|
0035bc8d80 | ||
|
|
6e535ddabb | ||
|
|
1a32817fb8 | ||
|
|
d98f2a74db | ||
|
|
09b76a43f6 | ||
|
|
18a2fb644b | ||
|
|
a5f9b07a82 | ||
|
|
8c5eba1d94 | ||
|
|
5229f75604 | ||
|
|
5771c7f7d4 | ||
|
|
1b2c25ee88 | ||
|
|
4c02c7ce07 | ||
|
|
cc64d6324d | ||
|
|
2745399f75 | ||
|
|
3fb0a1914a | ||
|
|
6564e126ae | ||
|
|
101e8aba77 | ||
|
|
10691ae680 | ||
|
|
5cac5e67f8 | ||
|
|
43ecd9ac99 | ||
|
|
fe92cc7e14 | ||
|
|
d49bd07c5b | ||
|
|
b34b4fe8fc | ||
|
|
5f12d846f7 | ||
|
|
f38938f6ca | ||
|
|
4fb1a155dc | ||
|
|
8a21c1dda6 | ||
|
|
0dbf569173 | ||
|
|
ffddbad97c | ||
|
|
69840c0bbe | ||
|
|
b1940869a5 | ||
|
|
5d79d24d36 | ||
|
|
f7af12910f | ||
|
|
9912d38e97 | ||
|
|
060927314d | ||
|
|
cd338c26e2 | ||
|
|
dedd75f08f | ||
|
|
c4ddf87db2 | ||
|
|
953dc5a406 | ||
|
|
1317a894fa | ||
|
|
6cdb2becac | ||
|
|
37c2366724 | ||
|
|
4a2cefab66 | ||
|
|
47440c32a4 | ||
|
|
3fe96d9212 | ||
|
|
c57a7295d7 | ||
|
|
d997e2da17 | ||
|
|
e2603e56d6 | ||
|
|
3696c0ef66 | ||
|
|
bfc46bdd55 | ||
|
|
3645b27848 | ||
|
|
f1b7034077 | ||
|
|
4f8930b9d0 | ||
|
|
d493717509 | ||
|
|
9b6cdaf826 | ||
|
|
54ecd3402d | ||
|
|
e9e4b1bbd2 | ||
|
|
e447357ec4 | ||
|
|
3bd9b1bce4 | ||
|
|
197266a2aa | ||
|
|
9797874a23 | ||
|
|
84af6e7de3 | ||
|
|
8f425f1b9e | ||
|
|
e82417d33b | ||
|
|
d28692dc9e | ||
|
|
f6473c36a5 | ||
|
|
8f285bb8f3 | ||
|
|
75efa69e75 | ||
|
|
38ab74bd3e | ||
|
|
e9c8b2aa4d | ||
|
|
2c19e8882f | ||
|
|
00962adc49 | ||
|
|
370e0f68e6 | ||
|
|
f248d7cf8c | ||
|
|
53e17683c5 | ||
|
|
27445a1e4c | ||
|
|
06709d784d | ||
|
|
da73efffe1 | ||
|
|
34cb837929 | ||
|
|
507ab2682b | ||
|
|
4ed070fc0c | ||
|
|
b47e8f5599 | ||
|
|
6fa040c769 | ||
|
|
bfbe0ce3b4 | ||
|
|
4db634bcda | ||
|
|
32d0936570 | ||
|
|
519c387e3b | ||
|
|
12a8848127 | ||
|
|
1601a3571c | ||
|
|
752a9a89e5 | ||
|
|
5eaeb55161 | ||
|
|
15a23443c8 | ||
|
|
a42a1706de | ||
|
|
249cb544e0 | ||
|
|
807cff5e5b | ||
|
|
224d1c9925 | ||
|
|
0d5aff5161 | ||
|
|
52671faf4f | ||
|
|
b331933938 | ||
|
|
6c6f6cf7b3 | ||
|
|
8948772554 | ||
|
|
451a8de37c | ||
|
|
e9de6d816d | ||
|
|
9675f8f09a | ||
|
|
4d42a6efec | ||
|
|
68b18fa80e | ||
|
|
37e4913438 | ||
|
|
c65b0b8c3f | ||
|
|
bcb26ed634 | ||
|
|
9295c7fd71 | ||
|
|
048008a935 | ||
|
|
c25a43a3b4 | ||
|
|
736e1ba035 | ||
|
|
6726ffb4fe | ||
|
|
053cb6ea0d | ||
|
|
1465bc8787 | ||
|
|
6bd39a61b7 | ||
|
|
6314f668fa | ||
|
|
fe25a1163a | ||
|
|
70e7860820 | ||
|
|
509f042280 | ||
|
|
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 |
27
.github/ISSUE_TEMPLATE.md
vendored
Normal file
27
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<!--
|
||||||
|
If you are reporting a new issue, make sure that we do not have any duplicates
|
||||||
|
already open. You can ensure this by searching the issue list for this
|
||||||
|
repository. If there is a duplicate, please close your issue and add a comment
|
||||||
|
to the existing issue instead.
|
||||||
|
-->
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Briefly describe the problem you are having in a few paragraphs.
|
||||||
|
-->
|
||||||
|
|
||||||
|
**Steps to reproduce the issue:**
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
|
||||||
|
**Describe the results you received:**
|
||||||
|
|
||||||
|
|
||||||
|
**Describe the results you expected:**
|
||||||
|
|
||||||
|
|
||||||
|
**Additional information you deem important (e.g. issue happens only occasionally):**
|
||||||
|
|
||||||
|
**Additional details (revisions used, host distro, etc.):**
|
||||||
16
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
16
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<!--
|
||||||
|
Please make sure you've read and understood our contributing guidelines.
|
||||||
|
|
||||||
|
For additional information on the contribution guidelines:
|
||||||
|
https://wiki.yoctoproject.org/wiki/Contribution_Guidelines#General_Information
|
||||||
|
|
||||||
|
If this PR fixes an issue, make sure your description includes "fixes #xxxx".
|
||||||
|
|
||||||
|
If this PR connects to an issue, make sure your description includes "connected to #xxxx".
|
||||||
|
|
||||||
|
Please provide the following information:
|
||||||
|
-->
|
||||||
|
|
||||||
|
**- What I did**
|
||||||
|
|
||||||
|
**- How I did it**
|
||||||
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
build*
|
||||||
|
*~
|
||||||
|
.*.swp
|
||||||
|
*.orig
|
||||||
|
*.rej
|
||||||
|
*.log
|
||||||
|
docs/_build
|
||||||
263
README
263
README
@@ -1,263 +0,0 @@
|
|||||||
.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,
|
|
||||||
....
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Contents:
|
|
||||||
=========
|
|
||||||
1. Description
|
|
||||||
2. Yocto BSP Layer - RaspberryPi
|
|
||||||
2.A. Compressed deployed files
|
|
||||||
2.B. GPU memory
|
|
||||||
2.C. Add purchased license codecs
|
|
||||||
2.D. Disable overscan
|
|
||||||
2.E. Set overclocking options
|
|
||||||
2.F. Optional - Video camera support with V4L2 drivers
|
|
||||||
2.G. Optional - Enable offline compositing support
|
|
||||||
2.H. Images
|
|
||||||
2.I. Boot to U-Boot
|
|
||||||
2.J. Image with Initramfs
|
|
||||||
3. Extra apps
|
|
||||||
3.A. omxplayer
|
|
||||||
4. Source code and mirrors
|
|
||||||
5. Contribution
|
|
||||||
5.A. Mailing List
|
|
||||||
5.B. Gerrit Review Server
|
|
||||||
5.C. Trello Board
|
|
||||||
6. Maintainers
|
|
||||||
|
|
||||||
|
|
||||||
1. Description
|
|
||||||
==============
|
|
||||||
|
|
||||||
This is the general hardware specific BSP overlay for the RaspberryPi device.
|
|
||||||
|
|
||||||
More information can be found at:
|
|
||||||
http://www.raspberrypi.org/ (Official Site)
|
|
||||||
|
|
||||||
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.
|
|
||||||
* Yocto/Poky (main focus of testing).
|
|
||||||
|
|
||||||
2. Yocto BSP Layer - RaspberryPi
|
|
||||||
================================
|
|
||||||
|
|
||||||
This layer depends on:
|
|
||||||
|
|
||||||
URI: git://git.yoctoproject.org/poky
|
|
||||||
branch: master
|
|
||||||
revision: HEAD
|
|
||||||
|
|
||||||
URI: git://git.openembedded.org/meta-openembedded
|
|
||||||
layers: meta-multimedia
|
|
||||||
branch: master
|
|
||||||
revision: HEAD
|
|
||||||
|
|
||||||
How to use it:
|
|
||||||
|
|
||||||
1. source poky/oe-init-build-env rpi-build
|
|
||||||
2. Add needed layer to bblayers.conf:
|
|
||||||
- meta-raspberrypi
|
|
||||||
3 Set MACHINE to raspberrypi 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.
|
|
||||||
|
|
||||||
2.A. Optional - compressed deployed files:
|
|
||||||
==========================================
|
|
||||||
1. Overwrite IMAGE_FSTYPES in local.conf
|
|
||||||
IMAGE_FSTYPES = "tar.bz2 ext3.xz"
|
|
||||||
2. Overwrite SDIMG_ROOTFS_TYPE in local.conf
|
|
||||||
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:
|
|
||||||
===========================
|
|
||||||
Variable : Details
|
|
||||||
GPU_MEM : GPU memory in megabyte. Sets the memory split between the ARM and
|
|
||||||
GPU. ARM gets the remaining memory. Min 16. Default 64.
|
|
||||||
GPU_MEM_256 : GPU memory in megabyte for the 256MB Raspberry Pi. Ignored by the
|
|
||||||
512MB RP. Overrides gpu_mem. Max 192. Default not set.
|
|
||||||
GPU_MEM_512 : GPU memory in megabyte for the 512MB Raspberry Pi. Ignored by the
|
|
||||||
256MB RP. Overrides gpu_mem. Max 448. Default not set.
|
|
||||||
|
|
||||||
2.C.Optional - Add purchased license codecs:
|
|
||||||
============================================
|
|
||||||
To add you own licenses use variables KEY_DECODE_MPG2 and KEY_DECODE_WVC1 in
|
|
||||||
local.conf. Example:
|
|
||||||
KEY_DECODE_MPG2 = "12345678"
|
|
||||||
KEY_DECODE_WVC1 = "12345678"
|
|
||||||
You can supply more licenses separated by comma. Example:
|
|
||||||
KEY_DECODE_WVC1 = "0x12345678,0xabcdabcd,0x87654321"
|
|
||||||
|
|
||||||
2.D. Optional - Disable overscan:
|
|
||||||
=================================
|
|
||||||
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"
|
|
||||||
|
|
||||||
2.E. Optional - Set overclocking options:
|
|
||||||
=========================================
|
|
||||||
The Raspberry PI can be overclocked. As of now overclocking up to the "Turbo
|
|
||||||
Mode" is officially supported by the raspbery and does not void warranty.
|
|
||||||
Check the config.txt for a detailed description of options and modes. Example:
|
|
||||||
# Turbo mode
|
|
||||||
ARM_FREQ = "1000"
|
|
||||||
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
|
|
||||||
==================================================
|
|
||||||
|
|
||||||
Set this variable to enable support for dispmanx offline compositing
|
|
||||||
DISMANX_OFFLINE = "1"
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Heavily recommended for Wayland/Weston.
|
|
||||||
|
|
||||||
See: http://wayland.freedesktop.org/raspberrypi.html
|
|
||||||
|
|
||||||
2.H. 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.I. 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.J. 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"
|
|
||||||
|
|
||||||
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. Source code and mirrors
|
|
||||||
==========================
|
|
||||||
|
|
||||||
Main repo:
|
|
||||||
git://git.yoctoproject.org/meta-raspberrypi
|
|
||||||
http://git.yoctoproject.org/git/meta-raspberrypi
|
|
||||||
|
|
||||||
Github mirror:
|
|
||||||
https://github.com/djwillis/meta-raspberrypi
|
|
||||||
|
|
||||||
Gerrit review repo:
|
|
||||||
https://review.gherzan.ro:8443/meta-raspberrypi
|
|
||||||
|
|
||||||
|
|
||||||
5. Contributing
|
|
||||||
===============
|
|
||||||
|
|
||||||
5.A. Mailing list
|
|
||||||
=================
|
|
||||||
To contribute to this layer you should send the patches for review to the
|
|
||||||
mailing list.
|
|
||||||
|
|
||||||
The patches should be compliant with the openembedded patch guidelines:
|
|
||||||
http://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
|
|
||||||
|
|
||||||
Mailing list:
|
|
||||||
https://lists.yoctoproject.org/listinfo/yocto
|
|
||||||
|
|
||||||
To send changes to mailing list use something like:
|
|
||||||
git send-email --to yocto@yoctoproject.org \
|
|
||||||
--subject-prefix='meta-raspberrypi][PATCH'
|
|
||||||
|
|
||||||
OPTIONALLY push changes to gerrit (help maintainers merge and review patches
|
|
||||||
easier in this way).
|
|
||||||
git push ssh://<username>@review.gherzan.ro:29418/meta-raspberrypi
|
|
||||||
<local-branch>:refs/for/master
|
|
||||||
See 5.B. Gerrit Review Server.
|
|
||||||
|
|
||||||
5.B. Gerrit Review Server
|
|
||||||
=========================
|
|
||||||
We have a gerrit server configured at review.gherzan.ro. Changes made in gerrit
|
|
||||||
are merged in git.yoctoproject.org/meta-raspberrypi.
|
|
||||||
|
|
||||||
You can setup a gerrit account in less than 2 minutes:
|
|
||||||
A) Login / Register on https://review.gherzan.ro:8443.
|
|
||||||
B) Add your PUBLIC key in Settings/SSH Public Keys.
|
|
||||||
C) Add remote in your local repo:
|
|
||||||
git remote add gherzan ssh://<username>@review.gherzan.ro:29418/meta-raspberrypi
|
|
||||||
D) Push changes to gerrit using:
|
|
||||||
git push gherzan <local-branch>:refs/for/master
|
|
||||||
|
|
||||||
Please check your spam folder for gerrit messages. Sometimes they end up there.
|
|
||||||
|
|
||||||
5.C. Trello Board
|
|
||||||
=================
|
|
||||||
A public Trello board is set to manage tasks and bugs. Join us there:
|
|
||||||
https://trello.com/b/QsYeVjVe/meta-raspberrypi
|
|
||||||
|
|
||||||
|
|
||||||
6. Maintainers
|
|
||||||
==============
|
|
||||||
|
|
||||||
John Willis <John.Willis at distant-earth.com>
|
|
||||||
Andrei Gherzan <andrei at gherzan.ro>
|
|
||||||
55
README.md
Normal file
55
README.md
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# meta-raspberrypi
|
||||||
|
|
||||||
|
Yocto BSP layer for the Raspberry Pi boards - <http://www.raspberrypi.org/>.
|
||||||
|
|
||||||
|
[](https://yocto-ci.resin.io/job/meta-raspberrypi1)
|
||||||
|
[](https://yocto-ci.resin.io/job/meta-raspberrypi2)
|
||||||
|
[](https://yocto-ci.resin.io/job/meta-raspberrypi3)
|
||||||
|
[](https://gitter.im/agherzan/meta-raspberrypi)
|
||||||
|
|
||||||
|
## 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 (Github Issues):
|
||||||
|
<https://github.com/agherzan/meta-raspberrypi/issues>
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This is the general hardware specific BSP overlay for the RaspberryPi device.
|
||||||
|
|
||||||
|
More information can be found at: <http://www.raspberrypi.org/> (Official Site)
|
||||||
|
|
||||||
|
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.
|
||||||
|
* Yocto/Poky (main focus of testing).
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
This layer depends on:
|
||||||
|
|
||||||
|
* URI: git://git.yoctoproject.org/poky
|
||||||
|
* branch: pyro
|
||||||
|
* revision: HEAD
|
||||||
|
|
||||||
|
* URI: git://git.openembedded.org/meta-openembedded
|
||||||
|
* layers: meta-oe, meta-multimedia, meta-networking, meta-python
|
||||||
|
* branch: pyro
|
||||||
|
* revision: HEAD
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
1. source poky/oe-init-build-env rpi-build
|
||||||
|
2. Add this layer to bblayers.conf and the dependencies above
|
||||||
|
3. Set MACHINE in local.conf to one of the supported boards
|
||||||
|
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.
|
||||||
|
|
||||||
|
## Maintainers
|
||||||
|
|
||||||
|
* Andrei Gherzan `<andrei at gherzan.ro>`
|
||||||
29
classes/linux-raspberrypi-base.bbclass
Normal file
29
classes/linux-raspberrypi-base.bbclass
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
inherit linux-kernel-base
|
||||||
|
|
||||||
|
def get_dts(d, ver=None):
|
||||||
|
import re
|
||||||
|
|
||||||
|
staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR")
|
||||||
|
dts = d.getVar("KERNEL_DEVICETREE")
|
||||||
|
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
return dts
|
||||||
|
|
||||||
|
|
||||||
|
def split_overlays(d, out, ver=None):
|
||||||
|
dts = get_dts(d, ver)
|
||||||
|
if out:
|
||||||
|
overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d)
|
||||||
|
overlays = oe.utils.str_filter_out('\S+\.dtbo$', overlays, d)
|
||||||
|
else:
|
||||||
|
overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d) + \
|
||||||
|
" " + oe.utils.str_filter('\S+\.dtbo$', dts, d)
|
||||||
|
|
||||||
|
return overlays
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
inherit image_types
|
inherit image_types
|
||||||
|
inherit linux-raspberrypi-base
|
||||||
|
|
||||||
#
|
#
|
||||||
# Create an image that can by written onto a SD card using dd.
|
# Create an image that can by written onto a SD card using dd.
|
||||||
@@ -13,14 +14,14 @@ inherit image_types
|
|||||||
# Default Free space = 1.3x
|
# Default Free space = 1.3x
|
||||||
# Use IMAGE_OVERHEAD_FACTOR to add more space
|
# Use IMAGE_OVERHEAD_FACTOR to add more space
|
||||||
# <--------->
|
# <--------->
|
||||||
# 4MiB 20MiB SDIMG_ROOTFS
|
# 4MiB 40MiB SDIMG_ROOTFS
|
||||||
# <-----------------------> <----------> <---------------------->
|
# <-----------------------> <----------> <---------------------->
|
||||||
# ------------------------ ------------ ------------------------
|
# ------------------------ ------------ ------------------------
|
||||||
# | IMAGE_ROOTFS_ALIGNMENT | BOOT_SPACE | ROOTFS_SIZE |
|
# | 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
|
# This image depends on the rootfs image
|
||||||
IMAGE_TYPEDEP_rpi-sdimg = "${SDIMG_ROOTFS_TYPE}"
|
IMAGE_TYPEDEP_rpi-sdimg = "${SDIMG_ROOTFS_TYPE}"
|
||||||
@@ -31,30 +32,35 @@ IMAGE_BOOTLOADER ?= "bcm2835-bootfiles"
|
|||||||
# Set initramfs extension
|
# Set initramfs extension
|
||||||
KERNEL_INITRAMFS ?= ""
|
KERNEL_INITRAMFS ?= ""
|
||||||
|
|
||||||
|
# Kernel image name
|
||||||
|
SDIMG_KERNELIMAGE_raspberrypi ?= "kernel.img"
|
||||||
|
SDIMG_KERNELIMAGE_raspberrypi2 ?= "kernel7.img"
|
||||||
|
SDIMG_KERNELIMAGE_raspberrypi3-64 ?= "kernel8.img"
|
||||||
|
|
||||||
# Boot partition volume id
|
# Boot partition volume id
|
||||||
BOOTDD_VOLUME_ID ?= "${MACHINE}"
|
BOOTDD_VOLUME_ID ?= "${MACHINE}"
|
||||||
|
|
||||||
# Boot partition size [in KiB] (will be rounded up to IMAGE_ROOTFS_ALIGNMENT)
|
# 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]
|
# Set alignment to 4MB [in KiB]
|
||||||
IMAGE_ROOTFS_ALIGNMENT = "4096"
|
IMAGE_ROOTFS_ALIGNMENT = "4096"
|
||||||
|
|
||||||
# Use an uncompressed ext3 by default as rootfs
|
# Use an uncompressed ext3 by default as rootfs
|
||||||
SDIMG_ROOTFS_TYPE ?= "ext3"
|
SDIMG_ROOTFS_TYPE ?= "ext3"
|
||||||
SDIMG_ROOTFS = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.${SDIMG_ROOTFS_TYPE}"
|
SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.${SDIMG_ROOTFS_TYPE}"
|
||||||
|
|
||||||
IMAGE_DEPENDS_rpi-sdimg = " \
|
IMAGE_DEPENDS_rpi-sdimg = " \
|
||||||
parted-native \
|
parted-native \
|
||||||
mtools-native \
|
mtools-native \
|
||||||
dosfstools-native \
|
dosfstools-native \
|
||||||
virtual/kernel \
|
virtual/kernel:do_deploy \
|
||||||
${IMAGE_BOOTLOADER} \
|
${IMAGE_BOOTLOADER} \
|
||||||
${@base_contains("KERNEL_IMAGETYPE", "uImage", "u-boot", "",d)} \
|
${@bb.utils.contains('KERNEL_IMAGETYPE', 'uImage', 'u-boot', '',d)} \
|
||||||
"
|
"
|
||||||
|
|
||||||
# SD card image name
|
# SD card image name
|
||||||
SDIMG = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.rpi-sdimg"
|
SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.rpi-sdimg"
|
||||||
|
|
||||||
# Compression method to apply to SDIMG after it has been created. Supported
|
# Compression method to apply to SDIMG after it has been created. Supported
|
||||||
# compression formats are "gzip", "bzip2" or "xz". The original .rpi-sdimg file
|
# compression formats are "gzip", "bzip2" or "xz". The original .rpi-sdimg file
|
||||||
@@ -66,20 +72,21 @@ SDIMG = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.rpi-sdimg"
|
|||||||
# Additional files and/or directories to be copied into the vfat partition from the IMAGE_ROOTFS.
|
# Additional files and/or directories to be copied into the vfat partition from the IMAGE_ROOTFS.
|
||||||
FATPAYLOAD ?= ""
|
FATPAYLOAD ?= ""
|
||||||
|
|
||||||
IMAGEDATESTAMP = "${@time.strftime('%Y.%m.%d',time.gmtime())}"
|
# SD card vfat partition image name
|
||||||
|
SDIMG_VFAT = "${IMAGE_NAME}.vfat"
|
||||||
|
SDIMG_LINK_VFAT = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.vfat"
|
||||||
|
|
||||||
IMAGE_CMD_rpi-sdimg () {
|
IMAGE_CMD_rpi-sdimg () {
|
||||||
|
|
||||||
# Align partitions
|
# Align partitions
|
||||||
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
|
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
|
||||||
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE_ALIGNED} - ${BOOT_SPACE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
|
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE_ALIGNED} - ${BOOT_SPACE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
|
||||||
ROOTFS_SIZE=`du -bks ${SDIMG_ROOTFS} | awk '{print $1}'`
|
SDIMG_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + $ROOTFS_SIZE)
|
||||||
# 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})
|
|
||||||
|
|
||||||
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)}"
|
||||||
|
|
||||||
# Initialize sdcard image file
|
# Initialize sdcard image file
|
||||||
dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
|
dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
|
||||||
@@ -95,16 +102,39 @@ IMAGE_CMD_rpi-sdimg () {
|
|||||||
|
|
||||||
# Create a vfat image with boot files
|
# 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 }')
|
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
|
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}/bcm2835-bootfiles/* ::/
|
||||||
|
if test -n "${DTS}"; then
|
||||||
|
# Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' (4.1.x) or by '.dtbo' (4.4.9+) 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_EXT=${DTB##*.}
|
||||||
|
DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"`
|
||||||
|
|
||||||
|
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.${DTB_EXT} ::overlays/${DTB_BASE_NAME}.${DTB_EXT}
|
||||||
|
done
|
||||||
|
fi
|
||||||
case "${KERNEL_IMAGETYPE}" in
|
case "${KERNEL_IMAGETYPE}" in
|
||||||
"uImage")
|
"uImage")
|
||||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/u-boot.img ::kernel.img
|
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/u-boot.bin ::${SDIMG_KERNELIMAGE}
|
||||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::uImage
|
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::uImage
|
||||||
;;
|
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/boot.scr ::boot.scr
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::kernel.img
|
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::${SDIMG_KERNELIMAGE}
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ -n ${FATPAYLOAD} ] ; then
|
if [ -n ${FATPAYLOAD} ] ; then
|
||||||
@@ -116,8 +146,18 @@ IMAGE_CMD_rpi-sdimg () {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Add stamp file
|
# Add stamp file
|
||||||
echo "${IMAGE_NAME}-${IMAGEDATESTAMP}" > ${WORKDIR}/image-version-info
|
echo "${IMAGE_NAME}" > ${WORKDIR}/image-version-info
|
||||||
mcopy -i ${WORKDIR}/boot.img -v ${WORKDIR}//image-version-info ::
|
mcopy -i ${WORKDIR}/boot.img -v ${WORKDIR}/image-version-info ::
|
||||||
|
|
||||||
|
# Deploy vfat partition (for u-boot case only)
|
||||||
|
case "${KERNEL_IMAGETYPE}" in
|
||||||
|
"uImage")
|
||||||
|
cp ${WORKDIR}/boot.img ${IMGDEPLOYDIR}/${SDIMG_VFAT}
|
||||||
|
ln -sf ${SDIMG_VFAT} ${SDIMG_LINK_VFAT}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# Burn Partitions
|
# Burn Partitions
|
||||||
dd if=${WORKDIR}/boot.img of=${SDIMG} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
|
dd if=${WORKDIR}/boot.img of=${SDIMG} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ BBFILES += "${LAYERDIR}/recipes*/*/*.bb \
|
|||||||
|
|
||||||
BBFILE_COLLECTIONS += "raspberrypi"
|
BBFILE_COLLECTIONS += "raspberrypi"
|
||||||
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
|
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
|
||||||
BBFILE_PRIORITY_raspberrypi = "6"
|
BBFILE_PRIORITY_raspberrypi = "9"
|
||||||
|
|
||||||
# Additional license directories.
|
# Additional license directories.
|
||||||
LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
|
LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
|
||||||
|
|||||||
97
conf/machine/include/rpi-base.inc
Normal file
97
conf/machine/include/rpi-base.inc
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
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"
|
||||||
|
|
||||||
|
XSERVER = " \
|
||||||
|
xserver-xorg \
|
||||||
|
${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "xserver-xorg-extension-glx", "", d)} \
|
||||||
|
${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "xf86-video-modesetting", "xf86-video-fbdev", d)} \
|
||||||
|
"
|
||||||
|
|
||||||
|
KERNEL_DEVICETREE ?= " \
|
||||||
|
bcm2708-rpi-0-w.dtb \
|
||||||
|
bcm2708-rpi-b.dtb \
|
||||||
|
bcm2708-rpi-b-plus.dtb \
|
||||||
|
bcm2709-rpi-2-b.dtb \
|
||||||
|
bcm2710-rpi-3-b.dtb \
|
||||||
|
bcm2708-rpi-cm.dtb \
|
||||||
|
bcm2710-rpi-cm3.dtb \
|
||||||
|
\
|
||||||
|
overlays/hifiberry-amp.dtbo \
|
||||||
|
overlays/hifiberry-dac.dtbo \
|
||||||
|
overlays/hifiberry-dacplus.dtbo \
|
||||||
|
overlays/hifiberry-digi.dtbo \
|
||||||
|
overlays/i2c-rtc.dtbo \
|
||||||
|
overlays/iqaudio-dac.dtbo \
|
||||||
|
overlays/iqaudio-dacplus.dtbo \
|
||||||
|
overlays/lirc-rpi.dtbo \
|
||||||
|
overlays/pitft22.dtbo \
|
||||||
|
overlays/pitft28-resistive.dtbo \
|
||||||
|
overlays/pitft35-resistive.dtbo \
|
||||||
|
overlays/pps-gpio.dtbo \
|
||||||
|
overlays/rpi-ft5406.dtbo \
|
||||||
|
overlays/w1-gpio.dtbo \
|
||||||
|
overlays/w1-gpio-pullup.dtbo \
|
||||||
|
overlays/pi3-disable-bt.dtbo \
|
||||||
|
overlays/pi3-miniuart-bt.dtbo \
|
||||||
|
overlays/vc4-kms-v3d.dtbo \
|
||||||
|
"
|
||||||
|
KERNEL_IMAGETYPE ?= "Image"
|
||||||
|
|
||||||
|
MACHINE_FEATURES += "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"
|
||||||
|
|
||||||
|
def make_dtb_boot_files(d):
|
||||||
|
# Generate IMAGE_BOOT_FILES entries for device tree files listed in
|
||||||
|
# KERNEL_DEVICETREE.
|
||||||
|
alldtbs = d.getVar('KERNEL_DEVICETREE')
|
||||||
|
imgtyp = d.getVar('KERNEL_IMAGETYPE')
|
||||||
|
|
||||||
|
def transform(dtb):
|
||||||
|
if dtb.endswith('dtb'):
|
||||||
|
# eg: whatever/bcm2708-rpi-b.dtb has:
|
||||||
|
# DEPLOYDIR file: ${KERNEL_IMAGETYPE}-bcm2708-rpi-b.dtb
|
||||||
|
# destination: bcm2708-rpi-b.dtb
|
||||||
|
base = os.path.basename(dtb)
|
||||||
|
src = '{}-{}'.format(imgtyp, base)
|
||||||
|
dst = base
|
||||||
|
return '{};{}'.format(src, dst)
|
||||||
|
elif dtb.endswith('dtbo'):
|
||||||
|
# overlay dtb:
|
||||||
|
# eg: overlays/hifiberry-amp.dtbo has:
|
||||||
|
# DEPLOYDIR file: ${KERNEL_IMAGETYPE}-hifiberry-amp.dtbo
|
||||||
|
# destination: overlays/hifiberry-amp.dtbo
|
||||||
|
base = os.path.basename(dtb)
|
||||||
|
src = '{}-{}'.format(imgtyp, base)
|
||||||
|
dst = dtb
|
||||||
|
return '{};{}'.format(src, dtb)
|
||||||
|
|
||||||
|
return ' '.join([transform(dtb) for dtb in alldtbs.split(' ') if dtb])
|
||||||
|
|
||||||
|
|
||||||
|
IMAGE_BOOT_FILES ?= "bcm2835-bootfiles/* \
|
||||||
|
${@make_dtb_boot_files(d)} \
|
||||||
|
${@bb.utils.contains('KERNEL_IMAGETYPE', 'uImage', \
|
||||||
|
'${KERNEL_IMAGETYPE} u-boot.bin;${SDIMG_KERNELIMAGE} boot.scr', \
|
||||||
|
'${KERNEL_IMAGETYPE};${SDIMG_KERNELIMAGE}', d)} \
|
||||||
|
"
|
||||||
|
do_image_wic[depends] += " \
|
||||||
|
bcm2835-bootfiles:do_deploy \
|
||||||
|
${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot:do_deploy', '',d)} \
|
||||||
|
"
|
||||||
|
|
||||||
|
# The kernel image is installed into the FAT32 boot partition and does not need
|
||||||
|
# to also be installed into the rootfs.
|
||||||
|
RDEPENDS_kernel-base = ""
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
# RaspberryPi BSP default providers
|
# RaspberryPi BSP default providers
|
||||||
|
|
||||||
PREFERRED_PROVIDER_virtual/kernel = "linux-raspberrypi"
|
PREFERRED_PROVIDER_virtual/kernel ?= "linux-raspberrypi"
|
||||||
PREFERRED_PROVIDER_u-boot = "u-boot-rpi"
|
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
|
||||||
PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
|
PREFERRED_PROVIDER_virtual/egl ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "userland", d)}"
|
||||||
PREFERRED_PROVIDER_virtual/egl ?= "userland"
|
PREFERRED_PROVIDER_virtual/libgles2 ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "userland", d)}"
|
||||||
PREFERRED_PROVIDER_virtual/libgles2 ?= "userland"
|
PREFERRED_PROVIDER_virtual/libgl ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "mesa-gl", d)}"
|
||||||
PREFERRED_PROVIDER_virtual/libgl ?= "mesa-gl"
|
PREFERRED_PROVIDER_virtual/mesa ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "mesa-gl", d)}"
|
||||||
PREFERRED_PROVIDER_virtual/mesa ?= "mesa-gl"
|
PREFERRED_PROVIDER_libgbm ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "mesa-gl", d)}"
|
||||||
PREFERRED_PROVIDER_jpeg = "jpeg"
|
PREFERRED_PROVIDER_jpeg ?= "jpeg"
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# RaspberryPi BSP default versions
|
# RaspberryPi BSP default versions
|
||||||
|
|
||||||
PREFERRED_VERSION_linux-raspberrypi ?= "3.12.%"
|
PREFERRED_VERSION_linux-raspberrypi ??= "4.9.%"
|
||||||
|
|||||||
@@ -6,13 +6,10 @@ 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", "arm1176jzfs", "-mtune=arm1176jzf-s", "", d)}"
|
||||||
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "vfp", "-mfpu=vfp", "", d)}"
|
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "vfp", "-mfpu=vfp", "", d)}"
|
||||||
|
|
||||||
AVAILTUNES += "arm1176jzfs"
|
AVAILTUNES += "arm1176jzfs arm1176jzfshf"
|
||||||
TUNE_FEATURES_tune-arm1176jzfs = "${TUNE_FEATURES_tune-armv6} arm1176jzfs"
|
|
||||||
ARMPKGARCH_tune-arm1176jzfs = "arm1176jzfs"
|
ARMPKGARCH_tune-arm1176jzfs = "arm1176jzfs"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-arm1176jzfs = "${PACKAGE_EXTRA_ARCHS_tune-armv6}"
|
|
||||||
|
|
||||||
AVAILTUNES += "arm1176jzfshf"
|
|
||||||
TUNE_FEATURES_tune-arm1176jzfshf = "${TUNE_FEATURES_tune-arm1176jzfs} callconvention-hard"
|
|
||||||
ARMPKGARCH_tune-arm1176jzfshf = "arm1176jzfs"
|
ARMPKGARCH_tune-arm1176jzfshf = "arm1176jzfs"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-arm1176jzfshf = "${PACKAGE_EXTRA_ARCHS_tune-armv6hf-vfp} arm1176jzfshf-vfp"
|
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"
|
||||||
|
|||||||
6
conf/machine/raspberrypi-cm.conf
Normal file
6
conf/machine/raspberrypi-cm.conf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#@TYPE: Machine
|
||||||
|
#@NAME: RaspberryPi Compute Module (CM1)
|
||||||
|
#@DESCRIPTION: Machine configuration for the RaspberryPi Compute Module (CM1)
|
||||||
|
|
||||||
|
MACHINEOVERRIDES = "raspberrypi:${MACHINE}"
|
||||||
|
include conf/machine/raspberrypi.conf
|
||||||
6
conf/machine/raspberrypi-cm3.conf
Normal file
6
conf/machine/raspberrypi-cm3.conf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#@TYPE: Machine
|
||||||
|
#@NAME: RaspberryPi Compute Module 3 (CM3)
|
||||||
|
#@DESCRIPTION: Machine configuration for the RaspberryPi Compute Module 3 (CM3)
|
||||||
|
|
||||||
|
MACHINEOVERRIDES = "raspberrypi2:${MACHINE}"
|
||||||
|
include conf/machine/raspberrypi2.conf
|
||||||
@@ -1,39 +1,13 @@
|
|||||||
#@TYPE: Machine
|
#@TYPE: Machine
|
||||||
#@NAME: RaspberryPi Development Board
|
#@NAME: RaspberryPi Development Board
|
||||||
#@DESCRIPTION: Machine configuration for the RaspberryPi http://www.raspberrypi.org/ Board
|
#@DESCRIPTION: Machine configuration for the RaspberryPi http://www.raspberrypi.org/ Board
|
||||||
#@MAINTAINER: John Willis
|
|
||||||
|
|
||||||
include conf/machine/include/rpi-default-settings.inc
|
DEFAULTTUNE ?= "arm1176jzfshf"
|
||||||
include conf/machine/include/rpi-default-versions.inc
|
|
||||||
include conf/machine/include/rpi-default-providers.inc
|
|
||||||
require conf/machine/include/tune-arm1176jzf-s.inc
|
require conf/machine/include/tune-arm1176jzf-s.inc
|
||||||
|
include conf/machine/include/rpi-base.inc
|
||||||
|
|
||||||
IMAGE_FSTYPES ?= "tar.bz2 ext3 rpi-sdimg"
|
SERIAL_CONSOLE ?= "115200 ttyAMA0"
|
||||||
|
|
||||||
SERIAL_CONSOLE = "115200 ttyAMA0"
|
UBOOT_MACHINE = "rpi_config"
|
||||||
|
VC4_CMA_SIZE_raspberrypi ?= "cma-64"
|
||||||
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 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 \
|
|
||||||
"
|
|
||||||
|
|
||||||
# Set raspberrypi splash image
|
|
||||||
SPLASH = "psplash-raspberrypi"
|
|
||||||
|
|
||||||
IMAGE_BOOT_FILES ?= "bcm2835-bootfiles/* ${KERNEL_IMAGETYPE};kernel.img"
|
|
||||||
|
|||||||
15
conf/machine/raspberrypi0-wifi.conf
Normal file
15
conf/machine/raspberrypi0-wifi.conf
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#@TYPE: Machine
|
||||||
|
#@NAME: RaspberryPi Zero WiFi Development Board
|
||||||
|
#@DESCRIPTION: Machine configuration for the RaspberryPi Zero WiFi board (https://www.raspberrypi.org/blog/raspberry-pi-zero-w-joins-family/)
|
||||||
|
|
||||||
|
DEFAULTTUNE ?= "arm1176jzfshf"
|
||||||
|
require conf/machine/include/tune-arm1176jzf-s.inc
|
||||||
|
include conf/machine/include/rpi-base.inc
|
||||||
|
|
||||||
|
MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-bcm43430"
|
||||||
|
|
||||||
|
SDIMG_KERNELIMAGE ?= "kernel.img"
|
||||||
|
KERNEL_DEFCONFIG ?= "bcmrpi_defconfig"
|
||||||
|
UBOOT_MACHINE ?= "rpi_config"
|
||||||
|
SERIAL_CONSOLE ?= "115200 ttyS0"
|
||||||
|
VC4_CMA_SIZE ?= "cma-128"
|
||||||
9
conf/machine/raspberrypi0.conf
Normal file
9
conf/machine/raspberrypi0.conf
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#@TYPE: Machine
|
||||||
|
#@NAME: RaspberryPi Zero Development Board
|
||||||
|
#@DESCRIPTION: Machine configuration for the RaspberryPi Zero board (https://www.raspberrypi.org/blog/raspberry-pi-zero)
|
||||||
|
|
||||||
|
MACHINEOVERRIDES = "raspberrypi:${MACHINE}"
|
||||||
|
include conf/machine/raspberrypi.conf
|
||||||
|
|
||||||
|
SERIAL_CONSOLE ?= "115200 ttyAMA0"
|
||||||
|
VC4_CMA_SIZE ?= "cma-128"
|
||||||
13
conf/machine/raspberrypi2.conf
Normal file
13
conf/machine/raspberrypi2.conf
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
#@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
|
||||||
|
|
||||||
|
SERIAL_CONSOLE ?= "115200 ttyAMA0"
|
||||||
|
|
||||||
|
UBOOT_MACHINE = "rpi_2_config"
|
||||||
|
VC4_CMA_SIZE ?= "cma-256"
|
||||||
40
conf/machine/raspberrypi3-64.conf
Normal file
40
conf/machine/raspberrypi3-64.conf
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#@TYPE: Machine
|
||||||
|
#@NAME: RaspberryPi 3 Development Board
|
||||||
|
#@DESCRIPTION: Machine configuration for the RaspberryPi 3 in 64 bits mode
|
||||||
|
|
||||||
|
MACHINEOVERRIDES = "raspberrypi3:${MACHINE}"
|
||||||
|
|
||||||
|
MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-bcm43430"
|
||||||
|
|
||||||
|
require conf/machine/include/arm/arch-armv8.inc
|
||||||
|
include conf/machine/include/rpi-base.inc
|
||||||
|
|
||||||
|
KERNEL_DEVICETREE = " \
|
||||||
|
broadcom/bcm2710-rpi-3-b.dtb \
|
||||||
|
broadcom/bcm2837-rpi-3-b.dtb \
|
||||||
|
\
|
||||||
|
overlays/hifiberry-amp.dtbo \
|
||||||
|
overlays/hifiberry-dac.dtbo \
|
||||||
|
overlays/hifiberry-dacplus.dtbo \
|
||||||
|
overlays/hifiberry-digi.dtbo \
|
||||||
|
overlays/i2c-rtc.dtbo \
|
||||||
|
overlays/iqaudio-dac.dtbo \
|
||||||
|
overlays/iqaudio-dacplus.dtbo \
|
||||||
|
overlays/lirc-rpi.dtbo \
|
||||||
|
overlays/pitft22.dtbo \
|
||||||
|
overlays/pitft28-resistive.dtbo \
|
||||||
|
overlays/pitft35-resistive.dtbo \
|
||||||
|
overlays/pps-gpio.dtbo \
|
||||||
|
overlays/rpi-ft5406.dtbo \
|
||||||
|
overlays/w1-gpio.dtbo \
|
||||||
|
overlays/w1-gpio-pullup.dtbo \
|
||||||
|
overlays/pi3-disable-bt.dtbo \
|
||||||
|
overlays/pi3-miniuart-bt.dtbo \
|
||||||
|
overlays/vc4-kms-v3d.dtbo \
|
||||||
|
"
|
||||||
|
|
||||||
|
SERIAL_CONSOLE ?= "115200 ttyS0"
|
||||||
|
VC4_CMA_SIZE ?= "cma-256"
|
||||||
|
|
||||||
|
UBOOT_MACHINE = "rpi_3_config"
|
||||||
|
MACHINE_FEATURES_append = " vc4graphics"
|
||||||
15
conf/machine/raspberrypi3.conf
Normal file
15
conf/machine/raspberrypi3.conf
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#@TYPE: Machine
|
||||||
|
#@NAME: RaspberryPi 3 Development Board
|
||||||
|
#@DESCRIPTION: Machine configuration for the RaspberryPi 3
|
||||||
|
|
||||||
|
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
|
||||||
|
require conf/machine/include/tune-cortexa7.inc
|
||||||
|
include conf/machine/include/rpi-base.inc
|
||||||
|
|
||||||
|
MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-bcm43430"
|
||||||
|
|
||||||
|
SDIMG_KERNELIMAGE ?= "kernel7.img"
|
||||||
|
KERNEL_DEFCONFIG ?= "bcm2709_defconfig"
|
||||||
|
UBOOT_MACHINE = "rpi_3_32b_config"
|
||||||
|
SERIAL_CONSOLE ?= "115200 ttyS0"
|
||||||
|
VC4_CMA_SIZE ?= "cma-256"
|
||||||
225
docs/Makefile
Normal file
225
docs/Makefile
Normal file
@@ -0,0 +1,225 @@
|
|||||||
|
# Makefile for Sphinx documentation
|
||||||
|
#
|
||||||
|
|
||||||
|
# You can set these variables from the command line.
|
||||||
|
SPHINXOPTS =
|
||||||
|
SPHINXBUILD = sphinx-build
|
||||||
|
PAPER =
|
||||||
|
BUILDDIR = _build
|
||||||
|
|
||||||
|
# Internal variables.
|
||||||
|
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||||
|
PAPEROPT_letter = -D latex_paper_size=letter
|
||||||
|
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||||
|
# the i18n builder cannot share the environment and doctrees with the others
|
||||||
|
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||||
|
|
||||||
|
.PHONY: help
|
||||||
|
help:
|
||||||
|
@echo "Please use \`make <target>' where <target> is one of"
|
||||||
|
@echo " html to make standalone HTML files"
|
||||||
|
@echo " dirhtml to make HTML files named index.html in directories"
|
||||||
|
@echo " singlehtml to make a single large HTML file"
|
||||||
|
@echo " pickle to make pickle files"
|
||||||
|
@echo " json to make JSON files"
|
||||||
|
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||||
|
@echo " qthelp to make HTML files and a qthelp project"
|
||||||
|
@echo " applehelp to make an Apple Help Book"
|
||||||
|
@echo " devhelp to make HTML files and a Devhelp project"
|
||||||
|
@echo " epub to make an epub"
|
||||||
|
@echo " epub3 to make an epub3"
|
||||||
|
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||||
|
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||||
|
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
|
||||||
|
@echo " text to make text files"
|
||||||
|
@echo " man to make manual pages"
|
||||||
|
@echo " texinfo to make Texinfo files"
|
||||||
|
@echo " info to make Texinfo files and run them through makeinfo"
|
||||||
|
@echo " gettext to make PO message catalogs"
|
||||||
|
@echo " changes to make an overview of all changed/added/deprecated items"
|
||||||
|
@echo " xml to make Docutils-native XML files"
|
||||||
|
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||||
|
@echo " linkcheck to check all external links for integrity"
|
||||||
|
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||||
|
@echo " coverage to run coverage check of the documentation (if enabled)"
|
||||||
|
@echo " dummy to check syntax errors of document sources"
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm -rf $(BUILDDIR)/*
|
||||||
|
|
||||||
|
.PHONY: html
|
||||||
|
html:
|
||||||
|
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||||
|
|
||||||
|
.PHONY: dirhtml
|
||||||
|
dirhtml:
|
||||||
|
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
||||||
|
|
||||||
|
.PHONY: singlehtml
|
||||||
|
singlehtml:
|
||||||
|
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
||||||
|
|
||||||
|
.PHONY: pickle
|
||||||
|
pickle:
|
||||||
|
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||||
|
@echo
|
||||||
|
@echo "Build finished; now you can process the pickle files."
|
||||||
|
|
||||||
|
.PHONY: json
|
||||||
|
json:
|
||||||
|
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||||
|
@echo
|
||||||
|
@echo "Build finished; now you can process the JSON files."
|
||||||
|
|
||||||
|
.PHONY: htmlhelp
|
||||||
|
htmlhelp:
|
||||||
|
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||||
|
@echo
|
||||||
|
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||||
|
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||||
|
|
||||||
|
.PHONY: qthelp
|
||||||
|
qthelp:
|
||||||
|
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||||
|
@echo
|
||||||
|
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||||
|
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||||
|
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/meta-raspberrypi.qhcp"
|
||||||
|
@echo "To view the help file:"
|
||||||
|
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/meta-raspberrypi.qhc"
|
||||||
|
|
||||||
|
.PHONY: applehelp
|
||||||
|
applehelp:
|
||||||
|
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
|
||||||
|
@echo "N.B. You won't be able to view it unless you put it in" \
|
||||||
|
"~/Library/Documentation/Help or install it in your application" \
|
||||||
|
"bundle."
|
||||||
|
|
||||||
|
.PHONY: devhelp
|
||||||
|
devhelp:
|
||||||
|
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||||
|
@echo
|
||||||
|
@echo "Build finished."
|
||||||
|
@echo "To view the help file:"
|
||||||
|
@echo "# mkdir -p $$HOME/.local/share/devhelp/meta-raspberrypi"
|
||||||
|
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/meta-raspberrypi"
|
||||||
|
@echo "# devhelp"
|
||||||
|
|
||||||
|
.PHONY: epub
|
||||||
|
epub:
|
||||||
|
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||||
|
|
||||||
|
.PHONY: epub3
|
||||||
|
epub3:
|
||||||
|
$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
|
||||||
|
|
||||||
|
.PHONY: latex
|
||||||
|
latex:
|
||||||
|
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||||
|
@echo
|
||||||
|
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||||
|
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||||
|
"(use \`make latexpdf' here to do that automatically)."
|
||||||
|
|
||||||
|
.PHONY: latexpdf
|
||||||
|
latexpdf:
|
||||||
|
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||||
|
@echo "Running LaTeX files through pdflatex..."
|
||||||
|
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
||||||
|
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||||
|
|
||||||
|
.PHONY: latexpdfja
|
||||||
|
latexpdfja:
|
||||||
|
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||||
|
@echo "Running LaTeX files through platex and dvipdfmx..."
|
||||||
|
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
|
||||||
|
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||||
|
|
||||||
|
.PHONY: text
|
||||||
|
text:
|
||||||
|
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
||||||
|
|
||||||
|
.PHONY: man
|
||||||
|
man:
|
||||||
|
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||||
|
|
||||||
|
.PHONY: texinfo
|
||||||
|
texinfo:
|
||||||
|
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
||||||
|
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||||
|
"(use \`make info' here to do that automatically)."
|
||||||
|
|
||||||
|
.PHONY: info
|
||||||
|
info:
|
||||||
|
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||||
|
@echo "Running Texinfo files through makeinfo..."
|
||||||
|
make -C $(BUILDDIR)/texinfo info
|
||||||
|
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
||||||
|
|
||||||
|
.PHONY: gettext
|
||||||
|
gettext:
|
||||||
|
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||||
|
|
||||||
|
.PHONY: changes
|
||||||
|
changes:
|
||||||
|
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
||||||
|
@echo
|
||||||
|
@echo "The overview file is in $(BUILDDIR)/changes."
|
||||||
|
|
||||||
|
.PHONY: linkcheck
|
||||||
|
linkcheck:
|
||||||
|
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||||
|
@echo
|
||||||
|
@echo "Link check complete; look for any errors in the above output " \
|
||||||
|
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||||
|
|
||||||
|
.PHONY: doctest
|
||||||
|
doctest:
|
||||||
|
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||||
|
@echo "Testing of doctests in the sources finished, look at the " \
|
||||||
|
"results in $(BUILDDIR)/doctest/output.txt."
|
||||||
|
|
||||||
|
.PHONY: coverage
|
||||||
|
coverage:
|
||||||
|
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
|
||||||
|
@echo "Testing of coverage in the sources finished, look at the " \
|
||||||
|
"results in $(BUILDDIR)/coverage/python.txt."
|
||||||
|
|
||||||
|
.PHONY: xml
|
||||||
|
xml:
|
||||||
|
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
||||||
|
|
||||||
|
.PHONY: pseudoxml
|
||||||
|
pseudoxml:
|
||||||
|
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
||||||
|
|
||||||
|
.PHONY: dummy
|
||||||
|
dummy:
|
||||||
|
$(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. Dummy builder generates no files."
|
||||||
343
docs/conf.py
Normal file
343
docs/conf.py
Normal file
@@ -0,0 +1,343 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# meta-raspberrypi documentation build configuration file, created by
|
||||||
|
# sphinx-quickstart on Tue May 23 09:51:24 2017.
|
||||||
|
#
|
||||||
|
# This file is execfile()d with the current directory set to its
|
||||||
|
# containing dir.
|
||||||
|
#
|
||||||
|
# Note that not all possible configuration values are present in this
|
||||||
|
# autogenerated file.
|
||||||
|
#
|
||||||
|
# All configuration values have a default; values that are commented out
|
||||||
|
# serve to show the default.
|
||||||
|
|
||||||
|
# If extensions (or modules to document with autodoc) are in another directory,
|
||||||
|
# add these directories to sys.path here. If the directory is relative to the
|
||||||
|
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||||
|
#
|
||||||
|
# import os
|
||||||
|
# import sys
|
||||||
|
# sys.path.insert(0, os.path.abspath('.'))
|
||||||
|
|
||||||
|
# -- General configuration ------------------------------------------------
|
||||||
|
|
||||||
|
# If your documentation needs a minimal Sphinx version, state it here.
|
||||||
|
#
|
||||||
|
# needs_sphinx = '1.0'
|
||||||
|
|
||||||
|
# Add any Sphinx extension module names here, as strings. They can be
|
||||||
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||||
|
# ones.
|
||||||
|
extensions = []
|
||||||
|
|
||||||
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
|
templates_path = ['_templates']
|
||||||
|
|
||||||
|
# The suffix(es) of source filenames.
|
||||||
|
# You can specify multiple suffix as a list of string:
|
||||||
|
#
|
||||||
|
# source_suffix = ['.rst', '.md']
|
||||||
|
source_suffix = ['.rst', '.md']
|
||||||
|
|
||||||
|
# The encoding of source files.
|
||||||
|
#
|
||||||
|
# source_encoding = 'utf-8-sig'
|
||||||
|
|
||||||
|
# The master toctree document.
|
||||||
|
master_doc = 'index'
|
||||||
|
|
||||||
|
# General information about the project.
|
||||||
|
project = 'meta-raspberrypi'
|
||||||
|
copyright = '2017, meta-raspberrypi contributors'
|
||||||
|
author = 'meta-raspberrypi contributors'
|
||||||
|
|
||||||
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
|
# |version| and |release|, also used in various other places throughout the
|
||||||
|
# built documents.
|
||||||
|
#
|
||||||
|
# The short X.Y version.
|
||||||
|
version = 'pyro'
|
||||||
|
# The full version, including alpha/beta/rc tags.
|
||||||
|
release = 'pyro'
|
||||||
|
|
||||||
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
|
# for a list of supported languages.
|
||||||
|
#
|
||||||
|
# This is also used if you do content translation via gettext catalogs.
|
||||||
|
# Usually you set "language" from the command line for these cases.
|
||||||
|
language = None
|
||||||
|
|
||||||
|
# There are two options for replacing |today|: either, you set today to some
|
||||||
|
# non-false value, then it is used:
|
||||||
|
#
|
||||||
|
# today = ''
|
||||||
|
#
|
||||||
|
# Else, today_fmt is used as the format for a strftime call.
|
||||||
|
#
|
||||||
|
# today_fmt = '%B %d, %Y'
|
||||||
|
|
||||||
|
# List of patterns, relative to source directory, that match files and
|
||||||
|
# directories to ignore when looking for source files.
|
||||||
|
# This patterns also effect to html_static_path and html_extra_path
|
||||||
|
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
||||||
|
|
||||||
|
# The reST default role (used for this markup: `text`) to use for all
|
||||||
|
# documents.
|
||||||
|
#
|
||||||
|
# default_role = None
|
||||||
|
|
||||||
|
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||||
|
#
|
||||||
|
# add_function_parentheses = True
|
||||||
|
|
||||||
|
# If true, the current module name will be prepended to all description
|
||||||
|
# unit titles (such as .. function::).
|
||||||
|
#
|
||||||
|
# add_module_names = True
|
||||||
|
|
||||||
|
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||||
|
# output. They are ignored by default.
|
||||||
|
#
|
||||||
|
# show_authors = False
|
||||||
|
|
||||||
|
# The name of the Pygments (syntax highlighting) style to use.
|
||||||
|
pygments_style = 'sphinx'
|
||||||
|
|
||||||
|
# A list of ignored prefixes for module index sorting.
|
||||||
|
# modindex_common_prefix = []
|
||||||
|
|
||||||
|
# If true, keep warnings as "system message" paragraphs in the built documents.
|
||||||
|
# keep_warnings = False
|
||||||
|
|
||||||
|
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
||||||
|
todo_include_todos = False
|
||||||
|
|
||||||
|
|
||||||
|
# -- Options for HTML output ----------------------------------------------
|
||||||
|
|
||||||
|
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||||
|
# a list of builtin themes.
|
||||||
|
#
|
||||||
|
html_theme = 'alabaster'
|
||||||
|
|
||||||
|
# Theme options are theme-specific and customize the look and feel of a theme
|
||||||
|
# further. For a list of options available for each theme, see the
|
||||||
|
# documentation.
|
||||||
|
#
|
||||||
|
# html_theme_options = {}
|
||||||
|
|
||||||
|
# Add any paths that contain custom themes here, relative to this directory.
|
||||||
|
# html_theme_path = []
|
||||||
|
|
||||||
|
# The name for this set of Sphinx documents.
|
||||||
|
# "<project> v<release> documentation" by default.
|
||||||
|
#
|
||||||
|
# html_title = 'meta-raspberrypi vmaster'
|
||||||
|
|
||||||
|
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||||
|
#
|
||||||
|
# html_short_title = None
|
||||||
|
|
||||||
|
# The name of an image file (relative to this directory) to place at the top
|
||||||
|
# of the sidebar.
|
||||||
|
#
|
||||||
|
# html_logo = None
|
||||||
|
|
||||||
|
# The name of an image file (relative to this directory) to use as a favicon of
|
||||||
|
# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||||
|
# pixels large.
|
||||||
|
#
|
||||||
|
# html_favicon = None
|
||||||
|
|
||||||
|
# Add any paths that contain custom static files (such as style sheets) here,
|
||||||
|
# relative to this directory. They are copied after the builtin static files,
|
||||||
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||||
|
html_static_path = ['_static']
|
||||||
|
|
||||||
|
# Add any extra paths that contain custom files (such as robots.txt or
|
||||||
|
# .htaccess) here, relative to this directory. These files are copied
|
||||||
|
# directly to the root of the documentation.
|
||||||
|
#
|
||||||
|
# html_extra_path = []
|
||||||
|
|
||||||
|
# If not None, a 'Last updated on:' timestamp is inserted at every page
|
||||||
|
# bottom, using the given strftime format.
|
||||||
|
# The empty string is equivalent to '%b %d, %Y'.
|
||||||
|
#
|
||||||
|
# html_last_updated_fmt = None
|
||||||
|
|
||||||
|
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||||
|
# typographically correct entities.
|
||||||
|
#
|
||||||
|
# html_use_smartypants = True
|
||||||
|
|
||||||
|
# Custom sidebar templates, maps document names to template names.
|
||||||
|
#
|
||||||
|
# html_sidebars = {}
|
||||||
|
|
||||||
|
# Additional templates that should be rendered to pages, maps page names to
|
||||||
|
# template names.
|
||||||
|
#
|
||||||
|
# html_additional_pages = {}
|
||||||
|
|
||||||
|
# If false, no module index is generated.
|
||||||
|
#
|
||||||
|
# html_domain_indices = True
|
||||||
|
|
||||||
|
# If false, no index is generated.
|
||||||
|
#
|
||||||
|
# html_use_index = True
|
||||||
|
|
||||||
|
# If true, the index is split into individual pages for each letter.
|
||||||
|
#
|
||||||
|
# html_split_index = False
|
||||||
|
|
||||||
|
# If true, links to the reST sources are added to the pages.
|
||||||
|
#
|
||||||
|
# html_show_sourcelink = True
|
||||||
|
|
||||||
|
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||||
|
#
|
||||||
|
# html_show_sphinx = True
|
||||||
|
|
||||||
|
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||||
|
#
|
||||||
|
# html_show_copyright = True
|
||||||
|
|
||||||
|
# If true, an OpenSearch description file will be output, and all pages will
|
||||||
|
# contain a <link> tag referring to it. The value of this option must be the
|
||||||
|
# base URL from which the finished HTML is served.
|
||||||
|
#
|
||||||
|
# html_use_opensearch = ''
|
||||||
|
|
||||||
|
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||||
|
# html_file_suffix = None
|
||||||
|
|
||||||
|
# Language to be used for generating the HTML full-text search index.
|
||||||
|
# Sphinx supports the following languages:
|
||||||
|
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja'
|
||||||
|
# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr', 'zh'
|
||||||
|
#
|
||||||
|
# html_search_language = 'en'
|
||||||
|
|
||||||
|
# A dictionary with options for the search language support, empty by default.
|
||||||
|
# 'ja' uses this config value.
|
||||||
|
# 'zh' user can custom change `jieba` dictionary path.
|
||||||
|
#
|
||||||
|
# html_search_options = {'type': 'default'}
|
||||||
|
|
||||||
|
# The name of a javascript file (relative to the configuration directory) that
|
||||||
|
# implements a search results scorer. If empty, the default will be used.
|
||||||
|
#
|
||||||
|
# html_search_scorer = 'scorer.js'
|
||||||
|
|
||||||
|
# Output file base name for HTML help builder.
|
||||||
|
htmlhelp_basename = 'meta-raspberrypidoc'
|
||||||
|
|
||||||
|
# -- Options for LaTeX output ---------------------------------------------
|
||||||
|
|
||||||
|
latex_elements = {
|
||||||
|
# The paper size ('letterpaper' or 'a4paper').
|
||||||
|
#
|
||||||
|
# 'papersize': 'letterpaper',
|
||||||
|
|
||||||
|
# The font size ('10pt', '11pt' or '12pt').
|
||||||
|
#
|
||||||
|
# 'pointsize': '10pt',
|
||||||
|
|
||||||
|
# Additional stuff for the LaTeX preamble.
|
||||||
|
#
|
||||||
|
# 'preamble': '',
|
||||||
|
|
||||||
|
# Latex figure (float) alignment
|
||||||
|
#
|
||||||
|
# 'figure_align': 'htbp',
|
||||||
|
}
|
||||||
|
|
||||||
|
# Grouping the document tree into LaTeX files. List of tuples
|
||||||
|
# (source start file, target name, title,
|
||||||
|
# author, documentclass [howto, manual, or own class]).
|
||||||
|
latex_documents = [
|
||||||
|
(master_doc, 'meta-raspberrypi.tex', 'meta-raspberrypi Documentation',
|
||||||
|
'meta-raspberrypi contributors', 'manual'),
|
||||||
|
]
|
||||||
|
|
||||||
|
# The name of an image file (relative to this directory) to place at the top of
|
||||||
|
# the title page.
|
||||||
|
#
|
||||||
|
# latex_logo = None
|
||||||
|
|
||||||
|
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||||
|
# not chapters.
|
||||||
|
#
|
||||||
|
# latex_use_parts = False
|
||||||
|
|
||||||
|
# If true, show page references after internal links.
|
||||||
|
#
|
||||||
|
# latex_show_pagerefs = False
|
||||||
|
|
||||||
|
# If true, show URL addresses after external links.
|
||||||
|
#
|
||||||
|
# latex_show_urls = False
|
||||||
|
|
||||||
|
# Documents to append as an appendix to all manuals.
|
||||||
|
#
|
||||||
|
# latex_appendices = []
|
||||||
|
|
||||||
|
# It false, will not define \strong, \code, itleref, \crossref ... but only
|
||||||
|
# \sphinxstrong, ..., \sphinxtitleref, ... To help avoid clash with user added
|
||||||
|
# packages.
|
||||||
|
#
|
||||||
|
# latex_keep_old_macro_names = True
|
||||||
|
|
||||||
|
# If false, no module index is generated.
|
||||||
|
#
|
||||||
|
# latex_domain_indices = True
|
||||||
|
|
||||||
|
|
||||||
|
# -- Options for manual page output ---------------------------------------
|
||||||
|
|
||||||
|
# One entry per manual page. List of tuples
|
||||||
|
# (source start file, name, description, authors, manual section).
|
||||||
|
man_pages = [
|
||||||
|
(master_doc, 'meta-raspberrypi', 'meta-raspberrypi Documentation',
|
||||||
|
[author], 1)
|
||||||
|
]
|
||||||
|
|
||||||
|
# If true, show URL addresses after external links.
|
||||||
|
#
|
||||||
|
# man_show_urls = False
|
||||||
|
|
||||||
|
|
||||||
|
# -- Options for Texinfo output -------------------------------------------
|
||||||
|
|
||||||
|
# Grouping the document tree into Texinfo files. List of tuples
|
||||||
|
# (source start file, target name, title, author,
|
||||||
|
# dir menu entry, description, category)
|
||||||
|
texinfo_documents = [
|
||||||
|
(master_doc, 'meta-raspberrypi', 'meta-raspberrypi Documentation',
|
||||||
|
author, 'meta-raspberrypi', 'One line description of project.',
|
||||||
|
'Miscellaneous'),
|
||||||
|
]
|
||||||
|
|
||||||
|
# Documents to append as an appendix to all manuals.
|
||||||
|
#
|
||||||
|
# texinfo_appendices = []
|
||||||
|
|
||||||
|
# If false, no module index is generated.
|
||||||
|
#
|
||||||
|
# texinfo_domain_indices = True
|
||||||
|
|
||||||
|
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||||
|
#
|
||||||
|
# texinfo_show_urls = 'footnote'
|
||||||
|
|
||||||
|
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
||||||
|
#
|
||||||
|
# texinfo_no_detailmenu = False
|
||||||
|
|
||||||
|
source_parsers = {
|
||||||
|
'.md': 'recommonmark.parser.CommonMarkParser',
|
||||||
|
}
|
||||||
38
docs/contributing.md
Normal file
38
docs/contributing.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Contributing
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
## Patches and pull requests
|
||||||
|
|
||||||
|
All the contributions should be compliant with the openembedded patch
|
||||||
|
guidelines: <http://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines>
|
||||||
|
|
||||||
|
To contribute to this project you should send pull requests to the github mirror
|
||||||
|
(<https://github.com/agherzan/meta-raspberrypi>). **Additionally** you can send
|
||||||
|
the patches for review to the above specified mailing list.
|
||||||
|
|
||||||
|
When creating patches for the mailing list, please use something like:
|
||||||
|
|
||||||
|
git format-patch -s --subject-prefix='meta-raspberrypi][PATCH' origin
|
||||||
|
|
||||||
|
When sending patches to the mailing list, please use something like:
|
||||||
|
|
||||||
|
git send-email --to yocto@yoctoproject.org <generated patch>
|
||||||
|
|
||||||
|
## Github issues
|
||||||
|
|
||||||
|
In order to manage and trace the meta-raspberrypi issues, we use github issues:
|
||||||
|
<https://github.com/agherzan/meta-raspberrypi/issues>
|
||||||
|
|
||||||
|
If you push patches which have a github issue associated, please provide the
|
||||||
|
issue number in the commit log just before "Signed-off-by" line(s). Example line
|
||||||
|
for a bug:
|
||||||
|
`[Issue #13]`
|
||||||
9
docs/extra-apps.md
Normal file
9
docs/extra-apps.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# Extra apps
|
||||||
|
|
||||||
|
## 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 in your local.conf:
|
||||||
|
|
||||||
|
LICENSE_FLAGS_WHITELIST = "commercial"
|
||||||
180
docs/extra-build-config.md
Normal file
180
docs/extra-build-config.md
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
# Optional build configuration
|
||||||
|
|
||||||
|
There are a set of ways in which a user can influence different paramenters of
|
||||||
|
the build. We list here the ones that are closely related to this BSP or
|
||||||
|
specific to it. For the rest please check:
|
||||||
|
<http://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html>
|
||||||
|
|
||||||
|
## Compressed deployed files
|
||||||
|
|
||||||
|
1. Overwrite IMAGE_FSTYPES in local.conf
|
||||||
|
* `IMAGE_FSTYPES = "tar.bz2 ext3.xz"`
|
||||||
|
|
||||||
|
2. Overwrite SDIMG_ROOTFS_TYPE in local.conf
|
||||||
|
* `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).
|
||||||
|
|
||||||
|
## GPU memory
|
||||||
|
|
||||||
|
* `GPU_MEM`: GPU memory in megabyte. Sets the memory split between the ARM and
|
||||||
|
GPU. ARM gets the remaining memory. Min 16. Default 64.
|
||||||
|
|
||||||
|
* `GPU_MEM_256`: GPU memory in megabyte for the 256MB Raspberry Pi. Ignored by
|
||||||
|
the 512MB RP. Overrides gpu_mem. Max 192. Default not set.
|
||||||
|
|
||||||
|
* `GPU_MEM_512`: GPU memory in megabyte for the 512MB Raspberry Pi. Ignored by
|
||||||
|
the 256MB RP. Overrides gpu_mem. Max 448. Default not set.
|
||||||
|
|
||||||
|
* `GPU_MEM_1024`: GPU memory in megabyte for the 1024MB Raspberry Pi. Ignored by
|
||||||
|
the 256MB/512MB RP. Overrides gpu_mem. Max 944. Default not set.
|
||||||
|
|
||||||
|
## Add purchased license codecs
|
||||||
|
|
||||||
|
To add you own licenses use variables `KEY_DECODE_MPG2` and `KEY_DECODE_WVC1` in
|
||||||
|
local.conf. Example:
|
||||||
|
|
||||||
|
KEY_DECODE_MPG2 = "12345678"
|
||||||
|
KEY_DECODE_WVC1 = "12345678"
|
||||||
|
|
||||||
|
You can supply more licenses separated by comma. Example:
|
||||||
|
|
||||||
|
KEY_DECODE_WVC1 = "0x12345678,0xabcdabcd,0x87654321"
|
||||||
|
|
||||||
|
|
||||||
|
## Disable overscan
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
DISABLE_OVERSCAN = "1"
|
||||||
|
|
||||||
|
## Set overclocking options
|
||||||
|
|
||||||
|
The Raspberry PI can be overclocked. As of now overclocking up to the "Turbo
|
||||||
|
Mode" is officially supported by the raspbery and does not void warranty. Check
|
||||||
|
the config.txt for a detailed description of options and modes. Example turbo
|
||||||
|
mode:
|
||||||
|
|
||||||
|
ARM_FREQ = "1000"
|
||||||
|
CORE_FREQ = "500"
|
||||||
|
SDRAM_FREQ = "500"
|
||||||
|
OVER_VOLTAGE = "6"
|
||||||
|
|
||||||
|
## Video camera support with V4L2 drivers
|
||||||
|
|
||||||
|
Set this variable to enable support for the video camera (Linux 3.12.4+
|
||||||
|
required):
|
||||||
|
|
||||||
|
VIDEO_CAMERA = "1"
|
||||||
|
|
||||||
|
## Enable offline compositing support
|
||||||
|
|
||||||
|
Set this variable to enable support for dispmanx offline compositing:
|
||||||
|
|
||||||
|
DISPMANX_OFFLINE = "1"
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Heavily recommended for Wayland/Weston.
|
||||||
|
|
||||||
|
See: <http://wayland.freedesktop.org/raspberrypi.html>
|
||||||
|
|
||||||
|
## 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"
|
||||||
|
|
||||||
|
## 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).
|
||||||
|
|
||||||
|
## 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"`
|
||||||
|
|
||||||
|
## Enable SPI bus
|
||||||
|
|
||||||
|
When using device tree kernels, set this variable to enable the SPI bus:
|
||||||
|
|
||||||
|
ENABLE_SPI_BUS = "1"
|
||||||
|
|
||||||
|
## Enable I2C
|
||||||
|
|
||||||
|
When using device tree kernels, set this variable to enable I2C:
|
||||||
|
|
||||||
|
ENABLE_I2C = "1"
|
||||||
|
|
||||||
|
## Enable PiTFT support
|
||||||
|
|
||||||
|
Basic support for using PiTFT screens can be enabled by adding below in
|
||||||
|
local.conf:
|
||||||
|
|
||||||
|
* `MACHINE_FEATURES += "pitft"`
|
||||||
|
- This will enable SPI bus and i2c device-trees, it will also setup
|
||||||
|
framebuffer for console and x server on PiTFT.
|
||||||
|
|
||||||
|
NOTE: To get this working the overlay for the PiTFT model must be build, added
|
||||||
|
and specified as well (dtoverlay=<driver> in config.txt).
|
||||||
|
|
||||||
|
Below is a list of currently supported PiTFT models in meta-raspberrypi, the
|
||||||
|
modelname should be added as a MACHINE_FEATURES in local.conf like below:
|
||||||
|
|
||||||
|
MACHINE_FEATURES += "pitft <modelname>"
|
||||||
|
|
||||||
|
List of currently supported models:
|
||||||
|
* pitft22
|
||||||
|
* pitft28r
|
||||||
|
* pitft35r
|
||||||
|
|
||||||
|
## Misc. display
|
||||||
|
|
||||||
|
If you would like to use the Waveshare "C" 1024×600, 7 inch Capacitive Touch
|
||||||
|
Screen LCD, HDMI interface (<http://www.waveshare.com/7inch-HDMI-LCD-C.htm>) Rev
|
||||||
|
2.1, please set the following in your local.conf:
|
||||||
|
|
||||||
|
WAVESHARE_1024X600_C_2_1 = "1"
|
||||||
|
|
||||||
|
## Enable UART
|
||||||
|
|
||||||
|
RaspberryPi 0, 1, 2 and CM will have UART console enabled by default.
|
||||||
|
|
||||||
|
RaspberryPi 0 WiFi and 3 does not have the UART enabled by default because this
|
||||||
|
needs a fixed core frequency and enable_uart wil set it to the minimum. Certain
|
||||||
|
operations - 60fps h264 decode, high quality deinterlace - which aren't
|
||||||
|
performed on the ARM may be affected, and we wouldn't want to do that to users
|
||||||
|
who don't want to use the serial port. Users who want serial console support on
|
||||||
|
RaspberryPi3 will have to explicitely set in local.conf:
|
||||||
|
|
||||||
|
ENABLE_UART = "1"
|
||||||
|
|
||||||
|
Ref.:
|
||||||
|
* <https://github.com/raspberrypi/firmware/issues/553>
|
||||||
|
* <https://github.com/RPi-Distro/repo/issues/22>
|
||||||
26
docs/index.rst
Normal file
26
docs/index.rst
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
.. meta-raspberrypi documentation master file, created by
|
||||||
|
sphinx-quickstart on Tue May 23 09:51:24 2017.
|
||||||
|
You can adapt this file completely to your liking, but it should at least
|
||||||
|
contain the root `toctree` directive.
|
||||||
|
|
||||||
|
Welcome to meta-raspberrypi's documentation!
|
||||||
|
============================================
|
||||||
|
|
||||||
|
Contents:
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
readme
|
||||||
|
layer-contents
|
||||||
|
extra-build-config
|
||||||
|
extra-apps
|
||||||
|
contributing
|
||||||
|
|
||||||
|
Indices and tables
|
||||||
|
==================
|
||||||
|
|
||||||
|
* :ref:`genindex`
|
||||||
|
* :ref:`modindex`
|
||||||
|
* :ref:`search`
|
||||||
|
|
||||||
24
docs/layer-contents.md
Normal file
24
docs/layer-contents.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Layer Contents
|
||||||
|
|
||||||
|
## Supported Machines
|
||||||
|
|
||||||
|
* raspberrypi
|
||||||
|
* raspberrypi0
|
||||||
|
* raspberrypi0-wifi
|
||||||
|
* raspberrypi2
|
||||||
|
* raspberrypi3
|
||||||
|
* raspberrypi3-64 (64 bit kernel & userspace)
|
||||||
|
* raspberrypi-cm (dummy alias for raspberrypi)
|
||||||
|
* raspberrypi-cm3 (dummy alias for raspberrypi2)
|
||||||
|
|
||||||
|
## 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.
|
||||||
1
docs/readme.md
Symbolic link
1
docs/readme.md
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../README.md
|
||||||
@@ -1,74 +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 = "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_MVC1=${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
|
|
||||||
}
|
|
||||||
|
|
||||||
addtask deploy before do_package after do_install
|
|
||||||
do_deploy[dirs] += "${DEPLOYDIR}/bcm2835-bootfiles"
|
|
||||||
|
|
||||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
RPIFW_SRCREV ?= "43c5b2fc9bdb0a43ba67661b8677445e71ae9e82"
|
|
||||||
RPIFW_DATE ?= "20140817"
|
|
||||||
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,11 +1,11 @@
|
|||||||
DESCRIPTION = "Closed source binary files to help boot the ARM on the BCM2835."
|
DESCRIPTION = "Closed source binary files to help boot the ARM on the BCM2835."
|
||||||
LICENSE = "Proprietary"
|
LICENSE = "Proprietary"
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=e86e693d19572ee64cc8b17fb062faa9"
|
LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=4a4d169737c0786fb9482bb6d30401d1"
|
||||||
|
|
||||||
inherit deploy
|
inherit deploy
|
||||||
|
|
||||||
include ../common/firmware.inc
|
include recipes-bsp/common/firmware.inc
|
||||||
|
|
||||||
RDEPENDS_${PN} = "rpi-config"
|
RDEPENDS_${PN} = "rpi-config"
|
||||||
|
|
||||||
140
recipes-bsp/bootfiles/rpi-config_git.bb
Normal file
140
recipes-bsp/bootfiles/rpi-config_git.bb
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
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 = "648ffc470824c43eb0d16c485f4c24816b32cd6f"
|
||||||
|
SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=git;branch=master \
|
||||||
|
"
|
||||||
|
|
||||||
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
|
PR = "r5"
|
||||||
|
|
||||||
|
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
|
||||||
|
PITFT22="${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}"
|
||||||
|
PITFT28r="${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}"
|
||||||
|
PITFT35r="${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}"
|
||||||
|
|
||||||
|
VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
|
||||||
|
|
||||||
|
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
|
||||||
|
if [ -n "${GPU_MEM_1024}" ]; then
|
||||||
|
sed -i '/#gpu_mem_1024/ c\gpu_mem_1024=${GPU_MEM_1024}' ${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}" ] || [ "${PITFT}" = "1" ]; then
|
||||||
|
echo "# Enable SPI bus" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "dtparam=spi=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${ENABLE_I2C}" ] || [ "${PITFT}" = "1" ]; then
|
||||||
|
echo "# Enable I2C" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "dtparam=i2c1=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "dtparam=i2c_arm=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
# PiTFT22 display support
|
||||||
|
if [ "${PITFT22}" = "1" ]; then
|
||||||
|
echo "# Enable PITFT22 display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "dtoverlay=pitft22,rotate=270,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${PITFT28r}" = "1" ]; then
|
||||||
|
echo "# Enable PITFT28r display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "dtoverlay=pitft28-resistive,rotate=90,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${PITFT35r}" = "1" ]; then
|
||||||
|
echo "# Enable PITFT35r display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "dtoverlay=pitft35-resistive,rotate=90,speed=42000000,fps=20" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
# UART support
|
||||||
|
if [ "${ENABLE_UART}" = "1" ]; then
|
||||||
|
echo "# Enable UART" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "enable_uart=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
# VC4 Graphics support
|
||||||
|
if [ "${VC4GRAPHICS}" = "1" ]; then
|
||||||
|
echo "# Enable VC4 Graphics" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "dtoverlay=vc4-kms-v3d,${VC4_CMA_SIZE}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Waveshare "C" 1024x600 7" Rev2.1 IPS capacitive touch (http://www.waveshare.com/7inch-HDMI-LCD-C.htm)
|
||||||
|
if [ "${WAVESHARE_1024X600_C_2_1}" = "1" ]; then
|
||||||
|
echo "# Waveshare \"C\" 1024x600 7\" Rev2.1 IPS capacitive touch screen" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "max_usb_current=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "hdmi_group=2" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "hdmi_mode=87" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "hdmi_cvt 1024 600 60 6 0 0 0" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "hdmi_drive=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
do_deploy_append_raspberrypi3-64() {
|
||||||
|
# Device Tree support
|
||||||
|
echo "# Load correct Device Tree for Aarch64" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
echo "device_tree=bcm2710-rpi-3-b.dtb" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||||
|
}
|
||||||
|
|
||||||
|
addtask deploy before do_package after do_install
|
||||||
|
do_deploy[dirs] += "${DEPLOYDIR}/bcm2835-bootfiles"
|
||||||
|
|
||||||
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||||
9
recipes-bsp/common/firmware.inc
Normal file
9
recipes-bsp/common/firmware.inc
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
RPIFW_DATE ?= "20171029"
|
||||||
|
RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/1.${RPIFW_DATE}.tar.gz"
|
||||||
|
RPIFW_S ?= "${WORKDIR}/firmware-1.${RPIFW_DATE}"
|
||||||
|
|
||||||
|
SRC_URI = "${RPIFW_SRC_URI}"
|
||||||
|
SRC_URI[md5sum] = "4d27c1888a7bab3097471906e7b4a319"
|
||||||
|
SRC_URI[sha256sum] = "46ce28c8d87ef22bdcc57ac1836ca3f04d1ec6f46580ff5a30bf76b3c0822117"
|
||||||
|
PV = "${RPIFW_DATE}"
|
||||||
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
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.
|
|
||||||
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
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)
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
SUMMARY = "RaspberryPi tool to produce kernel.img"
|
|
||||||
LICENSE = "Broadcom"
|
|
||||||
LIC_FILES_CHKSUM = "file://${WORKDIR}/License;md5=957f6640d5e2d2acfce73a36a56cb32f"
|
|
||||||
SECTION = "bootloader"
|
|
||||||
|
|
||||||
DEPENDS = "python"
|
|
||||||
|
|
||||||
SRCREV = "330c72c2412f75a32932c4d9b51c9c678bce4180"
|
|
||||||
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"
|
|
||||||
3
recipes-bsp/rpi-u-boot-scr/files/boot.cmd
Normal file
3
recipes-bsp/rpi-u-boot-scr/files/boot.cmd
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
fdt addr ${fdt_addr} && fdt get value bootargs /chosen bootargs
|
||||||
|
fatload mmc 0:1 ${kernel_addr_r} uImage
|
||||||
|
bootm ${kernel_addr_r} - ${fdt_addr}
|
||||||
21
recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bb
Normal file
21
recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bb
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
SUMMARY = "U-boot boot scripts for Raspberry Pi"
|
||||||
|
LICENSE = "MIT"
|
||||||
|
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
||||||
|
COMPATIBLE_MACHINE = "rpi"
|
||||||
|
|
||||||
|
DEPENDS = "u-boot-mkimage-native"
|
||||||
|
|
||||||
|
SRC_URI = "file://boot.cmd"
|
||||||
|
|
||||||
|
do_compile() {
|
||||||
|
mkimage -A arm -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
|
||||||
|
}
|
||||||
|
|
||||||
|
inherit deploy
|
||||||
|
|
||||||
|
do_deploy() {
|
||||||
|
install -d ${DEPLOYDIR}
|
||||||
|
install -m 0644 boot.scr ${DEPLOYDIR}
|
||||||
|
}
|
||||||
|
|
||||||
|
addtask do_deploy after do_compile before do_build
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
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
recipes-bsp/u-boot/u-boot_%.bbappend
Normal file
1
recipes-bsp/u-boot/u-boot_%.bbappend
Normal file
@@ -0,0 +1 @@
|
|||||||
|
RDEPENDS_${PN}_append_rpi = " rpi-u-boot-scr"
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
From b4f2b77472aeb967d3a7595e8a965785c7a37c87 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Phil Elwell <phil@raspberrypi.org>
|
||||||
|
Date: Tue, 16 Feb 2016 16:40:46 +0000
|
||||||
|
Subject: [PATCH 1/4] bcm43xx: Add bcm43xx-3wire variant
|
||||||
|
|
||||||
|
---
|
||||||
|
tools/hciattach.c | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/tools/hciattach.c b/tools/hciattach.c
|
||||||
|
index 59a76a7..5861d33 100644
|
||||||
|
--- a/tools/hciattach.c
|
||||||
|
+++ b/tools/hciattach.c
|
||||||
|
@@ -1144,6 +1144,9 @@ struct uart_t uart[] = {
|
||||||
|
{ "bcm43xx", 0x0000, 0x0000, HCI_UART_H4, 115200, 3000000,
|
||||||
|
FLOW_CTL, DISABLE_PM, NULL, bcm43xx, NULL },
|
||||||
|
|
||||||
|
+ { "bcm43xx-3wire", 0x0000, 0x0000, HCI_UART_3WIRE, 115200, 3000000,
|
||||||
|
+ 0, DISABLE_PM, NULL, bcm43xx, NULL },
|
||||||
|
+
|
||||||
|
{ "ath3k", 0x0000, 0x0000, HCI_UART_ATH3K, 115200, 115200,
|
||||||
|
FLOW_CTL, DISABLE_PM, NULL, ath3k_ps, ath3k_pm },
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
From e145c9621f976063e5c573db1f2053d906f63427 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Phil Elwell <phil@raspberrypi.org>
|
||||||
|
Date: Tue, 16 Feb 2016 16:39:09 +0000
|
||||||
|
Subject: [PATCH 2/4] bcm43xx: The UART speed must be reset after the firmware download
|
||||||
|
|
||||||
|
---
|
||||||
|
tools/hciattach_bcm43xx.c | 6 ++----
|
||||||
|
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tools/hciattach_bcm43xx.c b/tools/hciattach_bcm43xx.c
|
||||||
|
index 81f38cb..0b792e0 100644
|
||||||
|
--- a/tools/hciattach_bcm43xx.c
|
||||||
|
+++ b/tools/hciattach_bcm43xx.c
|
||||||
|
@@ -366,11 +366,8 @@ int bcm43xx_init(int fd, int def_speed, int speed, struct termios *ti,
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (bcm43xx_locate_patch(FIRMWARE_DIR, chip_name, fw_path)) {
|
||||||
|
- fprintf(stderr, "Patch not found, continue anyway\n");
|
||||||
|
+ fprintf(stderr, "Patch not found for %s, continue anyway\n", chip_name);
|
||||||
|
} else {
|
||||||
|
- if (bcm43xx_set_speed(fd, ti, speed))
|
||||||
|
- return -1;
|
||||||
|
-
|
||||||
|
if (bcm43xx_load_firmware(fd, fw_path))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
@@ -380,6 +377,7 @@ int bcm43xx_init(int fd, int def_speed, int speed, struct termios *ti,
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ sleep(1);
|
||||||
|
if (bcm43xx_reset(fd))
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
From d41dc2046dd08d8c95197f677e224506f5b39bdd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Phil Elwell <phil@raspberrypi.org>
|
||||||
|
Date: Wed, 20 Jan 2016 16:00:37 +0000
|
||||||
|
Subject: [PATCH 3/4] Increase firmware load timeout to 30s
|
||||||
|
|
||||||
|
---
|
||||||
|
tools/hciattach.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tools/hciattach.c b/tools/hciattach.c
|
||||||
|
index 5861d33..4141796 100644
|
||||||
|
--- a/tools/hciattach.c
|
||||||
|
+++ b/tools/hciattach.c
|
||||||
|
@@ -1293,7 +1293,7 @@ int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
struct uart_t *u = NULL;
|
||||||
|
int detach, printpid, raw, opt, i, n, ld, err;
|
||||||
|
- int to = 10;
|
||||||
|
+ int to = 30;
|
||||||
|
int init_speed = 0;
|
||||||
|
int send_break = 0;
|
||||||
|
pid_t pid;
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
From 76681284b0ea49852041fdb97a35175089a08781 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Phil Elwell <phil@raspberrypi.org>
|
||||||
|
Date: Tue, 23 Feb 2016 17:52:29 +0000
|
||||||
|
Subject: [PATCH 4/4] Move the 43xx firmware into /lib/firmware
|
||||||
|
|
||||||
|
---
|
||||||
|
tools/hciattach_bcm43xx.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tools/hciattach_bcm43xx.c b/tools/hciattach_bcm43xx.c
|
||||||
|
index 0b792e0..207f668 100644
|
||||||
|
--- a/tools/hciattach_bcm43xx.c
|
||||||
|
+++ b/tools/hciattach_bcm43xx.c
|
||||||
|
@@ -43,7 +43,7 @@
|
||||||
|
#include "hciattach.h"
|
||||||
|
|
||||||
|
#ifndef FIRMWARE_DIR
|
||||||
|
-#define FIRMWARE_DIR "/etc/firmware"
|
||||||
|
+#define FIRMWARE_DIR "/lib/firmware"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FW_EXT ".hcd"
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
BIN
recipes-connectivity/bluez5/bluez5/BCM43430A1.hcd
Normal file
BIN
recipes-connectivity/bluez5/bluez5/BCM43430A1.hcd
Normal file
Binary file not shown.
12
recipes-connectivity/bluez5/bluez5/brcm43438.service
Normal file
12
recipes-connectivity/bluez5/bluez5/brcm43438.service
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Broadcom BCM43438 bluetooth HCI
|
||||||
|
ConditionPathIsDirectory=/proc/device-tree/soc/gpio@7e200000/bt_pins
|
||||||
|
Before=bluetooth.service
|
||||||
|
After=dev-ttyAMA0.device
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/hciattach -n /dev/ttyAMA0 bcm43xx 921600 noflow -
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
26
recipes-connectivity/bluez5/bluez5_%.bbappend
Normal file
26
recipes-connectivity/bluez5/bluez5_%.bbappend
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||||
|
|
||||||
|
SRC_URI_append_raspberrypi3 = " \
|
||||||
|
file://BCM43430A1.hcd \
|
||||||
|
file://0001-bcm43xx-Add-bcm43xx-3wire-variant.patch \
|
||||||
|
file://0002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch \
|
||||||
|
file://0003-Increase-firmware-load-timeout-to-30s.patch \
|
||||||
|
file://0004-Move-the-43xx-firmware-into-lib-firmware.patch \
|
||||||
|
file://brcm43438.service \
|
||||||
|
"
|
||||||
|
|
||||||
|
do_install_append_raspberrypi3() {
|
||||||
|
install -d ${D}/lib/firmware/brcm/
|
||||||
|
install -m 0644 ${WORKDIR}/BCM43430A1.hcd ${D}/lib/firmware/brcm/BCM43430A1.hcd
|
||||||
|
|
||||||
|
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
|
||||||
|
install -d ${D}${systemd_unitdir}/system
|
||||||
|
install -m 0644 ${WORKDIR}/brcm43438.service ${D}${systemd_unitdir}/system
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
FILES_${PN}_append_raspberrypi3 = " \
|
||||||
|
/lib/firmware/brcm/BCM43430A1.hcd \
|
||||||
|
"
|
||||||
|
|
||||||
|
SYSTEMD_SERVICE_${PN}_append_raspberrypi3 = " brcm43438.service"
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
# Base this image on rpi-hwup-image
|
# Base this image on rpi-hwup-image
|
||||||
include rpi-hwup-image.bb
|
include rpi-hwup-image.bb
|
||||||
|
|
||||||
|
SPLASH = "psplash-raspberrypi"
|
||||||
|
|
||||||
IMAGE_FEATURES += "ssh-server-dropbear splash"
|
IMAGE_FEATURES += "ssh-server-dropbear splash"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
DESCRIPTION = "RaspberryPi Test Packagegroup"
|
DESCRIPTION = "RaspberryPi Test Packagegroup"
|
||||||
LICENSE = "MIT"
|
LICENSE = "MIT"
|
||||||
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
|
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
||||||
|
|
||||||
inherit packagegroup
|
inherit packagegroup
|
||||||
|
|
||||||
@@ -10,10 +10,18 @@ RDEPENDS_${PN} = "\
|
|||||||
wiringpi \
|
wiringpi \
|
||||||
rpio \
|
rpio \
|
||||||
rpi-gpio \
|
rpi-gpio \
|
||||||
|
pi-blaster \
|
||||||
|
python-rtimu \
|
||||||
|
python-sense-hat \
|
||||||
|
connman \
|
||||||
|
connman-client \
|
||||||
|
crda \
|
||||||
|
bluez5 \
|
||||||
"
|
"
|
||||||
|
|
||||||
RRECOMMENDS_${PN} = "\
|
RRECOMMENDS_${PN} = "\
|
||||||
bigbuckbunny-1080p \
|
bigbuckbunny-1080p \
|
||||||
bigbuckbunny-480p \
|
bigbuckbunny-480p \
|
||||||
bigbuckbunny-720p \
|
bigbuckbunny-720p \
|
||||||
|
${MACHINE_EXTRA_RRECOMMENDS} \
|
||||||
"
|
"
|
||||||
|
|||||||
@@ -1,2 +1,4 @@
|
|||||||
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
|
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
|
||||||
SPLASH_IMAGES += "file://psplash-raspberrypi-img.h;outsuffix=raspberrypi"
|
SPLASH_IMAGES_append_rpi = " file://psplash-raspberrypi-img.h;outsuffix=raspberrypi"
|
||||||
|
ALTERNATIVE_PRIORITY_psplash-raspberrypi[psplash] = "10"
|
||||||
|
|
||||||
|
|||||||
12
recipes-core/udev/udev-rules-rpi.bb
Normal file
12
recipes-core/udev/udev-rules-rpi.bb
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
DESCRIPTION = "udev rules for Raspberry Pi Boards"
|
||||||
|
LICENSE = "MIT"
|
||||||
|
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
||||||
|
|
||||||
|
SRC_URI = " file://99-com.rules"
|
||||||
|
|
||||||
|
S = "${WORKDIR}"
|
||||||
|
|
||||||
|
do_install () {
|
||||||
|
install -d ${D}${sysconfdir}/udev/rules.d
|
||||||
|
install -m 0644 ${WORKDIR}/99-com.rules ${D}${sysconfdir}/udev/rules.d/
|
||||||
|
}
|
||||||
21
recipes-core/udev/udev-rules-rpi/99-com.rules
Normal file
21
recipes-core/udev/udev-rules-rpi/99-com.rules
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
KERNEL=="ttyAMA[01]", PROGRAM="/bin/sh -c '\
|
||||||
|
ALIASES=/proc/device-tree/aliases; \
|
||||||
|
if cmp -s $ALIASES/uart0 $ALIASES/serial0; then \
|
||||||
|
echo 0;\
|
||||||
|
elif cmp -s $ALIASES/uart0 $ALIASES/serial1; then \
|
||||||
|
echo 1; \
|
||||||
|
else \
|
||||||
|
exit 1; \
|
||||||
|
fi\
|
||||||
|
'", SYMLINK+="serial%c"
|
||||||
|
|
||||||
|
KERNEL=="ttyS0", PROGRAM="/bin/sh -c '\
|
||||||
|
ALIASES=/proc/device-tree/aliases; \
|
||||||
|
if cmp -s $ALIASES/uart1 $ALIASES/serial0; then \
|
||||||
|
echo 0; \
|
||||||
|
elif cmp -s $ALIASES/uart1 $ALIASES/serial1; then \
|
||||||
|
echo 1; \
|
||||||
|
else \
|
||||||
|
exit 1; \
|
||||||
|
fi \
|
||||||
|
'", SYMLINK+="serial%c"
|
||||||
@@ -10,10 +10,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
|
|||||||
|
|
||||||
COMPATIBLE_MACHINE = "raspberrypi"
|
COMPATIBLE_MACHINE = "raspberrypi"
|
||||||
|
|
||||||
SRC_URI = "http://www.open.com.au/mikem/bcm2835/bcm2835-${PV}.tar.gz"
|
SRC_URI = "http://www.airspayce.com/mikem/bcm2835/bcm2835-${PV}.tar.gz"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "3299ddaef60f80b7f85de3318f08dee7"
|
SRC_URI[md5sum] = "b5dc426b4ff258bb1397442f98e40236"
|
||||||
SRC_URI[sha256sum] = "b4dfcdb453d44ba9ff55634ce7e0ddca21b96355ab61e40b4c3afb9406d4b8d2"
|
SRC_URI[sha256sum] = "b9fd10f7a80aadaed28a77168709b7c519568a63b6e98d0a50e9c5fe31bea6bb"
|
||||||
|
|
||||||
inherit autotools
|
inherit autotools
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ do_compile_append() {
|
|||||||
# Now compiling the examples provided by the package
|
# Now compiling the examples provided by the package
|
||||||
mkdir -p ${B}/examples
|
mkdir -p ${B}/examples
|
||||||
for file in `ls ${S}/examples`; do
|
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
|
${CC} ${LDFLAGS} ${S}/examples/${file}/${file}.c -o ${B}/examples/${file} -Bstatic -L${B}/src -lbcm2835 -I${S}/src
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,6 +35,8 @@ do_install_append() {
|
|||||||
|
|
||||||
PACKAGES += "${PN}-tests"
|
PACKAGES += "${PN}-tests"
|
||||||
|
|
||||||
|
RDEPENDS_${PN}-dev = ""
|
||||||
|
|
||||||
FILES_${PN} = ""
|
FILES_${PN} = ""
|
||||||
FILES_${PN}-tests = "${libdir}/${BPN}"
|
FILES_${PN}-tests = "${libdir}/${BPN}"
|
||||||
FILES_${PN}-dbg += "${libdir}/${BPN}/.debug"
|
FILES_${PN}-dbg += "${libdir}/${BPN}/.debug"
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
Add autotools configuration files to simplify cross-compilation
|
|
||||||
|
|
||||||
Upstream-Status: Submitted [https://github.com/sarfata/pi-blaster/pull/25]
|
|
||||||
|
|
||||||
Signed-off-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
|
|
||||||
|
|
||||||
diff -Nur git.org/Makefile git.new/Makefile
|
|
||||||
--- git.org/Makefile 2014-06-11 15:42:26.490930706 +0100
|
|
||||||
+++ git.new/Makefile 1970-01-01 01:00:00.000000000 +0100
|
|
||||||
@@ -1,23 +0,0 @@
|
|
||||||
-.PHONY: all
|
|
||||||
-all: pi-blaster
|
|
||||||
-
|
|
||||||
-REVISION=$(shell egrep -q '000f$$' /proc/cpuinfo && echo 2 || echo 1)
|
|
||||||
-
|
|
||||||
-pi-blaster: pi-blaster.c
|
|
||||||
- gcc -Wall -g -O2 -o $@ $< -DREVISION=$(REVISION)
|
|
||||||
-
|
|
||||||
-clean:
|
|
||||||
- rm -f pi-blaster
|
|
||||||
-
|
|
||||||
-install: pi-blaster
|
|
||||||
- cp -f pi-blaster.boot.sh /etc/init.d/pi-blaster
|
|
||||||
- chmod +x /etc/init.d/pi-blaster
|
|
||||||
- cp -f pi-blaster /usr/sbin/pi-blaster
|
|
||||||
- update-rc.d pi-blaster defaults
|
|
||||||
- /etc/init.d/pi-blaster start
|
|
||||||
-
|
|
||||||
-uninstall:
|
|
||||||
- -/etc/init.d/pi-blaster stop
|
|
||||||
- rm /usr/sbin/pi-blaster
|
|
||||||
- rm /etc/init.d/pi-blaster
|
|
||||||
- update-rc.d pi-blaster remove
|
|
||||||
diff -Nur git.org/Makefile.am git.new/Makefile.am
|
|
||||||
--- git.org/Makefile.am 1970-01-01 01:00:00.000000000 +0100
|
|
||||||
+++ git.new/Makefile.am 2014-06-11 15:40:16.562930372 +0100
|
|
||||||
@@ -0,0 +1,9 @@
|
|
||||||
+AUTOMAKE_OPTIONS = foreign
|
|
||||||
+
|
|
||||||
+CFLAGS = -Wall -pedantic
|
|
||||||
+
|
|
||||||
+sbin_PROGRAMS = pi-blaster
|
|
||||||
+pi_blaster_SOURCES = pi-blaster.c
|
|
||||||
+
|
|
||||||
+init_ddir = $(sysconfdir)/init.d
|
|
||||||
+init_d_SCRIPTS = pi-blaster.boot.sh
|
|
||||||
diff -Nur git.org/autogen.sh git.new/autogen.sh
|
|
||||||
--- git.org/autogen.sh 1970-01-01 01:00:00.000000000 +0100
|
|
||||||
+++ git.new/autogen.sh 2014-06-11 15:35:57.798929684 +0100
|
|
||||||
@@ -0,0 +1,9 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+
|
|
||||||
+echo "Generating configure files... may take a while."
|
|
||||||
+
|
|
||||||
+autoreconf --install --force && \
|
|
||||||
+ echo "Preparing was successful if there was no error messages above." && \
|
|
||||||
+ echo "Now type:" && \
|
|
||||||
+ echo " ./configure && make" && \
|
|
||||||
+ echo "Run './configure --help' for more information"
|
|
||||||
diff -Nur git.org/configure.ac git.new/configure.ac
|
|
||||||
--- git.org/configure.ac 1970-01-01 01:00:00.000000000 +0100
|
|
||||||
+++ git.new/configure.ac 2014-06-11 15:35:53.154929717 +0100
|
|
||||||
@@ -0,0 +1,14 @@
|
|
||||||
+# -*- Autoconf -*-
|
|
||||||
+# Process this file with autoconf to produce a configure script.
|
|
||||||
+
|
|
||||||
+AC_PREREQ([2.69])
|
|
||||||
+AC_INIT(pi-blaster, 0.1.0)
|
|
||||||
+AC_CONFIG_SRCDIR([pi-blaster.c])
|
|
||||||
+AC_CONFIG_HEADERS([config.h])
|
|
||||||
+AM_INIT_AUTOMAKE
|
|
||||||
+
|
|
||||||
+# Checks for programs.
|
|
||||||
+AC_PROG_CC
|
|
||||||
+
|
|
||||||
+AC_CONFIG_FILES([Makefile])
|
|
||||||
+AC_OUTPUT
|
|
||||||
@@ -1,13 +1,28 @@
|
|||||||
Remove dependencies on LSB functions
|
From 1338f98a279616f4e5e9ea30a25d1dfa0c7df5d6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Petter=20Mab=C3=A4cker?= <petter@technux.se>
|
||||||
|
Date: Sun, 4 Jun 2017 12:22:40 +0200
|
||||||
|
Subject: [PATCH] Remove dependencies on LSB functions
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
See this as a rebase of the previous 'Remove dependencies on LSB
|
||||||
|
functions patch' with only minor modifications from the original version,
|
||||||
|
based on the work done by Alex Lennon <ajlennon@dynamicdevices.co.uk> in
|
||||||
|
'25fd817 pi-blaster: Added recipe'.
|
||||||
|
|
||||||
Upstream-Status: Inappropriate [configuration]
|
Upstream-Status: Inappropriate [configuration]
|
||||||
|
|
||||||
Signed-off-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
|
Signed-off-by: Petter Mabäcker <petter@technux.se>
|
||||||
|
---
|
||||||
|
debian/pi-blaster.init | 38 +++++++-------------------------------
|
||||||
|
1 file changed, 7 insertions(+), 31 deletions(-)
|
||||||
|
|
||||||
diff -ur git.org/pi-blaster.boot.sh git/pi-blaster.boot.sh
|
diff --git a/debian/pi-blaster.init b/debian/pi-blaster.init
|
||||||
--- git.org/pi-blaster.boot.sh 2014-05-20 14:49:44.378582168 +0100
|
index b142d70..01a686c 100644
|
||||||
+++ git/pi-blaster.boot.sh 2014-05-20 14:51:08.330582386 +0100
|
--- a/debian/pi-blaster.init
|
||||||
@@ -28,12 +28,12 @@
|
+++ b/debian/pi-blaster.init
|
||||||
|
@@ -28,12 +28,12 @@ SCRIPTNAME=/etc/init.d/$NAME
|
||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
||||||
|
|
||||||
# Load the VERBOSE setting and other rcS variables
|
# Load the VERBOSE setting and other rcS variables
|
||||||
@@ -22,7 +37,7 @@ diff -ur git.org/pi-blaster.boot.sh git/pi-blaster.boot.sh
|
|||||||
|
|
||||||
#
|
#
|
||||||
# Function that starts the daemon/service
|
# Function that starts the daemon/service
|
||||||
@@ -77,48 +77,23 @@
|
@@ -77,48 +77,24 @@ do_stop()
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
start)
|
start)
|
||||||
@@ -52,6 +67,7 @@ diff -ur git.org/pi-blaster.boot.sh git/pi-blaster.boot.sh
|
|||||||
# 'force-reload' alias
|
# 'force-reload' alias
|
||||||
#
|
#
|
||||||
- log_daemon_msg "Restarting $DESC" "$NAME"
|
- log_daemon_msg "Restarting $DESC" "$NAME"
|
||||||
|
+ echo "Restarting $DESC" "$NAME"
|
||||||
do_stop
|
do_stop
|
||||||
- case "$?" in
|
- case "$?" in
|
||||||
- 0|1)
|
- 0|1)
|
||||||
@@ -67,11 +83,14 @@ diff -ur git.org/pi-blaster.boot.sh git/pi-blaster.boot.sh
|
|||||||
- log_end_msg 1
|
- log_end_msg 1
|
||||||
- ;;
|
- ;;
|
||||||
- esac
|
- esac
|
||||||
+ do_start
|
+ do_start
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
- echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
- echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
||||||
+ echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
|
+ echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
|
||||||
exit 3
|
exit 3
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,9 @@ DESCRIPTION = "This project enables PWM on the GPIO pins you request of a Raspbe
|
|||||||
HOMEPAGE = "https://github.com/sarfata/pi-blaster/"
|
HOMEPAGE = "https://github.com/sarfata/pi-blaster/"
|
||||||
SECTION = "devel/libs"
|
SECTION = "devel/libs"
|
||||||
LICENSE = "MIT"
|
LICENSE = "MIT"
|
||||||
LIC_FILES_CHKSUM = "file://README.md;beginline=138;endline=151;md5=e0f0f92050a87a160939707c60940307"
|
LIC_FILES_CHKSUM = "file://README.md;beginline=212;endline=239;md5=a012868ef5f83b9f257af253d7cb07a3"
|
||||||
|
|
||||||
SRC_URI = "git://github.com/sarfata/pi-blaster \
|
SRC_URI = "git://github.com/sarfata/pi-blaster \
|
||||||
file://enable-autotools-support.patch \
|
|
||||||
file://remove-initscript-lsb-dependency.patch \
|
file://remove-initscript-lsb-dependency.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
require pi-blaster.inc
|
require pi-blaster.inc
|
||||||
|
|
||||||
SRCREV = "177cef81774d6df5c6284c198ff818515281db14"
|
SRCREV = "9f45eb23a8a3b2d1c08d08a6d68f206fe91ecf4c"
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
From c3aa4af56652b403e304ea5f321acfe289e42922 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Sat, 30 Jan 2016 16:07:14 -0800
|
||||||
|
Subject: [PATCH] include asm/ioctl.h for ioctl() define
|
||||||
|
|
||||||
|
also fixes errors e.g.
|
||||||
|
|
||||||
|
../../RTIMULib/RTIMUHal.cpp:208:29: error: '_IOC_SIZEBITS' was not
|
||||||
|
declared in this scope
|
||||||
|
return ioctl(m_SPI, SPI_IOC_MESSAGE(1), &wrIOC);
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
Upstream-Status: Submitted
|
||||||
|
|
||||||
|
RTIMULib/RTIMUHal.cpp | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/RTIMULib/RTIMUHal.cpp b/RTIMULib/RTIMUHal.cpp
|
||||||
|
index f9c3d15..d968326 100644
|
||||||
|
--- a/RTIMULib/RTIMUHal.cpp
|
||||||
|
+++ b/RTIMULib/RTIMUHal.cpp
|
||||||
|
@@ -29,6 +29,7 @@
|
||||||
|
#if !defined(WIN32) && !defined(__APPLE__)
|
||||||
|
|
||||||
|
#include <linux/spi/spidev.h>
|
||||||
|
+#include <asm/ioctl.h>
|
||||||
|
|
||||||
|
RTIMUHal::RTIMUHal()
|
||||||
|
{
|
||||||
|
--
|
||||||
|
2.7.0
|
||||||
|
|
||||||
15
recipes-devtools/python/python-rtimu_git.bb
Normal file
15
recipes-devtools/python/python-rtimu_git.bb
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
DESCRIPTION = "RTIMULib is a C++ and Python library that makes it easy to use 9-dof and \
|
||||||
|
10-dof IMUs with embedded Linux systems"
|
||||||
|
HOMEPAGE = "https://github.com/RPi-Distro/RTIMULib/"
|
||||||
|
SECTION = "devel/python"
|
||||||
|
LICENSE = "MIT"
|
||||||
|
LIC_FILES_CHKSUM = "file://../../LICENSE;md5=96cdecb41125f498958e09b72faf318e"
|
||||||
|
|
||||||
|
SRC_URI = "git://github.com/RPi-Distro/RTIMULib.git;protocol=http;branch=master \
|
||||||
|
file://0001-include-asm-ioctl.h-for-ioctl-define.patch;patchdir=../.. \
|
||||||
|
"
|
||||||
|
SRCREV = "b949681af69b45f0f7f4bb53b6770037b5b02178"
|
||||||
|
|
||||||
|
S = "${WORKDIR}/git/Linux/python/"
|
||||||
|
|
||||||
|
inherit setuptools
|
||||||
28
recipes-devtools/python/python-sense-hat_2.1.0.bb
Normal file
28
recipes-devtools/python/python-sense-hat_2.1.0.bb
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
SUMMARY = "Python module to control the Raspberry Pi Sense HAT used in the Astro Pi mission"
|
||||||
|
HOMEPAGE = "https://github.com/RPi-Distro/python-sense-hat"
|
||||||
|
SECTION = "devel/python"
|
||||||
|
LICENSE = "BSD"
|
||||||
|
LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=d80fe312e1ff5fbd97369b093bf21cda"
|
||||||
|
|
||||||
|
SRCNAME = "sense-hat"
|
||||||
|
|
||||||
|
SRC_URI = "https://pypi.python.org/packages/source/s/${SRCNAME}/${SRCNAME}-${PV}.tar.gz"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "71217f15ea963040f06e2f50722186ca"
|
||||||
|
SRC_URI[sha256sum] = "c6c76707c0ea514e4b0f1f96f1b5b79755875891aae037df7434b6aad7b9dbca"
|
||||||
|
|
||||||
|
S = "${WORKDIR}/${SRCNAME}-${PV}"
|
||||||
|
|
||||||
|
inherit setuptools
|
||||||
|
|
||||||
|
DEPENDS += " \
|
||||||
|
jpeg \
|
||||||
|
zlib \
|
||||||
|
freetype \
|
||||||
|
"
|
||||||
|
|
||||||
|
RDEPENDS_${PN} += " \
|
||||||
|
python-numpy \
|
||||||
|
python-rtimu \
|
||||||
|
python-imaging \
|
||||||
|
"
|
||||||
@@ -0,0 +1,294 @@
|
|||||||
|
From 23d7ab77865f8b17042f5cd4c6720cca475e0eb5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Wed, 13 Jan 2016 14:27:10 -0800
|
||||||
|
Subject: [PATCH] Remove nested functions
|
||||||
|
|
||||||
|
nested functions are not supported on llvm/clang compiler, replacing
|
||||||
|
them helps make code portable and be compilable with non-gcc compilers
|
||||||
|
additionally fix the diagnostic messages clang reported
|
||||||
|
|
||||||
|
source/c_gpio.c:130:18: warning: comparison of distinct pointer types
|
||||||
|
('volatile uint32_t *' (aka 'volatile unsigned int *') an
|
||||||
|
d 'void *') [-Wcompare-distinct-pointer-types]
|
||||||
|
if (gpio_map < MAP_FAILED)
|
||||||
|
~~~~~~~~ ^ ~~~~~~~~~~
|
||||||
|
|
||||||
|
source/c_gpio.c:89:13: warning: variable 'peri_base' is used
|
||||||
|
uninitialized whenever 'if' condition is false [-Wsometimes-uninit
|
||||||
|
ialized]
|
||||||
|
if (fread(buf, 1, sizeof buf, fp) == sizeof buf) {
|
||||||
|
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
source/c_gpio.c:116:17: note: uninitialized use occurs here
|
||||||
|
gpio_base = peri_base + GPIO_BASE_OFFSET;
|
||||||
|
^~~~~~~~~
|
||||||
|
source/c_gpio.c:89:9: note: remove the 'if' if its condition is always
|
||||||
|
true
|
||||||
|
if (fread(buf, 1, sizeof buf, fp) == sizeof buf) {
|
||||||
|
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
source/c_gpio.c:64:23: note: initialize the variable 'peri_base' to
|
||||||
|
silence this warning
|
||||||
|
uint32_t peri_base;
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
Upstream-Status: Submitted
|
||||||
|
|
||||||
|
source/c_gpio.c | 6 +--
|
||||||
|
source/py_gpio.c | 135 ++++++++++++++++++++++++++++---------------------------
|
||||||
|
2 files changed, 71 insertions(+), 70 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/source/c_gpio.c b/source/c_gpio.c
|
||||||
|
index c96a2b0..b69880f 100644
|
||||||
|
--- a/source/c_gpio.c
|
||||||
|
+++ b/source/c_gpio.c
|
||||||
|
@@ -61,7 +61,7 @@ int setup(void)
|
||||||
|
{
|
||||||
|
int mem_fd;
|
||||||
|
uint8_t *gpio_mem;
|
||||||
|
- uint32_t peri_base;
|
||||||
|
+ uint32_t peri_base = 0;
|
||||||
|
uint32_t gpio_base;
|
||||||
|
unsigned char buf[4];
|
||||||
|
FILE *fp;
|
||||||
|
@@ -73,7 +73,7 @@ int setup(void)
|
||||||
|
if ((mem_fd = open("/dev/gpiomem", O_RDWR|O_SYNC)) > 0)
|
||||||
|
{
|
||||||
|
gpio_map = (uint32_t *)mmap(NULL, BLOCK_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, mem_fd, 0);
|
||||||
|
- if ((uint32_t)gpio_map < 0) {
|
||||||
|
+ if (gpio_map == MAP_FAILED) {
|
||||||
|
return SETUP_MMAP_FAIL;
|
||||||
|
} else {
|
||||||
|
return SETUP_OK;
|
||||||
|
@@ -127,7 +127,7 @@ int setup(void)
|
||||||
|
|
||||||
|
gpio_map = (uint32_t *)mmap( (void *)gpio_mem, BLOCK_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FIXED, mem_fd, gpio_base);
|
||||||
|
|
||||||
|
- if ((uint32_t)gpio_map < 0)
|
||||||
|
+ if (gpio_map == MAP_FAILED)
|
||||||
|
return SETUP_MMAP_FAIL;
|
||||||
|
|
||||||
|
return SETUP_OK;
|
||||||
|
diff --git a/source/py_gpio.c b/source/py_gpio.c
|
||||||
|
index d54cc7f..007bad5 100644
|
||||||
|
--- a/source/py_gpio.c
|
||||||
|
+++ b/source/py_gpio.c
|
||||||
|
@@ -69,6 +69,20 @@ static int mmap_gpio_mem(void)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+static inline int cleanup_one(unsigned int gpio)
|
||||||
|
+{
|
||||||
|
+ // clean up any /sys/class exports
|
||||||
|
+ event_cleanup(gpio);
|
||||||
|
+
|
||||||
|
+ // set everything back to input
|
||||||
|
+ if (gpio_direction[gpio] != -1) {
|
||||||
|
+ setup_gpio(gpio, INPUT, PUD_OFF);
|
||||||
|
+ gpio_direction[gpio] = -1;
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
|
||||||
|
// python function cleanup(channel=None)
|
||||||
|
static PyObject *py_cleanup(PyObject *self, PyObject *args, PyObject *kwargs)
|
||||||
|
@@ -83,19 +97,6 @@ static PyObject *py_cleanup(PyObject *self, PyObject *args, PyObject *kwargs)
|
||||||
|
PyObject *tempobj;
|
||||||
|
static char *kwlist[] = {"channel", NULL};
|
||||||
|
|
||||||
|
- void cleanup_one(void)
|
||||||
|
- {
|
||||||
|
- // clean up any /sys/class exports
|
||||||
|
- event_cleanup(gpio);
|
||||||
|
-
|
||||||
|
- // set everything back to input
|
||||||
|
- if (gpio_direction[gpio] != -1) {
|
||||||
|
- setup_gpio(gpio, INPUT, PUD_OFF);
|
||||||
|
- gpio_direction[gpio] = -1;
|
||||||
|
- found = 1;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O", kwlist, &chanlist))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
@@ -140,7 +141,7 @@ static PyObject *py_cleanup(PyObject *self, PyObject *args, PyObject *kwargs)
|
||||||
|
} else if (channel != -666) { // channel was an int indicating single channel
|
||||||
|
if (get_gpio_number(channel, &gpio))
|
||||||
|
return NULL;
|
||||||
|
- cleanup_one();
|
||||||
|
+ found = cleanup_one(gpio);
|
||||||
|
} else { // channel was a list/tuple
|
||||||
|
for (i=0; i<chancount; i++) {
|
||||||
|
if (chanlist) {
|
||||||
|
@@ -169,7 +170,7 @@ static PyObject *py_cleanup(PyObject *self, PyObject *args, PyObject *kwargs)
|
||||||
|
|
||||||
|
if (get_gpio_number(channel, &gpio))
|
||||||
|
return NULL;
|
||||||
|
- cleanup_one();
|
||||||
|
+ found = cleanup_one(gpio);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -182,6 +183,37 @@ static PyObject *py_cleanup(PyObject *self, PyObject *args, PyObject *kwargs)
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static inline int setup_one(unsigned int *gpio, int channel, int pud, int direction, int initial) {
|
||||||
|
+ if (get_gpio_number(channel, gpio))
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ int func = gpio_function(*gpio);
|
||||||
|
+ if (gpio_warnings && // warnings enabled and
|
||||||
|
+ ((func != 0 && func != 1) || // (already one of the alt functions or
|
||||||
|
+ (gpio_direction[*gpio] == -1 && func == 1))) // already an output not set from this program)
|
||||||
|
+ {
|
||||||
|
+ PyErr_WarnEx(NULL, "This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.", 1);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // warn about pull/up down on i2c channels
|
||||||
|
+ if (gpio_warnings) {
|
||||||
|
+ if (rpiinfo.p1_revision == 0) { // compute module - do nothing
|
||||||
|
+ } else if ((rpiinfo.p1_revision == 1 && (*gpio == 0 || *gpio == 1)) ||
|
||||||
|
+ (*gpio == 2 || *gpio == 3)) {
|
||||||
|
+ if (pud == PUD_UP || pud == PUD_DOWN)
|
||||||
|
+ PyErr_WarnEx(NULL, "A physical pull up resistor is fitted on this channel!", 1);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (direction == OUTPUT && (initial == LOW || initial == HIGH)) {
|
||||||
|
+ output_gpio(*gpio, initial);
|
||||||
|
+ }
|
||||||
|
+ setup_gpio(*gpio, direction, pud);
|
||||||
|
+ gpio_direction[*gpio] = direction;
|
||||||
|
+ return 1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
// python function setup(channel(s), direction, pull_up_down=PUD_OFF, initial=None)
|
||||||
|
static PyObject *py_setup_channel(PyObject *self, PyObject *args, PyObject *kwargs)
|
||||||
|
{
|
||||||
|
@@ -195,37 +227,6 @@ static PyObject *py_setup_channel(PyObject *self, PyObject *args, PyObject *kwar
|
||||||
|
int pud = PUD_OFF + PY_PUD_CONST_OFFSET;
|
||||||
|
int initial = -1;
|
||||||
|
static char *kwlist[] = {"channel", "direction", "pull_up_down", "initial", NULL};
|
||||||
|
- int func;
|
||||||
|
-
|
||||||
|
- int setup_one(void) {
|
||||||
|
- if (get_gpio_number(channel, &gpio))
|
||||||
|
- return 0;
|
||||||
|
-
|
||||||
|
- func = gpio_function(gpio);
|
||||||
|
- if (gpio_warnings && // warnings enabled and
|
||||||
|
- ((func != 0 && func != 1) || // (already one of the alt functions or
|
||||||
|
- (gpio_direction[gpio] == -1 && func == 1))) // already an output not set from this program)
|
||||||
|
- {
|
||||||
|
- PyErr_WarnEx(NULL, "This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.", 1);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- // warn about pull/up down on i2c channels
|
||||||
|
- if (gpio_warnings) {
|
||||||
|
- if (rpiinfo.p1_revision == 0) { // compute module - do nothing
|
||||||
|
- } else if ((rpiinfo.p1_revision == 1 && (gpio == 0 || gpio == 1)) ||
|
||||||
|
- (gpio == 2 || gpio == 3)) {
|
||||||
|
- if (pud == PUD_UP || pud == PUD_DOWN)
|
||||||
|
- PyErr_WarnEx(NULL, "A physical pull up resistor is fitted on this channel!", 1);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (direction == OUTPUT && (initial == LOW || initial == HIGH)) {
|
||||||
|
- output_gpio(gpio, initial);
|
||||||
|
- }
|
||||||
|
- setup_gpio(gpio, direction, pud);
|
||||||
|
- gpio_direction[gpio] = direction;
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
|
||||||
|
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Oi|ii", kwlist, &chanlist, &direction, &pud, &initial))
|
||||||
|
return NULL;
|
||||||
|
@@ -290,7 +291,7 @@ static PyObject *py_setup_channel(PyObject *self, PyObject *args, PyObject *kwar
|
||||||
|
} else if (chantuple) {
|
||||||
|
chancount = PyTuple_Size(chantuple);
|
||||||
|
} else {
|
||||||
|
- if (!setup_one())
|
||||||
|
+ if (!setup_one(&gpio, channel, pud, direction, initial))
|
||||||
|
return NULL;
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
}
|
||||||
|
@@ -320,12 +321,29 @@ static PyObject *py_setup_channel(PyObject *self, PyObject *args, PyObject *kwar
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!setup_one())
|
||||||
|
+ if (!setup_one(&gpio, channel, pud, direction, initial))
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
}
|
||||||
|
+static inline int output_val(unsigned int *gpio, int channel, int value) {
|
||||||
|
+ if (get_gpio_number(channel, gpio))
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ if (gpio_direction[*gpio] != OUTPUT)
|
||||||
|
+ {
|
||||||
|
+ PyErr_SetString(PyExc_RuntimeError, "The GPIO channel has not been set up as an OUTPUT");
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (check_gpio_priv())
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ output_gpio(*gpio, value);
|
||||||
|
+ return 1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
|
||||||
|
// python function output(channel(s), value(s))
|
||||||
|
static PyObject *py_output_gpio(PyObject *self, PyObject *args)
|
||||||
|
@@ -342,23 +360,6 @@ static PyObject *py_output_gpio(PyObject *self, PyObject *args)
|
||||||
|
int chancount = -1;
|
||||||
|
int valuecount = -1;
|
||||||
|
|
||||||
|
- int output(void) {
|
||||||
|
- if (get_gpio_number(channel, &gpio))
|
||||||
|
- return 0;
|
||||||
|
-
|
||||||
|
- if (gpio_direction[gpio] != OUTPUT)
|
||||||
|
- {
|
||||||
|
- PyErr_SetString(PyExc_RuntimeError, "The GPIO channel has not been set up as an OUTPUT");
|
||||||
|
- return 0;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (check_gpio_priv())
|
||||||
|
- return 0;
|
||||||
|
-
|
||||||
|
- output_gpio(gpio, value);
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
if (!PyArg_ParseTuple(args, "OO", &chanlist, &valuelist))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
@@ -416,7 +417,7 @@ static PyObject *py_output_gpio(PyObject *self, PyObject *args)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (chancount == -1) {
|
||||||
|
- if (!output())
|
||||||
|
+ if (!output_val(&gpio, channel, value))
|
||||||
|
return NULL;
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
}
|
||||||
|
@@ -472,7 +473,7 @@ static PyObject *py_output_gpio(PyObject *self, PyObject *args)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- if (!output())
|
||||||
|
+ if (!output_val(&gpio, channel, value))
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.7.0
|
||||||
|
|
||||||
@@ -2,18 +2,20 @@ DESCRIPTION = "A module to control Raspberry Pi GPIO channels"
|
|||||||
HOMEPAGE = "http://code.google.com/p/raspberry-gpio-python/"
|
HOMEPAGE = "http://code.google.com/p/raspberry-gpio-python/"
|
||||||
SECTION = "devel/python"
|
SECTION = "devel/python"
|
||||||
LICENSE = "MIT"
|
LICENSE = "MIT"
|
||||||
LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=35af90ff2a10e8bdc967653b9dfcb22a"
|
LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=9b95630a648966b142f1a0dcea001cb7"
|
||||||
|
|
||||||
SRCNAME = "RPi.GPIO"
|
SRCNAME = "RPi.GPIO"
|
||||||
|
|
||||||
SRC_URI = "\
|
SRC_URI = "\
|
||||||
http://pypi.python.org/packages/source/R/RPi.GPIO/${SRCNAME}-${PV}.tar.gz \
|
http://pypi.python.org/packages/source/R/RPi.GPIO/${SRCNAME}-${PV}.tar.gz \
|
||||||
|
file://0001-Remove-nested-functions.patch \
|
||||||
"
|
"
|
||||||
|
SRC_URI[md5sum] = "9db86fd5f3bae872de9dbb068ee0b096"
|
||||||
|
SRC_URI[sha256sum] = "82acff0ef6bbe3cdf6f4dbdd73d96add5294bb94baf7f51c1d901861af3c2392"
|
||||||
|
|
||||||
S = "${WORKDIR}/${SRCNAME}-${PV}"
|
S = "${WORKDIR}/${SRCNAME}-${PV}"
|
||||||
|
|
||||||
inherit distutils
|
inherit distutils
|
||||||
|
|
||||||
COMPATIBLE_MACHINE = "raspberrypi"
|
COMPATIBLE_MACHINE = "raspberrypi"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "cbdff15871230ceef29bb407d31da485"
|
|
||||||
SRC_URI[sha256sum] = "36b64a9485d6a0dc8f24cfca6af45759ee367ce412b952ebcf0409364e05813a"
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
From c86bfacc98d58244f532626954ed00d84ecfa82d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Sat, 30 Jan 2016 17:12:37 -0800
|
||||||
|
Subject: [PATCH] include sys/types.h explicitly for getting caddr_t definition
|
||||||
|
|
||||||
|
Helps fixing build on musl where sys/types.h is not included indirectly
|
||||||
|
as happening on glibc
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
Upstream-Status: Submitted
|
||||||
|
|
||||||
|
source/c_gpio/c_gpio.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/source/c_gpio/c_gpio.c b/source/c_gpio/c_gpio.c
|
||||||
|
index 25a04ca..70df632 100644
|
||||||
|
--- a/source/c_gpio/c_gpio.c
|
||||||
|
+++ b/source/c_gpio/c_gpio.c
|
||||||
|
@@ -29,6 +29,7 @@
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
+#include <sys/types.h>
|
||||||
|
#include <sys/mman.h>
|
||||||
|
#include "c_gpio.h"
|
||||||
|
|
||||||
|
--
|
||||||
|
2.7.0
|
||||||
|
|
||||||
@@ -7,14 +7,19 @@ LIC_FILES_CHKSUM = "file://README.rst;beginline=41;endline=53;md5=d5d95d7486a4d9
|
|||||||
|
|
||||||
SRCNAME = "RPIO"
|
SRCNAME = "RPIO"
|
||||||
|
|
||||||
SRC_URI = "\
|
SRC_URI = "http://pypi.python.org/packages/source/R/RPIO/${SRCNAME}-${PV}.tar.gz \
|
||||||
http://pypi.python.org/packages/source/R/RPIO/${SRCNAME}-${PV}.tar.gz \
|
file://0001-include-sys-types.h-explicitly-for-getting-caddr_t-d.patch \
|
||||||
"
|
"
|
||||||
S = "${WORKDIR}/${SRCNAME}-${PV}"
|
S = "${WORKDIR}/${SRCNAME}-${PV}"
|
||||||
|
|
||||||
inherit setuptools
|
inherit setuptools
|
||||||
|
|
||||||
COMPATIBLE_MACHINE = "raspberrypi"
|
COMPATIBLE_MACHINE = "raspberrypi"
|
||||||
|
|
||||||
|
RDEPENDS_${PN} = "\
|
||||||
|
python-logging \
|
||||||
|
python-threading \
|
||||||
|
"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "cefc45422833dcafcd59b78dffc540f4"
|
SRC_URI[md5sum] = "cefc45422833dcafcd59b78dffc540f4"
|
||||||
SRC_URI[sha256sum] = "b89f75dec9de354681209ebfaedfe22b7c178aacd91a604a7bd6d92024e4cf7e"
|
SRC_URI[sha256sum] = "b89f75dec9de354681209ebfaedfe22b7c178aacd91a604a7bd6d92024e4cf7e"
|
||||||
|
|||||||
@@ -0,0 +1,413 @@
|
|||||||
|
From ca25788e2563bad0d554deb9f4300d1e7d062825 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Aurelian Zanoschi <aurelian17@gmail.com>
|
||||||
|
Date: Mon, 31 Jul 2017 20:25:15 +0300
|
||||||
|
Subject: [PATCH] Add initial cross compile support
|
||||||
|
|
||||||
|
---
|
||||||
|
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 | 52 ++++++++++++++++++++++++-------------------
|
||||||
|
8 files changed, 120 insertions(+), 89 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/devLib/Makefile b/devLib/Makefile
|
||||||
|
index cf665d6..040c03a 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 =
|
||||||
|
|
||||||
|
@@ -68,16 +72,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 $(LDFLAGS) -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)
|
||||||
|
@@ -88,22 +92,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)
|
||||||
|
@@ -118,9 +122,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 6d87885..8623816 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 -lcrypt -lrt
|
||||||
|
+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 -lcrypt -lrt
|
||||||
|
|
||||||
|
# Should not alter anything below this line
|
||||||
|
###############################################################################
|
||||||
|
diff --git a/examples/PiFace/Makefile b/examples/PiFace/Makefile
|
||||||
|
index f937c14..ad030b3 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 f182db7..d1ea74f 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 8f773bf..14aa6e4 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 f41a005..22753ee 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 -Wextra $(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 -Wextra $(INCLUDE) -Winline -pipe
|
||||||
|
+
|
||||||
|
+LDFLAGS ?= -L$(LIB_DIR)
|
||||||
|
LIBS = -lwiringPi -lwiringPiDev -lpthread -lrt -lm -lcrypt
|
||||||
|
|
||||||
|
# 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
|
||||||
|
@@ -91,7 +92,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 e1868b9..750d290 100644
|
||||||
|
--- a/wiringPi/Makefile
|
||||||
|
+++ b/wiringPi/Makefile
|
||||||
|
@@ -25,21 +25,25 @@ 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 -Wextra -Winline $(INCLUDE) -pipe -fPIC
|
||||||
|
+CFLAGS = $(DEBUG) $(DEFS) $(INCLUDE) -Wformat=2 -Wall -Wextra -Winline -pipe -fPIC
|
||||||
|
|
||||||
|
LIBS = -lm -lpthread -lrt -lcrypt
|
||||||
|
|
||||||
|
@@ -78,17 +82,17 @@ $(STATIC): $(OBJ)
|
||||||
|
|
||||||
|
$(DYNAMIC): $(OBJ)
|
||||||
|
$Q echo "[Link (Dynamic)]"
|
||||||
|
- $Q $(CC) -shared -Wl,-soname,libwiringPi.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPi.so.$(VERSION) $(LIBS) $(OBJ)
|
||||||
|
+ $Q $(CC) $(LDFLAGS) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so $(OBJ) $(LIBS)
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
$Q echo [Compile] $<
|
||||||
|
- $Q $(CC) -c $(CFLAGS) $< -o $@
|
||||||
|
+ $Q $(CC) $(CFLAGS) $(LIBS) -c $< -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)
|
||||||
|
@@ -99,22 +103,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)
|
||||||
|
@@ -129,9 +133,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.7.4
|
||||||
|
|
||||||
@@ -1,202 +0,0 @@
|
|||||||
diff --git a/examples/Makefile b/examples/Makefile
|
|
||||||
index defd510..b84f3de 100644
|
|
||||||
--- a/examples/Makefile
|
|
||||||
+++ b/examples/Makefile
|
|
||||||
@@ -26,10 +26,10 @@
|
|
||||||
#DEBUG = -g -O0
|
|
||||||
DEBUG = -O3
|
|
||||||
CC = gcc
|
|
||||||
-INCLUDE = -I/usr/local/include
|
|
||||||
+INCLUDE = -I../wiringPi
|
|
||||||
CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
|
||||||
|
|
||||||
-LDFLAGS = -L/usr/local/lib
|
|
||||||
+LDFLAGS = -L../wiringPi
|
|
||||||
LDLIBS = -lwiringPi -lpthread -lm
|
|
||||||
|
|
||||||
# Should not alter anything below this line
|
|
||||||
diff --git a/gpio/Makefile b/gpio/Makefile
|
|
||||||
index a043962..b1539d9 100644
|
|
||||||
--- a/gpio/Makefile
|
|
||||||
+++ b/gpio/Makefile
|
|
||||||
@@ -23,13 +23,16 @@
|
|
||||||
#################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
+DESTDIR?=/usr
|
|
||||||
+PREFIX?=/local
|
|
||||||
+
|
|
||||||
#DEBUG = -g -O0
|
|
||||||
-DEBUG = -O2
|
|
||||||
-CC = gcc
|
|
||||||
-INCLUDE = -I/usr/local/include
|
|
||||||
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
|
||||||
+DEBUG ?= -O2
|
|
||||||
+CC ?= gcc
|
|
||||||
+INCLUDE ?= -I../wiringPi
|
|
||||||
+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
|
||||||
|
|
||||||
-LDFLAGS = -L/usr/local/lib
|
|
||||||
+LDFLAGS ?= -L../wiringPi
|
|
||||||
LIBS = -lwiringPi -lpthread -lm
|
|
||||||
|
|
||||||
# May not need to alter anything below this line
|
|
||||||
@@ -61,17 +64,16 @@ tags: $(SRC)
|
|
||||||
.PHONEY: install
|
|
||||||
install:
|
|
||||||
@echo "[Install]"
|
|
||||||
- @cp gpio /usr/local/bin
|
|
||||||
- @chown root.root /usr/local/bin/gpio
|
|
||||||
- @chmod 4755 /usr/local/bin/gpio
|
|
||||||
- @mkdir -p /usr/local/man/man1
|
|
||||||
- @cp gpio.1 /usr/local/man/man1
|
|
||||||
+ @install -d $(DESTDIR)$(PREFIX)/bin
|
|
||||||
+ @install -m 4755 -o root -g root gpio $(DESTDIR)$(PREFIX)/bin
|
|
||||||
+ @install -d $(DESTDIR)$(PREFIX)/share/man/man1
|
|
||||||
+ @install -m 644 -o root -g root gpio.1 $(DESTDIR)$(PREFIX)/share/man/man1
|
|
||||||
|
|
||||||
.PHONEY: uninstall
|
|
||||||
uninstall:
|
|
||||||
@echo "[UnInstall]"
|
|
||||||
- @rm -f /usr/local/bin/gpio
|
|
||||||
- @rm -f /usr/local/man/man1/gpio.1
|
|
||||||
+ @rm -f $(DESTDIR)$(PREFIX)/bin/gpio
|
|
||||||
+ @rm -f $(DESTDIR)$(PREFIX)/share/man/man1/gpio.1
|
|
||||||
|
|
||||||
.PHONEY: depend
|
|
||||||
depend:
|
|
||||||
diff --git a/wiringPi/Makefile b/wiringPi/Makefile
|
|
||||||
index c6a4555..2c7ae82 100644
|
|
||||||
--- a/wiringPi/Makefile
|
|
||||||
+++ b/wiringPi/Makefile
|
|
||||||
@@ -25,17 +25,20 @@ DYN_VERS_MAJ=1
|
|
||||||
DYN_VERS_MIN=0
|
|
||||||
|
|
||||||
VERSION=$(DYN_VERS_MAJ).$(DYN_VERS_MIN)
|
|
||||||
-DESTDIR=/usr
|
|
||||||
-PREFIX=/local
|
|
||||||
+DESTDIR?=/usr
|
|
||||||
+PREFIX?=/local
|
|
||||||
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
|
|
||||||
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
|
|
||||||
|
|
||||||
-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.
|
|
||||||
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -fPIC
|
|
||||||
+DEBUG ?= -O2
|
|
||||||
+CC ?= gcc
|
|
||||||
+INCLUDE ?= -I.
|
|
||||||
+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -fPIC
|
|
||||||
|
|
||||||
LIBS =
|
|
||||||
|
|
||||||
@@ -67,19 +70,19 @@ $(STATIC): $(OBJ)
|
|
||||||
|
|
||||||
$(DYNAMIC): $(OBJ)
|
|
||||||
@echo "[Link (Dynamic)]"
|
|
||||||
- @$(CC) -shared -Wl,-soname,libwiringPi.so.1 -o libwiringPi.so.1.0 -lpthread $(OBJ)
|
|
||||||
+ @$(CC) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ)
|
|
||||||
|
|
||||||
i2c: $(OBJ) $(OBJ_I2C)
|
|
||||||
@echo "[Link (Dynamic + I2C)]"
|
|
||||||
- @$(CC) -shared -Wl,-soname,libwiringPi.so.1 -o libwiringPi.so.1.0 -lpthread $(OBJ) $(OBJ_I2C)
|
|
||||||
+ @$(CC) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ) $(OBJ_I2C)
|
|
||||||
|
|
||||||
.c.o:
|
|
||||||
@echo [Compile] $<
|
|
||||||
- @$(CC) -c $(CFLAGS) $< -o $@
|
|
||||||
+ @$(CC) -c $(CFLAGS) -fPIC $< -o $@
|
|
||||||
|
|
||||||
.PHONEY: clean
|
|
||||||
clean:
|
|
||||||
- rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPi.*
|
|
||||||
+ rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak $(BASE_NAME).so* $(BASE_NAME).a
|
|
||||||
|
|
||||||
.PHONEY: tags
|
|
||||||
tags: $(SRC)
|
|
||||||
@@ -89,45 +92,46 @@ tags: $(SRC)
|
|
||||||
.PHONEY: install
|
|
||||||
install: $(DYNAMIC)
|
|
||||||
@echo "[Install]"
|
|
||||||
- @install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
|
|
||||||
- @install -m 0755 -d $(DESTDIR)$(PREFIX)/include
|
|
||||||
- @install -m 0644 wiringPi.h $(DESTDIR)$(PREFIX)/include
|
|
||||||
- @install -m 0644 wiringSerial.h $(DESTDIR)$(PREFIX)/include
|
|
||||||
- @install -m 0644 wiringShift.h $(DESTDIR)$(PREFIX)/include
|
|
||||||
- @install -m 0644 gertboard.h $(DESTDIR)$(PREFIX)/include
|
|
||||||
- @install -m 0644 piNes.h $(DESTDIR)$(PREFIX)/include
|
|
||||||
- @install -m 0644 softPwm.h $(DESTDIR)$(PREFIX)/include
|
|
||||||
- @install -m 0644 softServo.h $(DESTDIR)$(PREFIX)/include
|
|
||||||
- @install -m 0644 softTone.h $(DESTDIR)$(PREFIX)/include
|
|
||||||
- @install -m 0644 lcd.h $(DESTDIR)$(PREFIX)/include
|
|
||||||
- @install -m 0644 wiringPiSPI.h $(DESTDIR)$(PREFIX)/include
|
|
||||||
- @install -m 0644 wiringPiI2C.h $(DESTDIR)$(PREFIX)/include
|
|
||||||
- @install -m 0755 libwiringPi.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib
|
|
||||||
- @ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) $(DESTDIR)/lib/libwiringPi.so
|
|
||||||
- @ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) $(DESTDIR)/lib/libwiringPi.so.1
|
|
||||||
- @ldconfig
|
|
||||||
+ @install -m 0755 -d $(LIB_DIR)
|
|
||||||
+ @install -m 0755 -d $(INCLUDE_DIR)
|
|
||||||
+ @install -m 0644 wiringPi.h $(INCLUDE_DIR)
|
|
||||||
+ @install -m 0644 wiringSerial.h $(INCLUDE_DIR)
|
|
||||||
+ @install -m 0644 wiringShift.h $(INCLUDE_DIR)
|
|
||||||
+ @install -m 0644 gertboard.h $(INCLUDE_DIR)
|
|
||||||
+ @install -m 0644 piNes.h $(INCLUDE_DIR)
|
|
||||||
+ @install -m 0644 softPwm.h $(INCLUDE_DIR)
|
|
||||||
+ @install -m 0644 softServo.h $(INCLUDE_DIR)
|
|
||||||
+ @install -m 0644 softTone.h $(INCLUDE_DIR)
|
|
||||||
+ @install -m 0644 lcd.h $(INCLUDE_DIR)
|
|
||||||
+ @install -m 0644 wiringPiSPI.h $(INCLUDE_DIR)
|
|
||||||
+ @install -m 0644 wiringPiI2C.h $(INCLUDE_DIR)
|
|
||||||
+ @install -m 0755 $(BASE_NAME).so $(LIB_DIR)/$(DYNAMIC)
|
|
||||||
+ @ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so
|
|
||||||
+ @ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
|
|
||||||
|
|
||||||
.PHONEY: install-static
|
|
||||||
install-static: $(STATIC)
|
|
||||||
@echo "[Install Static]"
|
|
||||||
- @install -m 0755 libwiringPi.a $(DESTDIR)$(PREFIX)/lib
|
|
||||||
+ @install -m 0644 $(STATIC) $(LIB_DIR)
|
|
||||||
|
|
||||||
.PHONEY: uninstall
|
|
||||||
uninstall:
|
|
||||||
@echo "[UnInstall]"
|
|
||||||
- @rm -f $(DESTDIR)$(PREFIX)/include/wiringPi.h
|
|
||||||
- @rm -f $(DESTDIR)$(PREFIX)/include/wiringSerial.h
|
|
||||||
- @rm -f $(DESTDIR)$(PREFIX)/include/wiringShift.h
|
|
||||||
- @rm -f $(DESTDIR)$(PREFIX)/include/gertboard.h
|
|
||||||
- @rm -f $(DESTDIR)$(PREFIX)/include/piNes.h
|
|
||||||
- @rm -f $(DESTDIR)$(PREFIX)/include/softPwm.h
|
|
||||||
- @rm -f $(DESTDIR)$(PREFIX)/include/softServo.h
|
|
||||||
- @rm -f $(DESTDIR)$(PREFIX)/include/softTone.h
|
|
||||||
- @rm -f $(DESTDIR)$(PREFIX)/include/lcd.h
|
|
||||||
- @rm -f $(DESTDIR)$(PREFIX)/include/wiringPiSPI.h
|
|
||||||
- @rm -f $(DESTDIR)$(PREFIX)/include/wiringPiI2C.h
|
|
||||||
- @rm -f $(DESTDIR)$(PREFIX)/lib/libwiringPi.*
|
|
||||||
- @ldconfig
|
|
||||||
+ @rm -f $(INCLUDE_DIR)/wiringPi.h
|
|
||||||
+ @rm -f $(INCLUDE_DIR)/wiringSerial.h
|
|
||||||
+ @rm -f $(INCLUDE_DIR)/wiringShift.h
|
|
||||||
+ @rm -f $(INCLUDE_DIR)/gertboard.h
|
|
||||||
+ @rm -f $(INCLUDE_DIR)/piNes.h
|
|
||||||
+ @rm -f $(INCLUDE_DIR)/softPwm.h
|
|
||||||
+ @rm -f $(INCLUDE_DIR)/softServo.h
|
|
||||||
+ @rm -f $(INCLUDE_DIR)/softTone.h
|
|
||||||
+ @rm -f $(INCLUDE_DIR)/lcd.h
|
|
||||||
+ @rm -f $(INCLUDE_DIR)/wiringPiSPI.h
|
|
||||||
+ @rm -f $(INCLUDE_DIR)/wiringPiI2C.h
|
|
||||||
+ @rm -f $(LIB_DIR)/$(STATIC)
|
|
||||||
+ @rm -f $(LIB_DIR)/$(DYNAMIC)
|
|
||||||
+ @rm -f $(LIB_DIR)/$(BASE_NAME).so
|
|
||||||
+ @rm -f $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
|
|
||||||
|
|
||||||
|
|
||||||
.PHONEY: depend
|
|
||||||
@@ -4,28 +4,30 @@ SECTION = "devel/libs"
|
|||||||
LICENSE = "LGPLv3+"
|
LICENSE = "LGPLv3+"
|
||||||
LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
|
LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
|
||||||
|
|
||||||
SRCREV = "98bcb20d9391ebde24f9eb1244f0d238fb1a1dab"
|
# tag 2.44
|
||||||
|
SRCREV = "96344ff7125182989f98d3be8d111952a8f74e15"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
SRC_URI = "\
|
SRC_URI = "git://git.drogon.net/wiringPi \
|
||||||
git://git.drogon.net/wiringPi \
|
file://0001-Add-initial-cross-compile-support.patch \
|
||||||
file://Makefiles-install.patch \
|
"
|
||||||
"
|
|
||||||
|
|
||||||
COMPATIBLE_MACHINE = "raspberrypi"
|
COMPATIBLE_MACHINE = "raspberrypi"
|
||||||
|
|
||||||
CFLAGS_prepend = "-I${S}/wiringPi"
|
CFLAGS_prepend = "-I${S}/wiringPi -I${S}/devLib "
|
||||||
|
|
||||||
EXTRA_OEMAKE += "'INCLUDE_DIR=${D}${includedir}' 'LIB_DIR=${D}${libdir}'"
|
EXTRA_OEMAKE += "'INCLUDE_DIR=${D}${includedir}' 'LIB_DIR=${D}${libdir}'"
|
||||||
EXTRA_OEMAKE += "'DESTDIR=${D}/usr' 'PREFIX=""'"
|
EXTRA_OEMAKE += "'DESTDIR=${D}/usr' 'PREFIX=""'"
|
||||||
|
|
||||||
do_compile() {
|
do_compile() {
|
||||||
|
oe_runmake -C devLib
|
||||||
oe_runmake -C wiringPi
|
oe_runmake -C wiringPi
|
||||||
oe_runmake -C gpio 'LDFLAGS=${LDFLAGS} -L${S}/wiringPi'
|
oe_runmake -C gpio 'LDFLAGS=${LDFLAGS} -L${S}/wiringPi -L${S}/devLib'
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install() {
|
do_install() {
|
||||||
|
oe_runmake -C devLib install
|
||||||
oe_runmake -C wiringPi install
|
oe_runmake -C wiringPi install
|
||||||
oe_runmake -C gpio install
|
oe_runmake -C gpio install
|
||||||
}
|
}
|
||||||
|
|||||||
2
recipes-graphics/eglinfo/eglinfo-fb_%.bbappend
Normal file
2
recipes-graphics/eglinfo/eglinfo-fb_%.bbappend
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
EGLINFO_DEVICE_rpi = "raspberrypi"
|
||||||
|
COMPATIBLE_HOST_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'null', '"(.*)"', d)}"
|
||||||
2
recipes-graphics/eglinfo/eglinfo-x11_%.bbappend
Normal file
2
recipes-graphics/eglinfo/eglinfo-x11_%.bbappend
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
EGLINFO_DEVICE_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'generic', 'raspberrypi', d)}"
|
||||||
|
ASNEEDED = ""
|
||||||
1
recipes-graphics/mesa/mesa-gl_%.bbappend
Normal file
1
recipes-graphics/mesa/mesa-gl_%.bbappend
Normal file
@@ -0,0 +1 @@
|
|||||||
|
PACKAGECONFIG_append_rpi = " gbm"
|
||||||
3
recipes-graphics/mesa/mesa_%.bbappend
Normal file
3
recipes-graphics/mesa/mesa_%.bbappend
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
PACKAGECONFIG_append_rpi = " gallium"
|
||||||
|
GALLIUMDRIVERS_rpi = "vc4"
|
||||||
|
DRIDRIVERS_rpi = ""
|
||||||
@@ -0,0 +1,208 @@
|
|||||||
|
From e45bc677368d0f8d42720aad242f33f6e2687fb1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dom Cobley <dc4@broadcom.com>
|
||||||
|
Date: Tue, 9 Jul 2013 09:26:26 -0400
|
||||||
|
Subject: [PATCH 01/15] Allow applications to set next resource handle
|
||||||
|
|
||||||
|
This patch adds provisions in userland to
|
||||||
|
let apps callers set the next rendereing dispmanx resource.
|
||||||
|
It's useful for implementing, say, a buffer carousel.
|
||||||
|
---
|
||||||
|
interface/khronos/common/khrn_client_rpc.h | 2 ++
|
||||||
|
interface/khronos/common/khrn_int_ids.h | 2 ++
|
||||||
|
interface/khronos/egl/egl_client.c | 30 +++++++++++++++++++++++++++---
|
||||||
|
interface/khronos/egl/egl_client_surface.c | 24 +++++++++++++++++++++++-
|
||||||
|
interface/khronos/egl/egl_client_surface.h | 3 ++-
|
||||||
|
interface/khronos/egl/egl_int_impl.h | 5 +++--
|
||||||
|
6 files changed, 59 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/interface/khronos/common/khrn_client_rpc.h b/interface/khronos/common/khrn_client_rpc.h
|
||||||
|
index dc4351d..10ea060 100644
|
||||||
|
--- a/interface/khronos/common/khrn_client_rpc.h
|
||||||
|
+++ b/interface/khronos/common/khrn_client_rpc.h
|
||||||
|
@@ -685,6 +685,7 @@ static INLINE void rpc_call12_out_ctrl(CLIENT_THREAD_STATE_T *thread,uint32_t id
|
||||||
|
static INLINE void rpc_call13_out_ctrl(CLIENT_THREAD_STATE_T *thread,uint32_t id, uint32_t p0, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4, uint32_t p5, uint32_t p6, uint32_t p7, uint32_t p8, uint32_t p9, uint32_t p10, uint32_t p11, void *out) { rpc_begin(thread); RPC_CALL(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); rpc_recv(thread, out, NULL, (RPC_RECV_FLAG_T)(RPC_RECV_FLAG_CTRL | RPC_RECV_FLAG_LEN)); rpc_end(thread); }
|
||||||
|
static INLINE void rpc_call14_out_ctrl(CLIENT_THREAD_STATE_T *thread,uint32_t id, uint32_t p0, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4, uint32_t p5, uint32_t p6, uint32_t p7, uint32_t p8, uint32_t p9, uint32_t p10, uint32_t p11, uint32_t p12, void *out) { rpc_begin(thread); RPC_CALL(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); rpc_recv(thread, out, NULL, (RPC_RECV_FLAG_T)(RPC_RECV_FLAG_CTRL | RPC_RECV_FLAG_LEN)); rpc_end(thread); }
|
||||||
|
static INLINE void rpc_call15_out_ctrl(CLIENT_THREAD_STATE_T *thread,uint32_t id, uint32_t p0, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4, uint32_t p5, uint32_t p6, uint32_t p7, uint32_t p8, uint32_t p9, uint32_t p10, uint32_t p11, uint32_t p12, uint32_t p13, void *out) { rpc_begin(thread); RPC_CALL(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); rpc_recv(thread, out, NULL, (RPC_RECV_FLAG_T)(RPC_RECV_FLAG_CTRL | RPC_RECV_FLAG_LEN)); rpc_end(thread); }
|
||||||
|
+static INLINE void rpc_call16_out_ctrl(CLIENT_THREAD_STATE_T *thread,uint32_t id, uint32_t p0, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4, uint32_t p5, uint32_t p6, uint32_t p7, uint32_t p8, uint32_t p9, uint32_t p10, uint32_t p11, uint32_t p12, uint32_t p13, uint32_t p14, void *out) { rpc_begin(thread); RPC_CALL(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14); rpc_recv(thread, out, NULL, (RPC_RECV_FLAG_T)(RPC_RECV_FLAG_CTRL | RPC_RECV_FLAG_LEN)); rpc_end(thread); }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define RPC_CALL1_OUT_CTRL(fn, thread, id, out) rpc_call1_out_ctrl(thread, id, out)
|
||||||
|
@@ -702,6 +703,7 @@ static INLINE void rpc_call15_out_ctrl(CLIENT_THREAD_STATE_T *thread,uint32_t id
|
||||||
|
#define RPC_CALL13_OUT_CTRL(fn, thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, out) rpc_call13_out_ctrl(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, out)
|
||||||
|
#define RPC_CALL14_OUT_CTRL(fn, thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, out) rpc_call14_out_ctrl(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, out)
|
||||||
|
#define RPC_CALL15_OUT_CTRL(fn, thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, out) rpc_call15_out_ctrl(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, out)
|
||||||
|
+#define RPC_CALL16_OUT_CTRL(fn, thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, out) rpc_call16_out_ctrl(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, out)
|
||||||
|
|
||||||
|
# if !defined(__SYMBIAN32__) //use functions defined in khrpc.cpp
|
||||||
|
static INLINE uint32_t rpc_call1_out_ctrl_res(CLIENT_THREAD_STATE_T *thread,uint32_t id, void *out) { uint32_t res; rpc_begin(thread); RPC_CALL(thread, id); res = rpc_recv(thread, out, NULL, (RPC_RECV_FLAG_T)(RPC_RECV_FLAG_RES | RPC_RECV_FLAG_CTRL | RPC_RECV_FLAG_LEN)); rpc_end(thread); return res; }
|
||||||
|
diff --git a/interface/khronos/common/khrn_int_ids.h b/interface/khronos/common/khrn_int_ids.h
|
||||||
|
index 8378f4a..ec961e0 100644
|
||||||
|
--- a/interface/khronos/common/khrn_int_ids.h
|
||||||
|
+++ b/interface/khronos/common/khrn_int_ids.h
|
||||||
|
@@ -367,6 +367,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define EGLINTCREATESURFACE_ID 0x4000
|
||||||
|
+#define EGLINTCREATESURFACE_ID_V2 0x4100
|
||||||
|
#define EGLINTCREATEGLES11_ID 0x4001
|
||||||
|
#define EGLINTCREATEGLES20_ID 0x4002
|
||||||
|
#define EGLINTCREATEVG_ID 0x4003
|
||||||
|
@@ -377,6 +378,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#define EGLINTMAKECURRENT_ID 0x4008
|
||||||
|
#define EGLINTFLUSHANDWAIT_ID 0x4009
|
||||||
|
#define EGLINTSWAPBUFFERS_ID 0x400a
|
||||||
|
+#define EGLINTSWAPBUFFERS_ID_V2 0x410a
|
||||||
|
#define EGLINTSELECTMIPMAP_ID 0x400b
|
||||||
|
#define EGLINTFLUSH_ID 0x400c
|
||||||
|
#define EGLINTGETCOLORDATA_ID 0x400d
|
||||||
|
diff --git a/interface/khronos/egl/egl_client.c b/interface/khronos/egl/egl_client.c
|
||||||
|
index 9d617c8..b8bb374 100644
|
||||||
|
--- a/interface/khronos/egl/egl_client.c
|
||||||
|
+++ b/interface/khronos/egl/egl_client.c
|
||||||
|
@@ -162,6 +162,17 @@ static void egl_current_release(CLIENT_PROCESS_STATE_T *process, EGL_CURRENT_T *
|
||||||
|
void egl_gl_flush_callback(bool wait);
|
||||||
|
void egl_vg_flush_callback(bool wait);
|
||||||
|
|
||||||
|
+#include "interface/vmcs_host/vc_dispmanx_types.h"
|
||||||
|
+/**HACKHACK - give us the ability to inject a DispmanX
|
||||||
|
+ * resource handle into the CreateWindowSurface and
|
||||||
|
+ * SwapBuffers calls */
|
||||||
|
+static DISPMANX_RESOURCE_HANDLE_T next_resource_handle;
|
||||||
|
+
|
||||||
|
+EGLAPI EGLBoolean EGLAPIENTRY eglSetNextResourceHandle(DISPMANX_RESOURCE_HANDLE_T handle)
|
||||||
|
+{
|
||||||
|
+ next_resource_handle = handle;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
TODO: do an RPC call to make sure the Khronos vll is loaded (and that it stays loaded until eglTerminate)
|
||||||
|
Also affects global image (and possibly others?)
|
||||||
|
@@ -644,7 +655,8 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig c
|
||||||
|
false,
|
||||||
|
EGL_NO_TEXTURE,
|
||||||
|
EGL_NO_TEXTURE,
|
||||||
|
- 0, 0);
|
||||||
|
+ 0, 0,
|
||||||
|
+ next_resource_handle);
|
||||||
|
|
||||||
|
if (surface) {
|
||||||
|
if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
|
||||||
|
@@ -889,7 +901,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig
|
||||||
|
mipmap_texture,
|
||||||
|
texture_format,
|
||||||
|
texture_target,
|
||||||
|
- 0, 0);
|
||||||
|
+ 0, 0, 0);
|
||||||
|
|
||||||
|
if (surface) {
|
||||||
|
if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
|
||||||
|
@@ -1031,7 +1043,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig c
|
||||||
|
false,
|
||||||
|
EGL_NO_TEXTURE,
|
||||||
|
EGL_NO_TEXTURE,
|
||||||
|
- pixmap, ((server_handle[0] == 0) && (server_handle[1] == (uint32_t)(-1))) ? NULL : server_handle);
|
||||||
|
+ pixmap, ((server_handle[0] == 0) && (server_handle[1] == (uint32_t)(-1))) ? NULL : server_handle, 0);
|
||||||
|
|
||||||
|
if (surface) {
|
||||||
|
if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
|
||||||
|
@@ -2303,6 +2315,18 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf)
|
||||||
|
|
||||||
|
vcos_log_trace("eglSwapBuffers server call");
|
||||||
|
|
||||||
|
+ if (next_resource_handle)
|
||||||
|
+ RPC_CALL7(eglIntSwapBuffers_impl,
|
||||||
|
+ thread,
|
||||||
|
+ EGLINTSWAPBUFFERS_ID_V2,
|
||||||
|
+ RPC_UINT(surface->serverbuffer),
|
||||||
|
+ RPC_UINT(surface->width),
|
||||||
|
+ RPC_UINT(surface->height),
|
||||||
|
+ RPC_UINT(surface->internal_handle),
|
||||||
|
+ RPC_UINT(surface->swap_behavior == EGL_BUFFER_PRESERVED ? 1 : 0),
|
||||||
|
+ RPC_UINT(khrn_platform_get_window_position(surface->win)),
|
||||||
|
+ RPC_INT(next_resource_handle));
|
||||||
|
+ else
|
||||||
|
RPC_CALL6(eglIntSwapBuffers_impl,
|
||||||
|
thread,
|
||||||
|
EGLINTSWAPBUFFERS_ID,
|
||||||
|
diff --git a/interface/khronos/egl/egl_client_surface.c b/interface/khronos/egl/egl_client_surface.c
|
||||||
|
index 6846dfa..128325e 100644
|
||||||
|
--- a/interface/khronos/egl/egl_client_surface.c
|
||||||
|
+++ b/interface/khronos/egl/egl_client_surface.c
|
||||||
|
@@ -314,7 +314,8 @@ EGL_SURFACE_T *egl_surface_create(
|
||||||
|
EGLenum texture_format,
|
||||||
|
EGLenum texture_target,
|
||||||
|
EGLNativePixmapType pixmap,
|
||||||
|
- const uint32_t *pixmap_server_handle)
|
||||||
|
+ const uint32_t *pixmap_server_handle,
|
||||||
|
+ DISPMANX_RESOURCE_HANDLE_T next_resource_handle)
|
||||||
|
{
|
||||||
|
KHRN_IMAGE_FORMAT_T color;
|
||||||
|
KHRN_IMAGE_FORMAT_T depth;
|
||||||
|
@@ -473,6 +474,27 @@ EGL_SURFACE_T *egl_surface_create(
|
||||||
|
#endif
|
||||||
|
uint32_t results[3];
|
||||||
|
|
||||||
|
+ if (next_resource_handle)
|
||||||
|
+ RPC_CALL16_OUT_CTRL(eglIntCreateSurface_impl,
|
||||||
|
+ thread,
|
||||||
|
+ EGLINTCREATESURFACE_ID_V2,
|
||||||
|
+ RPC_UINT(serverwin),
|
||||||
|
+ RPC_UINT(buffers),
|
||||||
|
+ RPC_UINT(width),
|
||||||
|
+ RPC_UINT(height),
|
||||||
|
+ RPC_UINT(color),
|
||||||
|
+ RPC_UINT(depth),
|
||||||
|
+ RPC_UINT(mask),
|
||||||
|
+ RPC_UINT(multi),
|
||||||
|
+ RPC_UINT(largest_pbuffer),
|
||||||
|
+ RPC_UINT(mipmap_texture),
|
||||||
|
+ RPC_UINT(config_depth_bits),
|
||||||
|
+ RPC_UINT(config_stencil_bits),
|
||||||
|
+ RPC_UINT(sem_name),
|
||||||
|
+ RPC_UINT(type),
|
||||||
|
+ RPC_INT(next_resource_handle),
|
||||||
|
+ results);
|
||||||
|
+ else
|
||||||
|
RPC_CALL15_OUT_CTRL(eglIntCreateSurface_impl,
|
||||||
|
thread,
|
||||||
|
EGLINTCREATESURFACE_ID,
|
||||||
|
diff --git a/interface/khronos/egl/egl_client_surface.h b/interface/khronos/egl/egl_client_surface.h
|
||||||
|
index c99d44c..b5bf70a 100644
|
||||||
|
--- a/interface/khronos/egl/egl_client_surface.h
|
||||||
|
+++ b/interface/khronos/egl/egl_client_surface.h
|
||||||
|
@@ -322,7 +322,8 @@ extern EGL_SURFACE_T *egl_surface_create(
|
||||||
|
EGLenum texture_format,
|
||||||
|
EGLenum texture_target,
|
||||||
|
EGLNativePixmapType pixmap,
|
||||||
|
- const uint32_t *pixmap_server_handle);
|
||||||
|
+ const uint32_t *pixmap_server_handle,
|
||||||
|
+ DISPMANX_RESOURCE_HANDLE_T next_resource_handle);
|
||||||
|
extern EGL_SURFACE_T *egl_surface_from_vg_image(
|
||||||
|
VGImage vg_handle,
|
||||||
|
EGLSurface name,
|
||||||
|
diff --git a/interface/khronos/egl/egl_int_impl.h b/interface/khronos/egl/egl_int_impl.h
|
||||||
|
index 8a5734c..51b3580 100644
|
||||||
|
--- a/interface/khronos/egl/egl_int_impl.h
|
||||||
|
+++ b/interface/khronos/egl/egl_int_impl.h
|
||||||
|
@@ -56,7 +56,8 @@ FN(int, eglIntCreateSurface_impl, (
|
||||||
|
uint32_t config_stencil_bits,
|
||||||
|
uint32_t sem,
|
||||||
|
uint32_t type,
|
||||||
|
- uint32_t *results))
|
||||||
|
+ uint32_t *results,
|
||||||
|
+ DISPMANX_RESOURCE_HANDLE_T next_resource_handle))
|
||||||
|
|
||||||
|
FN(int, eglIntCreatePbufferFromVGImage_impl, (
|
||||||
|
VGImage vg_handle,
|
||||||
|
@@ -110,7 +111,7 @@ FN(void, eglIntMakeCurrent_impl, (uint32_t pid_0, uint32_t pid_1, uint32_t glver
|
||||||
|
FN(int, eglIntFlushAndWait_impl, (uint32_t flushgl, uint32_t flushvg))
|
||||||
|
FN(void, eglIntFlush_impl, (uint32_t flushgl, uint32_t flushvg))
|
||||||
|
|
||||||
|
-FN(void, eglIntSwapBuffers_impl, (EGL_SURFACE_ID_T s, uint32_t width, uint32_t height, uint32_t handle, uint32_t preserve, uint32_t position))
|
||||||
|
+FN(void, eglIntSwapBuffers_impl, (EGL_SURFACE_ID_T s, uint32_t width, uint32_t height, uint32_t handle, uint32_t preserve, uint32_t position, DISPMANX_RESOURCE_HANDLE_T new_back_buffer))
|
||||||
|
FN(void, eglIntSelectMipmap_impl, (EGL_SURFACE_ID_T s, int level))
|
||||||
|
|
||||||
|
FN(void, eglIntGetColorData_impl, (EGL_SURFACE_ID_T s, KHRN_IMAGE_FORMAT_T format, uint32_t width, uint32_t height, int32_t stride, uint32_t y_offset, void *data))
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,28 @@
|
|||||||
|
From cae4ff834eef23c8f23126ba4d630db395f13aee Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Mon, 10 Aug 2015 02:38:27 -0700
|
||||||
|
Subject: [PATCH 04/15] wayland-egl: Add bcm_host to dependencies
|
||||||
|
|
||||||
|
It uses headers like vcos_platform_types.h but does not
|
||||||
|
depend on module which should add the required include paths
|
||||||
|
lets add the dependency on bcm_host module which should do it
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
interface/khronos/wayland-egl/wayland-egl.pc.in | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/interface/khronos/wayland-egl/wayland-egl.pc.in b/interface/khronos/wayland-egl/wayland-egl.pc.in
|
||||||
|
index 8bafc15..fd259c9 100644
|
||||||
|
--- a/interface/khronos/wayland-egl/wayland-egl.pc.in
|
||||||
|
+++ b/interface/khronos/wayland-egl/wayland-egl.pc.in
|
||||||
|
@@ -6,5 +6,6 @@ includedir=${prefix}/include
|
||||||
|
Name: wayland-egl
|
||||||
|
Description: VideoCore wayland-egl library
|
||||||
|
Version: @PROJECT_APIVER@
|
||||||
|
+Requires: bcm_host
|
||||||
|
Libs: -L${libdir} -lwayland-egl
|
||||||
|
Cflags: -I${includedir}
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
From 8ee4f6eedb81e9bfe0e603a21606c52f9501e609 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||||
|
Date: Sat, 24 Jan 2015 22:07:19 +0100
|
||||||
|
Subject: [PATCH 05/15] interface: remove faulty assert() to make weston happy
|
||||||
|
at runtime
|
||||||
|
|
||||||
|
This was removed after a discussion on IRC with the weston guys
|
||||||
|
('daniels' on irc.freenode.net/#wayland).
|
||||||
|
|
||||||
|
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||||
|
---
|
||||||
|
interface/vmcs_host/vc_vchi_dispmanx.c | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/interface/vmcs_host/vc_vchi_dispmanx.c b/interface/vmcs_host/vc_vchi_dispmanx.c
|
||||||
|
index eab146e..29e0dee 100755
|
||||||
|
--- a/interface/vmcs_host/vc_vchi_dispmanx.c
|
||||||
|
+++ b/interface/vmcs_host/vc_vchi_dispmanx.c
|
||||||
|
@@ -1306,7 +1306,6 @@ static void *dispmanx_notify_func( void *arg ) {
|
||||||
|
// Decrement the use count - the corresponding "use" is in vc_dispmanx_update_submit.
|
||||||
|
vchi_service_release(dispmanx_client.notify_handle[0]);
|
||||||
|
if (dispmanx_client.update_callback ) {
|
||||||
|
- vcos_assert( dispmanx_client.pending_update_handle == handle);
|
||||||
|
dispmanx_client.update_callback(handle, dispmanx_client.update_callback_param);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
From 789b0b0c04b741c21dd573b78eded970721d14c2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Sat, 6 Feb 2016 11:10:47 -0800
|
||||||
|
Subject: [PATCH 06/15] zero-out wl buffers in egl_surface_free
|
||||||
|
|
||||||
|
origins from buildroot
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
interface/khronos/egl/egl_client_surface.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/interface/khronos/egl/egl_client_surface.c b/interface/khronos/egl/egl_client_surface.c
|
||||||
|
index 42350bf..1f923d9 100644
|
||||||
|
--- a/interface/khronos/egl/egl_client_surface.c
|
||||||
|
+++ b/interface/khronos/egl/egl_client_surface.c
|
||||||
|
@@ -690,11 +690,13 @@ void egl_surface_free(EGL_SURFACE_T *surface)
|
||||||
|
if (surface->back_wl_buffer) {
|
||||||
|
wl_buffer_destroy(surface->back_wl_buffer->wl_buffer);
|
||||||
|
free(surface->back_wl_buffer);
|
||||||
|
+ surface->back_wl_buffer = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (surface->front_wl_buffer) {
|
||||||
|
wl_buffer_destroy(surface->front_wl_buffer->wl_buffer);
|
||||||
|
free(surface->front_wl_buffer);
|
||||||
|
+ surface->front_wl_buffer = 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
From 762dd3156775f167ff0dfd44322dbb19a85822a7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Sat, 6 Feb 2016 11:11:41 -0800
|
||||||
|
Subject: [PATCH 07/15] initialize front back wayland buffers
|
||||||
|
|
||||||
|
origins from metrological wayland support
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
interface/khronos/egl/egl_client_surface.c | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/interface/khronos/egl/egl_client_surface.c b/interface/khronos/egl/egl_client_surface.c
|
||||||
|
index 1f923d9..9a9582c 100644
|
||||||
|
--- a/interface/khronos/egl/egl_client_surface.c
|
||||||
|
+++ b/interface/khronos/egl/egl_client_surface.c
|
||||||
|
@@ -401,11 +401,14 @@ EGL_SURFACE_T *egl_surface_create(
|
||||||
|
#ifdef BUILD_WAYLAND
|
||||||
|
if (type == WINDOW && wl_display) {
|
||||||
|
surface->wl_egl_window = (struct wl_egl_window*)win;
|
||||||
|
+ surface->front_wl_buffer = NULL;
|
||||||
|
surface->back_wl_buffer = allocate_wl_buffer(
|
||||||
|
surface->wl_egl_window, color);
|
||||||
|
resource = surface->back_wl_buffer->resource;
|
||||||
|
} else {
|
||||||
|
surface->wl_egl_window = NULL;
|
||||||
|
+ surface->front_wl_buffer = NULL;
|
||||||
|
+ surface->back_wl_buffer = NULL;
|
||||||
|
resource = DISPMANX_NO_HANDLE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
From f8929adbf95ad3d44491cf6fc8a84a686b71193e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Sat, 6 Feb 2016 11:09:18 -0800
|
||||||
|
Subject: [PATCH 08/15] Remove RPC_FLUSH
|
||||||
|
|
||||||
|
Origins from buildroot
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
interface/khronos/ext/gl_oes_egl_image_client.c | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/interface/khronos/ext/gl_oes_egl_image_client.c b/interface/khronos/ext/gl_oes_egl_image_client.c
|
||||||
|
index f9b7287..b04ffef 100644
|
||||||
|
--- a/interface/khronos/ext/gl_oes_egl_image_client.c
|
||||||
|
+++ b/interface/khronos/ext/gl_oes_egl_image_client.c
|
||||||
|
@@ -107,7 +107,6 @@ GL_API void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageO
|
||||||
|
GLEGLIMAGETARGETTEXTURE2DOES_ID,
|
||||||
|
RPC_ENUM(target),
|
||||||
|
RPC_EGLID(image));
|
||||||
|
- RPC_FLUSH(thread);
|
||||||
|
#if EGL_BRCM_global_image
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
From f53e028f33f261f85883c9168977dd5486e9b47c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Sat, 6 Feb 2016 13:12:47 -0800
|
||||||
|
Subject: [PATCH 09/15] fix cmake dependency race
|
||||||
|
|
||||||
|
Fixes errors like
|
||||||
|
|
||||||
|
/a/builder/mnt/build-oe/tmp-glibc/work/raspberrypi2-oe-linux-gnueabi/userland/git-r5/git/interface/vmcs_host/vc_vchi_dispmanx.h:72:66:
|
||||||
|
fatal error: interface/vmcs_host/wayland-dispmanx-server-protocol.h: No
|
||||||
|
such file or directory
|
||||||
|
compilation terminated.
|
||||||
|
interface/khronos/CMakeFiles/EGL_static.dir/build.make:773: recipe for
|
||||||
|
target 'interface/khronos/CMakeFiles/EGL_static.dir/ext/egl_wayland.c.o'
|
||||||
|
failed
|
||||||
|
make[2]: ***
|
||||||
|
[interface/khronos/CMakeFiles/EGL_static.dir/ext/egl_wayland.c.o] Error 1
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
interface/vcos/pthreads/CMakeLists.txt | 8 ++++++++
|
||||||
|
interface/vmcs_host/CMakeLists.txt | 8 --------
|
||||||
|
interface/vmcs_host/vc_vchi_dispmanx.h | 2 +-
|
||||||
|
3 files changed, 9 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/interface/vcos/pthreads/CMakeLists.txt b/interface/vcos/pthreads/CMakeLists.txt
|
||||||
|
index 1d81ca3..d6cd415 100644
|
||||||
|
--- a/interface/vcos/pthreads/CMakeLists.txt
|
||||||
|
+++ b/interface/vcos/pthreads/CMakeLists.txt
|
||||||
|
@@ -33,6 +33,14 @@ set (SOURCES
|
||||||
|
../generic/vcos_generic_blockpool.c
|
||||||
|
)
|
||||||
|
|
||||||
|
+if (BUILD_WAYLAND)
|
||||||
|
+wayland_add_protocol_server(
|
||||||
|
+ SOURCES
|
||||||
|
+ ../../../interface/wayland/dispmanx.xml
|
||||||
|
+ dispmanx
|
||||||
|
+)
|
||||||
|
+endif ()
|
||||||
|
+
|
||||||
|
if (VCOS_PTHREADS_BUILD_SHARED)
|
||||||
|
add_library (vcos SHARED ${SOURCES})
|
||||||
|
target_link_libraries (vcos pthread dl rt)
|
||||||
|
diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt
|
||||||
|
index 6718215..c415176 100755
|
||||||
|
--- a/interface/vmcs_host/CMakeLists.txt
|
||||||
|
+++ b/interface/vmcs_host/CMakeLists.txt
|
||||||
|
@@ -17,14 +17,6 @@ set(VCHOSTIF_SOURCE
|
||||||
|
# ${VMCS_TARGET}/vmcs_main.c
|
||||||
|
# vc_vchi_haud.c
|
||||||
|
|
||||||
|
-if (BUILD_WAYLAND)
|
||||||
|
-wayland_add_protocol_server(
|
||||||
|
- VCHOSTIF_SOURCE
|
||||||
|
- ../../interface/wayland/dispmanx.xml
|
||||||
|
- dispmanx
|
||||||
|
-)
|
||||||
|
-endif ()
|
||||||
|
-
|
||||||
|
add_library(vchostif ${VCHOSTIF_SOURCE})
|
||||||
|
|
||||||
|
#add_library(bufman vc_vchi_bufman.c )
|
||||||
|
diff --git a/interface/vmcs_host/vc_vchi_dispmanx.h b/interface/vmcs_host/vc_vchi_dispmanx.h
|
||||||
|
index f0bae30..8c44c58 100644
|
||||||
|
--- a/interface/vmcs_host/vc_vchi_dispmanx.h
|
||||||
|
+++ b/interface/vmcs_host/vc_vchi_dispmanx.h
|
||||||
|
@@ -69,7 +69,7 @@ typedef struct {
|
||||||
|
#ifdef BUILD_WAYLAND
|
||||||
|
/* XXX: This should be in a private header that can be included from EGL and vc_* */
|
||||||
|
#include <wayland-server.h>
|
||||||
|
-#include "interface/vmcs_host/wayland-dispmanx-server-protocol.h"
|
||||||
|
+#include "interface/vcos/pthreads/wayland-dispmanx-server-protocol.h"
|
||||||
|
struct wl_dispmanx_server_buffer {
|
||||||
|
struct wl_resource *resource;
|
||||||
|
struct wl_dispmanx *dispmanx;
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
From 6559a57c66c5f55571a1aa29cf14d9130a9ef2c9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Tue, 29 Mar 2016 20:38:30 -0700
|
||||||
|
Subject: [PATCH 10/15] Fix for framerate with nested composition
|
||||||
|
|
||||||
|
frame rate appears irregular and lower than expected when using nested composition.
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
interface/khronos/egl/egl_client.c | 8 ++++++++
|
||||||
|
1 file changed, 8 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/interface/khronos/egl/egl_client.c b/interface/khronos/egl/egl_client.c
|
||||||
|
index 03fe67b..13a110c 100644
|
||||||
|
--- a/interface/khronos/egl/egl_client.c
|
||||||
|
+++ b/interface/khronos/egl/egl_client.c
|
||||||
|
@@ -2342,6 +2342,9 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf)
|
||||||
|
surface->back_wl_buffer = buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ glFlush();
|
||||||
|
+ glFinish();
|
||||||
|
+
|
||||||
|
RPC_CALL7(eglIntSwapBuffers_impl,
|
||||||
|
thread,
|
||||||
|
EGLINTSWAPBUFFERS_ID_V2,
|
||||||
|
@@ -2353,6 +2356,8 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf)
|
||||||
|
RPC_UINT(khrn_platform_get_window_position(surface->win)),
|
||||||
|
RPC_INT(surface->back_wl_buffer->resource));
|
||||||
|
|
||||||
|
+ RPC_FLUSH(thread);
|
||||||
|
+
|
||||||
|
surface->front_wl_buffer->in_use = 1;
|
||||||
|
wl_surface_attach(wl_egl_window->wl_surface,
|
||||||
|
surface->front_wl_buffer->wl_buffer,
|
||||||
|
@@ -2360,11 +2365,13 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf)
|
||||||
|
wl_surface_damage(wl_egl_window->wl_surface, 0, 0,
|
||||||
|
surface->width, surface->height);
|
||||||
|
wl_surface_commit(wl_egl_window->wl_surface);
|
||||||
|
+ wl_display_flush(wl_display);
|
||||||
|
|
||||||
|
while(ret != -1 && surface->back_wl_buffer->in_use)
|
||||||
|
ret = wl_display_dispatch_queue(wl_display, process->wl_queue);
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
|
+ {
|
||||||
|
RPC_CALL6(eglIntSwapBuffers_impl,
|
||||||
|
thread,
|
||||||
|
EGLINTSWAPBUFFERS_ID,
|
||||||
|
@@ -2376,6 +2383,7 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf)
|
||||||
|
RPC_UINT(khrn_platform_get_window_position(surface->win)));
|
||||||
|
|
||||||
|
RPC_FLUSH(thread);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
#ifdef ANDROID
|
||||||
|
CLIENT_UNLOCK();
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
From 3e396f0b514f3acf90c02f5d55b3816028367a55 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Sat, 2 Apr 2016 10:37:24 -0700
|
||||||
|
Subject: [PATCH 11/15] build shared library for vchostif
|
||||||
|
|
||||||
|
Fixes #149
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
interface/vmcs_host/CMakeLists.txt | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt
|
||||||
|
index c415176..d0cca1a 100755
|
||||||
|
--- a/interface/vmcs_host/CMakeLists.txt
|
||||||
|
+++ b/interface/vmcs_host/CMakeLists.txt
|
||||||
|
@@ -17,7 +17,7 @@ set(VCHOSTIF_SOURCE
|
||||||
|
# ${VMCS_TARGET}/vmcs_main.c
|
||||||
|
# vc_vchi_haud.c
|
||||||
|
|
||||||
|
-add_library(vchostif ${VCHOSTIF_SOURCE})
|
||||||
|
+add_library(vchostif SHARED ${VCHOSTIF_SOURCE})
|
||||||
|
|
||||||
|
#add_library(bufman vc_vchi_bufman.c )
|
||||||
|
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
From f5b2263c8d65e307cb085414e08118cbbe00a94c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Sat, 2 Apr 2016 10:54:59 -0700
|
||||||
|
Subject: [PATCH 12/15] implement buffer wrapping interface for dispmanx
|
||||||
|
|
||||||
|
Courtesy: Zan Dobersek
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
interface/khronos/ext/egl_wayland.c | 42 +++++++++++++++++++++++++++++++++++++
|
||||||
|
interface/wayland/dispmanx.xml | 10 +++++++++
|
||||||
|
2 files changed, 52 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c
|
||||||
|
index 5730743..9ef89cd 100644
|
||||||
|
--- a/interface/khronos/ext/egl_wayland.c
|
||||||
|
+++ b/interface/khronos/ext/egl_wayland.c
|
||||||
|
@@ -133,8 +133,50 @@ dispmanx_create_buffer(struct wl_client *client, struct wl_resource *resource,
|
||||||
|
buffer->handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void
|
||||||
|
+dispmanx_wrap_buffer(struct wl_client *client, struct wl_resource *resource,
|
||||||
|
+ uint32_t id, uint32_t handle, int32_t width, int32_t height,
|
||||||
|
+ uint32_t stride, uint32_t buffer_height, uint32_t format)
|
||||||
|
+{
|
||||||
|
+ struct wl_dispmanx_server_buffer *buffer;
|
||||||
|
+ VC_IMAGE_TYPE_T vc_format = get_vc_format(format);
|
||||||
|
+ uint32_t dummy;
|
||||||
|
+
|
||||||
|
+ if(vc_format == VC_IMAGE_MIN) {
|
||||||
|
+ wl_resource_post_error(resource,
|
||||||
|
+ WL_DISPMANX_ERROR_INVALID_FORMAT,
|
||||||
|
+ "invalid format");
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ buffer = calloc(1, sizeof *buffer);
|
||||||
|
+ if (buffer == NULL) {
|
||||||
|
+ wl_resource_post_no_memory(resource);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ buffer->handle = handle;
|
||||||
|
+ buffer->width = width;
|
||||||
|
+ buffer->height = height;
|
||||||
|
+ buffer->format = format;
|
||||||
|
+
|
||||||
|
+ buffer->resource = wl_resource_create(resource->client, &wl_buffer_interface,
|
||||||
|
+ 1, id);
|
||||||
|
+ if (!buffer->resource) {
|
||||||
|
+ wl_resource_post_no_memory(resource);
|
||||||
|
+ vc_dispmanx_resource_delete(buffer->handle);
|
||||||
|
+ free(buffer);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ wl_resource_set_implementation(buffer->resource,
|
||||||
|
+ (void (**)(void)) &dispmanx_buffer_interface,
|
||||||
|
+ buffer, destroy_buffer);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static const struct wl_dispmanx_interface dispmanx_interface = {
|
||||||
|
dispmanx_create_buffer,
|
||||||
|
+ dispmanx_wrap_buffer,
|
||||||
|
};
|
||||||
|
|
||||||
|
static void
|
||||||
|
diff --git a/interface/wayland/dispmanx.xml b/interface/wayland/dispmanx.xml
|
||||||
|
index c18626d..11ed1ef 100644
|
||||||
|
--- a/interface/wayland/dispmanx.xml
|
||||||
|
+++ b/interface/wayland/dispmanx.xml
|
||||||
|
@@ -118,6 +118,16 @@
|
||||||
|
<arg name="buffer" type="object" interface="wl_buffer"/>
|
||||||
|
<arg name="handle" type="uint"/>
|
||||||
|
</event>
|
||||||
|
+
|
||||||
|
+ <request name="wrap_buffer">
|
||||||
|
+ <arg name="id" type="new_id" interface="wl_buffer"/>
|
||||||
|
+ <arg name="handle" type="uint"/>
|
||||||
|
+ <arg name="width" type="int"/>
|
||||||
|
+ <arg name="height" type="int"/>
|
||||||
|
+ <arg name="stride" type="uint"/>
|
||||||
|
+ <arg name="buffer_height" type="uint"/>
|
||||||
|
+ <arg name="format" type="uint"/>
|
||||||
|
+ </request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
</protocol>
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
From 10ba55489002c2ccdf96d221301ec059c4574811 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
|
||||||
|
Date: Thu, 19 Jan 2017 18:56:07 +0000
|
||||||
|
Subject: [PATCH 13/15] Implement triple buffering for wayland
|
||||||
|
|
||||||
|
Change from double to triple buffering for wayland.
|
||||||
|
This enables higher frame rates without tearing artifacts
|
||||||
|
by allowing both the glFinish and the buffer release
|
||||||
|
interlock to operate without pushing the frame period
|
||||||
|
to two vertical intervals
|
||||||
|
|
||||||
|
Signed-off-by: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
interface/khronos/egl/egl_client.c | 3 ++-
|
||||||
|
interface/khronos/egl/egl_client_surface.c | 8 ++++++++
|
||||||
|
interface/khronos/egl/egl_client_surface.h | 11 +++++++++++
|
||||||
|
3 files changed, 21 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/interface/khronos/egl/egl_client.c b/interface/khronos/egl/egl_client.c
|
||||||
|
index 13a110c..0380274 100644
|
||||||
|
--- a/interface/khronos/egl/egl_client.c
|
||||||
|
+++ b/interface/khronos/egl/egl_client.c
|
||||||
|
@@ -2323,7 +2323,8 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf)
|
||||||
|
|
||||||
|
buffer_temp = surface->front_wl_buffer;
|
||||||
|
surface->front_wl_buffer = surface->back_wl_buffer;
|
||||||
|
- surface->back_wl_buffer = buffer_temp;
|
||||||
|
+ surface->back_wl_buffer = surface->middle_wl_buffer;
|
||||||
|
+ surface->middle_wl_buffer = buffer_temp;
|
||||||
|
|
||||||
|
configid = egl_config_to_id(surface->config);
|
||||||
|
color = egl_config_get_color_format(configid);
|
||||||
|
diff --git a/interface/khronos/egl/egl_client_surface.c b/interface/khronos/egl/egl_client_surface.c
|
||||||
|
index 9a9582c..10b3b04 100644
|
||||||
|
--- a/interface/khronos/egl/egl_client_surface.c
|
||||||
|
+++ b/interface/khronos/egl/egl_client_surface.c
|
||||||
|
@@ -402,12 +402,14 @@ EGL_SURFACE_T *egl_surface_create(
|
||||||
|
if (type == WINDOW && wl_display) {
|
||||||
|
surface->wl_egl_window = (struct wl_egl_window*)win;
|
||||||
|
surface->front_wl_buffer = NULL;
|
||||||
|
+ surface->middle_wl_buffer = NULL;
|
||||||
|
surface->back_wl_buffer = allocate_wl_buffer(
|
||||||
|
surface->wl_egl_window, color);
|
||||||
|
resource = surface->back_wl_buffer->resource;
|
||||||
|
} else {
|
||||||
|
surface->wl_egl_window = NULL;
|
||||||
|
surface->front_wl_buffer = NULL;
|
||||||
|
+ surface->middle_wl_buffer = NULL;
|
||||||
|
surface->back_wl_buffer = NULL;
|
||||||
|
resource = DISPMANX_NO_HANDLE;
|
||||||
|
}
|
||||||
|
@@ -696,6 +698,12 @@ void egl_surface_free(EGL_SURFACE_T *surface)
|
||||||
|
surface->back_wl_buffer = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (surface->middle_wl_buffer) {
|
||||||
|
+ wl_buffer_destroy(surface->middle_wl_buffer->wl_buffer);
|
||||||
|
+ free(surface->middle_wl_buffer);
|
||||||
|
+ surface->middle_wl_buffer = 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (surface->front_wl_buffer) {
|
||||||
|
wl_buffer_destroy(surface->front_wl_buffer->wl_buffer);
|
||||||
|
free(surface->front_wl_buffer);
|
||||||
|
diff --git a/interface/khronos/egl/egl_client_surface.h b/interface/khronos/egl/egl_client_surface.h
|
||||||
|
index e328b77..58a3184 100644
|
||||||
|
--- a/interface/khronos/egl/egl_client_surface.h
|
||||||
|
+++ b/interface/khronos/egl/egl_client_surface.h
|
||||||
|
@@ -312,6 +312,17 @@ typedef struct {
|
||||||
|
*/
|
||||||
|
struct wl_dispmanx_client_buffer *front_wl_buffer;
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ middle_wl_buffer
|
||||||
|
+
|
||||||
|
+ Validity:
|
||||||
|
+ type == WINDOW
|
||||||
|
+
|
||||||
|
+ Invariant:
|
||||||
|
+ client-side information about the wl_buffer in the middle
|
||||||
|
+ */
|
||||||
|
+ struct wl_dispmanx_client_buffer *middle_wl_buffer;
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
back_wl_buffer
|
||||||
|
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
From d750c738b5c23bba24531cb713292e4ab3f2ec56 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Wed, 10 May 2017 06:39:34 +0000
|
||||||
|
Subject: [PATCH 14/15] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT
|
||||||
|
|
||||||
|
weston code uses these defines
|
||||||
|
Upstream-Status: Pending
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
interface/khronos/include/GLES2/gl2ext.h | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/interface/khronos/include/GLES2/gl2ext.h b/interface/khronos/include/GLES2/gl2ext.h
|
||||||
|
index 4eacf7f..283e3e1 100644
|
||||||
|
--- a/interface/khronos/include/GLES2/gl2ext.h
|
||||||
|
+++ b/interface/khronos/include/GLES2/gl2ext.h
|
||||||
|
@@ -327,6 +327,9 @@ typedef void* GLeglImageOES;
|
||||||
|
#define GL_RGBX_BRCM 0x80EE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#define GL_R8_EXT 0x8229
|
||||||
|
+#define GL_RG8_EXT 0x822B
|
||||||
|
+
|
||||||
|
/* GL_EXT_texture_type_2_10_10_10_REV */
|
||||||
|
#ifndef GL_EXT_texture_type_2_10_10_10_REV
|
||||||
|
#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
From 827907f2223df93918e680101a1ac6228ba0f07e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andrea Galbusera <gizero@gmail.com>
|
||||||
|
Date: Fri, 14 Jul 2017 09:52:54 +0200
|
||||||
|
Subject: [PATCH 15/15] EGL/glplatform.h: define EGL_CAST
|
||||||
|
|
||||||
|
C++ / C typecast macros for special EGL handle values: used by libepoxy code
|
||||||
|
The definition comes from the updated version of this header in mesa.
|
||||||
|
|
||||||
|
Upstream-Status: Pending
|
||||||
|
---
|
||||||
|
interface/khronos/include/EGL/eglplatform.h | 7 +++++++
|
||||||
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/interface/khronos/include/EGL/eglplatform.h b/interface/khronos/include/EGL/eglplatform.h
|
||||||
|
index 1f7c930..c39d425 100644
|
||||||
|
--- a/interface/khronos/include/EGL/eglplatform.h
|
||||||
|
+++ b/interface/khronos/include/EGL/eglplatform.h
|
||||||
|
@@ -202,4 +202,11 @@ EGLAPI void EGLAPIENTRY BEGL_GetDefaultDriverInterfaces(BEGL_DriverInterfaces *i
|
||||||
|
#include "interface/khronos/common/khrn_client_mangle.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+/* C++ / C typecast macros for special EGL handle values */
|
||||||
|
+#if defined(__cplusplus)
|
||||||
|
+#define EGL_CAST(type, value) (static_cast<type>(value))
|
||||||
|
+#else
|
||||||
|
+#define EGL_CAST(type, value) ((type) (value))
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#endif /* __eglplatform_h */
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
||||||
@@ -2,40 +2,81 @@ DESCRIPTION = "This repository contains the source code for the ARM side \
|
|||||||
libraries used on Raspberry Pi. These typically are installed in /opt/vc/lib \
|
libraries used on Raspberry Pi. These typically are installed in /opt/vc/lib \
|
||||||
and includes source for the ARM side code to interface to: EGL, mmal, GLESv2,\
|
and includes source for the ARM side code to interface to: EGL, mmal, GLESv2,\
|
||||||
vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG."
|
vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG."
|
||||||
LICENSE = "Broadcom"
|
LICENSE = "BSD-3-Clause"
|
||||||
LIC_FILES_CHKSUM = "file://LICENCE;md5=957f6640d5e2d2acfce73a36a56cb32f"
|
LIC_FILES_CHKSUM = "file://LICENCE;md5=0448d6488ef8cc380632b1569ee6d196"
|
||||||
|
|
||||||
PR = "r4"
|
PR = "r5"
|
||||||
|
|
||||||
PROVIDES = "virtual/libgles2 \
|
PROVIDES = "virtual/libgles2 \
|
||||||
virtual/egl"
|
virtual/egl"
|
||||||
|
|
||||||
|
RPROVIDES_${PN} += "libgles2 egl libegl"
|
||||||
|
|
||||||
COMPATIBLE_MACHINE = "raspberrypi"
|
COMPATIBLE_MACHINE = "raspberrypi"
|
||||||
|
|
||||||
SRCBRANCH = "master"
|
SRCBRANCH = "master"
|
||||||
SRCFORK = "raspberrypi"
|
SRCFORK = "raspberrypi"
|
||||||
SRCREV = "85441185e653347e6b3c2bbc7494f5e29a6ca4a2"
|
SRCREV = "bc3c52a51315399a9f31ed24049eb4bc81fd1c60"
|
||||||
|
|
||||||
SRC_URI = "git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \
|
SRC_URI = "\
|
||||||
"
|
git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \
|
||||||
|
file://0001-Allow-applications-to-set-next-resource-handle.patch \
|
||||||
|
file://0002-wayland-Add-support-for-the-Wayland-winsys.patch \
|
||||||
|
file://0003-wayland-Add-Wayland-example.patch \
|
||||||
|
file://0004-wayland-egl-Add-bcm_host-to-dependencies.patch \
|
||||||
|
file://0005-interface-remove-faulty-assert-to-make-weston-happy-.patch \
|
||||||
|
file://0006-zero-out-wl-buffers-in-egl_surface_free.patch \
|
||||||
|
file://0007-initialize-front-back-wayland-buffers.patch \
|
||||||
|
file://0008-Remove-RPC_FLUSH.patch \
|
||||||
|
file://0009-fix-cmake-dependency-race.patch \
|
||||||
|
file://0010-Fix-for-framerate-with-nested-composition.patch \
|
||||||
|
file://0011-build-shared-library-for-vchostif.patch \
|
||||||
|
file://0012-implement-buffer-wrapping-interface-for-dispmanx.patch \
|
||||||
|
file://0013-Implement-triple-buffering-for-wayland.patch \
|
||||||
|
file://0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch \
|
||||||
|
file://0015-EGL-glplatform.h-define-EGL_CAST.patch \
|
||||||
|
"
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
inherit cmake
|
inherit cmake pkgconfig
|
||||||
|
|
||||||
EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS='-Wl,--no-as-needed'"
|
ASNEEDED = ""
|
||||||
|
|
||||||
# The compiled binaries don't provide sonames.
|
EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS='-Wl,--no-as-needed' \
|
||||||
SOLIBS = "${SOLIBSDEV}"
|
-DVMCS_INSTALL_PREFIX=${exec_prefix} \
|
||||||
|
"
|
||||||
|
|
||||||
do_install_append() {
|
EXTRA_OECMAKE_append_aarch64 = " -DARM64=ON "
|
||||||
mkdir -p ${D}/${prefix}
|
|
||||||
mv ${D}/opt/vc/* ${D}/${prefix}
|
|
||||||
rm -rf ${D}/opt
|
PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}"
|
||||||
|
|
||||||
|
PACKAGECONFIG[wayland] = "-DBUILD_WAYLAND=TRUE -DWAYLAND_SCANNER_EXECUTABLE:FILEPATH=${STAGING_BINDIR_NATIVE}/wayland-scanner,,wayland-native wayland"
|
||||||
|
|
||||||
|
CFLAGS_append = " -fPIC"
|
||||||
|
|
||||||
|
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}"
|
# Shared libs from userland package build aren't versioned, so we need
|
||||||
FILES_${PN}-dev = "${includedir} \
|
# to force the .so files into the runtime package (and keep them
|
||||||
|
# out of -dev package).
|
||||||
|
FILES_SOLIBSDEV = ""
|
||||||
|
INSANE_SKIP_${PN} += "dev-so"
|
||||||
|
|
||||||
|
FILES_${PN} += " \
|
||||||
|
${libdir}/*.so \
|
||||||
|
${libdir}/plugins"
|
||||||
|
FILES_${PN}-dev += "${includedir} \
|
||||||
${prefix}/src"
|
${prefix}/src"
|
||||||
FILES_${PN}-doc += "${datadir}/install"
|
FILES_${PN}-doc += "${datadir}/install"
|
||||||
|
FILES_${PN}-dbg += "${libdir}/plugins/.debug"
|
||||||
|
|
||||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||||
|
|
||||||
|
RDEPENDS_${PN} += "bash"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENCE;md5=86e53f5f5909ee66900418028de11780"
|
|||||||
PROVIDES = "virtual/libgles2 virtual/egl"
|
PROVIDES = "virtual/libgles2 virtual/egl"
|
||||||
COMPATIBLE_MACHINE = "raspberrypi"
|
COMPATIBLE_MACHINE = "raspberrypi"
|
||||||
|
|
||||||
include ../common/firmware.inc
|
include recipes-bsp/common/firmware.inc
|
||||||
|
|
||||||
SRC_URI += " \
|
SRC_URI += " \
|
||||||
file://egl.pc \
|
file://egl.pc \
|
||||||
@@ -49,6 +49,8 @@ INITSCRIPT_PARAMS = "start 03 S ."
|
|||||||
FILES_${PN} = "${bindir}/* \
|
FILES_${PN} = "${bindir}/* \
|
||||||
${sbindir}/* \
|
${sbindir}/* \
|
||||||
${libdir}/lib*.so \
|
${libdir}/lib*.so \
|
||||||
${sysconfdir}/init.d"
|
${sysconfdir}/init.d \
|
||||||
|
${libdir}/plugins"
|
||||||
FILES_${PN}-dev = "${libdir}/pkgconfig \
|
FILES_${PN}-dev = "${libdir}/pkgconfig \
|
||||||
${includedir}"
|
${includedir}"
|
||||||
|
FILES_${PN}-dbg += "${libdir}/plugins/.debug"
|
||||||
12
recipes-graphics/wayland/weston_%.bbappend
Normal file
12
recipes-graphics/wayland/weston_%.bbappend
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
EXTRA_OECONF_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' --enable-rpi-compositor WESTON_NATIVE_BACKEND=rpi-backend.so', d)}"
|
||||||
|
|
||||||
|
PACKAGECONFIG_remove_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'fbdev', '', d)}"
|
||||||
|
|
||||||
|
EXTRA_OECONF += "--disable-xwayland-test \
|
||||||
|
--disable-simple-egl-clients \
|
||||||
|
"
|
||||||
|
|
||||||
|
EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '--enable-rpi-compositor', d)}"
|
||||||
|
EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '--disable-resize-optimization', d)}"
|
||||||
|
EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '--disable-setuid-install', d)}"
|
||||||
|
EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'WESTON_NATIVE_BACKEND=rpi-backend.so', d)}"
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
#
|
|
||||||
# Catch-all evdev loader for udev-based systems
|
|
||||||
# We don't simply match on any device since that also adds accelerometers
|
|
||||||
# and other devices that we don't really want to use. The list below
|
|
||||||
# matches everything but joysticks.
|
|
||||||
|
|
||||||
Section "InputClass"
|
|
||||||
Identifier "evdev pointer catchall"
|
|
||||||
MatchIsPointer "on"
|
|
||||||
MatchDevicePath "/dev/input/event*"
|
|
||||||
Driver "evdev"
|
|
||||||
EndSection
|
|
||||||
|
|
||||||
Section "InputClass"
|
|
||||||
Identifier "evdev keyboard catchall"
|
|
||||||
MatchIsKeyboard "on"
|
|
||||||
MatchDevicePath "/dev/input/event*"
|
|
||||||
Driver "evdev"
|
|
||||||
EndSection
|
|
||||||
|
|
||||||
Section "InputClass"
|
|
||||||
Identifier "evdev touchpad catchall"
|
|
||||||
MatchIsTouchpad "on"
|
|
||||||
MatchDevicePath "/dev/input/event*"
|
|
||||||
Driver "evdev"
|
|
||||||
EndSection
|
|
||||||
|
|
||||||
Section "InputClass"
|
|
||||||
Identifier "evdev tablet catchall"
|
|
||||||
MatchIsTablet "on"
|
|
||||||
MatchDevicePath "/dev/input/event*"
|
|
||||||
Driver "evdev"
|
|
||||||
EndSection
|
|
||||||
|
|
||||||
Section "InputClass"
|
|
||||||
Identifier "evdev touchscreen catchall"
|
|
||||||
MatchIsTouchscreen "on"
|
|
||||||
MatchDevicePath "/dev/input/event*"
|
|
||||||
Driver "evdev"
|
|
||||||
EndSection
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
Section "Device"
|
||||||
|
Identifier "Adafruit PiTFT"
|
||||||
|
Driver "fbdev"
|
||||||
|
Option "fbdev" "/dev/fb1"
|
||||||
|
EndSection
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
Section "InputClass"
|
||||||
|
Identifier "calibration"
|
||||||
|
MatchProduct "stmpe-ts"
|
||||||
|
Option "Calibration" "3800 200 200 3800"
|
||||||
|
Option "SwapAxes" "1"
|
||||||
|
EndSection
|
||||||
@@ -1,10 +1,17 @@
|
|||||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||||
|
|
||||||
SRC_URI_append_raspberrypi = " file://xorg.conf.d/10-evdev.conf "
|
SRC_URI_append_rpi = " \
|
||||||
|
file://xorg.conf.d/98-pitft.conf \
|
||||||
|
file://xorg.conf.d/99-calibration.conf \
|
||||||
|
"
|
||||||
|
|
||||||
do_install_append_raspberrypi () {
|
do_install_append_rpi () {
|
||||||
install -d ${D}/${sysconfdir}/X11/xorg.conf.d/
|
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
|
||||||
install -m 0644 ${WORKDIR}/xorg.conf.d/* ${D}/${sysconfdir}/X11/xorg.conf.d/
|
if [ "${PITFT}" = "1" ]; then
|
||||||
|
install -d ${D}/${sysconfdir}/X11/xorg.conf.d/
|
||||||
|
install -m 0644 ${WORKDIR}/xorg.conf.d/98-pitft.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
|
||||||
|
install -m 0644 ${WORKDIR}/xorg.conf.d/99-calibration.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
FILES_${PN}_raspberrypi += "${sysconfdir}/X11/xorg.conf ${sysconfdir}/X11/xorg.conf.d/*"
|
FILES_${PN}_rpi += "${sysconfdir}/X11/xorg.conf ${sysconfdir}/X11/xorg.conf.d/*"
|
||||||
|
|||||||
9
recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
Normal file
9
recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
OPENGL_PKGCFG = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'dri3 xshmfence glamor', '', d)}"
|
||||||
|
|
||||||
|
# slightly modified to oe-core's default: add ${OPENGL_PKGCFG}
|
||||||
|
PACKAGECONFIG_rpi ?= " \
|
||||||
|
dri2 udev ${XORG_CRYPTO} \
|
||||||
|
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri glx ${OPENGL_PKGCFG}', '', d)} \
|
||||||
|
${@bb.utils.contains("DISTRO_FEATURES", "wayland", "xwayland", "", d)} \
|
||||||
|
${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd", "", d)} \
|
||||||
|
"
|
||||||
BIN
recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.bin
Normal file
BIN
recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.bin
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user