ฉันมี Galaxy Note 10.1 (n8010) และฉันต้องการทำให้มันเป็น Boot Linux โดยกำเนิด ฉันหมายถึง boot Arch Linux แทน android สิ่งที่ฉันต้องการคือการเปลี่ยน initramfs ซึ่งฉันไม่สามารถหาได้จากที่ไหนในโลก คำถามของฉัน:
- ฉันจำเป็นต้องเปลี่ยนแปลงเฉพาะ initramfs หรือไม่ฉันต้องรับมือกับสิ่งอื่นด้วยหรือไม่ (เช่นเคอร์เนลตัวเอง)
- [ทำ] ฉันจะหาผู้เริ่มต้นอย่างเป็นทางการของ CyanogenMod 10.1 ได้ที่ไหน (อาจจะเป็น github) หรือฉันต้องรวบรวมเคอร์เนลของ CyanogenMod และดึงมันออกมาจาก zImage
- [PROBABLY] ฉันจะมีรูทลินุกซ์ Arch ภายในพาร์ติชั่นข้อมูล android ได้ไหม (เช่น / data / linux) หรือฉันต้องซื้อการ์ด SD?
- ฉันต้องทำอะไรอีกต้องรู้ / ทำ?
แก้ไข: ฉันพบวิธีเปลี่ยน initramfs :)
- unzip rom (CM10.1 สำหรับ n8013 ใช้แล้ว)
- wget http://whiteboard.ping.se/uploads/Android/unmkbootimg.gz
- gunzip unmkbootimg.gz
- ./unmkbootimg boot.img (บันทึกคำสั่งที่กำหนดด้วย mkbootimg!)
- mkdir initramfs && cd initramfs
- gzip -cd initramfs.cpio.gz | cpio -i
- เปลี่ยนสคริปต์เริ่มต้น <- ทดสอบที่ตอนนี้ฉันจะโพสต์ให้ถูกต้องเมื่อทำเสร็จแล้ว
- หา | cpio -o -H newc | gzip> ../initramfs.cpio.gz (ไม่แน่ใจว่าคำสั่งนั้นถูกต้องหรือไม่ ... )
- cd ..&& ล้างไดเรกทอรีเพื่อให้มีเพียง initramfs.cpio.gz และ zImage เท่านั้น ...
- รันคำสั่ง mkbootimg ที่คุณบันทึกไว้ก่อน ...
- แฟลช boot.img ใหม่ :)
แก้ไข 2: initramfs นั้นค่อนข้างง่ายต่อการสร้างคุณเพียงแค่ติดตั้งระบบไฟล์รูท (ทั้งพาร์ติชั่นหรืออิมเมจลินุกซ์) แล้วชี้ไปที่ init ผ่านทาง symlink ภายใน initramfs
ปัญหาคือคุณต้องใช้เคอร์เนล 4.x เพื่อบู๊ตระบบใหม่ของ Arch
เพื่อให้เคอร์เนลทำงานคุณต้องใช้คอนโซลอนุกรมเพื่อดูข้อผิดพลาดและเนื้อหา เมื่อฉันสร้างเคอร์เนลฉันจะโพสต์การตั้งค่าที่ต้องการ
สำหรับผู้ที่ไม่มี mkbootimg (คุณจะได้รับโดยการรวบรวมเคอร์เนล) ฉันพบ precompiled
ลิงค์:
- mkbootimg: http://forum.xda-developers.com/showpost.php?p=4575685&postcount=2
- ทรัพยากร 1: http://whiteboard.ping.se/Android/Debian
- การเอาออกและการเปลี่ยนแปลง initramfs: http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images
- unmkbootimg: http://whiteboard.ping.se/Android/Unmkbootimg