binfmt-misc-arm.sh 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. #!/bin/bash
  2. # Script from http://tinkering-is-fun.blogspot.fr/2009/12/running-arm-linux-on-your-desktop-pc_12.html
  3. UNREGISTER=0
  4. if [ "$1" == "unregister" ]; then
  5. UNREGISTER=1
  6. fi
  7. FORMAT_NAME='arm'
  8. FORMAT_MAGIC='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00'
  9. FORMAT_MASK='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
  10. FORMAT_INTERP='/usr/bin/qemu-arm-static'
  11. FORMAT_REGISTRATION=":$FORMAT_NAME:M::$FORMAT_MAGIC:$FORMAT_MASK:$FORMAT_INTERP:"
  12. BINFMT_MISC="/proc/sys/fs/binfmt_misc"
  13. if [ $UNREGISTER -ne 1 ]; then
  14. # Check if format is not registered already
  15. if [ ! -f "$BINFMT_MISC/$FORMAT_NAME" ]; then
  16. echo "Registering SH4 binfmt_misc support"
  17. echo "$FORMAT_REGISTRATION" > /proc/sys/fs/binfmt_misc/register
  18. else
  19. echo "Format $FORMAT_NAME already registered."
  20. fi
  21. else
  22. # We were asked to drop the registration
  23. if [ -f "$BINFMT_MISC/$FORMAT_NAME" ]; then
  24. echo -1 > "$BINFMT_MISC/$FORMAT_NAME"
  25. else
  26. echo "Format $FORMAT_NAME not registered."
  27. fi
  28. fi