ฉันต้องการทราบเพิ่มเติมเกี่ยวกับการทำงานของเคอร์เนล ส่วนหนึ่งคือการรวบรวมมันด้วยตัวเอง ฉันจะคอมไพล์เคอร์เนลบนโฮสต์ Ubuntu ได้อย่างไร
ฉันต้องการทราบเพิ่มเติมเกี่ยวกับการทำงานของเคอร์เนล ส่วนหนึ่งคือการรวบรวมมันด้วยตัวเอง ฉันจะคอมไพล์เคอร์เนลบนโฮสต์ Ubuntu ได้อย่างไร
คำตอบ:
ก่อนอื่นเราต้องติดตั้งข้อกำหนดเบื้องต้นที่จำเป็น ฉันคิดว่าคุณมีsudo
สิทธิ์เข้าถึง
sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
git
เป็นระบบควบคุมเวอร์ชันที่ใช้โดยทีมเคอร์เนล Linuxncurses
เป็นห้องสมุดสำหรับสร้างเมนูคอนโซล 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
อ้างอิง
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
ฉันคิดว่าอเล็กซ์นั้นถูกต้อง แต่ gcc-arm-linux-gnueabi นั้นถูกคอมไพล์สำหรับซีพียู arm โดยไม่ต้องใช้หน่วยจุดลอยฮาร์ดแวร์ คุณสามารถค้นหา cross-compiler ที่สนับสนุน armhf ได้ที่: https://github.com/raspberrypi/tools และบทแนะนำที่ดีในการเริ่มต้นที่นี่: http://hertaville.com/2012/09/28/development-environment- ราสเบอร์รี่ Pi-ข้ามคอมไพเลอร์ /
เอกสารอย่างเป็นทางการ
https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub )
ฉันขอแนะนำให้คุณทำตามขั้นตอนที่นั่นหรือส่งคำขอดึงหากสิ่งที่ล้าสมัยหรือไม่ชัดเจนพอ: คำแนะนำเหล่านั้นเป็นสิ่งที่น่าจะถูกต้องและเป็นปัจจุบันเพราะเป็นส่วนหนึ่งของเอกสารทางการของ โครงการ.