返回

文章详情

世嘉MegaDrive的Linux

Hacker News2026年6月29日 15:01

世嘉MegaDrive的Linux 是不是开玩笑?不是。 我需要什么?一台世嘉Megadrive Mega EverDrive核心或专业版(专业版未经测试)(见: https://krikzz.com/our-products/cartridges/) USB线缆将EverDrive与您的PC连接。 烧录时间。 这可以在(普通)模拟器上工作吗?可能不行,模拟器需要模拟EverDrive的特殊SSF2映射器,该映射器为我们提供4MB的RAM,EverDrive的协议使MegaDrive能够从SD卡加载文件,以及EverDrive提供的定时器寄存器。包括一个QEMU分支,模拟足够的MegaDrive和EverDrive,以便在没有真实硬件的情况下进行实验。请注意,这并不能真正模拟真实的感觉,QEMU的CPU模拟速度太快。构建说明。运行./buildtoolchain.sh以构建工具链。这使用buildroot,但我们并不使用它构建根文件系统。buildroot是获取可以为68000生成可用二进制文件的m68k-linux工具链的最简单方法。运行./builduboot.sh以使用工具链构建u-boot。运行./buildmedtool.sh构建medtool以与everdrive的串行控制台进行交互。运行./buildlinux.sh构建linux内核映像。运行./buildrootfs.sh构建rootfs erofs映像。对于模拟版本,运行./buildqemu.sh构建QEMU,运行./runqemu.sh以运行QEMU并启动。启动说明。将u-boot/u-boot.bin,linux/vmlinux.lz4,smolutils/m68k.erofs复制到您的EverDrive SD卡。启动Megadrive。将USB电缆连接到您的PC(在Megadrive关闭时连接可能没问题,但我因此遇到了一些问题)。检查dmesg以确保EverDrive被检测到。您应该会看到如下内容:[1135618.045606] usb 3-2:使用xhci_hcd的新全速USB设备编号5 [1135618.255415] usb 3-2:发现新USB设备,idVendor=0483,idProduct=5740,bcdDevice= 2.00 [1135618.255428] usb 3-2:新USB设备字符串:Mfr=1,Product=2,SerialNumber=3 [1135618.255430] usb 3-2:产品:Mega EverDrive [1135618.255432] usb 3-2:制造商:STMicroelectronics [1135618.255434] usb 3-2:序列号:00000000001A [1135618.307393] cdc_acm 3-2:1.0:ttyACM0:USB ACM设备 [1135618.307472] usbcore:注册新的接口驱动程序cdc_acm [1135618.307475] cdc_acm:USB调制解调器和ISDN适配器的USB抽象控制模型驱动程序。 在终端模式下将medtool连接到您的EverDrive:./medtool/medtool -p /dev/ttyACM0 -m terminal。 已打开串行端口/dev/ttyACM0,数据输出,4字节--> 0x2b 0xd4 0x40 0xbf <--数据输入,4字节 0x5a 0x05 0x25 0x00 核心:创建套接字并等待连接(minicom -D unix#/tmp/medtool)。 按照它告诉你的去做,使用连接到medtool的unix套接字启动minicom。在EverDrive菜单中选择u-boot.bin,按下一个按钮,然后按开始游戏。 等待一会儿,您应该会在minicom中看到u-boot出现:欢迎使用minicom 2.10。选项:I18n Port unix#/tmp/medtool [?] 按CTRL-A Z以获取特殊键的帮助。md!a b c U-Boot 2026.01-00675-g9da66c43e96b-dirty(2026年6月24日-20:10:31 +0900) DRAM:3.8 MiB SR为0x2700 从00000000复制到00398000,0x27f70字节(reloc_off 0x00398000)从00000000复制到00398000,0x27f70字节(reloc_off 0x00398000)清除新bss从003bd000到003bff70 正在进行重定位 返回地点的重定位,新SP 0x003368d0,跳转到0x003a0370。核心:5个设备,5个u类,设备树:嵌入 从NVRAM加载环境... *** 警告 - CRC错误,使用默认环境 输入:串行 输出:串行,vidconsole 错误:串行 按任意键停止自动引导:0 状态;0xa500 状态;0xa500 正在加载vmlinux.lz4,744178字节 状态;0xa500 完成。未压缩的大小:1270696 = 0x1363A8 ELF覆盖保留的内存:0x00000000 -> 0x0013ff35:-22 新fdt 003392a8 L s KLinux版本7.1.0-rc6-00250-g29f5b5b8fc12-dirty(daniel@kinako)(m68k-linux-gcc.br_real(Buildroot -gdb75a8eea0bd)15.2.0,GNU ld(GNU Binutils)2.46.0.20260210)#374 2026年6月24日星期三22:12:37 JST平面模型支持(C)1998,1999 Kenneth Albanowski,D. Jeff Dionne 通用DT机器(C)2024 Daniel Palmer <daniel@thingy.jp> OF:保留内存:没有DT中的保留内存节点区间范围:DMA [mem 0x0000000000000000-0x00000000003fffff] 正常空闲。对每个节点的可移动区域的起始位置。早期内存节点范围节点0:[mem 0x0000000000000000-0x00000000003fffff] 初始化内存设置节点0 [mem 0x0000000000000000-0x00000000003fffff] 内核命令行:console=ttyVDP0 console=ttyED0 root=/dev/edblk -- smolinit.getty=/dev/ttyED0 smolinit.getty=/dev/ttyVDP0 smolinit.hostname=md printk:日志缓冲区数据+元数据:4096 + 8704 = 12800字节 Dentry缓存哈希表条目:1024(顺序:0,4096字节,线性) Inode缓存哈希表条目:1024(顺序:0,4096字节,线性)构建了1个区域列表,移动分组关闭。 总页数:1024内存自动初始化:堆栈:所有(零),堆分配:关闭,堆释放:关闭SLUB: HWalign=16, Order=0-1,最小对象=0,CPUs=1,节点=1 NR_IRQS:32 clocksource:everdrive-timer:掩码:0xffff max_cycles:0xffff,max_idle_ns:291630

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡