วิธีการรวบรวมเคอร์เนล Linux ของคุณ รวบรวมเคอร์เนล Linux ของคุณเอง

เมื่อเร็ว ๆ นี้คอร์เวอร์ชันใหม่ออกมาค่อนข้างบ่อย สองสามเดือนที่มีการเปิดตัวที่มั่นคง ผู้สมัครที่ไม่มั่นคงสำหรับการเปิดตัวออกมาและบ่อยขึ้น Linus Torvalds และนักพัฒนาหลายคนทั่วโลกกำลังทำงานอย่างต่อเนื่องเพื่อปรับปรุงแกนใหม่และเพิ่มฟังก์ชั่นการทำงานมากขึ้นเรื่อย ๆ

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

หากคุณต้องการข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงในรุ่นเคอร์เนลเฉพาะบางอย่างดูการเปลี่ยนแปลงของ Kernel.org และในบทความนี้เราจะดูอัปเดตเคอร์เนล Linux เป็นเวอร์ชันใหม่ ฉันจะพยายามอย่าผูกคำแนะนำสำหรับรุ่นที่เฉพาะเจาะจงของแกนนิวเคลียสใหม่ออกมาค่อนข้างบ่อยและมันจะเกี่ยวข้องกับแต่ละคน

พิจารณาอัปเดตเคอร์เนล Ubuntu และ Centos ก่อนอื่นเรามาดูวิธีอัปเดตเคอร์เนลใน Ubuntu 16.04

ก่อนอื่นดูว่าคุณติดตั้งเคอร์เนลใด เมื่อต้องการทำเช่นนี้ให้เปิดเทอร์มินัลและดำเนินการ:

ตัวอย่างเช่นตอนนี้ฉันใช้เวอร์ชัน 4.3 และฉันสามารถอัปเดตเวอร์ชันใหม่ล่าสุดได้ นักพัฒนา Ubuntu ได้ดูแลผู้ใช้ของพวกเขาแล้วเพื่อรวบรวมเคอร์เนลด้วยตนเองและทำ debacks ของเคอร์เนลเวอร์ชั่นใหม่ พวกเขาสามารถดาวน์โหลดได้จากเว็บไซต์อย่างเป็นทางการของ Canonical

ฉันสามารถนำคำสั่ง wget ที่นี่มาให้ดาวน์โหลดได้หากเป็นรุ่นหลักจะเป็นที่รู้จัก แต่ในกรณีของเรามันจะดีกว่าที่จะใช้เบราว์เซอร์ เปิดเว็บไซต์ http://kernel.ubuntu.com/~kernel-ppa/mainline/ นี่คือทั้งหมดที่รวบรวมโดยเคอร์เนล Ubuntu เคอร์เนลถูกเก็บรวบรวมไว้สำหรับการแจกแจงทั้งสองพร้อมชื่อรหัสของการกระจายและทั่วไป ยิ่งไปกว่านั้นเมล็ดจาก Ubuntu 16.10 มีแนวโน้มที่จะทำงานที่ 16.04 แต่จาก 9.04 ใน Ubuntu 16.04 มันไม่คุ้มที่จะวางเคอร์เนล

เลื่อนไปที่ด้านล่างมันคือใครเป็นรุ่นใหม่ของนิวเคลียส:

นอกจากนี้ที่ด้านบนมีโฟลเดอร์รายวัน / ปัจจุบันซึ่งมีการสร้างนิวเคลียสล่าสุดของนิวเคลียสล่าสุด เลือกเวอร์ชันที่ต้องการของเคอร์เนลและดาวน์โหลดไฟล์ Linux-Headers และ Linux-Image สองไฟล์สำหรับสถาปัตยกรรมของคุณ:

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

ไปที่โฟลเดอร์แพคเกจการติดตั้งเช่น ~ / ดาวน์โหลด:

เรียกใช้การติดตั้ง:

หากคำสั่งนี้ไม่ได้ทำงานคุณสามารถไปที่อื่นได้ ติดตั้งยูทิลิตี้ GDEBI:

sudo apt-get ติดตั้ง gdebi

จากนั้นใช้มันติดตั้งเคอร์เนล:

sudo GDEBI Linux-Headers * .DEB Linux-Image - *. DEB

มีการติดตั้งเคอร์เนลมันยังคงที่จะอัปเดต bootloader:

sudo Update-Grub

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

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

เคอร์เนล Linux Update อัตโนมัติใน Ubuntu

ข้างต้นเราพิจารณาวิธีการติดตั้งเคอร์เนลรุ่นที่ต้องการด้วยตนเอง ก่อนหน้านี้อูบุนตูมี PPA สำหรับแอสเซมบลีเคอร์เนลรายวัน แต่ตอนนี้มันถูกปิด ดังนั้นคุณสามารถอัปเดตเคอร์เนลได้โดยการดาวน์โหลดแพ็คเกจ Deb เท่านั้นและติดตั้ง แต่ทั้งหมดนี้สามารถง่ายขึ้นโดยใช้สคริปต์พิเศษ

ติดตั้งสคริปต์:

ซีดี / TMP
$ git clone git: //github.com/gm-script-writer-62850/ubuntu-mainline-kernel-updater
$ Bash Ubuntu-mainline-Kernel-Updater / ติดตั้ง

ตรวจสอบความพร้อมใช้งานของการอัปเดต:

kernelupdatechecker -r yakkety

ตัวเลือก -r ช่วยให้คุณสามารถระบุสาขาการกระจายสินค้าที่คุณต้องการค้นหาเคอร์เนล สำหรับเมล็ด Xenial ไม่เป็นไปอีกต่อไป แต่ที่นี่พวกเขาจะทำงานได้อย่างสมบูรณ์แบบจากรุ่นต่อไป นอกจากนี้ตัวเลือก -no-rc สามารถระบุได้โดยใช้ยูทิลิตี้ที่ไม่ใช้ผู้สมัครสำหรับการเผยแพร่และตัวเลือก -v ระบุรุ่นที่แน่นอนของเคอร์เนลที่คุณต้องการติดตั้ง หากคุณไม่สำคัญว่าจะมีการกระจายเคอร์เนลหากมีเพียงตัวเลือกใหม่ล่าสุดให้ใช้ตัวเลือก - relase เท่านั้น สคริปต์จะออกผลลัพธ์ดังกล่าว:

ก่อนที่จะติดตั้งเคอร์เนลคุณสามารถดูรายละเอียดการเปิดไฟล์ / tmp / kernel-update:

ที่นี่เราเห็นว่าการค้นหา Yakkety ดำเนินการและรุ่นของเคอร์เนล 4.7-RC6 มีให้ในขณะนี้ เราสามารถติดตั้ง:

sudo / tmp / kernel-update

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

นิวเคลียสเก่าในกรณีที่อย่าลบ (n):

พร้อมอัปเดตเคอร์เนลไปยังเวอร์ชั่นใหม่เสร็จสมบูรณ์ตอนนี้รีสตาร์ทคอมพิวเตอร์ (Y):

ตรวจสอบว่าการปรับปรุงเคอร์เนล Ubuntu ทำงานหรือไม่:

นอกจากนี้สคริปต์ได้ถูกเพิ่มในการเริ่มต้นและตอนนี้จะตรวจสอบการอัปเดตโดยอัตโนมัติหลังจาก 60 วินาทีหลังจากลงชื่อเข้าใช้ระบบ ป้าย Autostrack อยู่ในไฟล์:

vi ~ / .config / autostart / kernelupdate.desktop

คุณสามารถเปลี่ยนตามที่คุณต้องการหรือลบ หากคุณต้องการลบสคริปต์อย่างสมบูรณ์จากระบบให้ดำเนินการ:

rm ~ / .config / autostart / kernelupdate.desktop
$ sudo rm / usr / local / bin / kernelupdate (ตัวตรวจสอบ, scriptgenerator)

ไม่ดาวน์โหลด

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

และเพื่อเรียกคืนการทำงานของระบบให้เลือก ตัวเลือกขั้นสูงสำหรับ Ubuntu ในเมนูด้วง:

และเรียกใช้เคอร์เนลการทำงานก่อนหน้านี้:

หลังจากดาวน์โหลดแล้วจะถูกทิ้งไว้เพื่อลบเคอร์เนลที่ติดตั้งไม่ถูกต้องและอัปเดตด้วงอีกครั้งแทนที่รุ่นที่ต้องการของเคอร์เนลแทน 4.7:

sudo Apt ลบ Linux-header-4.7 * Linux-Image-4.7 *

sudo Update-Grub

ตอนนี้ระบบของคุณกลับสู่สถานะก่อนหน้านี้แล้ว คุณสามารถลองตั้งเคอร์เนลรุ่นเก่าหรือลองอีกครั้ง

การอัพเกรดเคอร์เนล Linux สูงถึง 4.4 ใน CentOS

และตอนนี้เรามาดูวิธีอัปเดตเคอร์เนล Linux ของเวอร์ชันใหม่ล่าสุดใน CentOS การเรียนการสอนมีการตรวจสอบใน CentOS 7 แต่ส่วนใหญ่จะทำงานกับ Redhat 7, Fedora และการแจกแจงที่คล้ายคลึงกันอื่น ๆ

ตามกฎแล้วเคอร์เนลใหม่ไม่รวมอยู่ในที่เก็บ Centos อย่างเป็นทางการดังนั้นเพื่อให้ได้รุ่นที่เสถียรล่าสุดเราจะต้องเพิ่มที่เก็บ Elrepo นี่คือที่เก็บแพคเกจเชิงพาณิชย์ (แพ็คเกจ Linux ขององค์กร) ได้รับการสนับสนุนใน Redhat และ Fedora

ในการเพิ่มที่เก็บให้ทำตามขั้นตอนเหล่านี้:

ก่อนอื่นคุณต้องนำเข้ากุญแจสำคัญ:

rpm - เพิ่ม https://www.elrepo.org/rpm-gpg-key-elrepo.org

เราเพิ่มที่เก็บและส่วนประกอบที่จำเป็นใน Rhel / Scientific Linux / Centos-7:

rPM -UVH http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum ติดตั้ง yum-plugin-fastestmirror

ใน Fedora 22 ขึ้นไป:

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

อย่ากลัวที่จะลองรวบรวมเคอร์เนล มันสนุกและทำกำไรได้

ในการรวบรวมเคอร์เนลวิธี Debian คุณต้องการแพคเกจบางอย่าง: และอื่น ๆ บางคนที่อาจติดตั้งแล้ว (ดูรายการที่สมบูรณ์)

วิธีนี้จะทำให้. DEB ของแหล่งที่มาของเคอร์เนลของคุณและหากคุณมีโมดูลที่ไม่ได้มาตรฐานให้การซิงโครไนซ์ขึ้นอยู่กับ DEB ของผู้ที่เช่นกัน มันเป็นวิธีที่ดีกว่าในการจัดการภาพเคอร์เนล จะถือเคอร์เนลระบบ MAP และบันทึกของไฟล์ Config ที่ใช้งานสำหรับการสร้าง

โปรดทราบว่าคุณทำไม่ได้ มี เพื่อรวบรวมเคอร์เนลของคุณ "Debian Way"; แต่เราพบว่าการใช้ระบบบรรจุภัณฑ์ในการจัดการเคอร์เนลของคุณปลอดภัยและง่ายขึ้น ในความเป็นจริงคุณสามารถรับแหล่งที่มาของเคอร์เนลของคุณได้จาก Linus แทน แต่ยังคงใช้วิธีการรวบรวม

โปรดทราบว่าคุณจะพบเอกสารที่สมบูรณ์เกี่ยวกับการใช้งานภายใต้ ส่วนนี้มีการสอนสั้น ๆ

นอกจากนี้เราจะคิดว่าคุณมีการบังเหียนฟรีบนเครื่องของคุณและจะดึงแหล่งเคอร์เนลของคุณไปยังที่ใดที่หนึ่งในโฮมไดเร็กตอรี่ของคุณ เราจะสมมติว่ารุ่นเคอร์เนลของคุณคือ 3.16 ตรวจสอบให้แน่ใจว่าคุณต้องการแกะแหล่งที่มาของเคอร์เนลแยกพวกเขาออกจากการใช้และเปลี่ยนเป็นไดเรกทอรีที่จะสร้างขึ้น

ตอนนี้คุณสามารถกำหนดค่าเคอร์เนลของคุณ เรียกใช้ถ้าติดตั้ง X11 กำหนดค่าและการทำงาน เรียกใช้มิฉะนั้น (คุณจะต้องติดตั้ง) ใช้เวลาในการอ่านความช่วยเหลือออนไลน์และเลือกอย่างระมัดระวัง เมื่อมีข้อสงสัยมันจะดีกว่าที่จะรวมไดรเวอร์อุปกรณ์ (ซอฟต์แวร์ที่จัดการอุปกรณ์ต่อพ่วงฮาร์ดแวร์เช่นการ์ดอีเธอร์เน็ตคอนโทรลเลน SCSI และอื่น ๆ ) คุณไม่แน่ใจ ระวัง: ตัวเลือกอื่น ๆ ที่ไม่เกี่ยวข้องกับฮาร์ดแวร์เฉพาะควรเหลือไว้ในค่าเริ่มต้นหากคุณไม่เข้าใจ อย่าลืมที่จะเลือก "Kernel Module Loader" ใน "การสนับสนุนโมดูลที่โหลดได้" (ไม่ได้เลือกตามค่าเริ่มต้น) หากไม่รวมการติดตั้ง Debian ของคุณจะประสบปัญหา

ทำความสะอาดต้นไม้ต้นทางและรีเซ็ตพารามิเตอร์ ทำเช่นนั้นทำ

ตอนนี้รวบรวมเคอร์เนล:. จำนวนเวอร์ชันของ "1.0" สามารถเปลี่ยนแปลงได้ตามต้องการ นี่เป็นเพียงหมายเลขรุ่นที่คุณจะใช้เพื่อติดตามการสร้างเคอร์เนลของคุณ ในทำนองเดียวกันคุณสามารถใส่คำใด ๆ ที่คุณชอบแทนที่ "กำหนดเอง" (e.g. , ชื่อโฮสต์) การรวบรวมเคอร์เนลอาจใช้เวลาสักครู่ขึ้นอยู่กับพลังของเครื่องของคุณ

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

ถึงเวลาที่จะรีบูตระบบ: อ่านคำเตือนใด ๆ อย่างรอบคอบว่าขั้นตอนข้างต้นอาจมีการผลิตแล้ว

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Kernels Debian และ Kernel Compilation ดูคู่มือเคอร์เนลของ Debian Linux สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอ่านเอกสารที่ดีใน

หากคุณจำได้ไม่นานมานี้เราได้เรียนรู้ที่จะรวบรวมแหล่งหลัก FreeBSD จะถูกถามว่าทำไมไม่เรียนรู้วิธีการทำเช่นเดียวกันกับเคอร์เนล Linux? เหตุผลในการรวบรวมเคอร์เนล Linux จากแหล่งโดยทั่วไปซึ่งเหมือนกัน - รุ่นที่สดใหม่ของเคอร์เนลแอพลิเคชันเร่งด่วนของแพทช์ความปลอดภัยการเพิ่มประสิทธิภาพสำหรับงานที่เฉพาะเจาะจงและเหล็กที่เฉพาะเจาะจงรวมถึงความปรารถนาที่จะมีส่วนร่วม การพัฒนาเคอร์เนลแม้ว่า QA

สำคัญ! การทำตามคำแนะนำจากโพสต์นี้อาจนำไปสู่การสูญเสียข้อมูลของคุณ ทำการสำรองข้อมูลและจำไว้ว่าคุณกำลังทำทุกอย่างตามความเสี่ยงของคุณเอง ทั้งหมดที่อธิบายไว้ด้านล่างได้รับการยืนยันใน Ubuntu 14.04 LTS แต่ใน Ubuntu รุ่นอื่นรวมถึงการกระจาย Linux อื่น ๆ ความแตกต่างควรน้อยที่สุด

กำหนดค่า bootloader

กฎ / etc / default / grub มีดังต่อไปนี้:

grub_default \u003d 0
# grub_hidden_timeout \u003d 10
# grub_hidden_timeout_quiet \u003d true
grub_timeout \u003d 10
grub_distributor \u003d `lsb_release -i-S2\u003e / dev / null || echo debian`
grub_cmdline_linux_default \u003d "สาดเงียบ"
grub_cmdline_linux \u003d ""

หลังจากแก้ไขเราพูดว่า:

sudo Update-Grub

เป็นผลให้ก่อนที่จะโหลดระบบเป็นเวลา 10 วินาทีมันจะถูกนำเสนอเพื่อเลือกเคอร์เนลที่คุณต้องการบูต สะดวกมากหากคุณมีบางสิ่งที่แต่งตัวด้วยการกำหนดค่าเคอร์เนลและต้องการบูตด้วยรุ่นก่อนหน้า!

เราใส่ติดยาเสพติด

เราต้องการอย่างน้อยแพ็คเกจต่อไปนี้:

sudoapt-get installgitgccmakebc fakeroot dpkg-dev \\
libncurses5-dev libssl-dev

ในหลาย ๆ ระบบพวกเขาทั้งหมดจะมีอยู่แล้ว

เราได้รับแหล่งที่มา

https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.6.4.tar.xz
tar-XZ-XVF Linux-4.6.4.tar.xz
ซีดี Linux-4.6.4

หรือถ้าคุณต้องการความสดใหม่มากที่สุดคุณสามารถนำแหล่งข่าวได้โดยตรงจาก Git:

# Mirror: https://github.com/torvalds/linux
git clone'git: //git.kernel.org/pub/scm/linux/kernel/git/ '\\
'torvalds / linux.git'
ซีดีลินุกซ์

การตัดสินโดยความจริงที่ว่าแท็ก v4.6.4 ใน Git'e ไม่พบการปล่อยเคอร์เนล Linux จะถูกดึงขึ้นมาเฉพาะในรูปแบบของคลังเก็บ TAR ที่บีบอัด

ถ้าแทนที่จะเป็นเคอร์เนลวานิลลาคุณต้องการรวบรวมแกนกลางด้วยแพทช์จาก Canonical:

git clone git: //kernel.ubuntu.com/ubuntu/ubuntu-trusty.git
cD Ubuntu-Trusty
git Tag | น้อยลง
git Checkout Ubuntu-LTS-4.4.0-31.50_14.04.1

จากประสบการณ์ของฉันเองฉันจะบอกว่าถ้าคุณใช้อูบุนตูคุณสามารถใช้แกนวานิลลาได้อย่างปลอดภัย ไม่น่าเป็นไปได้ที่คุณจะมีปัญหากับเขา

บันทึก: ที่น่าสนใจจากการกระจายลินุกซ์ที่มีอยู่ที่มีอยู่เดิมของเคอร์เนลที่ไม่มีแพทช์ของตัวเองดูเหมือนว่าจะมีเพียง Gentoo Slackware และ Arch Linux เท่านั้น

อย่างไรก็ตามตอนนี้คุณมีแหล่งที่มา

เรารวบรวมและติดตั้งเคอร์เนล

เลือกตัวเลือกที่จะเก็บเคอร์เนล:

หากจำเป็นให้เปลี่ยนการตั้งค่าคลิกบันทึกจากนั้นออก เป็นผลให้ไฟล์ที่มีพารามิเตอร์ที่เลือกโดยเราจะถูกสร้างขึ้น

สำหรับ อัปเดต เคอร์เนล (คุณยังคงใช้เคอร์เนลบางชนิดในทางใดทางหนึ่ง?) มันสะดวกในการกำหนดค่าหลักปัจจุบันและตั้งค่าเริ่มต้นเริ่มต้นเป็นตัวเลือกใหม่:

zcat / proc / config.gz\u003e ./.config
ทำให้ olddefconfig

ในที่สุดรวบรวม:

make-J4 BindeB-PKG LocalVersion \u003d -Custom

รวบรวมแกนกลางเป็นเวลานาน บนแล็ปท็อปของฉันการชุมนุมใช้เวลา 1 ชั่วโมง 15 นาที อย่างไรก็ตามจากเวลานี้ข เกี่ยวกับส่วนที่ทฤษฎีถูกใช้ไปกับการประกอบของแพ็คเกจเคอร์เนลยักษ์ที่มีสัญลักษณ์การดีบัก

ประกอบแบบแมนนวลและการกำหนดค่าของเคอร์เนล Linux

สร้างแพ็คเกจนี้สามารถปิดใช้งานการแสดงความคิดเห็นบนพารามิเตอร์ Config_DEBUG_INFO ในการกำหนดค่า โปรดทราบว่าจำเป็นต้องใช้แพ็คเกจนี้โดย SystemTap และเครื่องมือที่มีประโยชน์อื่น ๆ

นอกจากเคอร์เนลแล้วคุณยังสามารถรวบรวมเอกสาร:

นอกจากนี้ยังมี `ทำให้ pdfdocs` และคนอื่น ๆ ดูช่วย"
ทำให้ htmldocs
เอกสารประกอบเบราว์เซอร์โครเมียม / DocBook / index.html

ในตอนท้ายของการชุมนุมใน ลูกสาว แคตตาล็อกดูบางอย่างเช่น:

linux-Firmware-image-4.4.13-custom_4.4.13-custom-1_amd64.deb
Linux-Headers-4.4.13-Custom_4.4.13-Custom-1_AMD64.DEB
Linux-Image-4.4.13-Custom_4.4.13-custom-1_amd64.deb
Linux-image-44.13-custom-dbg_4.4.13-custom-1_amd64.deb
Linux-libc-dev_4.4.13-custom-1_amd64.deb

เราวางบอดทั้งหมดนอกเหนือจากรุ่น DBG ของเคอร์เนลในปกติและรีบูต หลังจากรีบูตเราดูที่เอาต์พุตของคำสั่ง เราเชื่อมั่นว่าพวกเขาบูตกับแกนกลางใหม่จริงๆ หากมีบางอย่างผิดปกติกับแกนใหม่เราเพียงแค่เลือกใน bootloader ซึ่งระบบโหลดไป หลังจากโหลดด้วยแกนเก่าเราจะลบแพคเกจของเคอร์เนลใหม่และ Voila - ระบบกลับไปยังสถานะก่อนหน้านี้อย่างรวดเร็ว

นอกจากนี้หลังจากโหลดเคอร์เนลใหม่คุณสามารถขับเคลื่อนการทดสอบ:

sudomake kelbtest
supdomake Kelftest- สะอาด

ขอแสดงความยินดีตอนนี้คุณรู้วิธีรวบรวมเคอร์เนลลินุกซ์!

บทสรุป

วัสดุบนอุปกรณ์ภายในของเคอร์เนล Linux:

  • Kernelnewbies.org, ไซต์สำหรับผู้เริ่มต้นในเคอร์เนล Linux พร้อมรายการแจกจ่าย, IRC Channel, ฟอรัม, Wiki และอื่น ๆ ;
  • lkml.org เว็บไซต์สำหรับการอ่านที่สะดวกสบายของแผ่นงานผู้พัฒนาเคอร์เนล Linux ผ่านเบราว์เซอร์ ระวังมันมักจะทำลายการจัดรูปแบบตัวอักษร! ในแง่นี้การเก็บถาวรการส่งจดหมายบน Marc.info นั้นดีกว่ามาก
  • Linux Cross อ้างอิงไซต์เพื่อการอ่านที่สะดวกสบายของรหัสเคอร์เนล Linux ผ่านเบราว์เซอร์
  • หนังสือพัฒนาเคอร์เนล Linux ฉบับที่ 3 เป็นหนังสือเล่มล่าสุดของเคอร์เนล Linux ในภาษาอังกฤษ (2010, Core 2.6.x) มีการแปลเป็นภาษารัสเซีย
  • จอง Linux-Treber Entwickeln, ฉบับที่ 4 สดใหม่ (2015, เคอร์เนล 4.x) แต่เขียนเป็นภาษาเยอรมันและไม่มีการแปล
  • ฟรี Linux Linux Inside สำหรับการประพันธ์ของ Alexander Kuleshov A.k.A @ 0xx ดูเหมือนว่าสามารถเข้าถึงได้และเกี่ยวข้องมากที่สุด แต่ในขณะนี้ยังอยู่ในขั้นตอนการเขียน
  • บางครั้งสิ่งที่มีประโยชน์สามารถพบได้ในเอกสารคู่มือ Kernel HTML Linux เอกสารทางการจากแหล่งที่มาของเคอร์เนล Linux
  • ตัวอย่างของไดรเวอร์อุปกรณ์ Linux หนังสือรุ่นที่ 3 ซึ่งพยายามรักษาไว้ให้ทันสมัยพร้อมแหล่งที่มาของรุ่นที่ 4 ซึ่งยังคงเขียนอยู่ในขณะนี้

และไม่ว่าคุณจะรวบรวมแกนกลางจากแหล่งที่มาและถ้าเป็นเช่นนั้นทำไม? 🙂

ส่วนที่เพิ่มเข้าไป: คุณอาจสนใจในบทความความจริงอื้อฉาวเกี่ยวกับการดีบักรหัสนิวเคลียร์ใน Linux

Tags: Linux, Ring0

การรวบรวมเคอร์เนล Linux


หลายคนคิดว่ามันเป็นเวลาที่ไม่มีความหมายเพื่อแสดงให้เห็นว่าตัวเองฉลาดและสูง "Linuxoid" ในความเป็นจริงการรวบรวมหลักเป็นสิ่งที่สำคัญมาก สมมติว่าคุณซื้อแล็ปท็อปใหม่ที่เว็บแคมของคุณไม่ทำงาน การกระทำของคุณ? คุณดูเครื่องมือค้นหาและค้นหาวิธีแก้ไขปัญหาเกี่ยวกับปัญหานี้ บ่อยครั้งที่มันอาจกลายเป็นเว็บแคมของคุณทำงานบนเคอร์เนลของรุ่นที่ใหม่กว่าของคุณ หากคุณไม่ทราบว่าเวอร์ชันใดที่คุณมี - ป้อนในเทอร์มินัล Uname -r คุณจะได้รับรุ่นของเคอร์เนล (ตัวอย่างเช่น Linux-2.6.31-10) นอกจากนี้การรวบรวมเคอร์เนลที่ใช้กันอย่างแพร่หลายเพื่อเพิ่มผลผลิต: ความจริงก็คือโดยค่าเริ่มต้นในเคอร์เนลการแจกแจง "สำหรับทุกคน" ถูกรวบรวมด้วยเหตุนี้จึงมีไดรเวอร์จำนวนมากที่คุณอาจไม่ต้องการ ดังนั้นหากคุณรู้ว่าฮาร์ดแวร์ใช้งานได้ดีคุณสามารถปิดไดรเวอร์ที่ไม่จำเป็นได้ที่ขั้นตอนการกำหนดค่า นอกจากนี้ยังเป็นไปได้ที่จะเปิดใช้งานการสนับสนุนสำหรับแรมมากกว่า 4 กิกะไบต์โดยไม่ต้องเปลี่ยนบิตของระบบ

วิธีการรวบรวมเคอร์เนล Linux? สร้างเคอร์เนล Linux

ดังนั้นหากคุณยังจำเป็นต้องมีเคอร์เนลของคุณเองลองเริ่มรวบรวม!


สิ่งแรกที่ต้องทำคือการได้รับซอร์สโค้ดของเคอร์เนลที่ต้องการ มักจะจำเป็นต้องได้รับรุ่นที่เสถียรใหม่ล่าสุด เคอร์เนลรุ่นอย่างเป็นทางการทั้งหมดมีอยู่ใน Kernel.org

หากคุณมี X Server (Home Computer) แล้วคุณสามารถไปที่ไซต์ในเบราว์เซอร์ที่คุณชื่นชอบและดาวน์โหลดเวอร์ชันที่ต้องการใน Archive Tar.gz (บีบอัด GZIP) หากคุณทำงานในคอนโซล (ตัวอย่างเช่นคุณยังไม่ได้ติดตั้ง X Server หรือกำหนดค่าเซิร์ฟเวอร์) คุณสามารถใช้เบราว์เซอร์ข้อความ (ตัวอย่างเช่น Elinks)

คุณยังสามารถใช้ Download Manager มาตรฐาน WGG:


tar -zxvf path_do_arhiva

การกำหนดค่าหลัก

การรวบรวม
ทำ && ทำติดตั้ง
เรากำลังรอตั้งแต่ 20 นาทีถึงหลายชั่วโมง (ขึ้นอยู่กับพลังของคอมพิวเตอร์) เคอร์เนลถูกตั้งค่า หากต้องการปรากฏในรายการ Grub (2) ให้ป้อน (จาก SuperUser)
อัปเดตด้วง


ที่เก็บของบทความ:
พฤษภาคม 2560
มีนาคม 2560
เมษายน 2559
มีนาคม 2559
ตุลาคม 2013
กันยายน 2013
พฤษภาคม 2013
มีนาคม 2013
พฤศจิกายน 2012
กรกฎาคม 2555
มิถุนายน 2555
เมษายน 2012
มีนาคม 2012
กุมภาพันธ์ 2555
เมษายน 2011
มีนาคม 2011
กุมภาพันธ์ 2554
มกราคม 2554
ธันวาคม 2010
พฤศจิกายน 2010
ตุลาคม 2010
กันยายน 2010
สิงหาคม 2010
กรกฎาคม 2010
มิถุนายน 2010
พฤษภาคม 2010
เมษายน 2010
มีนาคม 2010

สุ่ม:

Virtual Stellarium Planetarium: ตรวจสอบคุณสมบัติใหม่

BOINC: การคำนวณวิทยาศาสตร์

Gambas: การพัฒนาขั้นพื้นฐานใน Linux

แผนภูมิซีเรียล SSH 2.0

Linuxnow.ru: แผนการสำหรับอนาคต

ทันใดนั้นมีพื้นที่ว่างเล็ก ๆ น้อย ๆ บนดิสก์? บางทีปัญหาในบันทึก

เพื่อนร่วมงาน: ทั้งหมด
ลินุกซ์สำหรับทุกคน

แบนเนอร์ของเรา:


ติดตั้งแบนเนอร์

การกำหนดค่าเคอร์เนล Linux

ตรวจสอบแพ็คเกจของข้อความต้นฉบับ

สำหรับเคอร์เนลการคอมไพล์การ์ดต้นแหล่งที่มาจำเป็นต้องมี

บล็อกเกี่ยวกับการบริหารระบบ บทความเกี่ยวกับ Linux, Windows, NetApp และ Virtualization Storage

ในหมวกสีแดงข้อความเคอร์เนลที่มาจะอยู่ในแพ็คเก็ต RPM หนึ่งแพ็คเก็ต แต่ไม่ได้ติดตั้งค่าเริ่มต้น ชื่อของแพคเกจนี้:

kernel-Source-2.4.2-2.1386.RPM

นอกเหนือจากข้อความต้นฉบับแล้วคอมไพเลอร์ที่ประกอบด้วยสององค์ประกอบที่จำเป็นสำหรับการคอมไพล์เคอร์เนลใหม่:

ทำยูทิลิตี้;

ที่จริงแล้วคอมไพเลอร์ภาษา C - GSS หรือ EGCs

การสร้างสำเนาสำรองของแกนปัจจุบันจะดำเนินการในสามขั้นตอน:

1. การสร้างการสำรองข้อมูลของข้อความ Kernel ที่มาซึ่งช่วยให้คุณสามารถกู้คืนได้เมื่อได้รับความเสียหายการกำหนดค่า

2. การสร้างสำเนาสำรองของนิวเคลียสเองเป็นเครื่องมือที่ใช้งานได้

3. การสร้างรายการใหม่สำหรับ Bootloader ระบบปฏิบัติการซึ่งจะสามารถบูตจากการสำรองข้อมูลของเคอร์เนล

การสร้างการสำรองข้อมูลของข้อความต้นฉบับนั้นทำโดยการคัดลอกแคตตาล็อกด้วยรหัสหลักแหล่งที่มาสู่ดิสก์ การกู้คืนทำโดยการคัดลอกในทิศทางตรงกันข้าม

เมื่อรีไซเคิลเคอร์เนลเคอร์เนลเดียวกันถูกบันทึกไว้ในไฟล์ที่มีนามสกุล อย่างไรก็ตามสำเนาหลักนี้ยังไม่สามารถใช้ในการโหลดระบบ สิ่งนี้อธิบายถึงความจำเป็นในการปฏิบัติตามการดำเนินการข้างต้น

การบูตระบบปฏิบัติการประเภท Lilo ที่ใช้กันทั่วไปในการโหลด Linux ได้รับการกำหนดค่าโดยการตั้งค่าการอ้างอิงไปยังไฟล์เคอร์เนลในระบบไฟล์รูท

หลังจากสร้างการสำรองข้อมูลของเคอร์เนลไปยังไฟล์ /etc/lilo.conf คุณต้องเพิ่มระเบียนอื่นที่ให้คุณเริ่มต้น Linux ด้วยเคอร์เนลเดียวกัน:

ไฟล์เปิด / etc / lilo conf ในโปรแกรมแก้ไขข้อความ;

สร้างสำเนาของส่วนทั้งหมด

เปลี่ยนตำแหน่งสองตำแหน่งในสำเนา:

ชื่อไฟล์นิวเคลียสจะถูกแทนที่ด้วยการสำรองข้อมูล (พร้อมกับนามสกุล);

แทนที่ฉลากการบันทึกด้วยสิ่งใดเช่น Linux ต้นฉบับ (แหล่งที่มา Linux) หรือ Linux-Previous (Linux เดิม)

แถวที่เริ่มต้นด้วย initrd แทนที่การสำรองข้อมูลที่เกี่ยวข้องเช่น initrd-2 .4.2-2 ต้นกำเนิด img;

บันทึกการเปลี่ยนแปลงไฟล์ / etc / lilo อน.

ป้อนคำสั่ง / sbin / lilo เพื่อป้อนรายการบันทึกใหม่ เมื่อดำเนินการคำสั่ง Lilo รูปภาพที่ป้อนลงใน bootloader ระบบปฏิบัติการจะปรากฏขึ้น

เมื่อรีบูตระบบครั้งต่อไปของระบบตัวระบุเคอร์เนลใหม่จะปรากฏบนหน้าจอในเคล็ดลับกราฟิก Lilo

การกำหนดค่าแกนใหม่

เมื่อกำหนดค่าจะแก้ไขฟังก์ชั่นที่รวมอยู่ในเคอร์เนลซึ่งไม่รวม ฯลฯ คุณสามารถเลือกระหว่างการกำหนดค่าของเคอร์เนลเก่าและการติดตั้ง / การกำหนดค่าของใหม่ ตัวอย่างเช่นการใช้ Red Hat Linux 7.1 คุณสามารถเปลี่ยนการกำหนดค่าของเคอร์เนล 2.4.2 ที่มีอยู่โดยการตั้งค่าพารามิเตอร์ใหม่ คุณสามารถดาวน์โหลดและติดตั้งเคอร์เนลเวอร์ชั่นใหม่ 2.4.4 แม้จะมีความจริงที่ว่ารายละเอียดการกำหนดค่าในสองกรณีนี้แตกต่างกันไปใช้ยูทิลิตี้ที่ใช้และเทคนิคการกำหนดค่าตรงกันเหมือนกัน

ใน Linux มีสามยูทิลิตี้การกำหนดค่าแยกต่างหากซึ่งแต่ละแห่งมีลักษณะของตัวเอง

ยูทิลิตี้พร้อมอินเตอร์เฟสบรรทัดคำสั่ง ผู้ใช้ตอบคำถามอย่างต่อเนื่องเกี่ยวกับฟังก์ชั่นที่ต้องรวมอยู่ในเคอร์เนล ยูทิลิตี้นี้สะดวกสำหรับผู้เชี่ยวชาญที่รู้วิธีการทำงานกับแกนกลางและสำหรับผู้ที่มีสถานการณ์จำลองสำหรับยูทิลิตี้นี้

ยูทิลิตี้พร้อมเมนูโหมดข้อความ เมนูหลายระดับของยูทิลิตี้นี้ช่วยให้คุณติดตั้งและติดตั้งพารามิเตอร์เคอร์เนลในลำดับใดก็ได้

ยูทิลิตี้พร้อมส่วนต่อประสานกราฟิก นี่คือยูทิลิตี้ที่น่าสนใจที่สุด แต่มันเริ่มต้นเฉพาะในระบบกราฟิกของหน้าต่าง X

ยูทิลิตี้ที่ระบุไว้สร้างไฟล์คอนฟิกูเรชันเดียวกันที่ใช้โดย Make Utility ที่รวบรวมเคอร์เนลที่สมบูรณ์หรือบางส่วน

เคอร์เนลพารามิเตอร์

การเรียกดูพารามิเตอร์ในโปรแกรมการกำหนดค่าใด ๆ (บรรทัดคำสั่งพร้อมข้อความหรือกราฟิกแบบกราฟิก) จำเป็นต้องแสดงถึงผลกระทบของพารามิเตอร์เหล่านี้อย่างชัดเจนกับเคอร์เนล

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

modular;

ไม่ใช่โมดูล

หากบล็อกซอฟต์แวร์ที่สอดคล้องกับพารามิเตอร์นี้ไม่ถูกโหลดเป็นโมดูลเคอร์เนลอาจเป็นหนึ่งในสอง:

[*] ส่วนประกอบคอมโพสิตของเคอร์เนล;

ส่วนที่ไม่เสถียรของเคอร์เนล

สัญลักษณ์ในวงเล็บเหลี่ยม (พร้อมกับวงเล็บ) สอดคล้องกับการตั้งค่าในเมนูโปรแกรมกำหนดค่า (ยกเว้นยูทิลิตีบรรทัดคำสั่ง)

สำหรับพารามิเตอร์แบบแยกส่วนมีสามตัวเลือกการติดตั้งเป็นไปได้ (ตามการนำเสนอของพวกเขาในเมนูยูทิลิตี้การกำหนดค่า):

<> มันไม่เปิดในเคอร์เนลและไม่ได้สร้างเป็นโมดูลที่สามารถดาวน์โหลดได้ในภายหลัง:

<*> มันเปิดอยู่ในเคอร์เนลดังนั้นจึงไม่จำเป็นต้องอัปโหลดในภายหลังเป็นโมดูล:

<М> เปิดเป็นโมดูล แต่ไม่ใช่ส่วนสำคัญของเคอร์เนล หน่วยสามารถติดตั้งหรือลบออกจากเคอร์เนลได้ตลอดเวลา

บางครั้งค่าของพารามิเตอร์ใด ๆ ไม่สามารถเปลี่ยนแปลงได้ก่อนที่จะติดตั้งพารามิเตอร์อื่น ตัวอย่างเช่นสร้างการสนับสนุนสำหรับอุปกรณ์ SCSI เฉพาะหลังจากได้รับอนุญาตทั่วไปเพื่อรองรับอุปกรณ์เหล่านี้

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

configurator ที่มีส่วนต่อประสานกราฟิก

รันยูทิลิตีการกำหนดค่าที่มีอินเตอร์เฟสแบบกราฟิกจะดำเนินการตามลำดับต่อไปนี้

เรียกใช้ระบบ X Windows (พร้อมสภาพแวดล้อมกราฟิกและเดสก์ท็อปใด ๆ )

เปิดหน้าต่าง Emulator เทอร์มินัล (หน้าต่างบรรทัดคำสั่ง)

เช่นเดียวกับการเริ่มต้นของยูทิลิตี้ก่อนหน้าข้อความหลายข้อความในการรวบรวมของยูทิลิตี้จะกะพริบบนหน้าจอและหลังจากนั้นไม่กี่นาทีหน้าต่างหลักจะเปิดขึ้น

รูปที่. 8. ยูทิลิตี้การกำหนดค่าหลักที่มีส่วนต่อประสานกราฟิก: การตั้งค่าปุ่มเมนูสำหรับค่าพารามิเตอร์

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

กล่องโต้ตอบดังกล่าวแสดงในรูปที่

รูปที่. 9. ในกล่องโต้ตอบเช่นนี้พารามิเตอร์การกำหนดค่าของเคอร์เนลที่ติดตั้ง

เคอร์เนล 2.4.2 ใน Red Hat Linux ตามค่าเริ่มต้นรองรับสถาปัตยกรรมมัลติโปรเซสเซอร์แบบสมมาตร มีความจำเป็นต้องตั้งค่าของ n สำหรับตัวเลือกที่สอดคล้องกันหากมีโปรเซสเซอร์เพียงตัวเดียวเท่านั้นในคอมพิวเตอร์ของคุณ

ทางด้านขวาของแต่ละพารามิเตอร์คือปุ่มช่วยเหลือ

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

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

ในตอนท้ายของเมนูหลักของยูทิลิตี้กราฟิกมีคำสั่งคล้ายกับคำสั่งยูทิลิตี้ที่เหมาะสมจากเมนูโหมดข้อความ

บันทึกและออก (เอาท์พุทด้วยการบันทึก) การสร้างไฟล์คอนฟิกูเรชันเคอร์เนลและเติมเต็มยูทิลิตี้

ออกจากไม่มีการบันทึก (ออกโดยไม่บันทึก) จบยูทิลิตี้โดยไม่ต้องสร้างไฟล์คอนฟิกูเรชันเคอร์เนล

โดยไม่ต้องสร้างไฟล์คอนฟิกูเรชันเคอร์เนลโดยใช้หนึ่งในโปรแกรมอรรถประโยชน์ที่ระบุไว้การรวมตัวของเคอร์เนลเป็นไปไม่ได้

โหลดการกำหนดค่าจากไฟล์ โหลดไฟล์การกำหนดค่าที่สร้างไว้ก่อนหน้านี้

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

การรวบรวมและเปิดตัวแกนใหม่

หลังจากเสร็จสิ้นการกำหนดค่าคุณต้องตรวจสอบความพร้อมของไฟล์คอนฟิกูเรชันใหม่ (.config) ที่อยู่ในไดเรกทอรี / usr / src / linux-2 .4.2 (ขึ้นอยู่กับหมายเลขรุ่น) หากมีการกำหนดค่า File.Config คุณสามารถใช้คำสั่ง Make เพื่อคอมไพล์เคอร์เนลใหม่

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

รันกระบวนการรบใหม่

คำสั่งต่อไปนี้ได้รับการออกแบบมาเพื่อสร้างเคอร์เนลใหม่จากการคำนวณโมดูลทั้งหมดและการบันทึกของพวกเขาไปยังไดเรกทอรีระบบที่เหมาะสม (ที่นั่นจะมีให้สำหรับคำสั่งเคอร์เนล)

สำหรับระบบการคอมไพล์คำสั่งต่อไปนี้จะได้รับการแนะนำ

# ทำ DEP; ทำความสะอาด; ทำ bzlmage; ทำโมดูล; ทำให้โมดูล__Install

แต่ละคำสั่ง make สามารถป้อนแยกต่างหากหลังจากเสร็จสิ้นก่อนหน้านี้

หลังจากป้อนคำสั่งเหล่านี้สตริงที่มีคำอธิบายของไดเรกทอรีจะปรากฏบนหน้าจอที่มีการวาดโปรแกรมสร้างขึ้นเริ่มต้นคอมไพเลอร์ GCC เพื่อรวบรวมไฟล์ไฟล์ต้นฉบับต่าง ๆ และเลย์เอาต์ของบล็อกต่าง ๆ แต่ละคำสั่งเหล่านี้จะต้องดำเนินการไม่กี่นาที

ตอนนี้คุณสามารถสร้างดิสก์สำหรับบูตสำหรับเคอร์เนลใหม่โดยใช้คำสั่ง

ก่อนที่จะดำเนินการคำสั่งนี้ให้ใส่ฟลอปปี้ดิสก์ที่ฟอร์แมตไปยังไดรฟ์ ดิสก์สำหรับบูตพร้อมจะต้องมีประสบการณ์ รีสตาร์ทคอมพิวเตอร์โดยไม่ต้องถอดดิสเก็ตต์ออกจากไดรฟ์

หลังจากดำเนินการคำสั่งคอมไพล์เคอร์เนลและกลับไปที่พรอมต์คำสั่งซึ่งเป็นแกนหลักใหม่สร้างขึ้น ในการดาวน์โหลดระบบด้วยแกนใหม่จะต้องย้ายไปยังไดเรกทอรีมาตรฐานที่จะเรียกใช้ สิ่งนี้ทำโดยการเข้าร่วมทีม

# cp /usr/src/linux-2.4.2/arch/i386/boot/bzlmage /boot/vmlinuz-2.4.2-2

สุดท้ายเพื่ออัปเดตการ์ดดาวน์โหลดให้เรียกใช้คำสั่ง Lilo:

ในชื่อของรูปภาพที่คัดลอก ortered คุณสามารถระบุหมายเลขเวอร์ชัน เป็นสิ่งสำคัญที่ชื่อของไฟล์นี้ตรงกับชื่อที่ระบุในไฟล์ /etc/lilo.conf

ทดสอบแกนใหม่

หลังจากย้ายไฟล์เคอร์เนลใหม่ไปยังไดเร็กทอรีมาตรฐาน (ระบุในไฟล์ Lilo Conf) ระบบสามารถรีบูตได้ด้วยแกนกลางนี้

ทันทีหลังจากรีบูตตรวจสอบการดำเนินงานของกองทุนใหม่ที่ครอบคลุมการคอมไพล์ใหม่ คุณสามารถทำตามขั้นตอนต่อไปนี้

การเปรียบเทียบปริมาตรของแกนเก่าและแกนใหม่ คุณควรตรวจสอบจำนวนหน่วยความจำที่ถูกครอบครองโดยระบบปฏิบัติการโดยป้อนคำสั่งฟรี

การติดตั้งระบบไฟล์หรือความพยายามในการเข้าถึงอุปกรณ์โดยไม่ต้องโหลดโมดูลเคอร์เนลเพื่อรองรับ (หากการสนับสนุนของอุปกรณ์นี้ถูกสร้างขึ้นในเคอร์เนล)

การใช้ทรัพยากรเครือข่าย (เช่นนามแฝง IP) หายไปในแกนก่อนหน้า

คุณอาจต้องตรวจสอบไทม์ไลน์ของไฟล์เคอร์เนลปัจจุบัน เมื่อต้องการทำเช่นนี้ให้ป้อนคำสั่ง Uname สิ่งนี้ช่วยให้คุณมั่นใจได้ว่าในขณะนี้ระบบทำงานกับเคอร์เนลที่คอมไพล์ใหม่ ฉลากเวลาและวันที่ของเคอร์เนลต้องตรงกับเวลาที่ได้รับการสืบค้น

หากการตอบสนองของคำสั่ง uname แสดงให้เห็นว่าระบบไม่ได้รับการโหลดด้วยแกนใหม่แยกย้ายกันไปพร้อมกับ Lilo System Loader ตรวจสอบว่าชื่อของเคอร์เนลที่โหลดถูกระบุอย่างถูกต้องในไฟล์ /etc/lilo.conf หรือไม่

ดูเพิ่มเติม:

การรวบรวมและติดตั้งเคอร์เนล Linux จากแหล่งที่มาใน Debian

วัสดุจากกลุ่มผู้ใช้ Bryansk Linux และ www.rm.pp.ru

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

  1. บันทึก
  2. วิธีก่อน สร้างแพ็คเกจ Kernel V.DEB
  3. เรากำหนดแพทช์
  4. การกำหนดค่านิวเคลียส
  5. การรวบรวมเคอร์เนล
  6. การติดตั้งนิวเคลียสใหม่
  7. วิธีการที่สอง วิธี "ดั้งเดิม"
  8. ปัญหา
  9. ลิงค์

บันทึก

สองวิธีในการประกอบเคอร์เนลจะอธิบาย ที่แรกจะได้รับการอธิบายตัวเลือกแอสเซมบลีแพ็กเก็ต DEB ที่สามารถติดตั้งในระบบของคุณหรืออื่น ๆ

วิธีที่สองซึ่งเรียกว่าเส้นทาง "ดั้งเดิม" ที่เรียกว่า

วิธีก่อน สร้างแพ็คเกจ Kernel V.DEB

การติดตั้งแพ็คเกจการรวบรวมเคอร์เนลที่จำเป็น

วิธีเริ่มต้นด้วยรายการอัปเดตแพคเกจ:

# apt-get update

เราติดตั้งแพคเกจที่เราต้องการ:

# apt-get ติดตั้งเคอร์เนลแพคเกจ libncurses5-dev fakeroot wget bzip2 build-ensential

ดาวน์โหลดซอร์สโค้ดของนิวเคลียส

ไปที่ไดเรกทอรี / usr / src เราไปที่ www.kernel.org และเลือกเคอร์เนลรุ่นที่ต้องการ ในกรณีนี้เวอร์ชั่นของ Linux-2.6.23.1.tar.bz2 จะได้รับการพิจารณา ดาวน์โหลด:

# cd / usr / src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2

คลายแหล่งที่มาและสร้างลิงค์สัญลักษณ์:

# tar xjf linux-2.6.23.1.tar.bz2 # rm linux (ลบ simlink ก่อนหน้า) # ln -s linux-2.6.23.1 linux # cd / usr / src / linux

แพทช์ออกนอกบ้าน

ตัวเลือกและไม่ต้องทำเช่นนี้!

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

ดังนั้นสมมติว่าคุณดาวน์โหลดแพทช์ที่จำเป็น (ตัวอย่างเช่นลอง patch.bz2) ใน / usr / src ใช้โปรแกรมแก้ไขที่ดาวน์โหลดไปยังแหล่งข้อมูลของเรา (คุณต้องอยู่ในไดเรกทอรี / usr / src / linux):

# bzip2 -dc /usr/src/patch.bz2 | PATCH -P1 -DRY-RUN # BZIP2 -DC /USR/SRC/PATCH.BZ2 | Patch -P1

คำสั่งแรกเป็นเพียงการทดสอบและไม่มีการเปลี่ยนแปลงใด ๆ ที่จะนำไปใช้กับแหล่งที่มา หากไม่มีการออกข้อผิดพลาดหลังจากคำสั่งแรกคุณสามารถเรียกใช้คำสั่งที่สองสำหรับการใช้งานแพตช์ ในกรณีที่ไม่มีการตอบสนองคำสั่งที่สองหากมีการออกข้อผิดพลาดหลังจากแรก!

ดังนั้นคุณสามารถกำหนดแพทช์บนซอร์สโค้ดของเคอร์เนล ตัวอย่างเช่นมีคุณสมบัติบางอย่างที่มีอยู่ที่เคอร์เนล 2.6.23.8 เท่านั้นและแหล่งที่มาไม่มีฟังก์ชั่นที่จำเป็น แต่แพทช์แพทช์ -2.6.23.8.bz2 จะเปิดตัว คุณสามารถใช้โปรแกรมแก้ไขนี้กับซอร์สโค้ดของแกนกลาง 2.6.23 แต่ไม่ใช่ 2.6.23.1 หรือ 2.6.23.3 ฯลฯ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้เพื่อ:

การสำรวจ (prepartchi) - เทียบเท่ากับการเผยแพร่อัลฟ่า; ต้องใช้แพทช์กับแหล่งที่มาของการเปิดตัวก่อนหน้านี้อย่างสมบูรณ์ด้วยรุ่น 3 หลัก (ตัวอย่างเช่นแพทช์ 2.6.12-RC4 สามารถใช้กับซอร์สโค้ดของเวอร์ชัน 2.6.11 แต่ไม่ใช่รุ่น 2.6.11.10)

ซึ่งหมายความว่าถ้าเราต้องการรวบรวมเคอร์เนล 2.6.23.8 จำเป็นต้องดาวน์โหลดแหล่งที่มา 2.6.23 แหล่งที่มา (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23 tar.gz) ที่ใช้ในวิธีที่สอง "Traditonal" วิธี!

เราใช้แพทช์ -2.6.23.8.bz2 กับเคอร์เนล 2.6.23:

# cd / usr / src # wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.22.8.bz2 # cd / usr / src / linux # bzip2 -dc / usr / SRC / PATCH-2.6.23.8.BZ2 | Patch -p1 -dry-run # bzip2 -dc /usr/src/patch-2.6.23.8.bz2 | Patch -P1

การกำหนดค่านิวเคลียส

ความคิดที่ดีคือการใช้ไฟล์การกำหนดค่าที่มีอยู่ของแกนกลางทำงานและสำหรับใหม่ ดังนั้นคัดลอกการกำหนดค่าที่มีอยู่ใน / usr / src / linux:

# ทำความสะอาด && ทำ mrproper # cp / boot / config-`uname -r` ./.config

# ทำ menuconfig

หลังจากนั้นเมนูการกำหนดค่าหลักคือการบูต เลือกในเมนูการกำหนดค่า "โหลดไฟล์การกำหนดค่าสำรอง" และคลิก "ตกลง" จากนั้น (ถ้าจำเป็น) ทำการเปลี่ยนแปลงที่จำเป็นในการกำหนดค่าเคอร์เนลที่เคลื่อนที่ไปรอบ ๆ เมนู (รายละเอียดของการกำหนดค่าเคอร์เนลสามารถพบได้ใน www.google.com) เมื่อคุณเสร็จสิ้นและกด "EXIT" คำถามจะถูกถาม "คุณต้องการบันทึกเคอร์เนลใหม่ของคุณหรือไม่" เราตอบการติดตัว "ใช่"

เราเก็บเคอร์เนลลินุกซ์

การรวบรวมเคอร์เนล

แอสเซมบลีเคอร์เนลดำเนินการในสองทีมเท่านั้น:

# make-kpkg clean # fakeroot make-kpkg -initrd -apppend-to-version \u003d -cycybermind kernel_image kernel_headers

หลังจาก -append-to-version \u003d คุณสามารถเขียนชื่อใด ๆ สิ่งที่คุณต้องการ แต่ควรเริ่มต้นด้วยเครื่องหมายลบ (-) และไม่มีช่องว่าง

กระบวนการรวบรวมและประกอบแพคเกจ. DEB สามารถยุ่งได้ค่อนข้างนาน ทุกอย่างจะขึ้นอยู่กับการกำหนดค่าของเคอร์เนลและความสามารถของโปรเซสเซอร์ของคุณ

การแก้ปัญหาด้วยการสร้าง initrd.img

เมื่อเร็ว ๆ นี้ Debian ปรากฏตัวใน Debian ซึ่งประกอบด้วยในความจริงที่ว่าการติดตั้งแพ็กเก็ตด้วยวิธีการที่อธิบายไว้ในที่นี้ไฟล์ / Boot/initrd.img ไม่ปรากฏขึ้น สำหรับการแก้ไขที่เกี่ยวข้องกับเคอร์เนลที่ติดตั้งไว้แล้วจำเป็นต้องสร้าง initrd.img ด้วยตนเอง:

update-initramfs -c -k<полная-версия-ядра>

ในการแก้ปัญหา "สำหรับอนาคต" - เพื่อแสดงความคิดเห็นดังที่แสดงเป็นที่สองของแถวที่ยกมาด้านล่างในไฟล์ /etc/kernel/postinst.d/initramfs-tools:

# แพ็คเกจเคอร์เนลผ่าน arg เพิ่มเติม; แฮ็คที่จะไม่ทำงานภายใต้ Kernel-Package # [-z "$ 2"] || ออก 0

การติดตั้งนิวเคลียสใหม่

เมื่อแอสเซมบลีเคอร์เนลเสร็จสมบูรณ์แล้วแพ็คเก็ต Two.deb จะถูกสร้างขึ้นในไดเรกทอรี / usr / src:

# cd / usr / src # ls -l

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.custom_i386.deb - จริง ๆ แล้วแกนจริงและส่วนหัว Linux-2.6.23.1-CyberMind_2.6.23.1-cybermind-10.00.custom_i386.deb - หัวข้อ เคอร์เนลที่จำเป็นในการสร้างโมดูลอื่น ๆ (ตัวอย่างเช่นเมื่อประกอบโมดูลไดรเวอร์ NVIDIA) ติดตั้ง:

# dpkg -i linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.custom_i386.deb # dpkg -i linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.custom_i386.deb

(แพ็คเก็ตเหล่านี้สามารถติดตั้งบนระบบอื่นและรวบรวมได้อีกครั้งจะไม่จำเป็น)

ทั้งหมดการติดตั้งเสร็จสมบูรณ์เมนู bootloader การตั้งค่าดิสก์ RAM ใหม่และเคอร์เนลจะทำโดยอัตโนมัติ มันยังคงเป็นเพียงการรีบูต:

วิธีการที่สอง วิธี "ดั้งเดิม"

เราดำเนินการรายการทั้งหมดที่อธิบายไว้ข้างต้นก่อนรายการ "การรวบรวมหลัก"

# ทำให้ # ทั้งหมดทำ modules_install # ทำการติดตั้ง

ตามปกติการชุมนุมอาจใช้เวลานานขึ้นอยู่กับการกำหนดค่าของเคอร์เนลและความสามารถในการประมวลผล

ข้อเสียเปรียบหลักของวิธีนี้คือถ้าคุณมักจะอัพเดทเคอร์เนลหลังจากนั้นไม่นานพวกเขาจะสะสมจำนวนมากและต้องการลบที่ไม่ได้ใช้ เพื่อให้ง่ายขึ้นคุณสามารถรวบรวมเคอร์เนลและไฟล์อื่น ๆ ที่ติดตั้งในคำสั่ง "สร้างโมดูล 50install" และ "สร้างติดตั้ง" ในแพ็คเกจ Deb (หรือมากกว่าสองจากเคอร์เนล 2.6.27) คล้ายกับวิธีแรก แต่เราใช้สคริปต์ที่นี่ของนิวเคลียส:

# ทำ # ทั้งหมดทำ deb-pkg

ไฟล์ two.deb จะปรากฏในไดเรกทอรีที่ระดับของไดเร็กทอรีแหล่งที่มา ฉันรวบรวมเคอร์เนลในแคตตาล็อก /usr/src/linux-2.6.27.10 และฉันมีไฟล์ในไดเรกทอรี / usr / src

# Linux-2.6.27.10_2.6.27.10-1_amd64.deb # Linux-Firmware-image_2.6.27.10-1_all.deb

เคอร์เนลติดตั้งโดยทีมงาน

# dpkg -i linux-2.6.27.10_2.6.27.10-1_amd64.deb

เคอร์เนลเก่าสามารถลบได้ตัวอย่างเช่นจาก Synaptic'a

ขั้นตอนถัดไป

เคอร์เนลประกอบและติดตั้ง แต่ตอนนี้มีความจำเป็นต้องสร้างดิสก์ RAM (โดยไม่ต้องใช้เคอร์เนลเพียงแค่บูต) และคุณต้องอัปเดตตัวโหลด Grub ในการทำเช่นนี้ทำสิ่งต่อไปนี้:

# depmod 2.6.23.1 # apt-get ติดตั้ง yaird

ติดตั้งไดรฟ์ RAM:

# mkinitrd.yaird -o /boot/initrd.img-2.6.23.1 2.6.23.1

อัปเดตตัวโหลดได้อย่างง่ายดายและเจ็บปวด:

ทุกอย่าง Bootloader และเคอร์เนลใหม่พร้อมใช้งานเพียงเพื่อรีบูต:

ปัญหา

หากหลังจากการรีบูตเคอร์เนลใหม่ที่คุณเลือกจะไม่โหลดรีบูตและเลือกเคอร์เนลก่อนหน้าของคุณและคุณสามารถลองทำกระบวนการทั้งหมดอีกครั้งเพื่อประกอบการทำงานหลัก อย่าลืมในกรณีนี้ให้ลบเส้นของเคอร์เนลที่ไม่ทำงานใน /boot/grub/menu.lst

การรวบรวมเคอร์เนล Linux

ทำไมต้องรวบรวมเคอร์เนลโดยทั่วไป
บางทีคำถามหลักที่ถามเกี่ยวกับการรวบรวมแกนกลาง: "ทำไมฉันต้องทำสิ่งนี้"
หลายคนคิดว่ามันเป็นเวลาที่ไม่มีความหมายเพื่อแสดงให้เห็นว่าตัวเองฉลาดและสูง "Linuxoid" ในความเป็นจริงการรวบรวมหลักเป็นสิ่งที่สำคัญมาก สมมติว่าคุณซื้อแล็ปท็อปใหม่ที่เว็บแคมของคุณไม่ทำงาน การกระทำของคุณ? คุณดูเครื่องมือค้นหาและค้นหาวิธีแก้ไขปัญหาเกี่ยวกับปัญหานี้ บ่อยครั้งที่มันอาจกลายเป็นเว็บแคมของคุณทำงานบนเคอร์เนลของรุ่นที่ใหม่กว่าของคุณ หากคุณไม่ทราบว่าเวอร์ชันใดที่คุณมี - ป้อนในเทอร์มินัล Uname -r คุณจะได้รับรุ่นของเคอร์เนล (ตัวอย่างเช่น Linux-2.6.31-10) นอกจากนี้การรวบรวมเคอร์เนลที่ใช้กันอย่างแพร่หลายเพื่อเพิ่มผลผลิต: ความจริงก็คือโดยค่าเริ่มต้นในเคอร์เนลการแจกแจง "สำหรับทุกคน" ถูกรวบรวมด้วยเหตุนี้จึงมีไดรเวอร์จำนวนมากที่คุณอาจไม่ต้องการ ดังนั้นหากคุณรู้ว่าฮาร์ดแวร์ใช้งานได้ดีคุณสามารถปิดไดรเวอร์ที่ไม่จำเป็นได้ที่ขั้นตอนการกำหนดค่า

นอกจากนี้ยังเป็นไปได้ที่จะเปิดใช้งานการสนับสนุนสำหรับแรมมากกว่า 4 กิกะไบต์โดยไม่ต้องเปลี่ยนบิตของระบบ ดังนั้นหากคุณยังจำเป็นต้องมีเคอร์เนลของคุณเองลองเริ่มรวบรวม!

การได้รับรหัส Coder แหล่งที่มา
สิ่งแรกที่ต้องทำคือการได้รับซอร์สโค้ดของเคอร์เนลที่ต้องการ มักจะจำเป็นต้องได้รับรุ่นที่เสถียรใหม่ล่าสุด เคอร์เนลรุ่นอย่างเป็นทางการทั้งหมดมีอยู่ใน Kernel.org หากคุณมี X Server (Home Computer) แล้วคุณสามารถไปที่ไซต์ในเบราว์เซอร์ที่คุณชื่นชอบและดาวน์โหลดเวอร์ชันที่ต้องการใน Archive Tar.gz (บีบอัด GZIP) หากคุณทำงานในคอนโซล (ตัวอย่างเช่นคุณยังไม่ได้ติดตั้ง X Server หรือกำหนดค่าเซิร์ฟเวอร์) คุณสามารถใช้เบราว์เซอร์ข้อความ (ตัวอย่างเช่น Elinks) คุณยังสามารถใช้ Download Manager มาตรฐาน WGG:
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.1.tar.gz
แต่โปรดทราบว่าคุณควรทราบหมายเลขที่แน่นอนของรุ่นที่ต้องการ

การแกะสลักที่ซอร์สเดิมออกมา
หลังจากที่คุณได้รับการเก็บถาวรด้วยซอร์สโค้ดคุณต้องแกะคลังเก็บถาวรไปยังโฟลเดอร์ สิ่งนี้สามารถทำได้จากผู้จัดการไฟล์กราฟิก (Dolphin, Nautilus ฯลฯ ) หรือผ่าน MC หรือใช้ทีม TAR แบบดั้งเดิม:
tar -zxvf path_do_arhiva
ตอนนี้คุณมีโฟลเดอร์และซอร์สโค้ดให้ไปที่เธอโดยใช้ CD Command Directory_Set_ader (เพื่อดูรายการไดเรกทอรีในโฟลเดอร์ให้ใช้คำสั่ง LS)

การกำหนดค่าหลัก
หลังจากที่คุณย้ายไปที่ไดเรกทอรีด้วยซอร์สโค้ดของเคอร์เนลคุณต้องทำการกำหนดค่าเคอร์เนล "20 นาที" เป้าหมายคือการออกจากไดรเวอร์และฟังก์ชั่นที่จำเป็นเท่านั้น คำสั่งทั้งหมดจะต้องดำเนินการในนามของ superuser

ทำให้การกำหนดค่า - โหมดคอนโซล Configurator

ทำให้ Menuconfig - โหมดคอนโซลเป็นรายการ

ทำให้ Xconfig - โหมดกราฟิก

หลังจากทำการเปลี่ยนแปลงที่จำเป็นให้บันทึกการตั้งค่าและออกจากตัวกำหนดค่า

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

การกำหนดค่าและการรวบรวมเคอร์เนล Linux

เคอร์เนลถูกตั้งค่า หากต้องการปรากฏในรายการ Grub (2) ให้ป้อน (จาก SuperUser)
อัปเดตด้วง
ตอนนี้หลังจากรีบูตแล้วคลิก "หลบหนี" และคุณจะเห็นเคอร์เนลใหม่ในรายการ หากเคอร์เนลไม่เปิดใช้งานเพียงแค่บูตด้วยแกนเก่าและกำหนดค่าให้แม่นยำยิ่งขึ้น

Kernelcheck - การรวบรวม Corps โดยไม่ต้องเข้าสู่คอนโซล
Kernelcheck ช่วยให้คุณรวบรวมเคอร์เนลในโหมดกราฟิกอย่างเต็มที่ สำหรับ Debian และขึ้นอยู่กับการแจกแจงไอที. หลังจากเริ่มต้น Kernelcheck จะนำเสนอเคอร์เนลและแพทช์เวอร์ชันใหม่และหลังจากความยินยอมของคุณดาวน์โหลดซอร์สโค้ดเริ่มต้นการกำหนดค่าแบบกราฟิก โปรแกรมจะรวบรวมเคอร์เนลของแพ็คเกจ V.DEB และจะสร้างพวกเขา คุณจะรีบูตเท่านั้น

ที่เก็บของบทความ:
พฤษภาคม 2560
มีนาคม 2560
เมษายน 2559
มีนาคม 2559
ตุลาคม 2013
กันยายน 2013
พฤษภาคม 2013
มีนาคม 2013
พฤศจิกายน 2012
กรกฎาคม 2555
มิถุนายน 2555
เมษายน 2012
มีนาคม 2012
กุมภาพันธ์ 2555
เมษายน 2011
มีนาคม 2011
กุมภาพันธ์ 2554
มกราคม 2554
ธันวาคม 2010
พฤศจิกายน 2010
ตุลาคม 2010
กันยายน 2010
สิงหาคม 2010
กรกฎาคม 2010
มิถุนายน 2010
พฤษภาคม 2010
เมษายน 2010
มีนาคม 2010

สุ่ม:

Aurorae: เครื่องยนต์ตกแต่งเครื่องยนต์สำหรับ KDE

SBLOG จะถูกเขียนใหม่ใน. NET

Linuxnow.ru: แผนการสำหรับอนาคต

bolgenos ปฏิเสธ "TeaCon"

การลดลงอย่างรวดเร็ว Grub 2

ซอฟต์แวร์ฟรีและกองทุน Piggyback

เพื่อนร่วมงาน: ทั้งหมด
ลินุกซ์สำหรับทุกคน

แบนเนอร์ของเรา:


ติดตั้งแบนเนอร์

สร้างเคอร์เนล Linux
สวัสดีผู้อ่านที่รัก วันนี้ฉันจะบอกคุณเกี่ยวกับบทเรียนที่น่าสนใจเช่นนี้ เป็นแอสเซมบลีเคอร์เนลลินุกซ์. ทำไมคุณต้องประกอบเคอร์เนล? ในความเป็นจริงเหตุผลอาจเป็นจำนวนมาก: ต้องใช้ความสามารถหลักเพิ่มเติมเพิ่มประสิทธิภาพเคอร์เนลภายใต้คอมพิวเตอร์ของคุณอัปเดตเคอร์เนลเป็นเวอร์ชันล่าสุด ในบทความนี้ฉันจะแสดงให้เห็นถึงกระบวนการของการได้รับซอร์สโค้ดการตั้งค่าการรวบรวมและการติดตั้งในระบบเคอร์เนล Linux ซึ่งเป็นส่วนหนึ่งของการแก้ปัญหาการรวมในเคอร์เนล Cryptoloop Support Kernel (อุปกรณ์เข้ารหัสแบบวนซ้ำ)

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

Apt-Cache Search Linux-Source

คำสั่งจะแสดงรายการแพ็คเกจที่มีอยู่:


อย่างที่คุณเห็นฉันมีแพ็คเกจที่มีเวอร์ชันปัจจุบันและแพคเกจที่มีเวอร์ชัน 3.5 (ในความเป็นจริงรุ่นปัจจุบันของนิวเคลียสยัง 3.5) ขยายรายการของแกนที่มีอยู่ในลักษณะนี้มันคุ้มค่าที่จะเชื่อมต่อที่เก็บเพิ่มเติม รับเคอร์เนลที่เราสามารถสั่ง: sudo apt-get ติดตั้ง linux-source

linux-Source - ชื่อของแพ็คเกจที่มีรหัสต้นฉบับในกรณีของคุณอาจแตกต่างกัน
หลังจากเสร็จสิ้นคำสั่งไฟล์ในไดเรกทอรี / usr / src จะปรากฏขึ้นในกรณีของฉัน - Linux-Source-3.5.0.tar.bz2 เราหันไปหาโฟลเดอร์ให้แกะที่เก็บถาวรและเพื่อความสะดวกในการสร้างลิงค์สัญลักษณ์:

ซีดี / USR / SRC Sudo Tar -xjvf Linux-Source-3.5.0.tar.bz2 sudo ln -s linux-source-3.5.0 linux

หากคุณต้องการ Core เวอร์ชันล่าสุดคุณสามารถดาวน์โหลดได้จากเว็บไซต์ Kernel.org เป็นที่น่าสังเกตว่าเว็บไซต์ถูกวางไว้เป็นรุ่นที่เสถียรของคอร์และรุ่นที่มีไว้สำหรับการทดสอบและการปรับแต่ง (โดยปกติจะมีตัวย่อ "RC" ในชื่อของพวกเขา - ปล่อยผู้สมัคร) หากคุณไม่ต้องการปัญหาที่ไม่จำเป็นกับระบบฉันแนะนำให้คุณดาวน์โหลดเวอร์ชันที่เสถียร:

บันทึกแหล่งที่มาที่เก็บถาวรไปยังโฟลเดอร์ / USR / SRC หากต้องการแกะคลังเก็บผลลัพธ์คุณอาจต้องติดตั้งโปรแกรมอรรถประโยชน์เพิ่มเติม:

sudo apt-get ติดตั้ง xz-utils

ตอนนี้เช่นเดียวกับในกรณีที่โหลดเคอร์เนลจากที่เก็บเราต้องแกะที่เก็บถาวรด้วยแหล่งที่มาและสร้างลิงค์:

ซีดี / usr / src sudo tar -xpjf linux-3.8.5.tar.xz sudo ln -s linux-3.8.5.tar.xz ลินุกซ์

การกำหนดค่าและการรวบรวม
ดังนั้นเรามาที่น่าสนใจที่สุด ก่อนที่คุณจะเริ่มตั้งค่าแพ็คเกจเพิ่มเติมหลายแพ็คเกจ:

Sudo Apt-Get ติดตั้ง Build-Essential Kernel-Package LibnCurses-Dev

เราจะสร้างการกำหนดค่าใหม่ตามหลักที่ระบบใช้ในขณะนี้:

ซีดี / USR / SRC / Linux Sudo ทำให้ Oldconfig

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

sudo ทำ menuconfig

เทอร์มินัลจะเริ่มโปรแกรมการกำหนดค่า:

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

เราพบพารามิเตอร์ "Cryptoop Support" ถัดจากนั้นมีตัวอักษร "M" ซึ่งหมายความว่าการรองรับอุปกรณ์เข้ารหัสจะถูกเพิ่มเป็นโมดูลเคอร์เนลที่สามารถเปิดใช้งานด้วยคำสั่ง modprobe เราควรได้รับการสนับสนุนสำหรับเทคโนโลยีนี้โดยตรงในเคอร์เนลเพื่อให้ได้รับการสนับสนุนเสมอ เราแปลโฟกัสไปยังพารามิเตอร์ "การสนับสนุน Cryptoop" และคลิกที่ช่องว่าง ตัวอักษร "M" ควรเปลี่ยนสัญลักษณ์ "*" ซึ่งหมายความว่าการสนับสนุนของเทคโนโลยีนี้จะเป็น "เย็บ" ในเคอร์เนล ข้อควรระวังพื้นที่หมายความว่าเทคโนโลยีจะไม่ได้รับการสนับสนุนโดยทั่วไป

คลิกปุ่ม "แท็บ" แล้วคลิกที่ปุ่ม "ออก" จนกว่าคำขอการเปลี่ยนแปลงจะปรากฏขึ้น:

ตอบสนอง "ใช่" เราประสบความสำเร็จในการกำหนดค่าเสร็จสมบูรณ์!
เราเริ่มรวบรวม ก่อนอื่นให้ลบไฟล์ที่ยังคงอยู่จากชุดประกอบก่อนหน้านี้หากคุณเรียกใช้แอสเซมบลีเป็นครั้งแรกในการดำเนินการคำสั่งนี้เป็นตัวเลือก: Sudo Make-KPKG สะอาด

เรียกใช้การรวบรวม:

sudo make-kpkg -j4 --initrd - แอพพลิเคชั่น \u003d -mykernel kernel_image kernel_headers

J4 - ธงบ่งชี้ว่ามีการใช้ลำธารเท่าไหร่ในการรวบรวม ช่วยให้คุณเร่งการรวบรวมในโปรเซสเซอร์แบบมัลติคอร์ได้อย่างรวดเร็ว รูปที่ 4 หมายถึง 4 เธรด ใส่ลำธารจำนวนมากมีกี่แกนของโปรเซสเซอร์ "เห็น" ระบบ
-Mykernel - คำนำหน้าแสดงให้เห็นว่าเคอร์เนลถูกรวบรวมด้วยตนเองคุณสามารถเปลี่ยนได้ในความเป็นจริงมันจะไม่ส่งผลกระทบต่ออะไรเลย

ดังนั้นกระบวนการรวบรวมเริ่มขึ้น อาจใช้เวลา 10 นาทีมากถึงหลายชั่วโมงขึ้นอยู่กับประสิทธิภาพที่คุณมี:

การติดตั้งเคอร์เนลเข้าสู่ระบบ

หลังจากเสร็จสิ้นการรวบรวมในไดเรกทอรี / USR / SRC ไฟล์สองไฟล์ควรปรากฏขึ้นพร้อมกับส่วนขยาย "Deb" พวกเขาเป็นแพ็คเกจการติดตั้งของเคอร์เนลใหม่ของเราและคุณสามารถติดตั้งได้โดยใช้ยูทิลิตี้ DPKG:

sudo dpkg -i linux-image-3.8.5-mykernel_3.8.5-mykernel-10.00.custom_i386.deb
sudo dpkg -i linux-headers-3.8.5-mykernel_3.8.5-mykernel-10.00.custom_i386.deb

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

ข้อมูลที่มีอยู่เกี่ยวกับการประกอบของนิวเคลียสจะแตกต่างกันมากดังนั้นเราจะอธิบายการชุมนุมของเคอร์เนลสำหรับ Ubuntu เราจะลอง ในคำสั่งที่เขียนในบทความนี้ไม่มีข้อผิดพลาด เมื่ออธิบายถึงกระบวนการรวบรวมเราจะไม่อยู่ในใบเสร็จรับเงินของเคอร์เนลเท่านั้น รับเคอร์เนลที่ทำงานได้ไม่เพียงพอ สำหรับผู้ถือบัตร NVIDIA จะมีคำอธิบายวิธีการรับระบบที่มีตารางการทำงานบนแกนใหม่ ยิ่งกว่านั้นกราฟิกจะทำงานทั้งในแกนกลางและใหม่

1. การติดตั้งแหล่งที่มาของเคอร์เนล

ในขั้นต้นเราต้องการแหล่งที่มาของเคอร์เนล สำหรับ Ubuntu 7.04 ในที่เก็บพวกเขามีอยู่แล้วคุณต้องหาแพ็คเกจ linux-source-source (ในกรณีของเรามันจะเป็น linux-Source-2.6.20) และติดตั้ง (ทั้งหมดนี้สามารถทำได้ผ่าน synaptic. หลังจากติดตั้งพันธสัญญานี้ในแคตตาล็อก usr / src ชื่อไฟล์จะปรากฏขึ้น linux-Source-2-6-20.tar.bz2.

เราทำภายใต้ sudo. ทีม

chmod 777 / usr / src

มาในผู้ใช้ทั่วไปในแคตตาล็อก usr / src และแกะไฟล์นี้

tar -jxvf linux-source-2-6-20.tar.bz2

ไดเรกทอรีแหล่งที่มาจะปรากฏขึ้น / usr / src / linux-source-2-6-20. ฉันลบไฟล์เก็บถาวร (คุณต้องมีสิทธิ์รูท)

2. การติดตั้งแพ็คเกจประกอบ

สำหรับการชุมนุมคุณจะต้องมีแพ็คเกจเพิ่มเติม เคอร์เนลแพ็คเกจ, libncurses5-dev, fakedoot. ติดตั้งผ่าน synaptic. แน่นอนว่าคอมไพเลอร์จะต้องติดตั้งในระบบด้วย gCC และ dev-Pockets สำหรับไลบรารีระบบเช่น libc6-dev.

3. การสร้างไฟล์คอนฟิกูเรชันเคอร์เนล

ตอนนี้เราต้องการการกำหนดค่าเคอร์เนลที่รวบรวมแกนกลางสำหรับ Ubunti ไปที่แคตตาล็อก / บูตและดูไฟล์ประเภทที่นั่น config-2.6.20-15-generic. เขาต้องการ คัดลอกไปยังไดเรกทอรีด้วยแหล่งที่มา / usr / src / linux-source-2-6-20 และเปลี่ยนชื่อเป็น .config. โปรดทราบว่าชื่อไฟล์เริ่มจากจุดมันไม่ใช่การพิมพ์ผิด

ตอนนี้อยู่ในแคตตาล็อก / usr / src / linux-source-2-6-20ให้ภายใต้ทีมผู้ใช้ทั่วไป

สิ่งนี้จะเริ่มต้นอินเตอร์เฟสการตั้งค่าเคอร์เนล นอกจากนี้คุณยังสามารถเริ่มการตั้งค่าในโหมดกราฟิก

ในทั้งสองกรณีการรบกวน interfichk จะเปิดขึ้นซึ่งคุณกำหนดค่าเคอร์เนล ดูเหมือนว่าเป็นค่าเริ่มต้นและไฟล์จะเปิดขึ้น .configซึ่งปัจจุบันและมีการกำหนดค่า Ubunti Core มาตรฐาน

สิ่งที่คุณต้องการจบ - คิดด้วยตัวเองในปัญหานี้ในอินเทอร์เน็ตมีเอกสารที่ใช้พูดภาษารัสเซียมากมาย งานของบทความนี้รวมถึงคำอธิบายของการกระทำที่ดำเนินการโดยการรวบรวมเคอร์เนล Ubuntu

ในตอนท้ายของการกำหนดค่าเลือกรายการ "บันทึก Correat" ให้ระบุชื่อไฟล์อื่นที่ไม่ใช่ .config, เช่น .config_my_01. เราออกไป

เปลี่ยนชื่อตอนนี้ .config ใน .config_ubuntu. และคุณมีสองไฟล์ - .config_ubuntu และ .config_my_01. คุณสามารถเห็นความแตกต่างระหว่างมาตรฐานและการกำหนดค่าของคุณเช่นดังนั้น

diff .config. config_my_01

ตอนนี้คัดลอกการกำหนดค่าของคุณ .config_my_01 ภายใต้ชื่อ .config. ที่. คุณจะมีไฟล์กำหนดค่า 3 ไฟล์ เมื่อการรวบรวมจะใช้ไฟล์ .config. ไฟล์ .config_ubuntu และ .config_my_01 เราจะช่วยในอนาคตสำหรับการรวบรวมใหม่ นี่เป็นกรณีที่แกนใหม่กลับกลายเป็นไม่สามารถใช้งานได้หรือรถบั๊กกี้

4. การรวบรวม

ก่อนการรวบรวมเราจะตรวจสอบการปรากฏตัวของพื้นที่ว่าง (ในส่วนที่ซอร์สโค้ดคือ) ดีจะล้าง 4-5GB (!) ในการสำรอง เมื่อรวบรวมขนาดของไดเรกทอรีที่มีแหล่งที่มาสามารถนำมาถึง 3,5GB. ตรวจสอบพื้นที่ว่างที่คุณสามารถสั่งได้

ตอนนี้อยู่ภายใต้ผู้ใช้ทั่วไปในแคตตาล็อก / usr / src / linux-source-2-6-20ให้ทีมที่ลบสิ่งอำนวยความสะดวกที่รวบรวมโดยใครบางคนในแหล่งที่มาซึ่งยังคงอยู่จากการรวบรวมครั้งก่อนและอยู่ในที่เก็บถาวร

จากนั้นผ่าน Sudo เราได้รับสิทธิของรูทและเปิดตัวการรวบรวม

make-kpkg --initrd --revision \u003d mybuild.1.0 kernel_image kernel_image

ที่ไหน " mybuild.1.0"เขียนสิ่งที่คุณต้องการประกาศตัวอักษรภาษาอังกฤษตัวเลขคะแนนความเครียดและไม่อนุญาตให้ใช้สัญลักษณ์ความเครียด

จริงๆแล้วในวิธีที่ดีการรวบรวมเคอร์เนลควรทำภายใต้สิทธิของผู้ใช้ปกติ อย่างเป็นทางการการสร้างไบนารีหลักไม่แตกต่างจากการรวบรวมไบนารีมากกว่าโปรแกรมอื่น ๆ แต่เราทำการรวบรวมที่ไม่ได้อยู่ในโหมดแมนนวล (ผ่านคำสั่งเช่น ทำให้โมดูล bzimage) และในกึ่งอัตโนมัติ (ผ่าน make-kpkg. และโปรแกรมนี้หลังจากผ่านการรวบรวมจะเรียกใช้โปรแกรมจาก dPKG-DEB ที่จะได้รับ dEB- แพ็คกับเคอร์เนล ที่นี่ ณ จุดนี้และด้านขวาของราก

ตอนนี้ลองคิดดูว่าทีมข้างต้นทำอะไร มันเริ่มต้นการรวบรวมเคอร์เนลแล้วสร้าง dEB-Packet ที่มีชื่อ linux-Image เวอร์ชัน. DEBซึ่งไบนารีหลักและโมดูลเคอร์เนลจะเป็น (สิ่งนี้จะทำเนื่องจากเป้าหมาย kernel_image. เช่นเดียวกับจะถูกสร้างขึ้น dEB-Packet ที่มีชื่อ linux-Headers เวอร์ชัน. DEBไฟล์ส่วนหัวของเคอร์เนลจะอยู่ในนั้น (สิ่งนี้จะต้องขอบคุณเป้าหมาย kernel_headers. แพคเกจที่ได้รับจะอยู่ในแคตตาล็อก usr / src.

ดูว่าไฟล์ใดอยู่ในเหล่านี้ dEB-Packs คุณสามารถ konqueror (ใน Kubuntu) โดยคลิกที่ปุ่มขวาบนที่ยอดเยี่ยม dEB- ทำความสะอาดและเลือก " เมนูแพ็คเกจ Kubuntu" -> "แสดงข้อมูลแพคเกจ". ข้อมูลจะเกิดขึ้นค่อนข้างช้าประมาณหนึ่งนาทีเนื่องจากแพ็คเกจขนาดใหญ่

5. การติดตั้งเคอร์เนล

ตอนนี้ติดตั้งเคอร์เนล การอยู่กับสิทธิ์ของ Superuser ในแคตตาล็อก usr / srcให้ทีมกันเถอะ

dPKG -i Linux-Image เวอร์ชัน. DEB

หลังจากที่เคอร์เนลของคุณ (ไฟล์ vmlinuz-2.6.20.3-Ubuntu1) จะถูกวางไว้ในแคตตาล็อก / บูต (เมล็ดก่อนหน้าทั้งหมดจะไม่ไปไหนก็จะอยู่ในสถานที่ของพวกเขา) และในแคตตาล็อก / lib / modulesใกล้แคตตาล็อกด้วยโมดูลของเคอร์เนลปกติ (ใน Ubuntu 7.04 เรียกว่า /lib/modules/2.6.20-15-Generic) ไดเรกทอรีจะปรากฏขึ้นพร้อมกับโมดูลของเคอร์เนลใหม่ของคุณ (ในกรณีของเรามันจะเป็น /lib/modules/2.6.20.3-ubuntu1. เคอร์เนลใหม่จะสะกดโดยอัตโนมัติ /boot/grub/menu.lst.

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

dpkg -i linux-headers-version.deb

ซึ่งจะติดตั้งเคอร์เนล Heders ในแคตตาล็อก USR / SRC / Linux-Headers-Versionในกรณีของเรามันจะเป็นแคตตาล็อก /usr/src/linux-headers-2.6.20.3-ubuntu1. Hedkers เหล่านี้จะต้องการตัวอย่างเช่นเพื่อคอมไพล์ไดรเวอร์ใหม่ nvidia สำหรับเคอร์เนลใหม่

6. รีสตาร์ท

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

แต่สำหรับการ์ดผู้ใช้ nvidiaผู้ใช้ไดรเวอร์ที่ติดตั้งผ่าน "ผู้จัดการไดรเวอร์ที่เป็นกรรมสิทธิ์" หรือใช้ไดรเวอร์จากแพ็คเกจ nvidia-glx (หรือที่นั่น nvidia-glx-new) ฉันให้การรับประกัน 99% ว่าคุณไม่โชคดี! และกราฟิกใต้แกนใหม่คุณจะไม่เห็น!

7. การติดตั้งไดรเวอร์ NVIDIA จาก NVIDIA.COM

ในการรับรถแท็กซี่ทำงานภายใต้แกนกลางใหม่สิ่งแรกที่อยู่ในใจคือการติดตั้งไดรเวอร์จากไซต์ NVIDIA.com ภายใต้เคอร์เนลใหม่ และนี่คือการตัดสินใจที่ผิด! ทันทีที่ติดตั้งฟืนภายใต้แกนใหม่กราฟิกในเคอร์เนลที่ได้รับการพิสูจน์แล้วของคุณจะหยุดทำงาน (เนื่องจากความจริงที่ว่าไฟล์ไดรเวอร์ NVIDIA ถูกเชื่อมโยงกับรุ่นและชื่อของเคอร์เนลอย่างแน่นหนา) และเนื่องจากประสิทธิภาพของเคอร์เนลใหม่คุณยังไม่ได้ตรวจสอบจริงๆคุณสามารถรับระบบ "ด้วยแกนพื้นเมืองของคุณ แต่ไม่มีกราฟิก" และ "Buggy Core แต่มีกราฟิก" ฉันคิดว่าสถานการณ์นี้ไม่เหมาะกับใครเลย

ในบทความยอดนิยม "ฟิสิกส์นิวเคลียร์สำหรับแม่บ้าน" มีคำแนะนำวิธีการรับตารางภายใต้ทั้งสองแกน มีการเสนอวิธีต่อไปนี้ - มีอยู่ในแพคเกจการติดตั้งเสร็จของฟืนด้วย NVIDIA.COM และหากคุณต้องการบูตภายใต้หลักที่ระบุคุณต้องบูตครั้งแรกในโหมดคอนโซลของเคอร์เนลนี้ตั้งค่าฟืนแล้วจากนั้นบู๊ต ละเอียด. ฉันคิดว่าวิธีนี้ยังทำให้ใครเล็ก ๆ น้อย ๆ

เราจะทำเช่นนั้นว่ากราฟิกจะทำงานในเคอร์เนลเก่าและในแกนใหม่และสำหรับสิ่งนี้คุณไม่จำเป็นต้องเริ่มการติดตั้ง (การรวบรวม) ของฟืนทุกครั้ง ในการทำเช่นนี้เราจะต้องปฏิบัติตามเงื่อนไขเดียวเท่านั้น - เพื่อให้ฟืนกราฟิกภายใต้นิวเคลียสที่แตกต่างกันเป็นรุ่นหนึ่ง

แผนปฏิบัติการสั้น ๆ - ใส่ฟืนจากเว็บไซต์ nvidia.com สำหรับเคอร์เนลมาตรฐานเต็มรูปแบบ เราเชื่อมั่นว่าพวกเขาทำงาน จากนั้นจากแพ็คเกจเดียวกันเราใส่ฟืนสำหรับเคอร์เนลโฮมเมด แต่ในโหมด "มีเพียงโมดูลกราฟิก"

8. การติดตั้งไดรเวอร์ NVIDIA ภายใต้เคอร์เนลปกติ

ทุกสิ่งที่เขียนด้านล่างเหมาะสำหรับผู้ที่ตัดสินใจติดตั้ง NVIDIA Firewood ใหม่ภายใต้เคอร์เนลมาตรฐาน!

ดาวน์โหลดจากเว็บไซต์ nvidia.com ฟืนภายใต้ Linuch ฉันส่ายเวอร์ชั่นฟืน 96.43 . ไฟล์เรียกว่า nvidia-linux-x86-96.43.01-pkg1.run. แต่คุณสามารถลองรุ่นที่เสถียรอื่น ๆ ที่มีอยู่ในเว็บไซต์ nvidia.

สำหรับการติดตั้งสร้างในแคตตาล็อก usr / src subdogatory ที่มีชื่อ nvidiaคัดลอกไฟล์นี้ที่นั่น อยู่ในไดเรกทอรีย่อยนี้ให้สิทธิ์การใช้งานไฟล์เพื่อดำเนินการ

chmod 777 nvidia-linux-x86-96.43.01-pkg1.run

ทั้งหมดในงานนี้ในส่วนต่อประสานกราฟิกสิ้นสุดลง ก่อนออกจากกราฟเปิดตัว synapticและทำให้แน่ใจว่าคุณมี

  • ความถนัด นี่คือเปลือกอินเทอร์เฟซเหนือตัวจัดการแพ็คเก็ตสำหรับโหมดข้อความ
  • linux-headers-2.6.20-15 นี่คือไฟล์ส่วนหัว (Heders) ของเคอร์เนลมาตรฐานของคุณ
  • linux-headers-2.6.20-15-generic ฉันจะไม่พูดว่าแพคเกจนี้จะไม่พูด แต่ปล่อยให้มันเป็น

คำแนะนำที่ดี - หากต้องการให้ข้อความที่พิมพ์ของบทความนี้บนกระดาษชิ้นหนึ่งหรือบันทึกลงในไฟล์ข้อความที่สามารถดูได้จากโหมดข้อความ

เกินพิกัดไปยังโหมดคอนโซลของเคอร์เนลธรรมดา (ใน ด้วง. มีรายการดังกล่าว) ใน อูบุนตู คุณจะได้รับสิทธิ์รูทโดยอัตโนมัติแม้รหัสผ่านเพื่อป้อนที่ไม่เหมาะสม ตอนนี้ต้องลบฟืน nvidiaที่อยู่ในระบบ หากคุณติดตั้ง Firewood ผ่าน "ไดรเวอร์ที่เป็นกรรมสิทธิ์" (หรือโดยการติดตั้งแพ็คเกจ nvidia-glx หรือ nvidia-glx-new) จากนั้นแพ็คเกจ nVIDIA-GLX / NVIDIA-GLX-NEW จำเป็นต้องลบออกจากระบบและไม่เพียงแค่ถอนการติดตั้ง แต่ถอนการติดตั้งในโหมด ล้าง.

ฉันเป็นผู้ใช้ที่โง่พอและแทนที่จะจัดการกับตัวเลือก dpkgฉันใช้โปรแกรมคอนโซล ความถนัด. กดคำสั่ง

และคุณเข้าไปในเปลือกหอยประดันคัน synaptic. ด้านบนจะเป็นปลายบนปุ่ม เพื่อเข้าสู่เมนูคลิก Ctrl + T. (อึดอัด แต่สิ่งที่ต้องทำ) บนเมนู
ลูกศรและกุญแจ ใส่ เราค้นหาและเลือกรายการ " หา.". เขียนสตริงการค้นหา - nvidia-glx. การส่องสว่างจะตกอยู่ในแพ็คเกจที่ต้องการ เราเรียกเมนูอีกครั้งและค้นหารายการไอเท็ม " ล้าง"กดมันและแพคเกจที่มีการส่องสว่างจะถูกทำเครื่องหมายสำหรับการถอนการติดตั้งทั้งหมดของไฟล์ทั้งหมดจากระบบ (แพคเกจตัวเองจะยังคงอยู่ในแคชมันจะเป็นไปได้ที่จะติดตั้งใหม่หากจำเป็น) ที่ ด้านล่างของพรอมต์ - " e - ตรวจสอบ! - ลบ"กด" อี."- และเราจะเห็นว่าแพคเกจจะถูกลบถ้าจาก nvidia-glx แพคเกจจะขึ้นอยู่กับพวกเขายังจะถอนการติดตั้ง มักจะแพคเกจนี้ nvidia-glx-dev. ไม่มีอะไรน่ากลัวที่เขาจะถูกลบออกเช่นกัน

ตอนนี้คลิก " ! "(สำหรับของขวัญโดยเฉพาะ - Shift + 1) จึงเห็นด้วยกับการเปลี่ยนแปลงของเรา จากนั้นคลิก " ถาม"(ออก) เมื่อออกจากโปรแกรมจะลบแพ็คเก็ตที่ทำเครื่องหมายไว้โดยเรา

ตอนนี้ช่วงเวลานี้ ตอนนี้เราอยู่ที่ระดับ init 1. (เฉพาะคอนโซลบริการที่ไม่ทำงาน) หากคุณเริ่มติดตั้งไดรเวอร์ nvidiaจากนั้นเธอจะสาบานว่าคุณอาจไม่มีบริการเปิดตัว devfsซึ่งมักจะเริ่มที่ระดับ 3 . ดังนั้นเราให้ทีม

telinit 3.

และระบบจะหมดบริการที่จำเป็นและในเวลาเดียวกันจะออกมาจากโหมดผู้ใช้เดี่ยว (คอนโซลหลายตัวจะปรากฏขึ้นซึ่งสามารถเปลี่ยนคีย์ Alt + F1...Alt + F6. สำหรับการทำงานต่อไปเราจะต้องใช้คอนโซลสองเครื่อง โดยวิธีการที่ระบบจะพยายามดาวน์โหลดกราฟิกเธอไม่ประสบความสำเร็จเพราะ ไดรเวอร์ที่เราเพิ่งลบ และเธอจะยังคงอยู่ 7 คอนโซลที่มีหน้าจอว่างเปล่า อย่าตกใจคลิก Alt + F1, เราเห็นคอนโซลแรกเราป้อนเข้าสู่ระบบ, รหัสผ่านเป็นอินพุตแบบกราฟิก (หลังจากเข้าสู่ระบบและรหัสผ่านเท่านั้น ใส่ แต่ไม่ แท็บ).

เข้าสู่ระบบโทร mc. ภายใต้ superuser

ไปที่แคตตาล็อก USR / SRC / NVIDIA

./nvidia-linux-x86-96.43.01-pkg1.run -e

ตัวเลือก " -e"ให้เราดูรายงานการกระทำและดูไฟล์ที่ขัดแย้งกันเราเริ่มติดตั้งเราเห็นด้วยกับใบอนุญาตปฏิเสธที่จะพิสูจน์แหล่งที่มา ftp NVIDDI พูด ตกลง. โมดูลนั้นจะถูกสร้างขึ้น ฉันเพียงคลิกที่การป้อนวิธี ใส่.

ในท้ายที่สุดก่อนการติดตั้งตัวเองรายการไฟล์จะถูกติดตั้ง และที่จุดเริ่มต้นของรายการนี้ (ถ้าพบ) จะดูเหมือน ไฟล์ที่ขัดแย้งกัน. จะถูกเขียน " ไฟล์สำรอง ..."- นั่นคือสิ่งที่พวกเขาอยู่ในกรณีของฉันคือไฟล์เหล่านี้

/usr/lib/xorg/modules/extensions/libglcore.so
/usr/lib/xorg/modules/extensions/libglx.so
/usr/lib/libgl.so
/usr/lib/libgl.so.1
/usr/lib/libgl.so.1.2
/lib/modules/2.6.20-15-Genic/volatile/nvidia.ko
/usr/include/gl/lext.h
/usr/include/gl/gl.h
/usr/include/gl/glxext.h
/usr/include/gl/glx.h

ไฟล์เหล่านี้เป็นไฟล์จากแพ็คเกจ โมดูลที่ จำกัด NVIDIA. ความจริงก็คือถ้าคุณเพียงแค่ลบแพ็คเกจนี้ไฟล์ทั้งหมดจะถูกลบด้วยไฟล์เหล่านี้ nvidia-Cipsets ( nvidia หลังจากทั้งหมดไม่เพียง แต่การ์ดแสดงผลเท่านั้น) รวมถึงการลบแพ็คเกจขึ้นอยู่กับ linux-trong-modules-2.6.20-15-generic, linux-trong-modules-generic และ ลินุกซ์สามัญ. ดังนั้นลบแพ็คเกจนี้ไม่พึงประสงค์ ดังนั้นเราจะทำแตกต่างกัน

ทันทีที่คุณเห็นรายการดังกล่าวให้เข้าสู่คอนโซลที่สอง (การเปลี่ยนแปลง - Alt + F2), วิ่ง

และโอนไฟล์ที่ขัดแย้งกันเหล่านี้ไปยังเธรดเป็นไดเรกทอรีแยกต่างหากในโฮมไดเร็กทอรีซึ่งหมายถึงรายการในคอนโซลแรก ทำไมต้องถ่ายโอนและไม่ลบ? ความจริงก็คือชื่อของไฟล์ใน Linuhe "Herman Associate" และสามารถผิดได้อย่างง่ายดายและลบไฟล์ผิด

หลังจากลบไฟล์ทั้งหมดที่ต้องการ สำรองข้อมูลกลับไปที่คอนโซลแรก ขัดจังหวะการติดตั้ง ( Ctrl + C.) และเปิดตัวอีกครั้ง ถ้าเป็น " ไฟล์สำรอง ..."จะไม่มีอีกต่อไปการติดตั้งทุกอย่างต้องไปได้อย่างราบรื่นคุณสามารถเห็นด้วยกับการแก้ไข xorg.confไฟล์สำรองยังคงถูกอนุรักษ์

ตอนนี้ความสนใจ! ที่สำคัญที่สุดในขณะนี้ไม่เกินพิกัด! และไปที่ไฟล์ / etc / default / linux-confricted-common-commonและเพิ่มไปยังตัวเลือก disabled_modules โมดูล nv และ nvidia_new. ฉันทำเสร็จแล้ว

disabled_modules \u003d "nv nvidia_new"

หากยังไม่เสร็จสิ้นเมื่อคุณดาวน์โหลดไฟล์ (ที่คุณลบ!) /lib/modules/2.6.20-15-Genic/volatile/nvidia.ko จะอัตโนมัติ ที่ได้รับการฟื้นฟู จากแพคเกจ โมดูลที่ จำกัด NVIDIA. และไฟล์ของคุณที่คุณคอมไพล์เมื่อติดตั้งไดรเวอร์เรียกว่า /lib/modules/2.6.20-15-Generic/kernel/drivers/video /nvidia.ko. ดังนั้นเมื่อคุณเริ่ม ICCS ไฟล์แรกจะถูกพบ และก่อนที่ไฟล์ของคุณจะไม่ถึงกรณี และอ้อยจะไม่สามารถบูตได้

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

9. การติดตั้งไดรเวอร์ NVIDIA ภายใต้เคอร์เนลโฮมเมด

ตอนนี้ขั้นตอนสุดท้ายยังคงอยู่ - ทำให้ตารางงานทำงานในแกนใหม่ ทุกอย่างง่ายพอ กำลังโหลดในโหมด consolate ของเคอร์เนลโฮมเมด ให้ทีม

เข้าสู่ระบบและในการเปิดตัวคอนโซลแรก

ไปที่แคตตาล็อก USR / SRC / NVIDIA และเริ่มติดตั้งทีมฟืน

./nvidia-linux-x86-96.43.01-pkg1.run-ke

ตัวเลือก " -"อนุญาตเฉพาะโมดูลกราฟิกเท่านั้น nvidia.ko ภายใต้เคอร์เนลปัจจุบัน (และไฟล์จะถูกวางไว้ในแคตตาล็อก / lib / modules / tychnoy_ader / เคอร์เนล / ไดรเวอร์. ไม่มีไฟล์ทั่วไปอื่น ๆ ที่จะวางไว้ใน / usr / lib ... เมื่อการรวบรวมด้วยตัวเลือก "-e" จะไม่ถูกสร้างขึ้น

เช่นเดียวกับเมื่อการรวบรวมในแกนมาตรฐานเห็นด้วยกับเส้นทางโดยการกด ใส่. เราไปถึงหน้าจอที่ไฟล์ที่จะติดตั้งอยู่ในรายการ หากมีไฟล์ที่ขัดแย้งกันที่จุดเริ่มต้นของรายการนี้ " ไฟล์สำรอง ..."สลับไปยังคอนโซลถัดไปและลบไฟล์เหล่านี้ (โอน)

หลังจากลบไฟล์ที่ขัดแย้งกันในคอนโซลแรกขัดจังหวะการติดตั้ง ( Ctrl + C.) และเริ่มต้นอีกครั้ง (พร้อมตัวเลือก " -"ตามธรรมชาติ) หลังจากการติดตั้งเสร็จสมบูรณ์การเลือกในเมนู ด้วง. ในโหมดเต็มรูปแบบกับเคอร์เนลของคุณ

ixes ต้องเริ่มต้น คุณสามารถชื่นชมยินดีครั้งที่สอง - คุณมีระบบที่มีแกนกลางโฮมเมดและตารางงาน

เมื่อใดก็ตามที่คุณสามารถบูตภายใต้แกนกลางที่ต้องการและกราฟิกทุกที่ควรทำงาน นั่นคือทั้งหมดที่

มือใหม่ที่เพิ่งเริ่มคุ้นเคยกับ Linux สิ่งแรกที่ถูกถามโดยคำถามที่สมเหตุสมผล: วิธีการดาวน์โหลด Linux? ดูเหมือนว่าจะมีสิ่งที่ยากที่นี่ แต่คำถามที่เกิดขึ้นและฉันมักจะถามเขา

ตัดสินใจด้วยการกระจายลินุกซ์

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

สมมติว่าคุณเลือกการแจกจ่ายและต้องการดาวน์โหลด การกระจายลินุกซ์แต่ละครั้งสามารถดาวน์โหลดได้ฟรีในรูปแบบที่แตกต่างกัน โดยปกติแล้วพวกเขาเป็นไฟล์ ISO ไฟล์ ISO เป็นภาพของดิสก์ซีดีหรือดีวีดี บ่อยครั้งที่รุ่นซีดีหรือดีวีดีแตกต่างจากความจริงที่ว่าในรุ่น DVD มากกว่าซอฟต์แวร์ที่แตกต่างกันที่คุณสามารถติดตั้งได้โดยตรงจากดิสก์หรือในระหว่างกระบวนการติดตั้ง Linux หรือหลังการติดตั้งได้ตลอดเวลา

Linux ดาวน์โหลดอะไร (i386, x86_64, amd64 ... )

สามารถดาวน์โหลดลินุกซ์เพิ่มเติมสำหรับแพลตฟอร์มต่างๆ โดยทั่วไปแล้วนักพัฒนากระจายให้ลีนุกซ์รุ่น 32 บิตและ 64 บิต เลือกแบบไหนที่จะเลือกส่วนใหญ่ในบิตของโปรเซสเซอร์ของคุณ ตามกฎแล้วโปรเซสเซอร์ที่ทันสมัยทั้งหมดคือ 64 บิต

ลินุกซ์รุ่น 32 บิตมักจะแสดงเป็น I386 และ 64 บิต - x86_64 (สำหรับโปรเซสเซอร์ Intel) และ AMD64 (สำหรับโปรเซสเซอร์ AMD)

นอกจากนี้คุณยังสามารถพบกับชื่อดังกล่าวเป็นแขน, mips, ppc และอื่น ๆ เหล่านี้เป็นรุ่น Linux ที่รวบรวมเป็นพิเศษสำหรับโปรเซสเซอร์ ARM, MIPS, POWERPC

ที่บ้านคอมพิวเตอร์และในแล็ปท็อปมักใช้โปรเซสเซอร์ Intel หรือ AMD ดังนั้นคุณจะมีความสนใจใน i386, x86_64, amd64

จะดาวน์โหลดการกระจายลินุกซ์ได้ที่ไหน

ดังนั้นคุณจึงตัดสินใจที่จะกระจายลินุกซ์ คุณสามารถไปที่ไซต์ Distribution Developer และค้นหาส่วนดาวน์โหลดที่นั่นอาจเรียกว่าบางอย่างเช่นการดาวน์โหลดรับได้รับ ISO, ดาวน์โหลด, ดาวน์โหลด

หนึ่งในวิธีที่เร็วที่สุดในการดาวน์โหลด Linux คือการใช้ไฟล์ torrent มันทำงานดังนี้ คุณดาวน์โหลดไฟล์ Torrent และใช้ Torrent ไคลเอ็นต์เพื่อดาวน์โหลด Linux ด้วยตัวคุณเองแล้ว ไคลเอนต์ Torrent สำหรับ Linux สามารถพบได้ในแคตตาล็อกโปรแกรมในส่วน "ไคลเอนต์ Torrent"

การกระจายลินุกซ์รุ่นเดียวกันสามารถวางบนเซิร์ฟเวอร์ที่แตกต่างกัน (กระจก) ยิ่งไปกว่านั้นเป็นทางภูมิศาสตร์กับเซิร์ฟเวอร์และแบนด์วิดท์ที่สูงขึ้นการดาวน์โหลด Linux ที่เร็วขึ้นเท่านั้น กระจกรัสเซียยอดนิยมที่คุณสามารถดาวน์โหลด Linux เป็นกระจกจาก Yandex: https://mirror.yandex.ru หรือรุ่น FTP ftp://mirror.yandex.ru

ฉันจะพิจารณาสถานที่บางแห่งที่คุณสามารถดาวน์โหลดยอดนิยมลีนุกซ์แจกจ่ายได้ฟรี:

การจัดจำหน่ายฉันสามารถดาวน์โหลดได้ที่ไหน
อูบุนตู
  • ดาวน์โหลด Ubuntu Desktop (รุ่นพื้นฐานของ Ubuntu สำหรับใช้ในบ้าน)
เดเบียน
Arch Linux
Gentoo
opensuse
Fedora
  • ISO Image Fedora (เวอร์ชั่นเวิร์กสเตชันสำหรับการใช้งานส่วนตัว)
  • FTP Mirror บน Yandex (สำหรับการใช้งานส่วนตัวเลือกเวอร์ชันของเวิร์กสเตชัน)
slackware
อื่น ๆแคตตาล็อกการกระจาย Linux (ในหน้าของการกระจายแต่ละรายการมีลิงค์ไปยังเว็บไซต์ทางการ)

ที่ไหนที่จะดาวน์โหลดเคอร์เนลลินุกซ์

ซอร์สโค้ดรุ่นใด ๆ ของเคอร์เนล Linux สามารถดาวน์โหลดได้บนเว็บไซต์ Kernel.org

วิธีการสั่งซื้อแผ่นดิสก์ด้วย Linux

หากไม่มีวิธีใดที่เหมาะกับคุณคุณสามารถค้นหาผู้ที่ชื่นชอบในเมืองของคุณที่จะตกลงที่จะให้ดิสก์กับ Linux นอกจากนี้ชุมชนลินุกซ์ที่แตกต่างกันเป็นอย่างมาก

กำลังโหลด ...กำลังโหลด ...