рдЗрдореНрдпреВрд▓реЗрдЯреЗрдб рд╡рд░реНрд╕реЗрдЯрд╛рдЗрд▓рдк рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реНрдХреНрд░реАрди рдкрд░ рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рдПрдЖрд░рдПрдо рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдЧреБрдард▓реА рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдЬреЛ рд▓реЗрдЦрди рдХреЗ рд╕рдордп рдкрд╛рдП рдЧрдП рдереЗ, рдПрдХ рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рддрдХ рд╕реАрдорд┐рдд рд╣реИрдВред
рдпрд╣ рдкреЛрд╕реНрдЯ рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд╢реБрд░реБрдЖрдд рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рдЗрдореНрдпреВрд▓реЗрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд░реНрдиреЗрд▓ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдХреЛрдб рдХреА 2 рд╣рдЬрд╛рд░ рдЫреЛрдЯреА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдореЗрдореЛрд░реА рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди, рдореЗрдореЛрд░реА рдЬрд╝реЛрди рдФрд░ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрд▓реИрдм рдПрд▓реЛрдХреЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдПрдЖрд░рдПрдо рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рдЕрд╕реЗрдВрдмрд▓реА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдирдХреНрд╕-2.6.32.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП)
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ * .cmd рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╣реИрдВред рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрд░реНрдиреЗрд▓ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рд╕реАрдзреЗ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
Qemu ./arch/arm/boot/zImage рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрд░реНрдиреЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдЕрдкрдШрдЯрди рдХреЛрдб рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдХрд╛рдЯрдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
arm-unknown-linux-gnueabi-objcopy -O binary -R .note -R .note.gnu.build-id -R .comment -S arch/arm/boot/compressed/vmlinux arch/arm/boot/zImage
рдпрд╣ рдХреЛрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА (libgcc.a), рдПрдХ рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ (
рд╣реЗрдб.рдУ ) рд╡рд╛рд▓реА рдлрд╛рдЗрд▓ рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдлрд╛рдЗрд▓ рдЬрд┐рд╕рдореЗрдВ рдкреИрдХ рдХрд┐рдП рдЧрдП рдХрд░реНрдиреЗрд▓ (
рдЧреБрд▓реНрд▓рдХ ) рдХрд╛ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдХреЛрдб рдЬреЛ
рдЕрдирдкреИрдХрд┐рдВрдЧ (
misc .o ) рдХрд░рддрд╛ рд╣реИ:
/opt/arm/bin/arm-unknown-linux-gnueabi-ld -EL --defsym zreladdr=0x00008000 --defsym initrd_phys=0x00800000 --defsym params_phys=0x00000100 -p --no-undefined -X /opt/arm/bin/../lib/gcc/arm-unknown-linux-gnueabi/4.4.1/libgcc.a -T arch/arm/boot/compressed/vmlinux.lds arch/arm/boot/compressed/head.o arch/arm/boot/compressed/piggy.o arch/arm/boot/compressed/misc.o -o arch/arm/boot/compressed/vmlinux
рдкреИрдХреНрдб рдХрд░реНрдиреЗрд▓ рдХреЛ
рдкрд┐рдЧреА рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде:
.incbin "arch/arm/boot/compressed/piggy.gz"
piggy.o рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
/opt/arm/bin/arm-unknown-linux-gnueabi-gcc -Wp,-MD,arch/arm/boot/compressed/.piggy.od -nostdinc -isystem /opt/arm/bin/../lib/gcc/arm-unknown-linux-gnueabi/4.4.1/include -Iinclude -I/home/tlx/linux-2.6.32.3_e/arch/arm/include -include include/linux/autoconf.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-versatile/include -D__ASSEMBLY__ -mabi=apcs-gnu -mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi -include asm/unified.h -msoft-float -Wa,-march=all -c -o arch/arm/boot/compressed/piggy.o arch/arm/boot/compressed/piggy.S
Piggy.gz рдлрд╝рд╛рдЗрд▓ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ:
cat arch/arm/boot/compressed/../Image | gzip -f -9 > arch/arm/boot/compressed/piggy.gz
рд╕рдВрдХреБрдЪрд┐рдд рдФрд░
рдЫрд╡рд┐ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмреАрдЪ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рд╡реЗ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЯреНрд░реА рдореЗрдВ рдПрдХ рд╕реНрддрд░ рддрдХ рдмрдврд╝рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ, рдЕрд░реНрдерд╛рддред
рдЫрд╡рд┐ рдореЗрд╣рд░рд╛рдм / рдмрд╛рдВрд╣ / рдмреВрдЯ / рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред
рдЗрд╕ рддрд░рд╣ рдХреА рдХрдард┐рдирд╛рдЗрдпрд╛рдВ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреАрдврд╝реА рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИрдВред
рд╕рдВрдХрд▓рд┐рдд рдХрд░реНрдиреЗрд▓ рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рдХрд╛рдЯрдХрд░
рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред "
/opt/arm/bin/arm-unknown-linux-gnueabi-objcopy -O binary -R .note -R .note.gnu.build-id -R .comment -S vmlinux arch/arm/boot/Image
рдЕрдирдкреИрдХреНрдб рдХрд░реНрдиреЗрд▓ (
vmlinux ) рдЗрд╕ рддрд░рд╣ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ:
/opt/arm/bin/arm-unknown-linux-gnueabi-ld -EL -p --no-undefined -X --build-id -o vmlinux -T arch/arm/kernel/vmlinux.lds arch/arm/kernel/head.o arch/arm/kernel/init_task.o init/built-in.o --start-group usr/built-in.o arch/arm/kernel/built-in.o arch/arm/mm/built-in.o arch/arm/common/built-in.o arch/arm/mach-versatile/built-in.o arch/arm/nwfpe/built-in.o arch/arm/vfp/built-in.o kernel/built-in.o mm/built-in.o fs/built-in.o ipc/built-in.o security/built-in.o crypto/built-in.o block/built-in.o arch/arm/lib/lib.a lib/lib.a arch/arm/lib/built-in.o lib/built-in.o drivers/built-in.o sound/built-in.o firmware/built-in.o net/built-in.o --end-group .tmp_kallsyms2.o
рдЕрдВрдд рдореЗрдВ,
main.c рдлрд╛рдЗрд▓, рдЬрд┐рд╕реЗ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ,
init / рдмрд┐рд▓реНрдЯ-рдЗрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ:
arm-unknown-linux-gnueabi-ld -EL -r -o init/built-in.o init/main.o init/version.o init/mounts.o init/initramfs.o init/calibrate.o
рдХрд░реНрдиреЗрд▓ рд╕реНрд░реЛрдд рдкреЗрдбрд╝ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХрдорд╛рдВрдб рдХрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдХреНрд░рдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╣рдореЗрдВ рдПрдХ рдиреНрдпреВрдирддрдо рдХрд░реНрдиреЗрд▓ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдПрдЖрд░рдПрдо рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
~user/arm-2011.09/bin/arm-none-linux-gnueabi-gcc -nostdinc -mlittle-endian -mabi=apcs-gnu -mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi -msoft-float -DTEXT_OFFSET=0x00008000 -c -o arch/arm/kernel/head.o arch/arm/kernel/head.S ~user/arm-2011.09/bin/arm-none-linux-gnueabi-gcc -nostdinc -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Os -marm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=apcs-gnu -mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fno-dwarf2-cfi-asm -fconserve-stack -c -o init/main.o init/main.c ~user/arm-2011.09/bin/arm-none-linux-gnueabi-ld -EL -p --no-undefined -X --build-id -o vmlinux -T arch/arm/kernel/vmlinux.lds arch/arm/kernel/head.o init/main.o --start-group --end-group ~user/arm-2011.09/bin/arm-none-linux-gnueabi-objcopy -O binary -R .note -R .note.gnu.build-id -R .comment -S vmlinux arch/arm/boot/Image cat arch/arm/boot/compressed/../Image | gzip -f -9 > arch/arm/boot/compressed/piggy.gz ~user/arm-2011.09/bin/arm-none-linux-gnueabi-gcc -nostdinc -mlittle-endian -mabi=apcs-gnu -mno-thumb-interwork -march=armv5te -mtune=arm9tdmi -msoft-float -march=armv5te -c -o arch/arm/boot/compressed/piggy.o arch/arm/boot/compressed/piggy.S ~user/arm-2011.09/bin/arm-none-linux-gnueabi-gcc -nostdinc -D__KERNEL__ -mlittle-endian -D__ASSEMBLY__ -mabi=apcs-gnu -mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi -msoft-float -c -o arch/arm/boot/compressed/head.o arch/arm/boot/compressed/head.S ~user/arm-2011.09/bin/arm-none-linux-gnueabi-gcc -nostdinc -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Os -marm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=apcs-gnu -mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fno-dwarf2-cfi-asm -fconserve-stack -fpic -fno-builtin -Dstatic= -c -o arch/arm/boot/compressed/misc.o arch/arm/boot/compressed/misc.c ~user/arm-2011.09/bin/arm-none-linux-gnueabi-ld -EL --defsym zreladdr=0x00008000 --defsym initrd_phys=0x00800000 --defsym params_phys=0x00000100 -p --no-undefined -X -T arch/arm/boot/compressed/vmlinux.lds arch/arm/boot/compressed/head.o arch/arm/boot/compressed/piggy.o arch/arm/boot/compressed/misc.o -o arch/arm/boot/compressed/vmlinux ~user/arm-2011.09/bin/arm-none-linux-gnueabi-objcopy -O binary -R .note -R .note.gnu.build-id -R .comment -S arch/arm/boot/compressed/vmlinux zImage
~ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ / рдмрд╛рдВрд╣ -2017.09 / рдмрд┐рди / - рдкрде рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рдШрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд┐рд╕рдореЗрдВ рдЯреВрд▓рдХрд┐рди рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ ARM рдХреЗ рд▓рд┐рдП рдЯреВрд▓рдХрд┐рди рдХреЛ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ рдФрд░
"рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рдХреЛ рдпреВрдЬрд╝рд░рдиреЗрдо рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рдлрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХрдорд╛рдВрдб рдХреЛ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрд╕реА рдирд╛рдо рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рди рдХрд░реЗрдВ)ред
рдХрд░реНрдиреЗрд▓ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдкреЗрдбрд╝ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдХреЛрдб, рдЬрд┐рд╕рдореЗрдВ рд╕рдм рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕рдХреА рдЪрд░реНрдЪрд╛ рдЕрдЧрд▓реЗ рдкрджреЛрдВ
arm_qemu_max рдореЗрдВ рдХреА рдЬрд╛рдПрдЧреА ред
рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг, рд╕реНрдореГрддрд┐ рдФрд░ рдПрдХ рд╕реНрд▓реИрдм рдЖрд╡рдВрдЯрди (рдХреЗрд╡рд▓ рд╕реНрдХреНрд░реАрди рдкрд░ рдЖрдЙрдЯрдкреБрдЯ)
arm_qemu_min рдХреЗ рдмрд┐рдирд╛ ред
рд╢реЗрд╖ рд▓реЗрдЦреЛрдВ рдХрд╛ рдкрд╛рда рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред