使用最新稳定的Linux内核从软盘启动486

2020-07-07 04:41:31

早在2019年8月,我在RetroBattlestation上举办了一场伴唱周比赛,挑战是播放与演唱歌词的语音合成器同步的MIDI文件。在我的存储卡中,我发现了一张MQX-32M MIDI卡(罗兰MPU-401的克隆),我想用它来将MIDI信号转换为与带有Echo II语音合成器的Apple II+接口,但最终使用的是一台带有USB MIDI接口的笔记本电脑。披萨周的比赛让我对在披萨盒里找到486更感兴趣,所以我开始寻找合适的盒子。

搜索eBay并非易事,因为没有一个很好的搜索词可以找到我想要的那种案例。我没有费心去尝试做一个保存的搜索,因为这个项目不是一个高优先级的项目。取而代之的是,每隔一段时间,就会有一些事情激发人们去eBay上试试其他的搜索词。几周前,我发现了这个486,并根据5.25&34;海湾的大小猜测了它的大小。它相当薄,它有一张提升卡可以把牌翻过来,而且盒子比ISA卡短,但我觉得它还不够薄,不能称之为披萨盒。不过已经很接近了!

主板是TMC PAT48PG4,它附带32MB的RAM(技术上是36MB,里面还有4个30针SIMM)和4块卡:VGA、SoundBlaster、调制解调器和多功能IO。卖家对它进行了测试,并将其作为非工作的韩元邮寄出售,尽管他说卡都能用。我最想要的是这个案子,所以我并不担心。当然,当我拿到它的时候,我必须看看主板是否真的死了。它对我来说也不起作用,但后来我发现,如果我按下重置按钮,它会发出一些错误的嘟嘟声。我尝试了另一个电源,但它在按下重置后出现了!开机时仍然不能冷启动,不确定是盖子坏了,还是电池轻微损坏(电池在我拿到之前就被取走了)使重置线在开机后无法拉出。尽管如此,它的工作已经足够了,我需要更多地探索它的功能。

我的最终目标是在一个大硬盘上安装一个最新的Linux发行版和Python3,但这是一个安装当前Linux发行版的486,这不是一件微不足道的事。仅有的仍然支持从软盘介质安装的Linux发行版已经相当过时了。通常,我会完全绕过软盘安装,只需通过PXE启动一台较旧的计算机,然后通过网络进行安装。我以为我可以把iPXE放在软盘上,然后插进ISA网卡,但是iPXE从软盘加载之后就挂起了,没有任何错误信息。

BIOS很旧,很难处理我连接的大硬盘。驱动器为8.45 GB,BIOS只能将其视为8.0 GB驱动器。在BIOS中启用LBA会导致计算机在检测到驱动器后在开机自检期间挂起。Win98 fdisk坚持认为驱动器只有504MB。FreeDOS根本看不到驱动器。我试着将XTIDE ROM插在插座上插入网卡,XTIDE也坚持认为没有连接驱动器。

因为我想看看Linux将如何检测驱动器,这意味着我需要找到一种方法来引导Linux。在用谷歌搜索了一下之后,我发现了make tinyconfig选项,它可以制作一个非常小(但无用)的内核,小到可以放在软盘上。我启用了其他几个选项,找到了足够小的initramfs,并能够让它在486上引导。正如预期的那样,Linux在查看驱动器是否已连接以及驱动器的最大容量方面没有任何问题。

下一步是将Linux实际安装到硬盘上。我不想推出我自己的发行版,但也许我不得不这么做。另一种可能是从软盘引导Linux,然后从当前发行版和kexec下载内核和initrd。但在我看来,这就像是重新发明了iPXE。

使ARCH=x86 menuconfig启用initramfs:CONFIG_INITRAMFS_COMPRESSION_GZIP=y初始RAM文件系统和RAM磁盘(initramfs/initrd)支持>;支持使用gzip压缩的初始ramdisk/ramfs

DD if=/dev/zerof=linux-boot.img bs=1k count=1440 mkdosfs linux-boot.img syslinux--install linux-boot.img mount-o loop linux-boot.img/mnt cp arch/x86/boot/bzImage/mnt cp rootfs.cpio.gz/mnt。

默认的Linux标签Linux说现在正在从SYSLINUX引导内核.内核bzImage append initrd=rootfs.cpio.gz。

将映像写入软盘: