Browse Source

feat(make): use mtools to copy files into boot.img

greatbridf 2 years ago
parent
commit
2dafb2999b
2 changed files with 10 additions and 1 deletions
  1. 2 1
      CMakeLists.txt
  2. 8 0
      configure

+ 2 - 1
CMakeLists.txt

@@ -133,8 +133,9 @@ add_custom_target(boot.img
     COMMAND dd if=mbr.bin of=boot.img
     COMMAND cat mbr_hole.bin >> boot.img
     COMMAND dd if=/dev/zero of=boot.img bs=`expr 512 \\* 1024 \\* 1024` count=0 seek=1
-    COMMAND echo -n 'n\\n\\n\\n\\n\\na\\nw\\n' | fdisk boot.img
+    COMMAND sh -c \"echo n\; echo\; echo\; echo\; echo\; echo a\; echo w\" | fdisk boot.img
     COMMAND mkfs.fat --offset=2048 -v -n SYSTEM boot.img
+    COMMAND mcopy -i boot.img@@1M ${CMAKE_SOURCE_DIR}/user-space-program/user.sym ::user.sym
 )
 
 add_custom_command(OUTPUT run

+ 8 - 0
configure

@@ -103,6 +103,14 @@ else
     echo `which mkfs.fat`
 fi
 
+event "checking mtools"
+if ! which mcopy > /dev/null 2>&1; then
+    echo "no"
+    exit 1
+else
+    echo `which mcopy`
+fi
+
 cp Makefile.src Makefile
 sed -i '' -e "s/##PLACEHOLDER_1##/$QEMU/" Makefile > /dev/null 2>&1
 sed -i '' -e "s/##PLACEHOLDER_2##/$GDB/" Makefile > /dev/null 2>&1