ฉันจะคอมไพล์เคอร์เนลบนโฮสต์ Ubuntu ได้อย่างไร


16

ฉันต้องการทราบเพิ่มเติมเกี่ยวกับการทำงานของเคอร์เนล ส่วนหนึ่งคือการรวบรวมมันด้วยตัวเอง ฉันจะคอมไพล์เคอร์เนลบนโฮสต์ Ubuntu ได้อย่างไร

คำตอบ:


24

การจัดเตรียม

ก่อนอื่นเราต้องติดตั้งข้อกำหนดเบื้องต้นที่จำเป็น ฉันคิดว่าคุณมีsudoสิทธิ์เข้าถึง

sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
  • git เป็นระบบควบคุมเวอร์ชันที่ใช้โดยทีมเคอร์เนล Linux
  • ncursesเป็นห้องสมุดสำหรับสร้างเมนูคอนโซล menuconfigมันเป็นสิ่งจำเป็นสำหรับ
  • make ดำเนินการรวบรวมสำหรับเรา
  • gcc-arm-linux-gnueabi เป็นตัวแปลภาษา

ต่อไปเราต้องดึงข้อมูลแหล่งที่มาให้เรียกใช้:

git clone https://github.com/raspberrypi/linux raspberrypi-linux
cd raspberrypi-linux

นี่จะโคลนรหัสแหล่งที่มาไปยังไดเรกทอรีที่เรียกว่าraspberrypi-linuxและเปลี่ยนเป็น

การรวบรวม

ก่อนอื่นเราต้องย้ายไฟล์ปรับแต่งด้วยการเปิดใช้งาน

cp arch/arm/configs/bcmrpi_cutdown_defconfig .config

จากนั้นกำหนดค่าการสร้างเคอร์เนล

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- oldconfig

ทางเลือก:กำหนดบิลด์เองโดยใช้ menuconfig

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig

จากนั้นเรียกใช้การรวบรวม

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
อ้างอิง

1
ขอบคุณมากสำหรับการให้ทางเลือกในการใช้crosstool-ng
earthmeLon

ในกรณีของฉัน CROSS_COMPILE เป็นเพียงคำนำหน้าดังนั้นการติดตามควรเพียงพอ (โดยไม่มี gcc ในตอนท้าย): make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
อันตราย 89

4

ฉันคิดว่าอเล็กซ์นั้นถูกต้อง แต่ gcc-arm-linux-gnueabi นั้นถูกคอมไพล์สำหรับซีพียู arm โดยไม่ต้องใช้หน่วยจุดลอยฮาร์ดแวร์ คุณสามารถค้นหา cross-compiler ที่สนับสนุน armhf ได้ที่: https://github.com/raspberrypi/tools และบทแนะนำที่ดีในการเริ่มต้นที่นี่: http://hertaville.com/2012/09/28/development-environment- ราสเบอร์รี่ Pi-ข้ามคอมไพเลอร์ /


0

เอกสารอย่างเป็นทางการ

https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub )

ฉันขอแนะนำให้คุณทำตามขั้นตอนที่นั่นหรือส่งคำขอดึงหากสิ่งที่ล้าสมัยหรือไม่ชัดเจนพอ: คำแนะนำเหล่านั้นเป็นสิ่งที่น่าจะถูกต้องและเป็นปัจจุบันเพราะเป็นส่วนหนึ่งของเอกสารทางการของ โครงการ.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.