Open effbiae opened 2 days ago
It happens because of the floppy driver only in QEMU. That's what Ian and I noticed. It works great on real machine & BOCHS
If you are already using QEMU then don't use floppy image but baremetal_os.img
Here is the bochs config file that works for Ian and me bo_flo.cfg.zip
bochs -f bo_flo.cfg -q
thanks for your feedback, isoux
has an issue been raised with qemu?
when i run bochs with
bochs -f /dev/null -q 'boot:a' 'floppya: 1_44=floppy.img, status=inserted'
it also hangs in pure64
i had to edit your config to run on my system but it still hangs
full log showing hang in pure64:
$ cat makefile
# set b to the path to the BareMetal-OS directory
b=../BareMetal-OS
B=$(shell readlink -f $b)
y=$B/sys
bochs: floppy.img
bochs -f /dev/null -q 'boot:a' 'floppya: 1_44=floppy.img, status=inserted'
qemu: floppy.img
qemu-system-x86_64 -machine q35 -m 256 -smp sockets=1,cpus=4 \
-serial stdio \
-drive format=raw,file="floppy.img",index=0,if=floppy
floppy.img:
cd $B && ./baremetal.sh build
dd if=/dev/zero of=floppy.img count=2880 bs=512
cat $y/bios-floppy.sys $y/pure64-bios.sys $y/kernel.sys $y/monitor.bin | \
dd of=floppy.img conv=notrunc
$ make
cd /home/jack/bm/BareMetal-OS && ./baremetal.sh build
Assembling source code... OK
Creating disk image files... OK
Formatting BMFS disk... OK
dd if=/dev/zero of=floppy.img count=2880 bs=512
2880+0 records in
2880+0 records out
1474560 bytes (1.5 MB, 1.4 MiB) copied, 0.0126294 s, 117 MB/s
cat /home/jack/bm/BareMetal-OS/sys/bios-floppy.sys /home/jack/bm/BareMetal-OS/sys/pure64-bios.sys /home/jack/bm/BareMetal-OS/sys/kernel.sys /home/jack/bm/BareMetal-OS/sys/monitor.bin | \
dd of=floppy.img conv=notrunc
61+0 records in
61+0 records out
31232 bytes (31 kB, 30 KiB) copied, 0.00036284 s, 86.1 MB/s
bochs -f /dev/null -q 'boot:a' 'floppya: 1_44=floppy.img, status=inserted'
========================================================================
Bochs x86 Emulator 2.8
Built from GitHub snapshot on March 10, 2024
Timestamp: Sun Mar 10 08:00:00 CET 2024
========================================================================
00000000000i[ ] BXSHARE not set. using compile time default '/usr/local/share/bochs'
00000000000i[ ] reading configuration from /dev/null
00000000000i[ ] parsing arg 4, boot:a
00000000000i[ ] parsing arg 5, floppya: 1_44=floppy.img, status=inserted
00000000000i[ ] installing x module as the Bochs GUI
00000000000i[ ] Bochs x86 Emulator 2.8
00000000000i[ ] Built from GitHub snapshot on March 10, 2024
00000000000i[ ] Timestamp: Sun Mar 10 08:00:00 CET 2024
00000000000i[ ] System configuration
00000000000i[ ] processors: 1 (cores=1, HT threads=1)
00000000000i[ ] A20 line support: yes
00000000000i[ ] IPS is set to 4000000
00000000000i[ ] CPU configuration
00000000000i[ ] SMP support: yes, quantum=16
00000000000i[ ] level: 6
00000000000i[ ] APIC support: xapic
00000000000i[ ] FPU support: yes
00000000000i[ ] MMX support: yes
00000000000i[ ] 3dnow! support: yes
00000000000i[ ] SEP support: yes
00000000000i[ ] SIMD support: sse2
00000000000i[ ] XSAVE support: no
00000000000i[ ] AES support: no
00000000000i[ ] SHA support: no
00000000000i[ ] MOVBE support: no
00000000000i[ ] ADX support: no
00000000000i[ ] x86-64 support: yes
00000000000i[ ] 1G paging support: no
00000000000i[ ] MWAIT support: yes
00000000000i[ ] VMX support: 1
00000000000i[ ] Optimization configuration
00000000000i[ ] RepeatSpeedups support: yes
00000000000i[ ] Fast function calls: yes
00000000000i[ ] Handlers Chaining speedups: no
00000000000i[ ] Devices configuration
00000000000i[ ] PCI support: i440FX i430FX i440BX
00000000000i[ ] Networking: no
00000000000i[ ] Sound support: no
00000000000i[ ] USB support: UHCI
00000000000i[ ] VGA extension support: vbe
00000000000i[IMG ] Disk image modules
00000000000i[IMG ] flat concat sparse dll growing undoable volatile vmware3
00000000000i[IMG ] vmware4 vbox vpc vvfat
00000000000i[USBCTL] Pluggable USB devices
00000000000i[USBCTL] floppy mouse tablet keypad keyboard hub disk cdrom
00000000000i[USBCTL] printer
00000000000i[MEM0 ] allocated memory at 0x748e14600010. after alignment, vector=0x748e14601000, block_size = 128K
00000000000i[MEM0 ] 32.00MB
00000000000i[MEM0 ] mem block size = 0x00020000, blocks=256
00000000000i[MEM0 ] rom at 0xfffe0000/131072 ('/usr/local/share/bochs/BIOS-bochs-latest')
00000000000i[CPU0 ] WARNING: 3DNow! is not implemented yet !
00000000000i[DEV ] will paste characters every 100 iodev timer ticks
00000000000i[PLUGIN] init_dev of 'pci' plugin device by virtual method
00000000000i[DEV ] i440FX PMC present at device 0, function 0
00000000000i[PLUGIN] init_dev of 'pci2isa' plugin device by virtual method
00000000000i[DEV ] PIIX3 PCI-to-ISA bridge present at device 1, function 0
00000000000i[PLUGIN] init_dev of 'cmos' plugin device by virtual method
00000000000i[CMOS ] Using local time for initial clock
00000000000i[CMOS ] Setting initial clock to: Sat Nov 30 19:20:55 2024 tz=utc (time0=1732994455)
00000000000i[PLUGIN] init_dev of 'dma' plugin device by virtual method
00000000000i[DMA ] channel 4 used by cascade
00000000000i[PLUGIN] init_dev of 'pic' plugin device by virtual method
00000000000i[PLUGIN] init_dev of 'pit' plugin device by virtual method
00000000000i[PLUGIN] init_dev of 'vga' plugin device by virtual method
00000000000i[MEM0 ] Register memory access handlers: 0x0000000a0000 - 0x0000000bffff
00000000000i[VGA ] interval=100000, mode=realtime
00000000000i[VGA ] Setting VGA update interval to 100000 (10.0 Hz)
00000000000i[VGA ] VSYNC using standard mode
00000000000i[MEM0 ] Register memory access handlers: 0x0000e0000000 - 0x0000e0ffffff
00000000000i[BXVGA ] VBE Bochs Display Extension Enabled
00000000000i[XGUI ] test_alloc_colors: 16 colors available out of 16 colors tried
00000000000i[XGUI ] font 8 wide x 16 high, display depth = 24
00000000000i[XGUI ] maximum host resolution: x=1366 y=718
00000000000i[MEM0 ] rom at 0xc0000/36352 ('/usr/local/share/bochs/VGABIOS-lgpl-latest')
00000000000i[PLUGIN] init_dev of 'floppy' plugin device by virtual method
00000000000i[DMA ] channel 2 used by Floppy Drive
00000000000i[FLOPPY] fd0: 'floppy.img' ro=0, h=2,t=80,spt=18
00000000000i[FLOPPY] Using boot sequence floppy, none, none
00000000000i[FLOPPY] Floppy boot signature check is enabled
00000000000i[PLUGIN] init_dev of 'acpi' plugin device by virtual method
00000000000i[DEV ] ACPI Controller present at device 1, function 3
00000000000i[PLUGIN] init_dev of 'hpet' plugin device by virtual method
00000000000i[HPET ] initializing HPET
00000000000i[MEM0 ] Register memory access handlers: 0x0000fed00000 - 0x0000fed003ff
00000000000i[PLUGIN] init_dev of 'ioapic' plugin device by virtual method
00000000000i[IOAPIC] initializing I/O APIC
00000000000i[MEM0 ] Register memory access handlers: 0x0000fec00000 - 0x0000fec00fff
00000000000i[IOAPIC] IOAPIC enabled (base address = 0xfec00000)
00000000000i[PLUGIN] init_dev of 'keyboard' plugin device by virtual method
00000000000i[PLUGIN] init_dev of 'harddrv' plugin device by virtual method
00000000000i[PLUGIN] init_dev of 'pci_ide' plugin device by virtual method
00000000000i[DEV ] PIIX3 PCI IDE controller present at device 1, function 1
00000000000i[PLUGIN] init_dev of 'unmapped' plugin device by virtual method
00000000000i[PLUGIN] init_dev of 'biosdev' plugin device by virtual method
00000000000i[PLUGIN] init_dev of 'speaker' plugin device by virtual method
00000000000e[PCSPK ] Failed to open /dev/console: Permission denied
00000000000e[PCSPK ] Deactivating beep on console
00000000000i[PLUGIN] init_dev of 'extfpuirq' plugin device by virtual method
00000000000i[PLUGIN] init_dev of 'parallel' plugin device by virtual method
00000000000i[PAR ] parallel port 1 at 0x0378 irq 7
00000000000i[PLUGIN] init_dev of 'serial' plugin device by virtual method
00000000000i[SER ] com1 at 0x03f8 irq 4 (mode: null)
00000000000i[PLUGIN] init_dev of 'iodebug' plugin device by virtual method
00000000000i[PLUGIN] init_dev of 'usb_uhci' plugin device by virtual method
00000000000i[DEV ] USB UHCI present at device 1, function 2
00000000000i[UHCI ] USB UHCI initialized
00000000000i[PLUGIN] register state of 'pci' plugin device by virtual method
00000000000i[PLUGIN] register state of 'pci2isa' plugin device by virtual method
00000000000i[PLUGIN] register state of 'cmos' plugin device by virtual method
00000000000i[PLUGIN] register state of 'dma' plugin device by virtual method
00000000000i[PLUGIN] register state of 'pic' plugin device by virtual method
00000000000i[PLUGIN] register state of 'pit' plugin device by virtual method
00000000000i[PLUGIN] register state of 'vga' plugin device by virtual method
00000000000i[PLUGIN] register state of 'floppy' plugin device by virtual method
00000000000i[PLUGIN] register state of 'unmapped' plugin device by virtual method
00000000000i[PLUGIN] register state of 'biosdev' plugin device by virtual method
00000000000i[PLUGIN] register state of 'speaker' plugin device by virtual method
00000000000i[PLUGIN] register state of 'extfpuirq' plugin device by virtual method
00000000000i[PLUGIN] register state of 'parallel' plugin device by virtual method
00000000000i[PLUGIN] register state of 'serial' plugin device by virtual method
00000000000i[PLUGIN] register state of 'iodebug' plugin device by virtual method
00000000000i[PLUGIN] register state of 'usb_uhci' plugin device by virtual method
00000000000i[PLUGIN] register state of 'acpi' plugin device by virtual method
00000000000i[PLUGIN] register state of 'hpet' plugin device by virtual method
00000000000i[PLUGIN] register state of 'ioapic' plugin device by virtual method
00000000000i[PLUGIN] register state of 'keyboard' plugin device by virtual method
00000000000i[PLUGIN] register state of 'harddrv' plugin device by virtual method
00000000000i[PLUGIN] register state of 'pci_ide' plugin device by virtual method
00000000000i[SYS ] bx_pc_system_c::Reset(HARDWARE) called
00000000000i[CPU0 ] cpu hardware reset
00000000000i[APIC0 ] allocate APIC id=0 (MMIO enabled) to 0x0000fee00000
00000000000i[CPU0 ] CPU[0] is the bootstrap processor
00000000000i[CPU0 ] CPUID[0x00000000]: 00000005 68747541 444d4163 69746e65
00000000000i[CPU0 ] CPUID[0x00000001]: 00000633 00010800 00002008 078bfbff
00000000000i[CPU0 ] CPUID[0x00000002]: 00000000 00000000 00000000 00000000
00000000000i[CPU0 ] CPUID[0x00000003]: 00000000 00000000 00000000 00000000
00000000000i[CPU0 ] CPUID[0x00000004]: 00000000 00000000 00000000 00000000
00000000000i[CPU0 ] CPUID[0x00000005]: 00000040 00000040 00000003 00000020
00000000000i[CPU0 ] CPUID[0x80000000]: 80000008 68747541 444d4163 69746e65
00000000000i[CPU0 ] CPUID[0x80000001]: 00000633 00000000 00000101 ebd3f3ff
00000000000i[CPU0 ] CPUID[0x80000002]: 20444d41 6c687441 74286e6f 7020296d
00000000000i[CPU0 ] CPUID[0x80000003]: 65636f72 726f7373 00000000 00000000
00000000000i[CPU0 ] CPUID[0x80000004]: 00000000 00000000 00000000 00000000
00000000000i[CPU0 ] CPUID[0x80000005]: 01ff01ff 01ff01ff 40020140 40020140
00000000000i[CPU0 ] CPUID[0x80000006]: 00000000 42004200 02008140 00000000
00000000000i[CPU0 ] CPUID[0x80000007]: 00000000 00000000 00000000 00000000
00000000000i[CPU0 ] CPUID[0x80000008]: 00003028 00000200 00000000 00000000
00000000000i[CPU0 ] CPU Features supported:
00000000000i[CPU0 ] "x87"
00000000000i[CPU0 ] "486ni"
00000000000i[CPU0 ] "pentium_ni"
00000000000i[CPU0 ] "p6ni"
00000000000i[CPU0 ] "mmx"
00000000000i[CPU0 ] "3dnow"
00000000000i[CPU0 ] "debugext"
00000000000i[CPU0 ] "vme"
00000000000i[CPU0 ] "pse"
00000000000i[CPU0 ] "pae"
00000000000i[CPU0 ] "pge"
00000000000i[CPU0 ] "pse36"
00000000000i[CPU0 ] "mtrr"
00000000000i[CPU0 ] "pat"
00000000000i[CPU0 ] "sysenter_sysexit"
00000000000i[CPU0 ] "clflush"
00000000000i[CPU0 ] "sse"
00000000000i[CPU0 ] "sse2"
00000000000i[CPU0 ] "mwait"
00000000000i[CPU0 ] "vmx"
00000000000i[CPU0 ] "longmode"
00000000000i[CPU0 ] "lm_lahf_sahf"
00000000000i[CPU0 ] "nx"
00000000000i[CPU0 ] "cmpxhg16b"
00000000000i[CPU0 ] "rdtscp"
00000000000i[CPU0 ] "ffxsr"
00000000000i[CPU0 ] "xapic"
00000000000i[PLUGIN] reset of 'pci' plugin device by virtual method
00000000000i[PLUGIN] reset of 'pci2isa' plugin device by virtual method
00000000000i[PLUGIN] reset of 'cmos' plugin device by virtual method
00000000000i[PLUGIN] reset of 'dma' plugin device by virtual method
00000000000i[PLUGIN] reset of 'pic' plugin device by virtual method
00000000000i[PLUGIN] reset of 'pit' plugin device by virtual method
00000000000i[PLUGIN] reset of 'vga' plugin device by virtual method
00000000000i[PLUGIN] reset of 'floppy' plugin device by virtual method
00000000000i[PLUGIN] reset of 'acpi' plugin device by virtual method
00000000000i[PLUGIN] reset of 'hpet' plugin device by virtual method
00000000000i[PLUGIN] reset of 'ioapic' plugin device by virtual method
00000000000i[PLUGIN] reset of 'keyboard' plugin device by virtual method
00000000000i[PLUGIN] reset of 'harddrv' plugin device by virtual method
00000000000i[PLUGIN] reset of 'pci_ide' plugin device by virtual method
00000000000i[PLUGIN] reset of 'unmapped' plugin device by virtual method
00000000000i[PLUGIN] reset of 'biosdev' plugin device by virtual method
00000000000i[PLUGIN] reset of 'speaker' plugin device by virtual method
00000000000i[PLUGIN] reset of 'extfpuirq' plugin device by virtual method
00000000000i[PLUGIN] reset of 'parallel' plugin device by virtual method
00000000000i[PLUGIN] reset of 'serial' plugin device by virtual method
00000000000i[PLUGIN] reset of 'iodebug' plugin device by virtual method
00000000000i[PLUGIN] reset of 'usb_uhci' plugin device by virtual method
00000000000i[ ] set SIGINT handler to bx_debug_ctrlc_handler
Bochs internal debugger, type 'help' for help or 'c' to continue
Switching to CPU0
Next at t=0
(0) [0x0000fffffff0] f000:fff0 (unk. ctxt): jmpf 0xf000:e05b ; ea5be000f0
<bochs:1> c
00000001740i[BIOS ] BIOS BUILD DATE: 03/10/24
00000317444i[KBD ] reset-disable command received
00000319428i[BIOS ] Starting rombios32
00000319866i[BIOS ] Shutdown flag 0
00000320464i[BIOS ] ram_size=0x02000000
00000320896i[BIOS ] ram_end=32MB
00000361641i[BIOS ] Found 1 cpu(s)
00000375579i[BIOS ] bios_table_addr: 0x000fa128 end=0x000fcc00
00000703395i[PCI ] i440FX PMC write to PAM register 59 (TLB Flush)
00001031330i[P2ISA ] PCI IRQ routing: PIRQA# set to 0x0b
00001031354i[P2ISA ] PCI IRQ routing: PIRQB# set to 0x09
00001031378i[P2ISA ] PCI IRQ routing: PIRQC# set to 0x0b
00001031402i[P2ISA ] PCI IRQ routing: PIRQD# set to 0x09
00001031412i[P2ISA ] write: ELCR2 = 0x0a
00001032181i[BIOS ] PIIX3/PIIX4 init: elcr=00 0a
00001045857i[BIOS ] PCI: bus=0 devfn=0x00: vendor_id=0x8086 device_id=0x1237 class=0x0600
00001048201i[BIOS ] PCI: bus=0 devfn=0x08: vendor_id=0x8086 device_id=0x7000 class=0x0601
00001050384i[BIOS ] PCI: bus=0 devfn=0x09: vendor_id=0x8086 device_id=0x7010 class=0x0101
00001050619i[PIDE ] BAR #4: i/o base address = 0xc000
00001051235i[BIOS ] region 4: 0x0000c000
00001053270i[BIOS ] PCI: bus=0 devfn=0x0a: vendor_id=0x8086 device_id=0x7020 class=0x0c03
00001053483i[UHCI ] BAR #4: i/o base address = 0xc020
00001054099i[BIOS ] region 4: 0x0000c020
00001054227i[UHCI ] new IRQ line = 9
00001056149i[BIOS ] PCI: bus=0 devfn=0x0b: vendor_id=0x8086 device_id=0x7113 class=0x0680
00001056425i[ACPI ] new IRQ line = 11
00001056439i[ACPI ] new IRQ line = 9
00001056467i[ACPI ] new PM base address: 0xb000
00001056481i[ACPI ] new SM base address: 0xb100
00001056509i[PCI ] setting SMRAM control register to 0x4a
00001220644i[CPU0 ] Enter to System Management Mode
00001220644i[CPU0 ] enter_system_management_mode: temporary disable VMX while in SMM mode
00001220654i[CPU0 ] RSM: Resuming from System Management Mode
00001384710i[PCI ] setting SMRAM control register to 0x0a
00001411375i[BIOS ] MP table addr=0x000fa200 MPC table addr=0x000fa130 size=0xc8
00001413082i[BIOS ] SMBIOS table addr=0x000fa210
00001415171i[BIOS ] ACPI tables: RSDP addr=0x000fa330 ACPI DATA addr=0x01ff0000 size=0xff8
00001418155i[BIOS ] Firmware waking vector 0x1ff00cc
00001420409i[PCI ] i440FX PMC write to PAM register 59 (TLB Flush)
00001421139i[BIOS ] bios_table_cur_addr: 0x000fa354
00001531846i[VBIOS ] VGABios ID: vgabios.c 2024-03-03
00001531917i[BXVGA ] VBE known Display Interface b0c0
00001531949i[BXVGA ] VBE known Display Interface b0c5
00001533370i[VBIOS ] VBE Bios ID: vbe.c 2024-03-03
00013811540i[BIOS ] Booting from 0000:7c00
00013999286i[BXVGA ] VBE set bpp (32)
00013999298i[BXVGA ] VBE set xres (1024)
00013999310i[BXVGA ] VBE set yres (768)
00013999392i[BXVGA ] VBE enabling x 1024, y 768, bpp 32, 3145728 bytes visible
00017781068i[SER ] com1: FIFO enabled
00017916883i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
00017916885i[CPU0 ] WRMSR: wrote 00000000:fee00900 to MSR_APICBASE
00017916885i[APIC0 ] allocate APIC id=0 (MMIO enabled) to 0x0000fee00000
00018064174i[FLOPPY] controller reset in software
^C00319340400i[ ] Ctrl-C detected in signal handler.
Next at t=319340401
(0) [0x000000009152] 0008:0000000000009152 (unk. ctxt): loop .-2 (0x00009152) ; e2fe
<bochs:2>
Not at all, Jack.
has an issue been raised with qemu?
I don't think so, Ian just told me it doesn't work on QEMU. With me, the QEMU freezes when it starts reading the floppy, but not before.
I Tried again and everything works on real machine and bochs (2.8). Try running the ./baremetal.sh setup; ...build; ...install; ...demos. I don't have time right now to really look at your make file and bosh output, but if you don't succeed following Ian's sh script then wait for Ian to answer you.
p.s. If you disable the ata0 disk (in bosh config), then it can cause problems because somewhere in the code is hard coded init of HD.
i ran with this config and got a hang, too.
$ cat bo_flo.cfg
# configuration file generated by Bochs, edited by Ian
plugin_ctrl: usb_uhci=false, serial=true, speaker=true, unmapped=true, parallel=true, biosdev=true, iodebug=true, extfpuirq=true
config_interface: textconfig
# Uncomment one of the two following lines. x for Linux, sdl2 for Mac/Win
display_library: x, options="gui_debug"
#display_library: sdl2
memory: host=256, guest=256
# Update the rom image location as needed
romimage: file="/usr/local/share/bochs/BIOS-bochs-latest", address=0x00000000, options=none
vgaromimage: file="/usr/local/share/bochs/VGABIOS-lgpl-latest"
#romimage: file="/opt/homebrew/Cellar/bochs/2.7/share/bochs/BIOS-bochs-latest", address=0x00000000, options=none
#vgaromimage: file="/opt/homebrew/Cellar/bochs/2.7/share/bochs/VGABIOS-lgpl-latest"
boot: floppy #disk # floppy #
floppy_bootsig_check: disabled=0
floppya: type=1_44, 1_44="sys/floppy.img", status=inserted, write_protected=0
# no floppyb
ata0: enabled=true, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="sys/baremetal_os.img", mode=flat, cylinders=512, heads=16, spt=16, sect_size=512, model="Generic 1234", biosdetect=auto, translation=auto
ata0-slave: type=none
ata1: enabled=false
ata2: enabled=false
ata3: enabled=false
optromimage1: file=none
optromimage2: file=none
optromimage3: file=none
optromimage4: file=none
optramimage1: file=none
optramimage2: file=none
optramimage3: file=none
optramimage4: file=none
pci: enabled=1, chipset=i440fx, slot1=none, slot2=none, slot3=none, slot4=none, slot5=none
vga: extension=vbe, update_freq=5, realtime=1, ddc=builtin
cpu: count=1, ips=4000000, model=bx_generic, reset_on_triple_fault=1, cpuid_limit_winnt=0, ignore_bad_msrs=1, mwait_is_nop=0
cpuid: level=6, stepping=3, model=3, family=6, vendor_string="GenuineIntel", brand_string=" Intel(R) Pentium(R) 4 CPU "
cpuid: mmx=true, apic=xapic, simd=sse2, sse4a=false, misaligned_sse=false, sep=true
cpuid: movbe=false, adx=false, aes=false, sha=false, xsave=false, xsaveopt=false, avx_f16c=false
cpuid: avx_fma=false, bmi=0, xop=false, fma4=false, tbm=false, x86_64=true, 1g_pages=false
cpuid: pcid=false, fsgsbase=false, smep=false, smap=false, mwait=true, vmx=1
print_timestamps: enabled=0
debugger_log: -
magic_break: enabled=0
port_e9_hack: enabled=0
private_colormap: enabled=0
clock: sync=none, time0=local, rtc_sync=0
# no cmosimage
log: bochslog.txt
logprefix: %t%e%d
debug: action=ignore
info: action=report
error: action=report
panic: action=ask
keyboard: type=mf, serial_delay=250, paste_delay=100000, user_shortcut=none
mouse: type=ps2, enabled=false, toggle=ctrl+mbutton
com1: enabled=true, mode=null
com2: enabled=false
com3: enabled=false
com4: enabled=false
speaker: enabled=true, mode=gui
parport1: enabled=true, file=none
parport2: enabled=false
with bochs:
$ bochs -f bo_flo.cfg -q
========================================================================
Bochs x86 Emulator 2.8
Built from GitHub snapshot on March 10, 2024
Timestamp: Sun Mar 10 08:00:00 CET 2024
========================================================================
00000000000i[ ] BXSHARE not set. using compile time default '/usr/local/share/bochs'
00000000000i[ ] reading configuration from bo_flo.cfg
00000000000i[ ] Ignoring magic break points
00000000000i[ ] installing x module as the Bochs GUI
00000000000i[ ] using log file bochslog.txt
textconfig: notify callback called with event type 07d6
Bochs internal debugger, type 'help' for help or 'c' to continue
Switching to CPU0
Next at t=0
(0) [0x0000fffffff0] f000:fff0 (unk. ctxt): jmpf 0xf000:e05b ; ea5be000f0
<bochs:1> c
^CNext at t=140219452
(0) [0x0000000090b3] 0008:00000000000090b3 (unk. ctxt): loop .-2 (0x000090b3) ; e2fe
<bochs:2> q
(0).[140219452] [0x0000000090b3] 0008:00000000000090b3 (unk. ctxt): loop .-2 (0x000090b3) ; e2fe
I did some browsing...
I try your Makefile
<...>
cat $y/bios-floppy.sys $y/pure64-bios.sys $y/kernel.sys $y/monitor.bin | \
dd of=floppy.img conv=notrunc
1.
You must add one line more at end:
dd if=$y/bmfs-lite.img of=floppy.img bs=1024 seek=64 conv=notrunc
2.
QEMU work but very very slow about 5 - 10 min (strange) to load floppy. This is reason you view freezing at
kernel start
/ After that it still do not working (You only see cli) because of init_HD func at Pure64 (or You must add switch to qemu for proper HD image)
If you want, I can create a branch on my repo where I will speed up the floppy for QEMU and turn off the initialization for HD, so you can try it on QEMU? By the time I realized all this, I was tired. At least for me on a real machine with a real floppy drive everything works great also with BOCHS 2.8
I don't want to push you when you're tired. I just want a fast way to build an image and run an app... I'll look harder at building a hard disk image
I’ll take a look at this tomorrow.
hi ian,
this issue isn't important for me any more. i now create a hard disk image for qemu and bochs.
please checkout https://github.com/effbiae/thebug for the pressing issue
with this makefile:
when i run
make
, baremetal hangs in pure64 note output to terminal from serial is: