summaryrefslogtreecommitdiffstats
path: root/import-layers/meta-raspberrypi/README
diff options
context:
space:
mode:
Diffstat (limited to 'import-layers/meta-raspberrypi/README')
-rw-r--r--import-layers/meta-raspberrypi/README349
1 files changed, 349 insertions, 0 deletions
diff --git a/import-layers/meta-raspberrypi/README b/import-layers/meta-raspberrypi/README
new file mode 100644
index 000000000..c39f9edeb
--- /dev/null
+++ b/import-layers/meta-raspberrypi/README
@@ -0,0 +1,349 @@
+Quick links
+===========
+Git repository web frontend:
+ http://git.yoctoproject.org/cgit/cgit.cgi/meta-raspberrypi/
+Mailing list (yocto mailing list):
+ yocto@yoctoproject.org
+Issues management (redmine):
+ http://redmine.gherzan.ro/projects/meta-raspberrypi
+
+
+Contents:
+=========
+1. 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. Redmine
+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
+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
+ - raspberrypi2
+ - raspberrypi3
+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
+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
+
+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 1, 2 and CM will have UART console enabled by default.
+
+RaspberryPi 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.
+
+To contribute to this layer you should send the patches for review to the
+above specified mailing list.
+The patches should be compliant with the openembedded patch guidelines:
+http://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
+
+
+When creating patches, please use something like:
+
+ git format-patch -s --subject-prefix='meta-raspberrypi][PATCH' origin
+
+When sending patches to mailing list, please use something like:
+
+ git send-email --to yocto@yoctoproject.org <generated patch>
+
+7.B. 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>
OpenPOWER on IntegriCloud