Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

freebsd: Document how to build UEFI app on FreeBSD #52

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

JohnAZoidberg
Copy link
Member

No description provided.

gmake -C framework_uefi build/x86_64-unknown-uefi/boot.efi

# Build QEMU image
# TODO: Does not work yet, need a replacement for GNU parted
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aokblast is there a scripted way to format a disk image on FreeBSD?
On Linux I used GNU parted.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello, we have gpart which is the abbriviate of geom part that enable you to create and add partition. I found a post on stack exchange that have examples about this. Do I answer your question?

Copy link

@aokblast aokblast Aug 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, you are talking about image. We have mkimg which can be used as following pattern (stolen from my previous commit :) )

cfgdirname=$(mktemp -d /tmp/config.XXXXX)
cp ${BASEBITSDIR}/etc/bsdinstall.example ${cfgdirname}
makefs -D -B little -t msdos -o fat_type=16 -o volume_label=CONFIG -o create_size=16m ${2}.config ${cfgdirname}

mkimg -s mbr \
    -b ${BASEBITSDIR}/boot/mbr \
    -p efi:=${espfilename} \
    -p freebsd:-"mkimg -s bsd -b ${BASEBITSDIR}/boot/boot -p freebsd-ufs:=${2}.part" \
    -p fat16b:=${2}.config\

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh! That's cool. That looks super easy!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Haven't tried, but might be as simple as this:

$(BUILD)/boot.img: $(BUILD)/boot.efi
  mkimg -s gpt \
    -p efi:=$<

But how can I use different make rules on FreeBSD 🤔

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the make rules you mentioned? Could you give me some detailed example?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, I forget some code segment. You have to create a partition image by mkfs than put file into it by directory. After that, you can use mkimg to create a full disk image. Here is a patch use this feature. You can take a release/amd64/make-memstick.sh as example. Hope I answered your question.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done! Now we just need to make sure it uses different commands on linux vs bsd

@JohnAZoidberg JohnAZoidberg changed the title freebsd: Document how to build on FreeBSD freebsd: Document how to build UEFI app on FreeBSD Aug 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants