Skip to contentSkip to conversation

Update qemu-binfmt-conf.sh

PATCH New Stefan Weil 1 participant 1 message Mar 30, 2007 exec and binfmt

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Update qemu-binfmt-conf.sh

The patch updates the comments, makes modprobe conditional, adds a mount needed at least for Debian, and tries to add m68k.

I have no m68k executable available, perhaps somebody can check the header bytes and the cpu type for this platform?

Maybe the cpu list for mips must be completed, too.

Stefan

Index: qemu-binfmt-conf.sh
===================================================================
RCS file: /sources/qemu/qemu/qemu-binfmt-conf.sh,v retrieving revision 1.4

qemu-binfmt-conf.sh +17 -2
diff -u -b -B -r1.4 qemu-binfmt-conf.sh
@@ -1,8 +1,13 @@
 #!/bin/sh
-# enable automatic i386/ARM/SPARC/PPC program execution by the kernel
+# enable automatic i386/ARM/M68K/MIPS/SPARC/PPC program execution by the kernel
 
 # load the binfmt_misc module
-/sbin/modprobe binfmt_misc
+if [ ! -d /proc/sys/fs/binfmt_misc ]; then
+  /sbin/modprobe binfmt_misc
+fi
+if [ ! -f /proc/sys/fs/binfmt_misc/register ]; then
+  mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
+fi
 
 # probe cpu type
 cpu=`uname -m`
@@ -10,6 +15,12 @@
   i386|i486|i586|i686|i86pc|BePC)
     cpu="i386"
   ;;
+  m68k)
+    cpu="m68k"
+  ;;
+  mips)
+    cpu="mips"
+  ;;
   "Power Macintosh"|ppc|ppc64)
     cpu="ppc"
   ;;
@@ -33,6 +44,10 @@
 if [ $cpu != "ppc" ] ; then
     echo   ':ppc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-ppc:' > /proc/sys/fs/binfmt_misc/register
 fi
+if [ $cpu != "m68k" ] ; then
+    echo   'Please check cpu value and header information for m68k!'
+    echo   ':m68k:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-m68k:' > /proc/sys/fs/binfmt_misc/register
+fi
 if [ $cpu != "mips" ] ; then
     echo   ':mips:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-mips:' > /proc/sys/fs/binfmt_misc/register
     echo   ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-mipsel:' > /proc/sys/fs/binfmt_misc/register