GNU/Linux >> Belajar Linux >  >> Linux

Cara mengubah konfigurasi u-boot di Yocto

Dimungkinkan untuk menambahkan defconfig sebagai file biasa, sebagai contoh saya menempelkan beberapa bbappend yang berfungsi:

PR = "r7"
BRANCH = "ti-u-boot-2020.01"
SRCREV = "ae8ceb7b6e3acb4bc90f730e33dafc7b65066591"
FILESEXTRAPATHS_prepend := "${THISDIR}:" 

SRC_URI +=  "file://0001-Add-am335x-cmpc30-target.patch \
         file://am335x-cmpc30.dts;subdir=git/arch/arm/dts \
         file://am335x_cmpc30_defconfig;subdir=git/configs/ \
        "

Jadi baris "file://am335x_cmpc30_defconfig;subdir=git/configs/" benar-benar memasukkan seluruh defconfig ke kode sumber u-boot.


tidak perlu menyalin seluruh .config pribadi file ke folder build u-boot, jika perlu mengubah beberapa pengaturan di dalam defconfig, sed bekerja dengan sangat baik di dalam do_compile_prepend metode juga. contoh:

`

do_configure_prepend() {
        sed -i -e 's,CONFIG_DEFAULT_DEVICE_TREE=,CONFIG_DEFAULT_DEVICE_TREE= ${BOARD_DEVICE_TREE},g'  ${S}configs/mx7ulp_evk_defconfig
}

`

spasi benar-benar OK di dalam pencarian dan ganti pola. ${BOARD_DEVICE_TREE} dapat ditentukan di salah satu file konfigurasi Yocto. metode ini juga berfungsi dengan baik untuk file sumber/header yang sudah ditambal dengan daftar patch berbasis resep.


Secara teknis proses yang Anda jelaskan terdengar benar bagi saya. Namun ada beberapa kendala yang harus diperhatikan, masing-masing hal yang harus diperiksa:

  1. apakah .bbappend Anda benar-benar diproses?

Meskipun ini tampaknya menjadi kasus Anda (Anda mengetahuinya melalui output debug), ini biasanya lebih mudah diperiksa dengan:

bitbake-layers show-appends

Ini akan memberi Anda daftar lengkap dan terperinci dari semua tambahan yang berlaku dalam situasi pembangunan Anda saat ini.

  1. Apakah .bbappend benar-benar memiliki efek yang diinginkan?

Jika lebih dari satu resep yang terlibat, hal-hal dapat menjadi rumit, dan saling menimpa. Periksa dengan

bitbake -e u-boot-imx

untuk melihat apa yang sebenarnya terjadi. Ini paling baik digabungkan dengan menyalurkan ke less (atau pager pilihan Anda) dan kemudian mencari nilai yang dimodifikasi, seperti SRC_URI.

  1. Cari tahu mesin u-boot Anda.

Mengingat informasi dari 2., ini agak sepele:periksa variabel yang disebut

UBOOT_MACHINE

karena inilah yang seharusnya dilihat oleh u-boot.

  1. Cobalah untuk tidak memberi tahu bitbake apa yang harus dilakukan terlalu detail.

Terutama menggabungkan sakelar -f dan -c mungkin memiliki hasil yang tidak terduga, karena pada dasarnya Anda mengotak-atik dependensi tugas. Dalam pengalaman saya, ada sesuatu yang terjadi

bitbake -c clean u-boot-imx && bitbake u-boot-imx

seharusnya berfungsi lebih baik, karena melewati seluruh dependensi build, termasuk konfigurasi, patching, dan seterusnya.

EDIT / TAMBAHAN

Saya telah memeriksa dengan OE devs, dan masalah utamanya adalah bahwa mekanisme defconfig khusus (linux-)kernel, itu juga mengapa dijelaskan dalam manual kernel-dev.

Jadi untuk memasukkan konfigurasi Anda ke dalam build yang sebenarnya, ada satu setengah solusi.

  1. Cara yang benar:

Siapkan tambalan ke sumber u-boot. Dalam kasus Anda, itu mungkin hanya sedikit modifikasi pada file defconfig yang sudah digunakan. Miliki tambalan dalam format kanonis dan tambahkan ke SRC_URI, maka tambalan itu akan diambil secara otomatis dan lakukan triknya.

  1. Cara hackish (dan belum teruji, oleh karena itu hanya setengah):

Persiapkan konfigurasi Anda dalam format lengkap (bukan versi defconfig yang dipreteli). Kemudian tambahkan ke SRC_URI dan gunakan melalui tugas tambahan di .bbappend:

Anda
do_compile_prepend() {
  cp YOURFILENAME ${S}/.config
}

Ini harus menyuntikkan konfigurasi baru secara langsung sebelum kompilasi dimulai. Mungkin perlu sedikit mengutak-atik, tetapi Anda pasti mengerti. Pendekatan lain adalah menyuntikkan defconfig Anda ke file asli.

Karena itu, saya sangat merekomendasikan cara pertama.


Linux
  1. Cara Mengubah Shell Default Di Linux

  2. Bagaimana cara mengubah nama host di Ubuntu

  3. Bagaimana cara menambahkan output ke file?

  1. Bagaimana mengubah memory_limit di file .htaccess

  2. Bagaimana cara mengubah pengkodean yang digunakan server SFTP saya?

  3. SSH - Cara memasukkan perintah -t di file ~/.ssh/config

  1. Bagaimana cara menambahkan baris baru ke akhir file?

  2. Bagaimana Cara Mengubah Izin Pada Satu File?

  3. Bagaimana mengubah port cPanel – Tidak mungkin lagi!