#!/usr/bin/perl my $vmlinux="vmlinux"; my $objdump="mipsel-linux-objdump"; -f $vmlinux || die "$vmlinux not found.\n"; my $cmd ="$objdump -f -h $vmlinux"; my ($kernel_entry, $kernel_start); open(IFP,"$cmd|") || die "command \"$cmd\" failed.\n"; while(){ if(/^start address (0x[\da-fA-F]{8})/){ $kernel_entry = $1; } elsif(/^ 0 .text\s+\S+\s+(\S+)/){ $kernel_start = $1; } } close(IFP); defined($kernel_entry) || die "kernel_entry not found.\n"; defined($kernel_start) || die "kernel_start not found.\n"; print "kernel_entry: $kernel_entry\n"; print "kernel_start: 0x$kernel_start\n"; exit(0);