Rumah > Tutorial sistem > LINUX > Cara menyediakan kernel dan tetapan kompilasi PC: Menyediakan kompilasi

Cara menyediakan kernel dan tetapan kompilasi PC: Menyediakan kompilasi

WBOY
Lepaskan: 2024-03-13 14:52:02
ke hadapan
799 orang telah melayarinya

Cara menyediakan kernel dan tetapan kompilasi PC: Menyediakan kompilasi

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!

Label berkaitan:
sumber:itcool.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan