Buildroot track build progress dengan .stamp_xxx di setiap paket build dir.target install sebenarnya adalah tahap terakhir untuk setiap paket. Jadi menghapus file .stamp_target_installed dari setiap dir build paket akan menyebabkannya menginstal ulang ke target
Di buildroot terbaru, Anda cukup melakukan hal berikut:
rm -rf output/target
find output/ -name ".stamp_target_installed" -delete
rm -f output/build/host-gcc-final-*/.stamp_host_installed
Di beberapa buildroot lama, ada beberapa file lain di keluaran yang melacak pembuatan direktori target dengan kerangka. Mengutip pesan milis, kami dapat meringkas sebagai berikut:
Apakah "rm -rf output/target &&make" berfungsi?
Seperti yang dikatakan Thomas, itu tidak berhasil. Namun, ada beberapa peretasan tidak resmi:
- hapus
build/.root
akan memaksa untuk menginstal ulang kerangka- hapus
build/*/.stamp_target_installed
paksa instal ulang setiap paket target- bergantung pada toolchain Anda, Anda dapat menginstal ulang libc dan co dengan menghapus:
stamps/ext-toolchain-installed
(eksternal)stamps/ct-ng-toolchain-installed
(ctng)target/lib/libc.so.0
(buildroot)
Dan kemudian buat lagi.
Ingatkan, ada banyak alasan mengapa tip ini bisa melakukan hal yang salah. Satu-satunya cara resmi saat ini untuk membangun kembali target adalah "bersihkan".
Buildroot memiliki target khusus untuk membersihkan direktori build untuk paket tertentu, tetapi ini tidak menyentuh file yang diinstal. Mengutip panduan pengguna:
Saat sebuah paket dihapus dari konfigurasi, Buildroot tidak melakukan sesuatu yang istimewa. Itu tidak menghapus file yang diinstal oleh paket ini dari sistem file root target atau dari sysroot rantai alat. Diperlukan pembangunan kembali penuh untuk menyingkirkan paket ini. Namun, umumnya Anda tidak perlu menghapus paket ini sekarang:Anda dapat menunggu istirahat makan siang berikutnya untuk memulai ulang build dari awal.
Meskipun demikian, Anda dapat menghapus file build untuk paket tertentu dengan menjalankan make <PKG-NAME>-dirclean
. Misalnya, jika saya ingin menghapus file build untuk i2c-tools
, saya akan menjalankan make i2c-tools-dirclean
. <PKG-NAME>-dirclean
target hanya menjalankan rm -rf
pada output/build/<PKG-NAME>
direktori. Ini tidak akan menghapus file yang diinstal dari output/target/
. Jika Anda ingin menghapus file dari rootfs Anda tanpa membangun kembali secara penuh, tidak apa-apa - Anda bisa masuk ke output/target/
, rm
file yang tidak lagi Anda inginkan, lalu jalankan make
untuk membuat ulang gambar akhir Anda. Pastikan konfigurasi Buildroot Anda juga tidak disetel untuk membangun kembali dan menginstal paket yang ingin Anda hapus.