Hex Artifact Content

Artifact a88b256cec126fcf9779acd59b38d211f6b5ec4f:


0000: 23 21 20 2f 62 69 6e 2f 62 61 73 68 0a 0a 69 66  #! /bin/bash..if
0010: 20 5b 20 2d 7a 20 22 24 7b 4b 45 52 4e 45 4c 5f   [ -z "${KERNEL_
0020: 44 49 52 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 66  DIR}" ]; then..f
0030: 6f 72 20 74 72 79 4b 65 72 6e 65 6c 44 69 72 20  or tryKernelDir 
0040: 69 6e 20 22 2f 6c 69 62 2f 6d 6f 64 75 6c 65 73  in "/lib/modules
0050: 2f 24 28 75 6e 61 6d 65 20 2d 72 29 22 2f 7b 62  /$(uname -r)"/{b
0060: 75 69 6c 64 2c 73 6f 75 72 63 65 7d 20 22 2f 75  uild,source} "/u
0070: 73 72 2f 73 72 63 2f 6c 69 6e 75 78 2d 24 28 75  sr/src/linux-$(u
0080: 6e 61 6d 65 20 2d 72 29 22 3b 20 64 6f 0a 09 09  name -r)"; do...
0090: 69 66 20 5b 20 2d 66 20 22 24 7b 74 72 79 4b 65  if [ -f "${tryKe
00a0: 72 6e 65 6c 44 69 72 7d 2f 2e 63 6f 6e 66 69 67  rnelDir}/.config
00b0: 22 20 5d 3b 20 74 68 65 6e 0a 09 09 09 6b 65 72  " ]; then....ker
00c0: 6e 65 6c 44 69 72 3d 22 24 7b 74 72 79 4b 65 72  nelDir="${tryKer
00d0: 6e 65 6c 44 69 72 7d 22 0a 0a 09 09 09 62 72 65  nelDir}".....bre
00e0: 61 6b 0a 09 09 66 69 0a 09 64 6f 6e 65 0a 0a 65  ak...fi..done..e
00f0: 6c 73 65 0a 09 6b 65 72 6e 65 6c 44 69 72 3d 22  lse..kernelDir="
0100: 24 7b 4b 45 52 4e 45 4c 5f 44 49 52 7d 22 0a 66  ${KERNEL_DIR}".f
0110: 69 0a 0a 69 66 20 5b 20 2d 7a 20 22 24 7b 6b 65  i..if [ -z "${ke
0120: 72 6e 65 6c 44 69 72 7d 22 20 5d 3b 20 74 68 65  rnelDir}" ]; the
0130: 6e 0a 09 65 63 68 6f 20 22 65 72 72 6f 72 3a 20  n..echo "error: 
0140: 55 6e 61 62 6c 65 20 74 6f 20 64 65 74 65 72 6d  Unable to determ
0150: 69 6e 65 20 6b 65 72 6e 65 6c 20 62 75 69 6c 64  ine kernel build
0160: 20 64 69 72 65 63 74 6f 72 79 2e 20 20 54 72 79   directory.  Try
0170: 20 73 70 65 63 69 66 79 69 6e 67 20 74 68 65 20   specifying the 
0180: 4b 45 52 4e 45 4c 5f 44 49 52 20 65 6e 76 69 72  KERNEL_DIR envir
0190: 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 22  onment variable"
01a0: 20 3e 26 32 0a 0a 09 65 78 69 74 20 31 0a 66 69   >&2...exit 1.fi
01b0: 0a 0a 69 66 20 5b 20 2d 7a 20 22 24 7b 53 59 53  ..if [ -z "${SYS
01c0: 54 45 4d 5f 4d 41 50 5f 46 49 4c 45 7d 22 20 5d  TEM_MAP_FILE}" ]
01d0: 3b 20 74 68 65 6e 0a 09 66 6f 72 20 74 72 79 53  ; then..for tryS
01e0: 79 73 74 65 6d 4d 61 70 46 69 6c 65 20 69 6e 20  ystemMapFile in 
01f0: 2f 70 72 6f 63 2f 6b 61 6c 6c 73 79 6d 73 20 22  /proc/kallsyms "
0200: 24 7b 6b 65 72 6e 65 6c 44 69 72 7d 2f 53 79 73  ${kernelDir}/Sys
0210: 74 65 6d 2e 6d 61 70 22 20 22 2f 62 6f 6f 74 2f  tem.map" "/boot/
0220: 53 79 73 74 65 6d 2e 6d 61 70 22 3b 20 64 6f 0a  System.map"; do.
0230: 09 09 69 66 20 65 67 72 65 70 20 27 20 73 79 73  ..if egrep ' sys
0240: 5f 63 61 6c 6c 5f 74 61 62 6c 65 28 24 7c 20 29  _call_table($| )
0250: 27 20 22 24 7b 74 72 79 53 79 73 74 65 6d 4d 61  ' "${trySystemMa
0260: 70 46 69 6c 65 7d 22 20 3e 2f 64 65 76 2f 6e 75  pFile}" >/dev/nu
0270: 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 20  ll 2>/dev/null; 
0280: 74 68 65 6e 0a 09 09 09 73 79 73 74 65 6d 4d 61  then....systemMa
0290: 70 46 69 6c 65 3d 22 24 7b 74 72 79 53 79 73 74  pFile="${trySyst
02a0: 65 6d 4d 61 70 46 69 6c 65 7d 22 0a 0a 09 09 09  emMapFile}".....
02b0: 62 72 65 61 6b 0a 09 09 66 69 0a 09 64 6f 6e 65  break...fi..done
02c0: 0a 65 6c 73 65 0a 09 73 79 73 74 65 6d 4d 61 70  .else..systemMap
02d0: 46 69 6c 65 3d 22 24 7b 53 59 53 54 45 4d 5f 4d  File="${SYSTEM_M
02e0: 41 50 5f 46 49 4c 45 7d 22 0a 66 69 0a 0a 69 66  AP_FILE}".fi..if
02f0: 20 5b 20 2d 7a 20 22 24 7b 73 79 73 74 65 6d 4d   [ -z "${systemM
0300: 61 70 46 69 6c 65 7d 22 20 5d 3b 20 74 68 65 6e  apFile}" ]; then
0310: 0a 09 65 63 68 6f 20 22 65 72 72 6f 72 3a 20 55  ..echo "error: U
0320: 6e 61 62 6c 65 20 74 6f 20 64 65 74 65 72 6d 69  nable to determi
0330: 6e 65 20 73 79 73 74 65 6d 20 6d 61 70 20 66 69  ne system map fi
0340: 6c 65 2e 20 20 54 72 79 20 73 70 65 63 69 66 79  le.  Try specify
0350: 69 6e 67 20 74 68 65 20 53 59 53 54 45 4d 5f 4d  ing the SYSTEM_M
0360: 41 50 5f 46 49 4c 45 20 65 6e 76 69 72 6f 6e 6d  AP_FILE environm
0370: 65 6e 74 20 76 61 72 69 61 62 6c 65 2e 22 20 3e  ent variable." >
0380: 26 32 0a 0a 09 65 78 69 74 20 31 0a 66 69 0a 0a  &2...exit 1.fi..
0390: 72 6d 20 2d 66 20 4d 61 6b 65 66 69 6c 65 2e 69  rm -f Makefile.i
03a0: 6e 63 0a 65 63 68 6f 20 22 53 59 53 54 45 4d 5f  nc.echo "SYSTEM_
03b0: 4d 41 50 5f 46 49 4c 45 20 3d 20 24 7b 73 79 73  MAP_FILE = ${sys
03c0: 74 65 6d 4d 61 70 46 69 6c 65 7d 22 20 3e 20 4d  temMapFile}" > M
03d0: 61 6b 65 66 69 6c 65 2e 69 6e 63 0a 65 63 68 6f  akefile.inc.echo
03e0: 20 22 4b 45 52 4e 45 4c 5f 44 49 52 20 3d 20 24   "KERNEL_DIR = $
03f0: 7b 6b 65 72 6e 65 6c 44 69 72 7d 22 20 3e 3e 20  {kernelDir}" >> 
0400: 4d 61 6b 65 66 69 6c 65 2e 69 6e 63 0a 65 63 68  Makefile.inc.ech
0410: 6f 20 22 4b 45 52 4e 45 4c 5f 56 45 52 20 3d 20  o "KERNEL_VER = 
0420: 24 28 75 6e 61 6d 65 20 2d 72 29 22 20 3e 3e 20  $(uname -r)" >> 
0430: 4d 61 6b 65 66 69 6c 65 2e 69 6e 63 0a 0a 65 78  Makefile.inc..ex
0440: 69 74 20 30 0a                                   it 0.