Ini perisian percuma;lihat sumber untuk menyalin syarat.Tiada
waranti;notevenforMERCHANTABILITYatau KECERGASAN UNTUK KEGUNAAN SEPARUH.
Nota: Rantai alat lengan boleh dimuat turun dari sini: balas "ARM" untuk melihatnya.
2. Tetapkan sasaran kompilasi
Sebelum mengkonfigurasi atau menyusun kernel, anda mesti terlebih dahulu menentukan seni bina CPU sasaran dan rantai alat yang hendak digunakan semasa menyusun. Ini adalah maklumat paling asas yang mesti ditentukan terlebih dahulu.
Jika anda sedang menyusun kernel untuk PC yang sedang anda gunakan, anda tidak perlu menetapkannya.
Jika tidak, untuk latihan linux terbenam, anda perlu menyediakannya dengan jelas.
Di sini kami mengambil senjata sebagai contoh untuk menggambarkan.
Terdapat dua kaedah tetapan ():
a)Tukar Makefile
Buka Makefile dalam direktori akar sumber kernel, tukar dua pembolehubah Makefile berikut dan simpan.
ARCH:=lengan
CROSS_COMPILE:=arm-linux-
Perhatikan bahawa tetapan cross_compile di sini mengandaikan bahawa nama program gcc bagi rantai alat silang yang digunakan ialah arm-linux-gcc. Jika nama gcc sebenar yang digunakan ialah some-thing-else-gcc, maka hanya isikan some-thing- else-. Bagaimanapun, tiga huruf terakhir gcc harus diabaikan daripada nama.
b) Setiap kali anda melaksanakan arahan buat, maklumat ini dihantar melalui parameter baris arahan.
Ini nampaknya mengenai menentukan nilai pembolehubah melalui argumen baris arahan kepada alat make.
Sebagai contoh
Apabila mengkonfigurasi kernel, gunakan
makeARCH=armCROSS_COMPILE=arm-linux-menuconfig
Digunakan semasa menyusun kernel
makeARCH=armCROSS_COMPILE=arm-linux-
Perhatikan bahawa sebenarnya, apabila menyusun kernel PC, walaupun pengguna tidak menetapkannya secara eksplisit, ini tidak bermakna kedua-dua item ini tidak dikonfigurasikan. Kerana jika pengguna tidak menetapkan dua item ini, Makefile di bahagian atas kod sumber kernel (terletak dalam direktori akar kod sumber) akan menjana nilai kedua-dua pembolehubah ini melalui kaedah berikut.
SUBARCH:=$(shelluname-m|sed-es/i.86/i386/-es/sun4u/sparc64/
-es/arm.*/arm/-es/sa110/arm/
-es/s390x/s390/-es/parisc64/parisc/
-es/ppc.*/powerpc/-es/mips.*/mips/
-es/sh[234].*/sh/)
ARCH?=$(SUBARCH)
CROSS_COMPILE?=
Melalui kod sebelumnya, ARCH telah menjadi gerbang pengkompil PC iaitu SUBARCH. Atas sebab ini, jika output uname-m pada PC ialah ix86, nilai ARCH menjadi i386.
Nilai CROSS_COMPILE, jika tidak dikonfigurasikan, ialah rentetan kosong. Dengan cara ini, nama program rantai alat yang digunakan tidak lagi mempunyai awalan seperti arm-linux-, yang bersamaan dengan menggunakan gcc pada PC.
Beberapa perkataan lagi di penghujung, nilai ARCH perlu digeneralisasikan lagi. Kerana tiada direktori i386 dalam direktori gerbang kod sumber kernel, dan juga tiada direktori seperti sparc64.
Jadi pembolehubah SRCARCH dibina dalam fail make di tingkat atas, dan nilainya dijana melalui kod berikut. Dengan cara ini, pembolehubah SRCARCH akhirnya sepadan dengan nama seni bina tertentu dalam direktori gerbang kod sumber kernel.
SRCARCH:=$(ARCH)
ifeq($(ARCH),i386)
SRCARCH:=x86
endif
ifeq($(ARCH),x86_64)
SRCARCH:=x86
endif
ifeq($(ARCH),sparc64)
SRCARCH:=sparc
endif
ifeq($(ARCH),sh64)
SRCARCH:=sh
endif
3. Konfigurasikan kernel
Inti mempunyai banyak fungsi yang kita perlukan, bagaimana setiap bahagian disusun (ke dalam kernel atau ke dalam modul), dan apakah parameter kerja setiap bahagian ini? Untuk tujuan ini, sebelum memulakan penyusunan, kita perlu mencipta senarai konfigurasi, letakkannya dalam direktori akar kod sumber kernel, namakannya fail .config, dan kemudian susun kernel yang kita perlukan mengikut fail .config ini.
Walau bagaimanapun, terdapat terlalu banyak item konfigurasi dalam kernel Adalah terlalu menyusahkan untuk mengkonfigurasi Linux untuk menetapkan pembolehubah persekitaran satu demi satu. Selain itu, set item konfigurasi yang boleh dikonfigurasikan untuk seni bina CPU yang berbeza Penjelasan terperinci tentang pelaksanaan gangguan lengan dalam kernel linux adalah berbeza. Sebagai contoh, item konfigurasi sama ada ciri tertentu CPU tertentu harus disokong Penjelasan terperinci tentang pelaksanaan gangguan lengan dalam kernel linux ialah item konfigurasi yang berkaitan dengan seni bina CPU. Oleh itu, kernel menyediakan kaedah konfigurasi yang mudah.
Ambil lengan sebagai contoh, kaedah khusus adalah seperti berikut.
a) Menurut seni bina CPU sasaran kami, daripada direktori arch/arm/configs kod sumber kernel, cari fail konfigurasi (seperti s3c2410_defconfig) yang paling hampir dengan sistem sasaran, salin ke direktori akar kod sumber kernel, dan namakannya .config.
Perhatian, jika anda sedang menyusun kernel untuk PC semasa, sebaiknya salin fail berikut ke direktori akar sumber kernel sebagai fail konfigurasi awal. Fail ini ialah fail konfigurasi yang digunakan semasa menyusun kernel yang sedang berjalan pada PC.
/lib/modules/`uname-r`/build/.config
Sedikit perkataan, fail konfigurasi kernel PC mempunyai begitu banyak fungsi untuk dipilih. Anda tidak akan tahu jika anda tidak menyusunnya, anda akan mengetahuinya hanya jika anda menyusunnya. Tujuan penerbit Linux melakukan ini mungkin untuk menjadikan Linux yang mereka edarkan memenuhi pelbagai keperluan pengguna.
b) Jalankan makemenuconfig untuk membuat beberapa perubahan yang diperlukan pada konfigurasi ini, pilih simpan apabila keluar, dan konfigurasi baharu akan dikemas kini kepada fail .config.
Nota
Atas ialah kandungan terperinci Cara menyediakan kernel dan tetapan kompilasi PC: Menyediakan kompilasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!