2017-05-22 50 views
0

我喜歡玩先發制人的linux內核和Yocto。 由於硬件使用了SAMA5D3x Evalboard + SAMA5D35-CM模塊。如何在Yocto中爲evalboard設置先發制人的實時內核(女巫有製造商提供的預設內核)?

愛特梅爾提供的元愛特梅爾層,其中包括 「AT91-Linux的_ *。BB」 配方。這個配方構建了SAMA5D3x機器的內核。

對於使用實時內核,我應該插入的實時補丁,並在kernel config激活它們。

我沒有找到一個教程如何與現有的內核做到這一點。我的問題是:

如何/在哪裏修改一個給定的核心配方,使之成爲實時內核(搶佔-RT)?

我的測試項目位於 項目目錄「/ home/user/yocto」。它有以下內容:

  • 「/ yocto git clone」 ==> Yocto系統
  • 「/ meta-openembedded」 ==>元嵌入食譜
  • 「/ meta-atmel」 ==>愛特梅爾yocto層
  • 「 /meta-atmel/recipes-kernel/linux/linux-at91_4.4.bb」 ==>內核配方
  • 「/meta-atmel/conf/machine/sama5d3xek.conf」 ==>在機器運行的內核
  • 「/ MYTEST」 ==>我的測試項目
  • 「/myTest/recipes-kernel/linux-at91_%.bbappend」==>替換內核配置+添加自己的設備樹
  • 「/ myTest/recipes-kernel/linux/linux-at91/sama5d3xek/defconfig 「==>我自己的內核配置
  • /myTest/recipes-kernel/linux/linux-at91/sama5d3xek/myDev.dts ==>我自己的設備樹

任何想法/教程如何來管理激活Yocto中的RT-Kernel?

回答

1

一般:

.../source/poky/recipes-kernel/linux你應該找到一個linux-yocto-rt_X.XX.bb食譜編制全搶佔RT內核。

薈萃愛特梅爾你應該做的:

  1. 下載正確的RT補丁的內核版本,並使用.bbappend文件到您當前的Linux內核的食譜應用它。您可以找到修補程序HERE
  2. 將修補程序添加到您的bbappend文件(存儲在您自己的圖層中的一個已接受的目錄中)。 p.e .: SRC_URI += "file://0001-linux-rt.patch"
  3. 激活先佔內核。在您的圖層上手動設置CONFIG_PREEMPT=y defconfig。Alternativly你可以在元愛特梅爾使用bitbake virtual/kernel -c menuconfig

陷阱:

  1. 的linux-at91_4.4.bb配方不關心內核(PE 66年4月4日的補丁和分段 - >。 )。如果在at91-linux有新版本,它會在一段時間後進入meta-atmel層。
  2. Linux內核的RT分支沒有規定每一個新的次級
  3. 這意味着自己的中繼層
+0

下載補丁和應用的不斷突破似乎是最適合我。 meta-atmel at91-linux跟在4.4.x內核之後。是否有一種自動的方式來自動選擇rt-patch,下載,提取和部署它?也許在「linux-at91 _%。bbappend」中添加一些代碼?像「do_installl_append」 –

+0

您可以使用配方中的「SRC_URI」來檢索網絡上的文件。但我建議你將內核源代碼(tar.gz)移動到你自己的層中,並手動下載它的補丁。通過這種方式,您將來可以確保擁有正確的資源和正確的補丁。許多次回購都會被移動或變得無法訪問,因此您需要努力才能正確重定向您的食譜。 – LPs

+1

如此真實。我聯繫了維護meta-atmel的Nicolas。讓我們等待他對「yocto方式」的看法來完成這項任務。我傾向於在我的元層下載和存儲不同內核版本的補丁 - 就像你所建議的那樣。 –