| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- scripts/mkdisk.sh: create the FAT32 disk with mkfs.fat -C (the flag
that actually creates the file — plain mkfs.fat fails on a missing
path), accept M/G/K sizes, seed seed/ files via mtools; --fresh
re-formats, --no-seed skips seeding
- scripts/sendkeys.py: type lines into the guest via the QEMU monitor
(US layout). Punctuation must use QEMU's named keys (minus, slash,
dot, ...) — bare '-', '.', '/' are not valid sendkey names, and '-'
is the modifier separator, so they were silently dropped before
- scripts/test-disk.sh: full automated round trip — build, deploy,
ensure image, boot headless QEMU, drive the shell (ls /disk, mkdir,
echo >, cat, poweroff), then verify with fsck.fat (must be clean)
and mtype (file content must have survived poweroff)
- Makefile: make disk / disk-fresh / inspect / test-disk; run, run-gui
and debug now auto-create a missing DISK_IMG; fix the stale comment
(mkfs.fat without -C)
- scripts/boot.sh: auto-create a missing DISK_IMG via mkdisk.sh
- seed/: motd.txt + lines.txt seeded onto fresh images
- Verified end to end: ./scripts/test-disk.sh --fresh passes
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The kernel previously started only AHCI port 0, so any launch where the
firmware/QEMU put something else on port 0 (e.g. the ESP from an implicit
-drive file=fat:rw:esp) left the real disk unnoticed: 'unsupported sector
size 0' and no mount.
- ahci.rs: enumerate CAP.NP/PI ports, start every port that links up
(empty ports settle at DET=0 and are skipped quickly), keep up to 8
disks, and expose disk_count()/select() for the filesystem
- fat.rs: try each disk in port order and mount the first valid FAT32
volume; non-FAT disks are logged and skipped
- scripts/boot.sh: attach the data disk on ide.0 and the ESP on ide.1
(DISK_IMG env var, default /tmp/disk.img), matching the Makefile
- Verified with the disk on port 0 (Makefile style), port 5 (old-style
command line), and with the ESP on port 0; fsck.fat stays clean
|