Replies: 5 comments 2 replies
|
试了一下,把 helloworld_x86_64-qemu-q35.bin 写入 redox 的 /dev/disk3s3 和 /dev/disk3s1 这2个分区,启动也看不到输出信息。
u盘启动结果:vga上显示报错: 无法找到 redoxFS 。
u盘启动结果:vga上显示 Stage 1 的内存信息后,卡在 Stage 2 就没有输出了
u盘启动结果:仍然能够正常启动 redox,这个分区应该不影响 redox 正常启动 |
|
查看 livedisk.iso 和 harddrive.img 两个文件的 第一个扇区内容 查看 livedisk.iso继续查看 00000200 之后的内容,得到 0x238 偏移处的 Disk identifier (GUID): 8C4079BD-C55B-466F-B8B3-3D3E9CA5B3E7 查看 harddrive.img |
hexdump 查看 helloworld_x86_64-qemu-q35.bin通过 objdump 反汇编可以看到:查看 8000205de0 位置处的代码,为 rust_entry_secondary() 函数入口 怀疑是映射的内存起始地址 ffffff8000200000 与现在 redox iso bootloader 的加载地址(具体在哪还不知道)不一致造成的 |
通过 gdisk 命令查看 livedisk.iso 的分区结构,得到如下信息:可以得到 BIOS 分区,其实是在 iso 文件偏移 First sector: 34 (at 17.0 KiB) 也就是 17K = 17408 字节处 |
|
最新进展:通过写入到 redox 启动 u盘 的 /dev/disk3s1 位置,可以通过修改 ./modules/axhal/src/platform/x86_pc/multiboot.S 实现 vga 输出: ArceOS# (借助了 BIOS 的 int 0x10 调用)
代码可参考: https://github.com/limingth/arceos/tree/feature/vga/modules/axhal/src/platform/x86_pc/multiboot.S |

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
通过 dd 命令写入 helloworld_x86_64-qemu-q35.bin
对比之前烧写 redox 的 u 盘 diskutil list 的返回信息
应该是分区信息没有写入 u 盘,所以还需要解决把
helloworld_x86_64-qemu-q35.bin生成一个livedisk.iso的办法。All reactions