20180124_jeffrey - silenceuncrio/diary GitHub Wiki
先 trace m360 image 產出的步驟
用 make V=s
可以看到 compile 過程的詳細訊息
從最後面開始找跟產出 image 有關的流程
make[5]: Entering directory `/home/user/MTKOpenWrt-ODM/target/linux/ramips/image'
make[5]: `compile' is up to date.
# Use symbolic permissions to avoid clobbering SUID/SGID/sticky bits
/usr/bin/find /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips -type f -not -perm +0100 -not -name 'ssh_host*' -not -name 'shadow' -print0 | xargs -r -0 chmod u+rw,g+r,o+r
/usr/bin/find /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips -type f -perm +0100 -print0 | xargs -r -0 chmod u+rwx,g+rx,o+rx
/usr/bin/find /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips -type d -print0 | xargs -r -0 chmod u+rwx,g+rx,o+rx
install -d -m0755 /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips/tmp
chmod 1777 /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips/tmp
cp /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux.elf /home/user/MTKOpenWrt-ODM/bin/ramips/openwrt-ramips-mt7621-vmlinux.elf
cp /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux /home/user/MTKOpenWrt-ODM/bin/ramips/openwrt-ramips-mt7621-vmlinux.bin
/home/user/MTKOpenWrt-ODM/staging_dir/host/bin/lzma e /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux -lc1 -lp2 -pb2 /home/user/MTKOpenWrt-ODM/build_dir/ta
rget-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux.bin.lzma
LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03
mkimage -A mips -O linux -T kernel -C lzma -a 0x80001000 -e 0x80001000 -n "OpenWrt Linux-3.10.14" -d /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux.bin.lz
ma /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/uImage.lzma
Image Name: OpenWrt Linux-3.10.14
Created: Tue Jan 23 09:48:24 2018
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1566640 Bytes = 1529.92 kB = 1.49 MB
Load Address: 80001000
Entry Point: 80001000
cp /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/uImage.lzma /home/user/MTKOpenWrt-ODM/bin/ramips/openwrt-ramips-mt7621-uImage.bin
/home/user/MTKOpenWrt-ODM/staging_dir/host/bin/mksquashfs4 /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uCli
bc-0.9.33.2/linux-ramips_mt7621/root.squashfs -nopad -noappend -root-owned -comp xz -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2 -b 256k -p '/dev d 755 0 0' -p '/dev/console c 600 0 0 5 1' -processors 1
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/root.squashfs, block size 262144.
Pseudo file "/dev" exists in source filesystem "/home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips/dev".
Ignoring, exclude it (-e/-ef) to override.
[==================================================================================================================================================================================================-] 785/785 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 262144
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 3250.58 Kbytes (3.17 Mbytes)
30.11% of uncompressed filesystem size (10794.56 Kbytes)
Inode table size 8378 bytes (8.18 Kbytes)
23.60% of uncompressed inode table size (35499 bytes)
Directory table size 10510 bytes (10.26 Kbytes)
48.32% of uncompressed directory table size (21753 bytes)
Number of duplicate files found 25
Number of inodes 1072
Number of files 789
Number of fragments 26
Number of symbolic links 186
Number of device nodes 1
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 96
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
dd if=/home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/root.squashfs of=/home/user/MTKOpenWrt-ODM/bin/ramips/openwrt-ramips-mt7621-root.squashfs bs=128k conv=sync
25+1 records in
26+0 records out
3407872 bytes (3.4 MB) copied, 0.00644181 s, 529 MB/s
cp /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-
mt7621
#/home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/linux-3.10.14/scripts/dtc/dtc -O dtb -o /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.
2/linux-ramips_mt7621/MT7621.dtb ../dts/MT7621.dts
#/home/user/MTKOpenWrt-ODM/staging_dir/host/bin/patch-dtb /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621 /home/user/MTKOpenWrt-ODM/build_dir/target
-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/MT7621.dtb
/home/user/MTKOpenWrt-ODM/staging_dir/host/bin/lzma e /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621 -lc1 -lp2 -pb2 /home/user/MTKOpenWrt-ODM/build
_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621.bin.lzma
LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03
mkimage -A mips -O linux -T kernel -C lzma -a 0x80001000 -e 0x80001000 -n "OpenWrt Linux-3.10.14" -d /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621
.bin.lzma /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621.uImage
Image Name: OpenWrt Linux-3.10.14
Created: Tue Jan 23 09:48:30 2018
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1566640 Bytes = 1529.92 kB = 1.49 MB
Load Address: 80001000
Entry Point: 80001000
cat /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621.uImage /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_
mt7621/root.squashfs > /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin
/home/user/MTKOpenWrt-ODM/staging_dir/host/bin/padjffs2 /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin 4 8 16
64 128 256
padding image to 004ac000
padding image to 004b0000
padding image to 004c0000
if [ `stat -c%s "/home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin"` -gt 8060928 ]; then echo "Warning: /home/us
er/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin is too big" >&2; else cp -fpR /home/user/MTKOpenWrt-ODM/build_dir/targ
et-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin /home/user/MTKOpenWrt-ODM/bin/ramips/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin; fi
( cd /home/user/MTKOpenWrt-ODM/bin/ramips ; /usr/bin/find -maxdepth 1 -type f \! -name 'md5sums' -printf "%P\n" | sort | xargs md5sum --binary > md5sums )
make[5]: Leaving directory `/home/user/MTKOpenWrt-ODM/target/linux/ramips/image'
make[4]: Leaving directory `/home/user/MTKOpenWrt-ODM/target/linux/ramips'
make[3]: Leaving directory `/home/user/MTKOpenWrt-ODM/target/linux'
make[2]: Leaving directory `/home/user/MTKOpenWrt-ODM'
化簡一下
/home/user/MTKOpenWrt-ODM/build_dir
縮成 build_dir
/home/user/MTKOpenWrt-ODM/bin
縮成 bin
make[5]: Entering directory `/home/user/MTKOpenWrt-ODM/target/linux/ramips/image'
make[5]: `compile' is up to date.
# Use symbolic permissions to avoid clobbering SUID/SGID/sticky bits
find build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips
-type f -not -perm +0100 -not -name 'ssh_host*' -not -name 'shadow' -print0 |
xargs -r -0 chmod u+rw,g+r,o+r
find build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips
-type f -perm +0100 -print0 |
xargs -r -0 chmod u+rwx,g+rx,o+rx
find build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips
-type d -print0 |
xargs -r -0 chmod u+rwx,g+rx,o+rx
install -d -m0755 build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips/tmp
chmod 1777 build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips/tmp
cp
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux.elf
bin/ramips/openwrt-ramips-mt7621-vmlinux.elf
cp
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux
bin/ramips/openwrt-ramips-mt7621-vmlinux.bin
lzma e build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux
-lc1 -lp2
-pb2 build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux.bin.lzma
LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03
mkimage
-A mips -O linux -T kernel -C lzma -a 0x80001000 -e 0x80001000 -n "OpenWrt Linux-3.10.14"
-d build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux.bin.lzma
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/uImage.lzma
Image Name: OpenWrt Linux-3.10.14
Created: Tue Jan 23 09:48:24 2018
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1566640 Bytes = 1529.92 kB = 1.49 MB
Load Address: 80001000
Entry Point: 80001000
cp
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/uImage.lzma
bin/ramips/openwrt-ramips-mt7621-uImage.bin
mksquashfs4
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/root.squashfs
-nopad -noappend -root-owned -comp xz -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2 -b 256k -p '/dev d 755 0 0'
-p '/dev/console c 600 0 0 5 1' -processors 1
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/root.squashfs, block size 262144.
Pseudo file "/dev" exists in source filesystem "/home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips/dev".
Ignoring, exclude it (-e/-ef) to override.
[==================================================================================================================================================================================================-] 785/785 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 262144
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 3250.58 Kbytes (3.17 Mbytes)
30.11% of uncompressed filesystem size (10794.56 Kbytes)
Inode table size 8378 bytes (8.18 Kbytes)
23.60% of uncompressed inode table size (35499 bytes)
Directory table size 10510 bytes (10.26 Kbytes)
48.32% of uncompressed directory table size (21753 bytes)
Number of duplicate files found 25
Number of inodes 1072
Number of files 789
Number of fragments 26
Number of symbolic links 186
Number of device nodes 1
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 96
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
dd
if=build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/root.squashfs
of=bin/ramips/openwrt-ramips-mt7621-root.squashfs bs=128k conv=sync
25+1 records in
26+0 records out
3407872 bytes (3.4 MB) copied, 0.00644181 s, 529 MB/s
cp
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621
#dtc -O dtb
-o build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/MT7621.dtb
../dts/MT7621.dts
#patch-dtb
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/MT7621.dtb
lzma e build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621
-lc1 -lp2 -pb2
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621.bin.lzma
LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03
mkimage -
A mips -O linux -T kernel -C lzma -a 0x80001000 -e 0x80001000 -n "OpenWrt Linux-3.10.14"
-d build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621.bin.lzma
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621.uImage
Image Name: OpenWrt Linux-3.10.14
Created: Tue Jan 23 09:48:30 2018
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1566640 Bytes = 1529.92 kB = 1.49 MB
Load Address: 80001000
Entry Point: 80001000
cat
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621.uImage
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/root.squashfs
>
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin
padjffs2
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin 4 8 16 64 128 256
padding image to 004ac000
padding image to 004b0000
padding image to 004c0000
make[5]: Leaving directory `/home/user/MTKOpenWrt-ODM/target/linux/ramips/image'
繼續化簡
-
build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2
縮成<build_target>
make[5]: Entering directory `/home/user/MTKOpenWrt-ODM/target/linux/ramips/image'
make[5]: `compile' is up to date.
# Use symbolic permissions to avoid clobbering SUID/SGID/sticky bits
find <build_target>/root-ramips
-type f -not -perm +0100 -not -name 'ssh_host*' -not -name 'shadow' -print0 |
xargs -r -0 chmod u+rw,g+r,o+r
find <build_target>/root-ramips
-type f -perm +0100 -print0 |
xargs -r -0 chmod u+rwx,g+rx,o+rx
find <build_target>/root-ramips
-type d -print0 |
xargs -r -0 chmod u+rwx,g+rx,o+rx
install -d -m0755 <build_target>/root-ramips/tmp
chmod 1777 <build_target>/root-ramips/tmp
cp
<build_target>/linux-ramips_mt7621/vmlinux.elf
bin/ramips/openwrt-ramips-mt7621-vmlinux.elf
cp
<build_target>/linux-ramips_mt7621/vmlinux
bin/ramips/openwrt-ramips-mt7621-vmlinux.bin
lzma e <build_target>/linux-ramips_mt7621/vmlinux
-lc1 -lp2
-pb2 <build_target>/linux-ramips_mt7621/vmlinux.bin.lzma
LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03
mkimage
-A mips -O linux -T kernel -C lzma -a 0x80001000 -e 0x80001000 -n "OpenWrt Linux-3.10.14"
-d <build_target>/linux-ramips_mt7621/vmlinux.bin.lzma
<build_target>/linux-ramips_mt7621/uImage.lzma
Image Name: OpenWrt Linux-3.10.14
Created: Tue Jan 23 09:48:24 2018
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1566640 Bytes = 1529.92 kB = 1.49 MB
Load Address: 80001000
Entry Point: 80001000
cp
<build_target>/linux-ramips_mt7621/uImage.lzma
bin/ramips/openwrt-ramips-mt7621-uImage.bin
mksquashfs4
<build_target>/root-ramips
<build_target>/linux-ramips_mt7621/root.squashfs
-nopad -noappend -root-owned -comp xz -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2 -b 256k -p '/dev d 755 0 0'
-p '/dev/console c 600 0 0 5 1' -processors 1
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/root.squashfs, block size 262144.
Pseudo file "/dev" exists in source filesystem "/home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips/dev".
Ignoring, exclude it (-e/-ef) to override.
[==================================================================================================================================================================================================-] 785/785 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 262144
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 3250.58 Kbytes (3.17 Mbytes)
30.11% of uncompressed filesystem size (10794.56 Kbytes)
Inode table size 8378 bytes (8.18 Kbytes)
23.60% of uncompressed inode table size (35499 bytes)
Directory table size 10510 bytes (10.26 Kbytes)
48.32% of uncompressed directory table size (21753 bytes)
Number of duplicate files found 25
Number of inodes 1072
Number of files 789
Number of fragments 26
Number of symbolic links 186
Number of device nodes 1
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 96
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
dd
if=<build_target>/linux-ramips_mt7621/root.squashfs
of=bin/ramips/openwrt-ramips-mt7621-root.squashfs bs=128k conv=sync
25+1 records in
26+0 records out
3407872 bytes (3.4 MB) copied, 0.00644181 s, 529 MB/s
cp
<build_target>/linux-ramips_mt7621/vmlinux
<build_target>/linux-ramips_mt7621/vmlinux-mt7621
#dtc -O dtb
-o <build_target>/linux-ramips_mt7621/MT7621.dtb
../dts/MT7621.dts
#patch-dtb
<build_target>/linux-ramips_mt7621/vmlinux-mt7621
<build_target>/linux-ramips_mt7621/MT7621.dtb
lzma e <build_target>/linux-ramips_mt7621/vmlinux-mt7621
-lc1 -lp2 -pb2
<build_target>/linux-ramips_mt7621/vmlinux-mt7621.bin.lzma
LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03
mkimage -
A mips -O linux -T kernel -C lzma -a 0x80001000 -e 0x80001000 -n "OpenWrt Linux-3.10.14"
-d <build_target>/linux-ramips_mt7621/vmlinux-mt7621.bin.lzma
<build_target>/linux-ramips_mt7621/vmlinux-mt7621.uImage
Image Name: OpenWrt Linux-3.10.14
Created: Tue Jan 23 09:48:30 2018
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1566640 Bytes = 1529.92 kB = 1.49 MB
Load Address: 80001000
Entry Point: 80001000
cat
<build_target>/linux-ramips_mt7621/vmlinux-mt7621.uImage
<build_target>/linux-ramips_mt7621/root.squashfs
>
<build_target>/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin
padjffs2
<build_target>/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin
4 8 16 64 128 256
padding image to 004ac000
padding image to 004b0000
padding image to 004c0000
make[5]: Leaving directory `/home/user/MTKOpenWrt-ODM/target/linux/ramips/image'
看一下 lzma
的用法
user@a5076210d06e:~/study$ /home/user/MTKOpenWrt-ODM/staging_dir/host/bin/lzma
LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03
Usage: LZMA <e|d> inputFile outputFile [<switches>...]
e: encode file
d: decode file
b: Benchmark
<Switches>
-a{N}: set compression mode - [0, 1], default: 1 (max)
-d{N}: set dictionary size - [12, 30], default: 23 (8MB)
-fb{N}: set number of fast bytes - [5, 273], default: 128
-mc{N}: set number of cycles for match finder
-lc{N}: set number of literal context bits - [0, 8], default: 3
-lp{N}: set number of literal pos bits - [0, 4], default: 0
-pb{N}: set number of pos bits - [0, 4], default: 2
-mf{MF_ID}: set Match Finder: [bt2, bt3, bt4, hc4], default: bt4
-mt{N}: set number of CPU threads
-eos: write End Of Stream marker
-si: read data from stdin
-so: write data to stdout
解析
lzma e <build_target>/linux-ramips_mt7621/vmlinux
-lc1 -lp2
-pb2 <build_target>/linux-ramips_mt7621/vmlinux.bin.lzma
-
e
- encode file - inputFile = <build_target>/linux-ramips_mt7621/vmlinux
- outputFile = <build_target>/linux-ramips_mt7621/vmlinux.bin.lzma
-
-lc1
- set number of literal context bits - 1 -
-lp2
- set number of literal pos bits - 2 -
-pb2
- set number of pos bits - 2
看一下效果
vmlinux
使用 lzma
前 size 為 4,593,984
user@a5076210d06e:~/study$ ls -al
total 4496
drwxr-xr-x 2 user user 4096 Jan 24 03:10 .
drwxrwxr-x 8 user user 4096 Jan 24 02:55 ..
-rwxr-xr-x 1 user user 4593984 Jan 24 02:55 vmlinux
使用 lzma
把 vmlinux
壓成 vmlinux.bin.lzma
user@a5076210d06e:~/study$ /home/user/MTKOpenWrt-ODM/staging_dir/host/bin/lzma e vmlinux vmlinux.bin.lzma -lc1 -lp2 -pb2
LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03
壓縮後的 vmlinux.bin.lzma
的 size 為 1,566,640
user@a5076210d06e:~/study$ ls -al
total 6028
drwxr-xr-x 2 user user 4096 Jan 24 03:12 .
drwxrwxr-x 8 user user 4096 Jan 24 02:55 ..
-rwxr-xr-x 1 user user 4593984 Jan 24 02:55 vmlinux
-rw-r--r-- 1 user user 1566640 Jan 24 03:12 vmlinux.bin.lzma
約為原本的 34.1% 節省了 3,027,344
看一下 mkimage
的用法
user@a5076210d06e:~/study$ /home/user/MTKOpenWrt-ODM/staging_dir/host/bin/mkimage
Usage: /home/user/MTKOpenWrt-ODM/staging_dir/host/bin/mkimage -l image
-l ==> list image header information
/home/user/MTKOpenWrt-ODM/staging_dir/host/bin/mkimage [-x] -A arch -O os -T type -C comp -M magic -a addr -e ep -n name -d data_file[:data_file...] image
-A ==> set architecture to 'arch'
-O ==> set operating system to 'os'
-T ==> set image type to 'type'
-C ==> set compression type 'comp'
-M ==> set image magic to 'magic'
-a ==> set load address to 'addr' (hex)
-e ==> set entry point to 'ep' (hex)
-n ==> set image name to 'name'
-d ==> use image data from 'datafile'
-x ==> set XIP (execute in place)
/home/user/MTKOpenWrt-ODM/staging_dir/host/bin/mkimage [-D dtc_options] [-f fit-image.its|-F] fit-image
-D => set options for device tree compiler
-f => input filename for FIT source
Signing / verified boot not supported (CONFIG_FIT_SIGNATURE undefined)
/home/user/MTKOpenWrt-ODM/staging_dir/host/bin/mkimage -V ==> print version information and exit
解析
mkimage
-A mips -O linux -T kernel -C lzma -a 0x80001000 -e 0x80001000 -n "OpenWrt Linux-3.10.14"
-d <build_target>/linux-ramips_mt7621/vmlinux.bin.lzma
<build_target>/linux-ramips_mt7621/uImage.lzma
-
-A mips
- set architecture to 'mips' -
-O linux
- set operating system to 'linux' -
-T kernel
- set image type to 'kernel' -
-C lzma
- set compression type 'lzma' -
-a 0x80001000
- set load address to '0x80001000' (hex) -
-e 0x80001000
- set entry point to '0x80001000' (hex) -
-n "OpenWrt Linux-3.10.14"
- set image name to "OpenWrt Linux-3.10.14" -
-d <build_target>/linux-ramips_mt7621/vmlinux.bin.lzma
- use image data from '<build_target>/linux-ramips_mt7621/vmlinux.bin.lzma' -
<build_target>/linux-ramips_mt7621/uImage.lzma
- target image
看一下 mksquashfs4
的用法
user@a5076210d06e:~/study$ /home/user/MTKOpenWrt-ODM/staging_dir/host/bin/mksquashfs4
SYNTAX:/home/user/MTKOpenWrt-ODM/staging_dir/host/bin/mksquashfs4 source1 source2 ... dest [options] [-e list of exclude
dirs/files]
Filesystem build options:
-comp <comp> select <comp> compression
Compressors available:
gzip (default)
lzma
xz
-b <block_size> set data block to <block_size>. Default 131072 bytes
-no-exports don't make the filesystem exportable via NFS
-no-sparse don't detect sparse files
-no-xattrs don't store extended attributes (default)
-xattrs store extended attributes (unsupported)
-noI do not compress inode table
-noD do not compress data blocks
-noF do not compress fragment blocks
-noX do not compress extended attributes
-no-fragments do not use fragments
-always-use-fragments use fragment blocks for files larger than block size
-no-duplicates do not perform duplicate checking
-all-root make all files owned by root
-force-uid uid set all file uids to uid
-force-gid gid set all file gids to gid
-nopad do not pad filesystem to a multiple of 4K
-keep-as-directory if one source directory is specified, create a root
directory containing that directory, rather than the
contents of the directory
Filesystem filter options:
-p <pseudo-definition> Add pseudo file definition
-pf <pseudo-file> Add list of pseudo file definitions
-sort <sort_file> sort files according to priorities in <sort_file>. One
file or dir with priority per line. Priority -32768 to
32767, default priority 0
-ef <exclude_file> list of exclude dirs/files. One per line
-wildcards Allow extended shell wildcards (globbing) to be used in
exclude dirs/files
-regex Allow POSIX regular expressions to be used in exclude
dirs/files
Filesystem append options:
-noappend do not append to existing filesystem
-root-becomes <name> when appending source files/directories, make the
original root become a subdirectory in the new root
called <name>, rather than adding the new source items
to the original root
Mksquashfs runtime options:
-version print version, licence and copyright message
-recover <name> recover filesystem data using recovery file <name>
-no-recovery don't generate a recovery file
-info print files written to filesystem
-no-progress don't display the progress bar
-processors <number> Use <number> processors. By default will use number of
processors available
-read-queue <size> Set input queue to <size> Mbytes. Default 64 Mbytes
-write-queue <size> Set output queue to <size> Mbytes. Default 512 Mbytes
-fragment-queue <size> Set fragment queue to <size> Mbytes. Default 64 Mbytes
Miscellaneous options:
-root-owned alternative name for -all-root
-noInodeCompression alternative name for -noI
-noDataCompression alternative name for -noD
-noFragmentCompression alternative name for -noF
-noXattrCompression alternative name for -noX
Compressors available and compressor specific options:
gzip (no options) (default)
lzma
-Xpreset <preset>
compression preset (0-9, default 6)
-Xe
Try to improve compression ratio by using more CPU time.
-Xlc <lc>
Number of literal context bits (0-4, default 3)
-Xlp <lp>
Number of literal position bits (0-4, default 0)
-Xpb <pb>
Number of position bits (0-4, default 2)
-Xnice <nice>
Nice length of a match (5-273, default 64)
-Xdict-size <dict-size>
Use <dict-size> as the LZMA dictionary size. The dictionary size
can be specified as a percentage of the block size, or as an
absolute value. The dictionary size must be less than or equal
to the block size and 4096 bytes or larger. It must also be
storable in the lzma header as either 2^n or as 2^n+2^(n+1).
Example dict-sizes are 75%, 50%, 37.5%, 25%, or 32K, 16K, 8K
etc.
xz
-Xpreset <preset>
compression preset (0-9, default 6)
-Xe
Try to improve compression ratio by using more CPU time.
-Xlc <lc>
Number of literal context bits (0-4, default 3)
-Xlp <lp>
Number of literal position bits (0-4, default 0)
-Xpb <pb>
Number of position bits (0-4, default 2)
-Xnice <nice>
Nice length of a match (5-273, default 64)
-Xdict-size <dict-size>
Use <dict-size> as the XZ dictionary size. The dictionary size
can be specified as a percentage of the block size, or as an
absolute value. The dictionary size must be less than or equal
to the block size and 8192 bytes or larger. It must also be
storable in the lzma header as either 2^n or as 2^n+2^(n+1).
Example dict-sizes are 75%, 50%, 37.5%, 25%, or 32K, 16K, 8K
etc.
-Xbcj filter1,filter2,...,filterN
Compress using filter1,filter2,...,filterN in turn
(in addition to no filter), and choose the best compression.
Available filters: x86, arm, armthumb, powerpc, sparc, ia64
解析
mksquashfs4
<build_target>/root-ramips
<build_target>/linux-ramips_mt7621/root.squashfs
-nopad -noappend -root-owned -comp xz -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2 -b 256k -p '/dev d 755 0 0'
-p '/dev/console c 600 0 0 5 1' -processors 1
-
<build_target>/root-ramips
-source1 source2 ...
-
<build_target>/linux-ramips_mt7621/root.squashfs
- dest -
-nopad
- do not pad filesystem to a multiple of 4K -
-noappend
- do not append to existing filesystem -
-root-owned
- alternative name for -all-root -
-comp xz
- elect compression -xz
-
-Xpreset 9
- compression preset 9 -
-Xe
- Try to improve compression ratio by using more CPU time. -
-Xlc 0
- Number of literal context bits 0 -
-Xlp 2
- umber of literal position bits 2 -
-Xpb 2
- Number of position bits 2 -
-b 256k
- set data block to 256k -
-p '/dev d 755 0 0'
- Add pseudo file definition -
-p '/dev/console c 600 0 0 5 1'
- Add pseudo file definition -
-processors 1
- Use 1 processors
再整理一下 SYNTAX:mksquashfs4
- 只列出 options 大項
SYNTAX:mksquashfs4 source1 source2 ... dest [options] [-e list of exclude dirs/files]
Filesystem build options:
Filesystem filter options:
Filesystem append options:
Mksquashfs runtime options:
Miscellaneous options:
Compressors available and compressor specific options:
再次解析 - 加上 SYNTAX:mksquashfs4
options 大項
mksquashfs4
<build_target>/root-ramips
<build_target>/linux-ramips_mt7621/root.squashfs
-nopad -noappend -root-owned -comp xz -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2 -b 256k -p '/dev d 755 0 0'
-p '/dev/console c 600 0 0 5 1' -processors 1
-
source1 source2 ...
<build_target>/root-ramips
- dest
<build_target>/linux-ramips_mt7621/root.squashfs
- options
- Filesystem build options
-
-comp xz
- elect compression -xz
-
-b 256k
- set data block to 256k -
-nopad
- do not pad filesystem to a multiple of 4K
-
- Filesystem filter options
-
-p '/dev d 755 0 0'
- Add pseudo file definition -
-p '/dev/console c 600 0 0 5 1'
- Add pseudo file definition
-
- Filesystem append options
-
-noappend
- do not append to existing filesystem
-
- Mksquashfs runtime options
-
-processors 1
- Use 1 processors
-
- Miscellaneous options
-
-root-owned
- alternative name for -all-root
-
- Compressors available and compressor specific options
- xz
-
-Xpreset 9
- compression preset 9 -
-Xe
- Try to improve compression ratio by using more CPU time. -
-Xlc 0
- Number of literal context bits 0 -
-Xlp 2
- umber of literal position bits 2 -
-Xpb 2
- Number of position bits 2
-
- xz
- Filesystem build options
以下是執行的 console output
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on <build_target>/linux-ramips_mt7621/root.squashfs, block size 262144.
Pseudo file "/dev" exists in source filesystem "<build_target>/root-ramips/dev".
Ignoring, exclude it (-e/-ef) to override.
[==================================================================================================================================================================================================-] 785/785 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 262144
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 3250.58 Kbytes (3.17 Mbytes)
30.11% of uncompressed filesystem size (10794.56 Kbytes)
Inode table size 8378 bytes (8.18 Kbytes)
23.60% of uncompressed inode table size (35499 bytes)
Directory table size 10510 bytes (10.26 Kbytes)
48.32% of uncompressed directory table size (21753 bytes)
Number of duplicate files found 25
Number of inodes 1072
Number of files 789
Number of fragments 26
Number of symbolic links 186
Number of device nodes 1
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 96
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
再化簡一次產出 image 的流程
刪掉跟最後產出的 image 不相關的部分
make[5]:*
Use symbolic permissions to avoid clobbering SUID/SGID/sticky bits
install -d -m0755 <build_target>/root-ramips/tmp
chmod 1777 <build_target>/root-ramips/tmp
cp vmlinux.elf openwrt-ramips-mt7621-vmlinux.elf
cp vmlinux openwrt-ramips-mt7621-vmlinux.bin
cp uImage.lzma openwrt-ramips-mt7621-uImage.bin
這部分也無關
lzma e <build_target>/linux-ramips_mt7621/vmlinux
-lc1 -lp2
-pb2 <build_target>/linux-ramips_mt7621/vmlinux.bin.lzma
LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03
mkimage
-A mips -O linux -T kernel -C lzma -a 0x80001000 -e 0x80001000 -n "OpenWrt Linux-3.10.14"
-d <build_target>/linux-ramips_mt7621/vmlinux.bin.lzma
<build_target>/linux-ramips_mt7621/uImage.lzma
這部分也無關
dd
if=<build_target>/linux-ramips_mt7621/root.squashfs
of=bin/ramips/openwrt-ramips-mt7621-root.squashfs bs=128k conv=sync
25+1 records in
26+0 records out
3407872 bytes (3.4 MB) copied, 0.00644181 s, 529 MB/s
最後留下來的主流程
mksquashfs4
<build_target>/root-ramips
<build_target>/linux-ramips_mt7621/root.squashfs
-nopad -noappend -root-owned -comp xz -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2 -b 256k -p '/dev d 755 0 0'
-p '/dev/console c 600 0 0 5 1' -processors 1
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/root.squashfs, block size 262144.
Pseudo file "/dev" exists in source filesystem "/home/user/MTKOpenWrt-ODM/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips/dev".
Ignoring, exclude it (-e/-ef) to override.
[==================================================================================================================================================================================================-] 785/785 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 262144
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 3250.58 Kbytes (3.17 Mbytes)
30.11% of uncompressed filesystem size (10794.56 Kbytes)
Inode table size 8378 bytes (8.18 Kbytes)
23.60% of uncompressed inode table size (35499 bytes)
Directory table size 10510 bytes (10.26 Kbytes)
48.32% of uncompressed directory table size (21753 bytes)
Number of duplicate files found 25
Number of inodes 1072
Number of files 789
Number of fragments 26
Number of symbolic links 186
Number of device nodes 1
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 96
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
cp
<build_target>/linux-ramips_mt7621/vmlinux
<build_target>/linux-ramips_mt7621/vmlinux-mt7621
lzma e <build_target>/linux-ramips_mt7621/vmlinux-mt7621
-lc1 -lp2 -pb2
<build_target>/linux-ramips_mt7621/vmlinux-mt7621.bin.lzma
LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03
mkimage -
A mips -O linux -T kernel -C lzma -a 0x80001000 -e 0x80001000 -n "OpenWrt Linux-3.10.14"
-d <build_target>/linux-ramips_mt7621/vmlinux-mt7621.bin.lzma
<build_target>/linux-ramips_mt7621/vmlinux-mt7621.uImage
Image Name: OpenWrt Linux-3.10.14
Created: Tue Jan 23 09:48:30 2018
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1566640 Bytes = 1529.92 kB = 1.49 MB
Load Address: 80001000
Entry Point: 80001000
cat
<build_target>/linux-ramips_mt7621/vmlinux-mt7621.uImage
<build_target>/linux-ramips_mt7621/root.squashfs
>
<build_target>/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin
padjffs2
<build_target>/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin
4 8 16 64 128 256
padding image to 004ac000
padding image to 004b0000
padding image to 004c0000
再看 padjffs2
的 usage
user@a5076210d06e:~/study$ /home/user/MTKOpenWrt-ODM/staging_dir/host/bin/padjffs2
Usage: padjffs2 file [<options>] [pad0] [pad1] [padN]
Options:
-x <offset>: Add an extra offset for padding data
-J: Use a fake big-endian jffs2 padding element instead of EOF
This is used to work around broken boot loaders that
try to parse the entire firmware area as one big jffs2
-j: (like -J, but little-endian instead of big-endian)
解析
padjffs2
<build_target>/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin
4 8 16 64 128 256
實在不太知道 4 8 16 64 128 256
到底是什麼
直接參考 include/image.mk
裡的定義
# pad to 4k, 8k, 16k, 64k, 128k, 256k and add jffs2 end-of-filesystem mark
define prepare_generic_squashfs
$(STAGING_DIR_HOST)/bin/padjffs2 $(1) 4 8 16 64 128 256
endef
再回到我們自己的 M360P source code
先 git pull 後再 compile
我們的 M360P 終於也產出 image 了
仿照今天的 trace 來記錄 M360P image 的產出主流程
mksquashfs4 <build_target>/root-ramips <build_target>/linux-ramips_mt7621/root.squashfs
-nopad
-noappend
-root-owned
-comp xz
-Xpreset 9
-Xe
-Xlc 0
-Xlp 2
-Xpb 2
-b 256k
-p '/dev d 755 0 0'
-p '/dev/console c 600 0 0 5 1'
-processors 1
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /home/user/M360P/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/root.squashfs, block size 262144.
Pseudo file "/dev" exists in source filesystem "/home/user/M360P/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips/dev".
Ignoring, exclude it (-e/-ef) to override.
[================================================================================================================================================================================================|] 1435/1435 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 262144
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 10146.93 Kbytes (9.91 Mbytes)
29.14% of uncompressed filesystem size (34823.05 Kbytes)
Inode table size 15116 bytes (14.76 Kbytes)
24.91% of uncompressed inode table size (60679 bytes)
Directory table size 18042 bytes (17.62 Kbytes)
46.99% of uncompressed directory table size (38397 bytes)
Number of duplicate files found 32
Number of inodes 1815
Number of files 1392
Number of fragments 62
Number of symbolic links 271
Number of device nodes 1
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 151
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
cp <build_target>/linux-ramips_mt7621/vmlinux <build_target>/linux-ramips_mt7621/vmlinux-mt7621
lzma e <build_target>/linux-ramips_mt7621/vmlinux-mt7621
-lc1 -lp2 -pb2
<build_target>/linux-ramips_mt7621/vmlinux-mt7621.bin.lzma
LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03
mkimage -A mips -O linux -T kernel -C lzma -a 0x80001000 -e 0x80001000 -n "OpenWrt Linux-3.10.14" -d /home/user/M360P/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621.bin.lzm$
/home/user/M360P/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/vmlinux-mt7621.uImage
Image Name: OpenWrt Linux-3.10.14
Created: Wed Jan 24 08:25:31 2018
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1623038 Bytes = 1585.00 kB = 1.55 MB
Load Address: 80001000
Entry Point: 80001000
cat
<build_target>/linux-ramips_mt7621/vmlinux-mt7621.uImage
<build_target>/linux-ramips_mt7621/root.squashfs
>
<build_target>/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin
padjffs2
<build_target>/linux-ramips_mt7621/openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin
4 8 16 64 128 256
padding image to 00b75000
padding image to 00b76000
padding image to 00b78000
padding image to 00b80000
直接 ls -al
<build_target>/linux-ramips_mt7621
裡的內容看看大小
user@a5076210d06e:~/M360P/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621$ ls -al
total 94732
drwxr-xr-x 9 user user 4096 Jan 24 08:25 .
drwxr-xr-x 89 user user 4096 Jan 24 08:20 ..
drwxr-xr-x 3 user user 4096 Jan 24 08:15 base-files
drwxr-xr-x 15 user user 4096 Jan 24 08:15 iptables-1.4.21
drwxrwxr-x 28 user user 4096 Jan 24 08:25 linux-3.10.14
drwxr-xr-x 5 user user 4096 Jan 24 08:15 linux-atm-2.5.2
lrwxrwxrwx 1 user user 100 Jan 23 08:31 linux-kernel -> /home/user/M360P/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/linux-3.10.14
drwxr-xr-x 5 user user 4096 Jan 24 08:19 mt7603e-4.0.1.0
drwxr-xr-x 3 user user 4096 Jan 24 08:19 mtd
-rw-r--r-- 1 user user 12058628 Jan 24 08:25 openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin
drwxr-xr-x 3 user user 4096 Jan 24 08:15 packages
-rw-r--r-- 1 user user 10390452 Jan 24 08:25 root.squashfs
-rw-r--r-- 1 user user 1623102 Jan 24 08:25 uImage.lzma
-rwxr-xr-x 1 user user 4770112 Jan 24 08:25 vmlinux
-rw-r--r-- 1 user user 1623038 Jan 24 08:25 vmlinux.bin.lzma
-rwxr-xr-x 1 user user 53678877 Jan 24 08:25 vmlinux.debug
-rwxr-xr-x 1 user user 4775168 Jan 24 08:25 vmlinux.elf
-rwxr-xr-x 1 user user 4770112 Jan 24 08:25 vmlinux-mt7621
-rw-r--r-- 1 user user 1623038 Jan 24 08:25 vmlinux-mt7621.bin.lzma
-rw-r--r-- 1 user user 1623102 Jan 24 08:25 vmlinux-mt7621.uImage