123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 |
- 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
- Contents:
- =========
- 1. Description
- 2. Yocto BSP Layer - Raspberry Pi
- 2.A. How to use it
- 2.B. Images
- 3. Optional build configuration
- 3.A. Compressed deployed files
- 3.B. GPU memory
- 3.C. Add purchased license codecs
- 3.D. Disable overscan
- 3.E. Set overclocking options
- 3.F. Video camera support with V4L2 drivers
- 3.G. Enable offline compositing support
- 3.H. Enable kgdb over console support
- 3.I. Boot to U-Boot
- 3.J. Image with Initramfs
- 3.K. Device tree support
- 3.L. Enable SPI bus
- 3.M. Enable I2C
- 3.N. Enable PiTFT support
- 3.O. Enable UART support
- 4. Extra apps
- 4.A. omxplayer
- 5. Board Configuration
- 5.A. Audio Routing
- 6. Source code and mirrors
- 7. Contribution
- 7.A. Mailing List
- 7.B. Github Issues
- 8. 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-oe, meta-multimedia, meta-networking, meta-python
- branch: master
- revision: HEAD
- 2.A. How to use it
- ==================
- a. source poky/oe-init-build-env rpi-build
- b. Add needed layer to bblayers.conf:
- - meta-raspberrypi
- c. Set MACHINE in local.conf to one of the supported boards:
- - raspberrypi
- - raspberrypi0
- - raspberrypi0-wifi
- - raspberrypi2
- - raspberrypi3
- - raspberrypi-cm (dummy alias for raspberrypi)
- - raspberrypi-cm3 (dummy alias for raspberrypi2)
- d. bitbake rpi-hwup-image
- e. dd to a SD card the generated sdimg file (use xzcat if rpi-sdimg.xz is used)
- f. Boot your RPI.
- 2.B. 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.
- 3. 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
- 3.A. 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).
- 3.B. 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.
- 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.
- 3.C. 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"
- 3.D. 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"
- 3.E. 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"
- 3.F. Video camera support with V4L2 drivers
- ===========================================
- Set this variable to enable support for the video camera (Linux 3.12.4+ required)
- VIDEO_CAMERA = "1"
- 3.G. 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
- 3.H. 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"
- 3.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).
- 3.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.K. Device tree support
- =========================
- Device tree for RPi is only supported when using linux-raspberrypi 3.18+
- kernels.
- * Set KERNEL_DEVICETREE (in conf/machine/raspberrypi.conf)
- - the trailer is added to the kernel image before kernel install task.
- While creating the SDCard image, this modified kernel is put on
- boot partition (as kernel.img) as well as DeviceTree blobs (.dtb files).
- NOTE: KERNEL_DEVICETREE is default enabled for kernel >= 3.18 and always disabled for
- older kernel versions.
- 3.L. Enable SPI bus
- ====================
- When using device tree kernels, set this variable to enable the SPI bus
- ENABLE_SPI_BUS = "1"
- 3.M. Enable I2C
- ===============
- When using device tree kernels, set this variable to enable I2C
- ENABLE_I2C = "1"
- 3.N. 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
- 3.O. 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
- 4. Extra apps
- =============
- 4.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"
- 5. Board Configuration
- ======================
- 5.A. Audio Routing
- ==================
- To load audio driver
- modprobe snd-bcm2835
- To test audio playback
- e.g. aplay test.wav
- Note that without HDMI connected this emits audio from the 3.5in jack connector
- as expected. However With an HDMI display connected there is no audio output from
- the jack connector.
- To force the audio routing via the 3.5in jack connector use
- amixer cset numid=3 1
- Options to amixer cset are:
- 0=auto
- 1=headphones
- 2=hdmi
- 6. Source code and mirrors
- ==========================
- Main repo:
- git://git.yoctoproject.org/meta-raspberrypi
- http://git.yoctoproject.org/git/meta-raspberrypi
- Github mirror:
- https://github.com/agherzan/meta-raspberrypi
- Bitbucket mirror:
- https://bitbucket.org/agherzan/meta-raspberrypi
- 7. Contributing
- ===============
- 7.A. Mailing list
- =================
- The main communication tool we use is a mailing list:
- yocto@yoctoproject.org
- https://lists.yoctoproject.org/listinfo/yocto
- Feel free to ask any kind of questions but always prepend your email subject
- with "[meta-raspberrypi]". This is because we use the 'yocto' mailing list and
- not a perticular 'meta-raspberrypi' mailing list.
- 7.B. Patches and pull requests
- ==============================
- 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, please use something like:
- git format-patch -s --subject-prefix='meta-raspberrypi][PATCH' origin
- When sending patches to mailing list, please use something like:
- git send-email --to yocto@yoctoproject.org <generated patch>
- 7.C. 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]
- 8. Maintainers
- ==============
- Andrei Gherzan <andrei at gherzan.ro>
|