mirror of
https://github.com/adron-s/mtik_initrd_hacks.git
synced 2025-12-10 07:44:40 +01:00
first commit
This commit is contained in:
commit
1423b9e5c7
13 changed files with 103 additions and 0 deletions
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
.*
|
||||
!.gitignore
|
||||
kernel.headers
|
||||
bins/*
|
||||
kernel-new.elf
|
||||
1
README.md
Normal file
1
README.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
# mtik_initrd_hacks
|
||||
BIN
cpio-fs/bin/busybox
Executable file
BIN
cpio-fs/bin/busybox
Executable file
Binary file not shown.
7
cpio-fs/etc/rc.d/rc.S
Executable file
7
cpio-fs/etc/rc.d/rc.S
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
/bin/busybox --install /bin
|
||||
|
||||
mount -v proc /proc -n -t proc
|
||||
|
||||
sh
|
||||
BIN
cpio-fs/init
Executable file
BIN
cpio-fs/init
Executable file
Binary file not shown.
BIN
cpio-fs/oldinit
Executable file
BIN
cpio-fs/oldinit
Executable file
Binary file not shown.
BIN
cpio-fs/order
Executable file
BIN
cpio-fs/order
Executable file
Binary file not shown.
20
dump_elf.sh
Executable file
20
dump_elf.sh
Executable file
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/sh
|
||||
|
||||
OPENWRT_DIR=/home/prog/openwrt/lede-all/2019-openwrt-all/openwrt-ipq806x
|
||||
export STAGING_DIR=$OPENWRT_DIR/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-7.4.0_musl_eabi
|
||||
#OPENWRT_DIR=/home/prog/openwrt/lede-all/2019-openwrt-all/openwrt-ipq4xxx
|
||||
#export STAGING_DIR=${OPENWRT_DIR}/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.4.0_musl_eabi
|
||||
|
||||
GCC=$STAGING_DIR/bin/arm-openwrt-linux-gcc
|
||||
OBJDUMP=$STAGING_DIR/bin/arm-openwrt-linux-objdump
|
||||
OBJCOPY=$STAGING_DIR/bin/arm-openwrt-linux-objcopy
|
||||
LD=$STAGING_DIR/bin/arm-openwrt-linux-ld
|
||||
|
||||
${OBJDUMP} -x kernel.elf > ./kernel.headers
|
||||
#${OBJDUMP} -x kernel-new.elf > ./kernel.headers
|
||||
|
||||
#${OBJCOPY} -j .text -j initrd -S ./kernel.elf ./kernel.OWL1
|
||||
#${OBJCOPY} -R initrd -S ./kernel.elf ./kernel.OWL1
|
||||
#${OBJCOPY} -j .rodata -O binary ./kernel.elf ./kernel.OWL1
|
||||
|
||||
#initrd is kernel.p2-p3
|
||||
14
init/compile_for_arm.sh
Executable file
14
init/compile_for_arm.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/bash
|
||||
|
||||
OPENWRT_DIR=/home/prog/openwrt/lede-all/2019-openwrt-all/openwrt-ipq806x
|
||||
export STAGING_DIR=$OPENWRT_DIR/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-7.4.0_musl_eabi
|
||||
#OPENWRT_DIR=/home/prog/openwrt/lede-all/2019-openwrt-all/openwrt-ipq4xxx
|
||||
#export STAGING_DIR=${OPENWRT_DIR}/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.4.0_musl_eabi
|
||||
|
||||
GCC=$STAGING_DIR/bin/arm-openwrt-linux-gcc
|
||||
OD=$STAGING_DIR/bin/arm-openwrt-linux-objdump
|
||||
OC=$STAGING_DIR/bin/arm-openwrt-linux-objcopy
|
||||
LD=$STAGING_DIR/bin/arm-openwrt-linux-ld
|
||||
|
||||
$GCC -static ./init.c -o ../cpio-fs/init
|
||||
$OC --strip-all ../cpio-fs/init ../cpio-fs/init
|
||||
16
init/init.c
Normal file
16
init/init.c
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
extern char** environ;
|
||||
|
||||
int main(int argc, char *argv[]){
|
||||
char *new_argv[] = { "/bin/busybox", "sh", "/etc/rc.d/rc.S", NULL };
|
||||
|
||||
environ[0] = "PATH=/sbin:/bin";
|
||||
environ[1] = NULL;
|
||||
|
||||
execvp(new_argv[0], new_argv);
|
||||
return 0;
|
||||
}
|
||||
BIN
kernel.elf
Normal file
BIN
kernel.elf
Normal file
Binary file not shown.
24
pack.sh
Executable file
24
pack.sh
Executable file
|
|
@ -0,0 +1,24 @@
|
|||
#!/bin/sh
|
||||
|
||||
OPENWRT_DIR=/home/prog/openwrt/lede-all/2019-openwrt-all/openwrt-ipq806x
|
||||
export STAGING_DIR=$OPENWRT_DIR/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-7.4.0_musl_eabi
|
||||
#OPENWRT_DIR=/home/prog/openwrt/lede-all/2019-openwrt-all/openwrt-ipq4xxx
|
||||
#export STAGING_DIR=${OPENWRT_DIR}/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.4.0_musl_eabi
|
||||
|
||||
GCC=$STAGING_DIR/bin/arm-openwrt-linux-gcc
|
||||
OBJDUMP=$STAGING_DIR/bin/arm-openwrt-linux-objdump
|
||||
OBJCOPY=$STAGING_DIR/bin/arm-openwrt-linux-objcopy
|
||||
LD=$STAGING_DIR/bin/arm-openwrt-linux-ld
|
||||
|
||||
cd cpio-fs
|
||||
#find . 2>/dev/null | cpio --quiet -o --format='newc' > ../bins/x1.cpio
|
||||
find . 2>/dev/null | cpio --quiet -o --format='newc' | \
|
||||
xz --check=crc32 --lzma2=dict=512KiB > ../bins/kernel.p3-new.xz
|
||||
#cat ../initramfs.cpio | xz --check=crc32 --lzma2=dict=512KiB > ../bins/kernel.p3-new.xz
|
||||
cd ..
|
||||
|
||||
cat ./bins/kernel.p2.xz ./bins/kernel.p3-new.xz > ./bins/kernel-new.combo
|
||||
${OBJCOPY} --update-section initrd=./bins/kernel-new.combo ./kernel.elf ./kernel-new.elf
|
||||
|
||||
cat ./kernel-new.elf > /var/lib/tftpboot/linux_t1.bin
|
||||
|
||||
16
unpack.sh
Normal file
16
unpack.sh
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
|
||||
exit 0
|
||||
|
||||
dd if=kernel.elf bs=1 skip=0 count=43504 of=./bins/kernel.HEAD
|
||||
dd if=kernel.elf bs=1 skip=43504 count=1605632 of=./bins/kernel.p2.xz
|
||||
dd if=kernel.elf bs=1 skip=1649136 count=84812 of=./bins/kernel.p3.xz
|
||||
dd if=kernel.elf bs=1 skip=1733948 of=./bins/kernel.TAIL
|
||||
|
||||
#( xz -dc --single-stream > ./bins/initramfs.cpio && cat > ./bins/p3-tail.bin ) < ./bins/kernel.p3.xz
|
||||
xz -dc > ./bins/initramfs.cpio < ./bins/kernel.p3.xz
|
||||
|
||||
rm -Rf cpio-fs
|
||||
mkdir cpio-fs
|
||||
cd cpio-fs
|
||||
cpio -idv < ../bins/initramfs.cpio
|
||||
Loading…
Add table
Reference in a new issue