-
Notifications
You must be signed in to change notification settings - Fork 8
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
base: main
Are you sure you want to change the base?
Conversation
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 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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\
There was a problem hiding this comment.
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!
There was a problem hiding this comment.
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 🤔
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
Signed-off-by: Daniel Schaefer <[email protected]>
Signed-off-by: Daniel Schaefer <[email protected]>
No description provided.