some changes to the build process
This commit is contained in:
parent
a892bbdebc
commit
9fe92009e5
|
|
@ -5,7 +5,7 @@ cd src/kernel/
|
||||||
gcc kmain.c $CFLAGS -o ../../bin/kernel/kmain.o
|
gcc kmain.c $CFLAGS -o ../../bin/kernel/kmain.o
|
||||||
for d in ./*/; do
|
for d in ./*/; do
|
||||||
if [ "$d" != "./obj/" ]; then
|
if [ "$d" != "./obj/" ]; then
|
||||||
echo -e "\033[1;32mCompiling files in $d\033[0m"
|
echo "\033[1;32mCompiling files in $d\033[0m"
|
||||||
for f in $d*.c; do
|
for f in $d*.c; do
|
||||||
echo -e "\033[1;36mfile: $f\033[0m"
|
echo -e "\033[1;36mfile: $f\033[0m"
|
||||||
SUF=".c"
|
SUF=".c"
|
||||||
|
|
|
||||||
25
makefile
25
makefile
|
|
@ -10,25 +10,34 @@ OBJS := $(patsubst src/kernel/%.c, bin/kernel/%.o, $(SRCS))
|
||||||
all: bootloader tools kernel
|
all: bootloader tools kernel
|
||||||
cp bin/bootloader.bin image.bin
|
cp bin/bootloader.bin image.bin
|
||||||
qemu-img resize -f raw image.bin 512M
|
qemu-img resize -f raw image.bin 512M
|
||||||
./diskwrite -v -l idm.elf ifsm.elf kernel.elf -o image.bin
|
./diskwrite idm.elf ifsm.elf kernel.elf -o image.bin
|
||||||
|
sudo mount image.bin mount
|
||||||
|
sudo mkdir mount/mod # for kernel modules
|
||||||
|
sudo mkdir mount/bin # for binary executables
|
||||||
|
sudo mkdir mount/sys # for system files
|
||||||
# ./diskwrite -v -o image.bin
|
# ./diskwrite -v -o image.bin
|
||||||
# ./diskwrite -v -l kernel.elf idm.elf -o image.bin
|
# ./diskwrite -v -l kernel.elf idm.elf -o image.bin
|
||||||
qemu-system-i386 -hda image.bin --no-reboot --no-shutdown -m 32m -smp 2 -serial mon:stdio -D intlog.txt -d int
|
qemu-system-i386 -hda image.bin --no-reboot --no-shutdown -m 32m -smp 2 -serial mon:stdio -D intlog.txt -d int
|
||||||
|
sudo umount mount
|
||||||
|
|
||||||
tools:
|
tools:
|
||||||
$(CC) tools/diskwrite.c -o diskwrite
|
$(CC) tools/diskwrite.c -o diskwrite
|
||||||
|
|
||||||
|
mount: bootloader tools kernel
|
||||||
|
cp bin/bootloader.bin image.bin
|
||||||
|
qemu-img resize -f raw image.bin 512M
|
||||||
|
./diskwrite -l idm.elf ifsm.elf kernel.elf -o image.bin
|
||||||
|
sudo mount image.bin mount
|
||||||
|
sudo mkdir mount/mod
|
||||||
|
sudo mkdir mount/bin
|
||||||
|
sudo mkdir mount/sys
|
||||||
|
@echo "\e[31mrun 'sudo umount mount' to unmount\e[0m"
|
||||||
|
|
||||||
bootloader:
|
bootloader:
|
||||||
$(AS) src/bootloader/main.s $(BL_ASFLAGS) -o bin/bootloader.bin
|
$(AS) src/bootloader/main.s $(BL_ASFLAGS) -o bin/bootloader.bin
|
||||||
run:
|
run:
|
||||||
qemu-system-i386 -hda image.bin --no-reboot --no-shutdown -m 32m -smp 2 -serial mon:stdio -D intlog.txt -d int
|
qemu-system-i386 -hda image.bin --no-reboot --no-shutdown -m 32m -smp 2 -serial mon:stdio -D intlog.txt -d int
|
||||||
|
|
||||||
test: bootloader tools kernel
|
|
||||||
cp bin/bootloader.bin image.bin
|
|
||||||
qemu-img resize -f raw image.bin 512M
|
|
||||||
./diskwrite -v -o image.bin
|
|
||||||
fsck.fat image.bin
|
|
||||||
sudo cp kernel.elf test/kernel.elf
|
|
||||||
make run
|
|
||||||
# kernel: $(OBJS)
|
# kernel: $(OBJS)
|
||||||
kernel:
|
kernel:
|
||||||
nasm src/kernel/entry.s -o bin/kernel/entry.o -f elf32
|
nasm src/kernel/entry.s -o bin/kernel/entry.o -f elf32
|
||||||
|
|
|
||||||
|
|
@ -151,7 +151,7 @@ int write_file(fat_info *info, file_t *file, buffer_t buffer, size_t size, FILE
|
||||||
uint8_t *new_buffer = calloc(1, clusters * (info->bpb.bytes_per_sector * info->bpb.sectors_per_cluster ));
|
uint8_t *new_buffer = calloc(1, clusters * (info->bpb.bytes_per_sector * info->bpb.sectors_per_cluster ));
|
||||||
memcpy(new_buffer, buffer, size);
|
memcpy(new_buffer, buffer, size);
|
||||||
uint32_t cluster = first_cluster;
|
uint32_t cluster = first_cluster;
|
||||||
printf("start: %d count: %d\n", cluster, clusters);
|
// printf("start: %d count: %d\n", cluster, clusters);
|
||||||
// return -1;
|
// return -1;
|
||||||
for(uint32_t i = 0; i < clusters; i++){
|
for(uint32_t i = 0; i < clusters; i++){
|
||||||
write_sector(disk, info->bpb.reserved_sectors + info->file_table_size_sectors + info->bpb.partition_start + ((cluster - 2) * info->bpb.sectors_per_cluster), info->bpb.sectors_per_cluster, new_buffer + i * info->bpb.sectors_per_cluster * info->bpb.bytes_per_sector);
|
write_sector(disk, info->bpb.reserved_sectors + info->file_table_size_sectors + info->bpb.partition_start + ((cluster - 2) * info->bpb.sectors_per_cluster), info->bpb.sectors_per_cluster, new_buffer + i * info->bpb.sectors_per_cluster * info->bpb.bytes_per_sector);
|
||||||
|
|
@ -176,7 +176,7 @@ int create_file(char *path, fat_info *info, FILE *file, FILE *disk){
|
||||||
while(root_files[index].filename[0]){
|
while(root_files[index].filename[0]){
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
printf("%s\n", root_files[index].filename);
|
// printf("%s\n", root_files[index].filename);
|
||||||
verbose && printf("Creating file at index: %d\n", index);
|
verbose && printf("Creating file at index: %d\n", index);
|
||||||
char *ext = strchr(path, '.');
|
char *ext = strchr(path, '.');
|
||||||
char *tmpptr = path;
|
char *tmpptr = path;
|
||||||
|
|
@ -280,7 +280,7 @@ int main(int argc, char **argv){
|
||||||
// return 0;
|
// return 0;
|
||||||
// }
|
// }
|
||||||
for(int i = 0; i < filec; i++){
|
for(int i = 0; i < filec; i++){
|
||||||
printf("\033[1;34mWriting file %d in list: %s\033[0m\n", i, files[i]);
|
// printf("\033[1;34mWriting file %d in list: %s\033[0m\n", i, files[i]);
|
||||||
FILE *f = fopen(files[i], "r");
|
FILE *f = fopen(files[i], "r");
|
||||||
if(!f){
|
if(!f){
|
||||||
printf("Error Opening file\n");
|
printf("Error Opening file\n");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue