เคอร์เนล เป็นแกนหลักของระบบปฏิบัติการใดๆ หน้าที่หลักของเคอร์เนลคือทำหน้าที่เป็นสื่อกลางระหว่างแอปพลิเคชัน - CPU, แอปพลิเคชัน - หน่วยความจำและแอปพลิเคชัน - อุปกรณ์ (I/O) มันทำหน้าที่เป็นตัวจัดการหน่วยความจำ, ตัวจัดการอุปกรณ์และเข้าร่วมการโทรของระบบนอกเหนือจากการทำงานอื่น ๆ
สำหรับ Linux เคอร์เนลคือหัวใจของมัน Linux Kernel เผยแพร่ภายใต้ GNU General Public License Linus Torvalds พัฒนา Linux Kernel ในปี 1991 และเขามาพร้อมกับ Initial Kernel Release เวอร์ชัน 0.01 วันที่ 3 สิงหาคม 2557 (ปีนี้) เคอร์เนล3.16 ได้รับการปล่อยตัว ในช่วง 22 ปีที่ผ่านมานี้ เคอร์เนลของ Linux มีการพัฒนามากมาย ขณะนี้มีบริษัทหลายพันแห่ง นักพัฒนาอิสระหลายล้านรายที่มีส่วนร่วมใน Linux Kernel
การประมาณค่าคร่าวๆ ของแบรนด์ใหญ่ ๆ และการมีส่วนร่วมของพวกเขาใน Linux Kernel ปัจจุบัน ซึ่งคาดว่าจะมีโค้ด 17 ล้านบรรทัดตาม มูลนิธิลินุกซ์, รายงานการพัฒนาเคอร์เนลลินุกซ์.
เจ็ดสิบเปอร์เซ็นต์ของการพัฒนาเคอร์เนลทำโดยนักพัฒนา ซึ่งทำงานในองค์กรและได้รับค่าตอบแทน ฟังดูน่าสนใจไหม
Linux Kernel 3.16 ออกให้สำหรับบุคคลและบริษัทในสภาพแวดล้อมการใช้งานจริง ซึ่งจะอัปเดตเคอร์เนลด้วยเหตุผลหลายประการ ซึ่งบางส่วนรวมถึง
บทความนี้มีจุดมุ่งหมายเพื่ออัปเดตเคอร์เนล Debian ซึ่งเป็นวิธี Debian ซึ่งหมายถึงการทำงานด้วยตนเองน้อยลง มีความเสี่ยงน้อยลงแต่มีความสมบูรณ์แบบ เราจะทำการอัปเดตเคอร์เนล Ubuntu ในส่วนหลังของบทความนี้ด้วย
ก่อนที่เราจะดำเนินการต่อ เราต้องรู้เกี่ยวกับเคอร์เนลปัจจุบันที่ติดตั้งไว้
[ป้องกันอีเมล]:~$ uname -mrns Linux tecmint 3.14-1-amd64 x86_64
เกี่ยวกับตัวเลือก:
ดาวน์โหลดเคอร์เนลที่เสถียรล่าสุดจากลิงค์ด้านล่าง อย่าสับสนกับลิงก์ดาวน์โหลดแพตช์ที่นั่น ดาวน์โหลดอันที่ระบุชัดเจน – “เคอร์เนลที่เสถียรล่าสุด”.
หรือคุณสามารถใช้ wget เพื่อดาวน์โหลดเคอร์เนลที่สะดวกกว่า
[ป้องกันอีเมล]:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.xz
หลังจากการดาวน์โหลดเสร็จสิ้นและก่อนที่เราจะดำเนินการต่อ ขอแนะนำอย่างยิ่งให้ตรวจสอบลายเซ็นเคอร์เนล
[ป้องกันอีเมล]:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.sign
การตรวจสอบลายเซ็นต้องทำกับไฟล์ที่ไม่บีบอัด สิ่งนี้ต้องใช้หนึ่งลายเซ็นเทียบกับรูปแบบการบีบอัดต่างๆ ได้แก่ .gz, .bz2, .xz
ถัดไป คลายการบีบอัด Linux Kernel Image
[ป้องกันอีเมล]:~/Downloads$ unxz linux-3.16.tar.xz
ตรวจสอบกับลายเซ็น
[ป้องกันอีเมล]:~/Downloads$ gpg --verify linux-3.16.tar.sign
บันทึก: หากคำสั่งด้านบนพ่น gpg: ไม่สามารถตรวจสอบลายเซ็น: ไม่พบคีย์สาธารณะข้อผิดพลาด นั่นหมายความว่าเราจำเป็นต้องดาวน์โหลดกุญแจสาธารณะด้วยตนเองจากเซิร์ฟเวอร์ PGP
[ป้องกันอีเมล]:~/Downloads$ gpg --recv-keys 00411886
หลังจากดาวน์โหลดคีย์แล้ว ให้ตรวจสอบคีย์อีกครั้ง
[ป้องกันอีเมล]:~/Downloads$ gpg --verify linux-3.16.tar.sign
คุณสังเกตเห็นสองสิ่งเกี่ยวกับการยืนยันคีย์ gpg
ไม่ต้องกังวลกับลายนิ้วมือที่สำคัญ ตอนนี้เรามั่นใจว่าไฟล์เก็บถาวรนั้นใช้ได้และมีการเซ็นชื่อแล้ว ก้าวไปข้างหน้ากันเถอะ!
ก่อนที่เราจะดำเนินการต่อและเริ่มต้นสร้างเคอร์เนล เราต้องติดตั้งแพ็คเกจบางอย่างเพื่อทำให้การสร้างเคอร์เนลและกระบวนการติดตั้งง่ายขึ้น และทำด้วยวิธี Debian ที่ปราศจากความเสี่ยง
ติดตั้ง libcurse5-dev, fakeroot และแพ็คเกจเคอร์เนล
[ป้องกันอีเมล]:~/Downloads$ sudo apt-get install libncurses5-dev [ป้องกันอีเมล]:~/Downloads$ sudo apt-get install fakeroot [ป้องกันอีเมล]:~/Downloads$ sudo apt-get install kernel-package
หลังจากติดตั้งแพ็คเกจข้างต้นสำเร็จ เราก็พร้อมที่จะสร้างเคอร์เนล ย้ายไปที่ Linux Kernel Image ที่แยกออกมา (เราแยกออกมาด้านบน ขณะตรวจสอบลายเซ็น)
[ป้องกันอีเมล]:~/ดาวน์โหลด$ cd linux-3.16/
ตอนนี้สิ่งสำคัญคือต้องคัดลอกการกำหนดค่าเคอร์เนลปัจจุบันเพื่อนำเสนอไดเร็กทอรีการทำงานในฐานะผู้ใช้รูท
# cp /boot/config-'uname -r' .config
กำลังคัดลอก /boot/config-'uname -r' เพื่อนำเสนอไดเร็กทอรีการทำงาน “/home/avi/Downloads/linux-3.16 ” และบันทึกเป็น '.config‘.
ที่นี่ 'uname -r' จะถูกแทนที่และประมวลผลโดยอัตโนมัติด้วยเคอร์เนลเวอร์ชันที่คุณติดตั้งอยู่ในปัจจุบัน
เนื่องจากไฟล์ dot ไม่สามารถมองเห็นได้ตามปกติ คุณต้องใช้ตัวเลือก '-NS' กับ ลส เพื่อดูสิ่งนี้ในไดเร็กทอรีการทำงานปัจจุบันของคุณ
$ ls -al
มีสามวิธีในการสร้างเคอร์เนล Linux
เห็นได้ชัดว่าเราจะใช้ 'ทำ menuconfig‘.
กลัวการสร้างเคอร์เนล? คุณไม่ควรจะเป็น มันสนุก มีอะไรมากมายที่คุณจะได้เรียนรู้ คุณควรจำสิ่งต่อไปนี้ไว้
ตอนนี้เรียกใช้ 'ทำ menuconfig' สั่งการ.
# ทำ menuconfig
สำคัญ: คุณต้องเลือก “เลือก – เปิดใช้งานการสนับสนุนโมดูลที่โหลดได้“ถ้าคุณลืมทำสิ่งนี้ คุณจะเจอช่วงเวลาที่ยากลำบาก
บันทึก: ในหน้าต่างการกำหนดค่าที่เปิดอยู่ คุณสามารถกำหนดค่าตัวเลือกต่างๆ สำหรับการ์ดเครือข่าย บลูทูธ ทัชแพด การ์ดกราฟิก รองรับระบบไฟล์ เช่น NTFS และตัวเลือกอื่นๆ มากมาย
ไม่มีบทช่วยสอนที่จะแนะนำคุณว่าคุณควรเลือกอะไรและไม่ควรทำ คุณจะรู้เรื่องนี้โดยการวิจัย ศึกษาสิ่งต่างๆ ผ่านเว็บ เรียนรู้จากบทเรียนของ tecmint และในทุกวิถีทางที่เป็นไปได้
คุณอาจเห็นว่ามีตัวเลือกการแฮ็กเคอร์เนล แฮ็ค? ได้! ในที่นี้หมายถึงการสำรวจ คุณสามารถเพิ่มตัวเลือกต่างๆ ได้ภายใต้การแฮ็กเคอร์เนล และใช้คุณสมบัติมากมาย
ต่อไป เลือก ตัวเลือกไดรเวอร์ทั่วไป.
การสนับสนุนอุปกรณ์เครือข่าย
รองรับอุปกรณ์อินพุต
โหลดไฟล์กำหนดค่า (.config) เราบันทึกจาก /boot/config-`uname –r`.config
คลิกตกลง บันทึกและออก ตอนนี้ทำความสะอาดแผนผังต้นทางและรีเซ็ตพารามิเตอร์เคอร์เนลแพ็กเกจ
#make-kpkg คลีนๆ
ก่อนที่เราจะเริ่มรวบรวมเคอร์เนลเราต้องส่งออก CONCURRENCY_LEVEL. ระดับ CONCURRENCY ของหัวแม่มือมีกฎในการเพิ่มตัวเลข 1 ให้กับแกนหลักของเคอร์เนล หากคุณมี 2 คอร์ ให้ส่งออก CONCURRENCY_LEVEL=3 หากคุณมี 4 คอร์ ให้ส่งออก CONCURRENCY_LEVEL=5
ในการตรวจสอบแกนประมวลผลคุณสามารถใช้คำสั่ง cat ดังที่แสดงด้านล่าง
# cat /proc/cpuinfo
เอาต์พุตตัวอย่าง โปรเซสเซอร์: 0 vendor_id: GenuineIntel ตระกูล cpu: 6 รุ่น: 69 ชื่อรุ่น: Intel (R) Core (TM) i3-4005U CPU @ ก้าว 1.70GHz: 1 ไมโครโค้ด: 0x17 cpu MHz: 799.996 ขนาดแคช: 3072 KB รหัสทางกายภาพ: 0 พี่น้อง: 4 รหัสหลัก: 0 แกนซีพียู: 2 apicid: 0 เริ่มต้น apicid: 0 fpu: ใช่ fpu_exception: ใช่ ระดับ cpuid: 13 wp: ใช่
คุณเห็นผลลัพธ์ข้างต้น ฉันมี 2 คอร์ ดังนั้นเราจะส่งออก 3 คอร์ดังที่แสดงด้านล่าง
# ส่งออก CONCURRENCY_LEVEL=3
ตั้งค่าถูกต้อง CONCURRENCY_LEVEL จะเร่งเวลาในการรวบรวมเคอร์เนล
# fakeroot make-kpkg --append-to-version "-tecmintkernel" --revision "1" --initrd kernel_image kernel_headers
ที่นี่ 'เทคมินเคอร์เนล' เป็นชื่อการสร้างเคอร์เนล มันสามารถเป็นอะไรก็ได้ตั้งแต่ชื่อของคุณ ชื่อโฮสต์ ชื่อสัตว์เลี้ยงของคุณ หรืออะไรก็ได้
การคอมไพล์เคอร์เนลใช้เวลานานขึ้นอยู่กับโมดูลที่คอมไพล์และกำลังประมวลผลของเครื่อง จนถึงเวลาที่คอมไพล์ดูคำถามที่พบบ่อยของการรวบรวมเคอร์เนล
ตอบ :ได้! มันปกติ. ขึ้นอยู่กับการเลือกโมดูลและกำลังของเครื่องจักร
ตอบ :ได้! ไม่มีทางอื่น
ตอบ :ใช่! ไฟล์เคอร์เนลที่คอมไพล์แล้วที่เราจะได้รับสามารถใช้เพื่ออัปเดตเคอร์เนลอื่นของเครื่อง Debian เดียวกัน สถาปัตยกรรมด้วยความจริงที่ว่าฮาร์ดแวร์บางตัวของคุณอาจไม่ทำงานหากแตกต่างจากที่อื่น เครื่องจักร.
ตอบ :ใช่! คุณสามารถดาวน์โหลดได้จากด้านล่างของหน้านี้ แต่เราไม่รับประกันว่าฮาร์ดแวร์ทั้งหมดของคุณจะใช้งานได้ ขอแนะนำให้คอมไพล์เคอร์เนลของคุณหากคุณไม่ได้ขี้เกียจขนาดนั้น
ตอบ :อย่าถามฉัน คุณมีทรัพยากรเดียวกับที่ฉันมี
ตอบ :ได้ คุณสามารถบูตเข้าสู่เคอร์เนลสุดท้ายได้ หากคุณยังไม่ได้ลบออก (ดูการลบเคอร์เนลที่ไม่ได้ใช้) โดยเลือกตัวเลือกขั้นสูงจากเมนูบูต
ตอบ :เราสามารถช่วยคุณในด้านเทคนิคของการคอมไพล์และติดตั้งเคอร์เนลและไม่มีค่าใช้จ่าย อย่างไรก็ตาม คุณสามารถบริจาคได้ หากคุณพบว่างานของเราเป็นของแท้และคุ้มค่า
ตอบ :ใช่! บริการนี้อยู่ภายใต้บริการของเราและมีค่าใช้จ่าย ซึ่งถือว่าน้อยมากและสามารถแข่งขันได้ คุณสามารถส่งอีเมลถึงเราและเราจะติดต่อคุณหากคุณสนใจ
นั่นคือจุดสิ้นสุดของคำถามที่พบบ่อย ให้ฉันดำเนินการตามขั้นตอนการรวบรวม หลังจากคอมไพล์เคอร์เนลสำเร็จแล้ว มันสร้างไฟล์สองไฟล์ (แพ็คเกจเดเบียน) หนึ่งไดเร็กทอรี 'เหนือ' ของไดเร็กทอรีปัจจุบันของเรา
ไดเร็กทอรีการทำงานปัจจุบันของเราคือ
/home/avi/Downloads/linux-3.16/
แพ็คเกจเดเบียนถูกสร้างขึ้นที่
/home/avi/Downloads
หากต้องการตรวจสอบ ให้รันคำสั่งต่อไปนี้
# ซีดี.. # ls -l linux-*.deb
ถัดไป เรียกใช้ไฟล์อิมเมจ Linux ที่สร้างขึ้น
# dpkg -i linux-image-3.16.0-tecmintkernel_1_amd64.deb
เรียกใช้ไฟล์ส่วนหัวของ Linux ที่สร้างขึ้น
# dpkg -i linux-headers-3.16.0-tecmintkernel_1_amd64.deb
เสร็จเรียบร้อย! เราสร้าง คอมไพล์ และติดตั้ง Linux Kernel 3.16 ล่าสุดบน Debian ได้สำเร็จพร้อมการพึ่งพาอื่นๆ ทั้งหมด นอกจากนี้แพ็คเกจ Debian ยังจัดการอัปเดต bootloader (GRUB/LILO) โดยอัตโนมัติ ได้เวลารีบูตและทดสอบเคอร์เนลล่าสุด
โปรดสังเกตข้อความแสดงข้อผิดพลาดที่คุณอาจได้รับระหว่างการบูท สิ่งสำคัญคือต้องเข้าใจข้อผิดพลาดนั้นเพื่อแก้ไข หากมี
#รีบูต
ทันทีที่ Debian เริ่มทำงานอีกครั้ง ให้คลิกที่ 'ตัวเลือกขั้นสูง' เพื่อดูรายการเมล็ดที่มีอยู่และติดตั้ง
ดูรายการเคอร์เนลที่ติดตั้ง
เลือกเคอร์เนลที่คอมไพล์ล่าสุด (เช่น 3.16) เพื่อบูต
ตรวจสอบเวอร์ชันเคอร์เนล
# uname -mrns
อันล่าสุดที่ติดตั้งตอนนี้ถูกตั้งค่าให้บู๊ตโดยอัตโนมัติ และคุณไม่จำเป็นต้องเลือกมันทุกครั้งจากตัวเลือกการบู๊ตขั้นสูง
สำหรับผู้ที่ไม่ต้องการคอมไพล์เคอร์เนลของตนเองบน Debian (x86_64) และต้องการใช้เคอร์เนลที่คอมไพล์ล่วงหน้าที่เราสร้างในบทช่วยสอนนี้ พวกเขาสามารถดาวน์โหลดได้จากลิงค์ด้านล่าง เคอร์เนลนี้อาจใช้ไม่ได้กับฮาร์ดแวร์บางตัวที่คุณมี
ถัดไป ติดตั้งเคอร์เนลที่คอมไพล์ล่วงหน้าโดยใช้คำสั่งต่อไปนี้
# dpkg -i linux-image-3.16.0-tecmint.com_kernel_amd64.deb # dpkg -i linux-headers-3.16.0-tecmint.com_kernel_amd64.deb
เคอร์เนลที่ไม่ได้ใช้สามารถลบออกจากระบบได้โดยใช้คำสั่ง
# apt-get ลบ linux-image- (unused_version_number)
คำเตือน: คุณควรลบเคอร์เนลเก่าหลังจากทดสอบเคอร์เนลล่าสุดอย่างละเอียด อย่าด่วนตัดสินใจ คุณควรดำเนินการต่อก็ต่อเมื่อคุณรู้ว่ากำลังทำอะไรอยู่
หากคุณทำสิ่งผิดปกติในการลบเคอร์เนลที่คุณต้องการ หรือลบเคอร์เนลที่คุณไม่ควรทำ ระบบของคุณจะอยู่ในขั้นตอนที่คุณไม่สามารถดำเนินการได้
หลังจากถอนการติดตั้งเคอร์เนลที่ไม่ได้ใช้ คุณอาจได้รับข้อความเช่น
นี่เป็นเรื่องปกติและคุณไม่จำเป็นต้องกังวล เพียงอัปเดต GRUB ของคุณโดยใช้คำสั่งต่อไปนี้
# /usr/sbin/update-grub
คุณอาจต้องอัปเดต .ของคุณ /etc/kernel-img.conf ไฟล์และปิดการใช้งาน 'do_symlinks' เพื่อปิดการใช้งานข้อความเหล่านี้ หากคุณสามารถรีบูตและเข้าสู่ระบบอีกครั้งได้ ก็ไม่มีปัญหา
นั่นคือทั้งหมดที่สำหรับตอนนี้. ฉันจะมาที่นี่อีกครั้งพร้อมกับบทความที่น่าสนใจอื่น คอยติดตามและเชื่อมต่อกับ Tecmint อย่าลืมให้ข้อเสนอแนะที่มีค่าของคุณในส่วนความคิดเห็นด้านล่าง บอกให้เราทราบถึงประสบการณ์ของคุณเมื่อคุณพบการรวบรวมและติดตั้งเคอร์เนล
อ่านเพิ่มเติม: