@@ -104,53 +104,55 @@ endef
104104all :
105105
106106install :
107- ifeq (, $( shell which $( TRACE_EXE ) ) )
108- @cargo install --git https://github.com/os-module/elfinfo
109- else
110- @echo "elfinfo has been installed"
111- endif
112-
107+ @if ! command -v gen_ksym > /dev/null 2>&1 ; then \
108+ echo " Installing gen_ksym... " ; \
109+ RUSTFLAGS= cargo install --git https://github.com/Starry-OS/ksym --features=demangle ; \
110+ else \
111+ echo " gen_ksym already installed. " ; \
112+ fi
113113
114- build :install compile
114+ build : install compile
115115
116116compile :
117117 RUSTFLAGS=" $( RUSTFLAGS) " \
118118 cargo build --release -p kernel \
119119 --target $(TARGET ) \
120120 --features $(FEATURES )
121-
122- @riscv64-linux-gnu-ld -T $(LINKER_SCRIPT) \
123- -o $(KERNEL_FILE) \
124- $(KERNEL_LIB)
125-
126- @nm -n -C ${KERNEL_FILE} | grep ' [Tt] ' | grep -v '\.L' | grep -v '$$x' \
127- | cargo run --manifest-path ../os-modules/ext_ebpf/ksym/Cargo.toml \
128- --bin gen_ksym_as --features="demangle" > subsystems/unwinder/src/kernel_symbol.S
129121
130- @riscv64-linux-gnu-gcc \
131- -c subsystems/unwinder/src/kernel_symbol.S \
132- -o subsystems/unwinder/src/ksym.o
133122 @riscv64-linux-gnu-ld -T $(LINKER_SCRIPT ) \
134123 -o $(KERNEL_FILE ) \
135- $(KERNEL_LIB) \
136- subsystems/unwinder/src/ksym.o
124+ $(KERNEL_LIB )
125+ @echo " Generating kernel symbols at $@ "
126+ @nm -n -C $(KERNEL_FILE ) | grep ' [Tt] ' | grep -v ' \.L' | grep -v ' $$x' | RUSTFLAGS= gen_ksym > kallsyms
127+ @make copy_kallsyms
137128
138129 @# $(OBJCOPY) $(KERNEL_FILE) --strip-all -O binary $(KERNEL_BIN)
139130 @cp $(KERNEL_FILE) ./kernel-qemu
140131
132+
133+ copy_kallsyms :
134+ @-sudo umount $(FSMOUNT )
135+ @-sudo rm -rf $(FSMOUNT )
136+ @-mkdir $(FSMOUNT )
137+ @sudo mount $(IMG ) $(FSMOUNT )
138+ @echo " copying kallsyms"
139+ sudo cp kallsyms $(FSMOUNT ) /kallsyms
140+ @echo " copying kallsyms done"
141+ @make unmount
142+ @rm kallsyms
143+
141144initramfs :
142145 make -C tools/initrd
143146
144147user :
145148 @echo " Building user apps"
146149 @make all -C ./user/apps
147150 @make all -C ./user/c_apps ARCH=riscv64
148- # @make all -C ./user/musl
151+ @make all -C ./user/musl
149152 @echo " Building user apps done"
150153
151154sdcard :$(FS ) mount testelf user initramfs
152- @sudo umount $(FSMOUNT )
153- @rm -rf $(FSMOUNT )
155+ @make unmount
154156
155157run :sdcard install compile
156158 @echo qemu booot $(SMP )
@@ -209,15 +211,23 @@ jh7110:
209211 @dtc -I dtb -o dts -o jh7110.dts ./tools/jh7110-visionfive-v2.dtb
210212
211213fat :
212- dd if=/dev/zero of=$(IMG ) bs=1M count=72;
213- @mkfs.fat -F 32 $(IMG )
214+ # check the file if exist
215+ if [ ! -f $(IMG) ]; then \
216+ echo "Creating $(IMG)"; \
217+ dd if=/dev/zero of=$(IMG) bs=1M count=72; \
218+ mkfs.fat -F 32 $(IMG); \
219+ else \
220+ echo "$(IMG) already exists."; \
221+ fi
214222
215223ext :
216- @if [ ` ls -l $( IMG) | awk ' {print $$5}' ` -lt 2147483648 ]; then \
217- echo " resize img to 2G" ; \
218- dd if=/dev/zero bs=1M count=2048 >> $(IMG ) ; \
224+ if [ ! -f $( IMG) ]; then \
225+ echo " Creating $( IMG) " ; \
226+ dd if=/dev/zero of=$(IMG ) bs=1M count=128; \
227+ mkfs.ext4 $(IMG ) ; \
228+ else \
229+ echo " $( IMG) already exists." ; \
219230 fi
220- @mkfs.ext4 $(IMG )
221231
222232mount :
223233 @echo " Mounting $( IMG) to $( FSMOUNT) "
@@ -230,6 +240,11 @@ mount:
230240 @sudo mkdir $(FSMOUNT ) /folder
231241 @sudo cp tools/f1.txt $(FSMOUNT ) /folder
232242
243+ unmount :
244+ @echo " Unmounting $( FSMOUNT) "
245+ @sudo umount $(FSMOUNT )
246+ @-rm -rf $(FSMOUNT )
247+
233248img-hex :
234249 @hexdump $(IMG ) > test.hex
235250 @cat test.hex
0 commit comments