Giter Site home page Giter Site logo

freedos-playground's Introduction

My FreeDOS playground.

Usage

Install Packer.

NB FreeDOS/DOS is not a multi-task system, so it does not really have a ssh/telnet server which could be used by packer. so when you build this, packer will never succeed, but you will be able to create the disk image.

qemu-kvm usage

Install qemu-kvm:

apt-get install -y qemu-kvm
apt-get install -y sysfsutils
systool -m kvm_intel -v

Type make build-libvirt.

When the VM shutdowns, save the disk image:

mv output-freedos-1.2-libvirt/packer-freedos-1.2-libvirt freedos-1.2-libvirt.img.orig
cp freedos-1.2-libvirt.img{.orig,}

Then manually kill qemu.

Then manually start the VM:

qemu-system-i386 \
    -name freedos-1.2 \
    -machine type=pc,accel=kvm \
    -m 32 \
    -smp 1 \
    -display sdl \
    -serial telnet:127.0.0.1:4444,server,nowait \
    -net nic,model=pcnet \
    -net user \
    -drive file=freedos-1.2-libvirt.img,if=ide,format=qcow2 \
    -boot c

Try some commands:

ver
mem /c
mem /full
c:\mtcp\htget -o rmenu-17.zip http://www.bttr-software.de/products/jhoffmann/rmenu-17.zip
unzip -l rmenu-17.zip
rem "help" will not really work when used from the serial port.
help

Console redirection to the Serial port

You can partially redirect the screen/keyboard to the serial port:

ctty com1

BUT bear in mind that the serial port will be bypassed when the application (e.g. edit, fdisk, etc.) directly writes to the screen.

Then, on the host, use telnet to access it:

telnet localhost 4444

You can use the following command to redirect back to the console:

ctty con

Packer boot_command

As FreeDOS does not have any way to be pre-seeded, this environment has to answer all the installer questions through the packer boot_command interface. This is quite fragile, so be aware when you change anything. The following table describes the current steps and corresponding answers.

step boot_command
select Install to harddisk and wait for boot i<enter><wait10>
answer What is your preferred language? with English <enter><wait>
answer Do you want to proceed? with Yes - Continue with the installation <enter><wait>
answer Do you want to partition your drive? with Yes - Partition drive C: <up><enter><wait>
answer Do you want to use large disk (FAT32) support (Y/N)? Y<enter><wait>
select 1. Create DOS partition or Logical DOS Drive 1<enter><wait>
select 1. Create Primary DOS Partition 1<enter><wait>
answer Do you wish to use the maximum available size for a Primary DOS Partition and make the partition active (Y/N)? Y<enter><wait>
select Press Esc to continue <esc><wait>
select Press Esc to exit FDISK <esc><wait>
select Press Esc to exit FDISK <esc><wait>
answer Do you want to reboot now? with Yes - Please reboot now <enter><wait>
wait for reboot to finish <wait10>
select Install to harddisk and wait for boot to finish i<enter><wait10>
answer What is your preferred language? with English <enter><wait>
answer Do you want to proceed? with Yes - Continue with the installation <enter><wait>
answer Do you want to format your drive? with Yes - Please erase and format drive C: <up><enter><wait>
wait for the format to finish <wait10><wait10><wait10><wait10><wait10><wait10>
answer Please select your keyboard layout with default US English (Default) <enter><wait>
answer What FreeDOS packages do you want to install? with default Full installation <enter><wait>
answer Do you want to install now? with Yes - Please install FreeDOS 1.2 <up><enter><wait>
wait for the install to finish <wait10><wait10><wait10><wait10><wait10><wait10>
wait for the install to finish <wait10><wait10><wait10><wait10><wait10><wait10>
answer Do you want to reboot now? with Yes - Please reboot now <enter><wait>
wait for reboot to finish <wait10>
select Boot from harddisk and wait for boot h<enter><wait10>
shutdown shutdown<enter><wait>

Reference

freedos-playground's People

Contributors

rgl avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

infernalheaven

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.