poky raspbian開發教程

快速連接

Git倉庫web前端:
http://git.yoctoproject.org/cgit/cgit.cgi/meta-raspberrypi/
郵件列表(yocto郵件列表):
yocto@yoctoproject.org
問題管理(Github問題):
https://github.com/agherzan/meta-raspberrypi/issueshtml

內容:

1.說明
Yocto BSP層 - 樹莓派
2.A. 如何使用它
2.B. 圖片
3.可選構建配置
3.A. 壓縮的部署文件
3.B. GPU內存
3.C. 添加購買的許可編解碼器
3.D. 禁用過掃描
3.E. 設置超頻選項
3.F. 視頻攝像機支持V4L2驅動程序
3.G. 啓用離線合成支持
3.H. 在控制檯支持上啓用kgdb
3.I. 引導到U-Boot
3.J. 圖像與Initramfs
3.K. 設備樹支持
3.L. 使能SPI總線
3.M. 使能I2C
3.N. 啓用PiTFT支持
3.O. 啓用UART支持
4.額外的應用程序
4.A. omxplayer
5.板卡配置
5.A. 音頻路由
源代碼和鏡像
7.貢獻
7.A. 郵件列表
7.B. Github問題
8.維護人員前端

1.說明

這是RaspberryPi設備的通用硬件特定BSP覆蓋。linux

更多信息,請訪問:
http://www.raspberrypi.org/(官方網站)git

meta-raspberrypi的核心BSP部分應該與不一樣的工做
OpenEmbedded / Yocto分佈和層堆棧,例如:github

  • Distro-less(僅適用於OE-Core)。
  • Angstrom。
  • Yocto / Poky(測試的主要焦點)。

Yocto BSP層 - 樹莓派

此圖層取決於:web

URI:git://git.yoctoproject.org/poky
branch:master
修訂:HEAD服務器

URI:git://git.openembedded.org/meta-openembedded
層:元 - 元,元多媒體
branch:master
修訂:HEADless

2.A. 如何使用它

一個。source poky / oe-init-build-env rpi-build
b。將所需的圖層添加到bblayers.conf:
- meta-raspberrypi
C。將local.conf中的MACHINE設置爲所支持的主板之一:
- raspberrypi
- raspberrypi0
- raspberrypi2
- raspberrypi3
d。bitbake rpi-hwup-image
e。dd到SD卡生成的sdimg文件(若是使用rpi-sdimg.xz,請使用xzcat)
F。啓動RPI。ide

2.B. 圖片工具

  • ===========
  • rpi-hwup-image
    硬件圖像
  • rpi-basic-image
    基於rpi-hwup-image和一些添加的功能(例如:splash)
  • rpi-test-image
    基於rpi-basic-image的圖像,其中包含了大部分的包
    層和一些媒體樣本。

3.可選構建配置

存在一組用戶能夠影響構建的不一樣參數的方式。
咱們在這裏列出與這個BSP密切相關或特定於它的那些。對於其他的
請檢查:http://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html

3.A. 壓縮的部署文件

1.在local.conf中覆蓋IMAGE_FSTYPES
IMAGE_FSTYPES =「tar.bz2 ext3.xz」
2.在local.conf中覆蓋SDIMG_ROOTFS_TYPE
SDIMG_ROOTFS_TYPE =「ext3.xz」
3.在local.conf中覆蓋SDIMG_COMPRESSION
SDIMG_COMPRESSION =「xz」
*容納以上的值到您本身的須要(例如:ext3 / ext4)。

3.B. GPU內存

變量:詳細信息
GPU_MEM:GPU內存(兆字節)。設置ARM和之間的內存分割
GPU。ARM獲取剩餘的內存。最小16.默認64。
GPU_MEM_256:256MB Raspberry Pi的GPU內存(兆字節)。忽略了
512MB RP。覆蓋gpu_mem。Max 192.默認值未設置。
GPU_MEM_512:512MB Raspberry Pi的GPU內存(兆字節)。忽略了
256MB RP。覆蓋gpu_mem。默認值未設置。
GPU_MEM_1024:1024MB Raspberry Pi的GPU內存(兆字節)。忽略了
256MB / 512MB RP。覆蓋gpu_mem。最大944.默認值未設置。

3.C. 添加購買的許可證編解碼器

要添加您本身的許可,請使用變量KEY_DECODE_MPG2和KEY_DECODE_WVC1
local.conf。例:
KEY_DECODE_MPG2 =「12345678」
KEY_DECODE_WVC1 =「12345678」
您能夠提供更多許可證(以逗號分隔)。例:
KEY_DECODE_WVC1 =「0x12345678,0xabcdabcd,0x87654321」

3.D. 禁用過掃描

默認狀況下,GPU在視頻輸出周圍添加一個黑色邊框以補償
切斷圖像的一部分的電視。要禁用此設置此變量
local.conf:
DISABLE_OVERSCAN =「1」

3.E. 設置超頻選項

Raspberry PI能夠超頻。到如今超頻到「渦輪
模式「由raspbery正式支持,不會失去保修。
檢查config.txt有關選項和模式的詳細描述。例:
#Turbo模式
ARM_FREQ =「1000」
CORE_FREQ =「500」
SDRAM_FREQ =「500」
OVER_VOLTAGE =「6」

3.F. 視頻攝像機支持V4L2驅動程序

設置此變量以啓用對攝像機的支持(須要Linux 3.12.4+)
VIDEO_CAMERA =「1」

3.G. 啓用離線合成支持

設置此變量以啓用對dispmanx脫機合成的支持
DISPMANX_OFFLINE =「1」

這將使固件回退到離線合成
Dispmanx元素。一般,在掃描期間,在線完成合成,
但不能處理太多的元素。當離線啓用時,屏幕外
緩衝區被分配用於合成。當場景複雜度(數量和大小
的元素)高,合成將發生離線進入緩衝區。

大力推薦Wayland / Weston。

參見:http://wayland.freedesktop.org/raspberrypi.html

3.H. 在控制檯支持上啓用kgdb

要將kdbg控制檯(kgdboc)參數添加到內核命令行,
在local.conf中設置此變量:
ENABLE_KGDB =「1」

3.I. 引導到U-Boot

要使u-boot加載內核映像,請在local.conf中設置
KERNEL_IMAGETYPE =「uImage」

這將使kernel.img是u-boot映像,這將加載uImage。
默認狀況下,kernel.img是實際的內核映像(例如Image)。

3.J. 圖像與Initramfs

要構建initramfs映像:
設置這3個內核變量(例如在linux-raspberrypi.inc中)
- kernel_configure_variable BLK_DEV_INITRD y
- kernel_configure_variable INITRAMFS_SOURCE「」
- kernel_configure_variable RD_GZIP y
設置yocto變量(例如在linux-raspberrypi.inc中)
- INITRAMFS_IMAGE =「 」
- INITRAMFS_IMAGE_BUNDLE =「1」
*設置meta-rasberrypi變量(例如,在raspberrypi.conf中)
- KERNEL_INITRAMFS =「-initramfs」

3.K. 設備樹支持

僅當使用linux-raspberrypi 3.18+時,才支持RPi的設備樹
內核。

*設置KERNEL_DEVICETREE(在conf / machine / raspberrypi.conf中)
    - 在內核安裝任務以前將預告片添加到內核映像。
      在建立SDCard映像時,將修改此內核
      引導分區(做爲kernel.img)以及DeviceTree blob(.dtb文件)。

注意:對於內核> = 3.18,始終禁用KERNEL_DEVICETREE
較老的內核版本。

3.L. 使能SPI總線

當使用設備樹內核時,設置此變量以啓用SPI總線
ENABLE_SPI_BUS =「1」

3.M. 使能I2C

當使用設備樹內核時,設置此變量以啓用I2C
ENABLE_I2C =「1」

3.N. 啓用PiTFT支持

使用PiTFT屏幕的基本支持能夠經過添加啓用
下面在local.conf中:

MACHINE_FEATURES + =「pitft」

  • 這將啓用SPI總線和i2c設備樹,它也將設置
    控制檯的framebuffer和PiTFT上的x服務器。

注意:爲了使這個工做,PiTFT模型的疊加必須構建,
添加和指定(dtoverlay = 在config.txt)

如下是在meta-raspberrypi中當前支持的PiTFT模型的列表,
模型名應該做爲MACHINE_FEATURES在local.conf中添加,以下所示:
- MACHINE_FEATURES + =「pitft 「。

當前支持的型號列表:
- pitft22
- pitft28r

3.O. 啓用UART

默認狀況下,RaspberryPi 1,2和CM將啓用UART控制檯。

RaspberryPi 3沒有默認啓用UART,由於這須要一個
固定核心頻率和enable_uart將其設置爲最小。某些
操做 - 60fps h264解碼,高質量去隔行 - 這不是
在ARM上執行可能會受到影響,咱們不想這樣對用戶
誰不想使用串口。須要串口控制檯支持的用戶
RaspberryPi3必須在local.conf中明確設置:ENABLE_UART =「1」。

參考:https://github.com/raspberrypi/firmware/issues/553
https://github.com/RPi-Distro/repo/issues/22

4.額外的應用程序

4.A. omxplayer

omxplayer取決於具備商業許可證的libav。因此爲了成爲
可以編譯omxplayer你將須要whiteflag商業許可證
添加到local.conf:
LICENSE_FLAGS_WHITELIST =「commercial」

5.板卡配置

5.A. 音頻路由

加載音頻驅動程序

modprobe snd-bcm2835

測試音頻播放

例如aplay test.wav

請注意,若是沒有鏈接HDMI,則會從3.5英寸插孔鏈接器發出音頻
如預期。可是,若是鏈接了HDMI顯示器,則沒有音頻輸出
插孔鏈接器。

要經過3.5in插孔鏈接器強制音頻路由

amixer cset numid = 3 1

amixer cset的選項有:

0 =自動
1 =耳機
2 = hdmi

源代碼和鏡像

主要倉庫:
git://git.yoctoproject.org/meta-raspberrypi
http://git.yoctoproject.org/git/meta-raspberrypi

Github鏡像:
https://github.com/agherzan/meta-raspberrypi

Bitbucket鏡子:
https://bitbucket.org/agherzan/meta-raspberrypi

貢獻

7.A. 郵件列表

咱們使用的主要通訊工具是郵件列表:
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

隨時提出任何問題,但老是在你的電子郵件主題
與「[meta-raspberrypi]」。這是由於咱們使用「yocto」郵件列表和
不是一個perticular'meta-raspberrypi'郵件列表。

要貢獻這個層,你應該發送補丁以供審查
以上指定的郵件列表。
補丁應該符合開放補丁指南:
http://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines

建立修補程序時,請使用相似:

git format-patch -s --subject-prefix ='meta-raspberrypi] [PATCH'origin

當發送補丁到郵件列表時,請使用相似:

git send-email --to yocto@yoctoproject.org

7.B. Github的問題

爲了管理和跟蹤meta-raspberrypi問題,咱們使用github問題:
https://github.com/agherzan/meta-raspberrypi/issues

若是你推補丁有一個github問題相關聯,請提供
發佈號在提交日誌就在「簽署者」行以前。示例行
爲一個錯誤:
[問題#13]

8.維護人員

安德烈Gherzan
相關文章
相關標籤/搜索