Score:0

ไม่สามารถรวบรวมเคอร์เนล Ubuntu สำหรับ AMD64 จากแหล่ง GIT

ธง it

ฉันต้องทดสอบ LKM โดยใช้เคอร์เนลเวอร์ชันเก่าหลายเวอร์ชันที่ฉันต้องใช้จาก GIT

อ้างอิงจากหน้า wiki ของ Ubuntu สร้างเคอร์เนลของคุณเอง และ KernelGitGuide ฉันทำตามสูตรด้านล่าง:

$ git โคลน git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/<series> <series>
$ ซีดี <ซีรีส์>
$ git แท็ก -l Ubuntu-*
$ git ชำระเงิน Ubuntu-v.w.x-y.z
$ LANG=C เดเบียนรูทปลอม/กฎสะอาด
$ LANG=C เดเบียนปลอม / กฎไบนารีส่วนหัวไบนารีทั่วไปไบนารี perarch

ใช้งานได้กับเคอร์เนลหลายเวอร์ชันที่ฉันทดสอบ รวมถึงเก่ากว่า Ubuntu-2.6.32-418.35 อย่างไรก็ตาม ฉันพบข้อผิดพลาดแปลก ๆ ต่อไปนี้

$ dpkg -- พิมพ์สถาปัตยกรรม
เอเอ็มดี 64

$ git โคลน git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/maverick ไม่ฝักใฝ่ฝ่ายใด

$ cd ไม่ฝักใฝ่ฝ่ายใด

$ git แท็ก -l Ubuntu-2.6.32-418.35*
อูบุนตู-2.6.32-418.35

$ git ชำระเงิน Ubuntu-2.6.32-418.35

$ LANG=C เดเบียนรูทปลอม/กฎสะอาด

$ LANG=C เดเบียนปลอม / กฎไบนารีส่วนหัวไบนารีทั่วไปไบนารี perarch
...
dpkg-gencontrol: ข้อผิดพลาด: สถาปัตยกรรมโฮสต์ปัจจุบัน 'amd64' ไม่ปรากฏในรายการสถาปัตยกรรมของแพ็คเกจ (armel)

ดู บันทึก สำหรับเอาต์พุตทั้งหมดและข้อมูลระบบเพิ่มเติม

ฉันมีคำถาม:

  • เป็นคอมไพล์ Ubuntu-v.w.x-y.z แท็ก จำกัด หนึ่ง / บางโค้ง / s เฉพาะ? ในกรณีนี้ดูเหมือนว่า อูบุนตู-2.6.32-418.35 แท็กรองรับเท่านั้น อาวุธ.
  • ถ้าเป็นเช่นนั้นจะมีวิธีทราบล่วงหน้าได้อย่างไรว่า Ubuntu-v.w.x-y.z สนับสนุนแท็ก เอเอ็มดี 64?
  • มีวิธีเปลี่ยนการกำหนดค่าเคอร์เนลเพื่อคอมไพล์หรือไม่ อูบุนตู-2.6.32-418.35 สำหรับ เอเอ็มดี 64. ฉันพยายามที่จะ LANG=C fakeroot เดเบียน/กฎ แก้ไขการกำหนดค่า แต่ดูเหมือนว่า arm config และในรายการระบบไม่มี i386/amd64 ไม่มีไฟล์ .config ในไดเร็กทอรีรูท ไม่แน่ใจว่าวิธีที่ถูกต้องในการทำเช่นนั้นคืออะไรเมื่อคุณคอมไพล์เคอร์เนลโดยใช้ เดเบียน/กฎ. มีวิธีเปลี่ยนสำหรับการกำหนดค่า x86 หรือไม่ อย่างไร?

ขอบคุณ

paladin avatar
kr flag
`dpkg-gencontrol: ข้อผิดพลาด: สถาปัตยกรรมโฮสต์ปัจจุบัน 'amd64' ไม่ปรากฏในรายการสถาปัตยกรรมของแพ็คเกจ (armel)` คุณดาวน์โหลดซอร์สโค้ดผิด (คุณต้องการซอร์สโค้ด amd64 ไม่ใช่ซอร์สโค้ด armel)
David avatar
cn flag
โปรดทราบว่าเคอร์เนลเก่าเหล่านี้ไม่ได้ใช้กับ Ubuntu เวอร์ชันปัจจุบันที่รองรับ ดังนั้นจึงไม่อยู่ในหัวข้อนี้
it flag
@David ไม่สนับสนุน .. อะไรนะ? :) นี่ไม่ใช่ระบบตั๋ว Ubuntu และนี่ไม่ใช่รายงานข้อบกพร่องอย่างแน่นอน ฉัน (เห็นได้ชัดว่า) ทำอะไรผิดที่นี่และนั่นคือเหตุผลที่ฉันขอความช่วยเหลือ
it flag
@paladin ดาวน์โหลดซอร์สโค้ดผิดหรือไม่ คุณช่วยอธิบายเพิ่มเติมได้ไหม AFAIK ไม่มีสิ่งที่เหมือนกับซอร์สโค้ด "amd64" คุณหมายถึงอะไร ในเคอร์เนลของ Linux สถาปัตยกรรมทั้งหมดจะอยู่ในซอร์สโค้ดเดียวกัน
paladin avatar
kr flag
เรียน @Tavo การเขียนโปรแกรมเคอร์เนลระดับต่ำ (เช่น แอสเซมเบลอร์) นั้นแตกต่างกันไปสำหรับแต่ละสถาปัตยกรรมของ CPU ดังนั้นคุณต้องใช้ซอร์สโค้ดที่ถูกต้องสำหรับสถาปัตยกรรม CPU ของคุณ โปรดดูที่นี่ -> https://github.com/torvalds/linux/tree/master/arch
it flag
@paladin ไม่ ... มีอยู่แล้วในแผนผังแหล่งที่มาของเคอร์เนล คุณไม่ต้องดาวน์โหลดอะไรอีก หากคุณไปตามลิงก์ที่ฉันใช้ด้านบนเพื่อโคลน repo คุณจะพบไดเร็กทอรี arch ที่มีสถาปัตยกรรมทั้งหมด ดู https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/maverick/tree/arch ใน `x86` เป็นรหัสสำหรับทั้ง 32 บิตและ 64 บิต เคอร์เนล mainline ใช้ส่วนโค้งจาก .config แต่เมื่อคุณคอมไพล์เคอร์เนลด้วยวิธี Ubuntu/Debian อย่างที่โพสต์นี้พูดถึง สิ่งนั้นก็จะเปลี่ยนไป

โพสต์คำตอบ

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