Solved Beastie splash and FreeBSD lettering reverted to ascii after upgrade to 14.2

Hi everyone,

This is merely a cosmetic problem, but:
I've just upgraded from 14.1-RELEASE-p7 to 14.2-RELEASE-p1, and the "Beastie" splash has reverted to the ascii one, despite my /boot/loader.conf reading as:
Code:
nvidia_load="YES"
vbe_max_resolution="720p"
kern.vt.fb.default_mode="1280x720"
The last two lines were enough to bring the orange Beastie face on as well as the smooth white font until this upgrade.
This happened on my desktop pc as well as on my laptop. (I also have a different outcome, if any, of the
Code:
vidcontrol
command in the terminal to what it used to be, but I leave it to it just now, as I'm still trying to figure out what happens, and it may be related to the former issue).

Than you for any advice!
 
It's been removed due to space constraints. Other functionality was more important, and there's simply not enough room to fit everything in.
 
The EFI boot loader still has it, so if you can switch to UEFI boot then you'll have the snazzy graphics again.
 
how do I?
If your motherboard supports UEFI, then you can enable UEFI boot in your BIOS motherboard settings and then install /boot/loader.efi file to your boot partition formatted with fat32 and then boot from it. What is your current sysctl value? I also think that your partition table should be GPT to use UEFI, i am not sure.

Code:
% sysctl machdep.bootmethod
machdep.bootmethod: UEFI
 
If it's a fairly new install, check if the disk has an efi partition. That contains the loader.efi(8) you'll need. Then check the boot settings in your BIOS.

You may have an install that can boot both ways, with both freebsd-boot and efi partitions.
 
I've just upgraded from 14.1-RELEASE-p7 to 14.2-RELEASE-p1, and the "Beastie" splash has reverted to the ascii one,
After this commit, in favor of GZIP and BZIP2 compression support, to keep the loader size small, graphics support has been remove from the legacy BIOS loader. BIOS loader is since then text only.

UEFI loader still has graphics support, if your machine doesn't support switching between legacy (BIOS) and UEFI boot, one can enable graphics support back on BIOS loader.

Besides the high resolution FreeBSD logo, more important are fonts. In BIOS text only the provided font is not easy to look at and it's not possible to change the font. I believe the default font is "vgarom" (that's what what grep'ing the source code shows)
Code:
/usr/src-main/usr.sbin/kbdmap/kbdmap.h
    39: #define DEFAULT_VT_FONT         "vgarom-thin-8x16.fnt"

I don't mind seeing the FreeBSD logo in ASCII art, for that matter no logo at all, but, working a lot in virtual consoles, a good font is important to me.

To get graphics support back, the loader source code change has to be reverted, build and installed.

See here for how to:
 
On the other hand, is it possible to get the ASCII art with UEFI?
loader.conf(5) has a logo variable to switch between logos:
Code:
           loader_logo (“orbbw”)
                     Selects a desired logo in the beastie boot menu.
                     Possible values are: “orbbw”, “orb”, “fbsdbw”,
                     “beastiebw”, “beastie”, and “none”.
"orb" should have provided a red ASCII logo but on a test VM the graphics FreeBSD logo (/boot/images/freebsd-logo-rev.png) is displayed. "orbbw" provides a black and white ASCII logo, though.
 
loader.conf(5) has a logo variable to switch between logos:
Code:
           loader_logo (“orbbw”)
                     Selects a desired logo in the beastie boot menu.
                     Possible values are: “orbbw”, “orb”, “fbsdbw”,
                     “beastiebw”, “beastie”, and “none”.
"orb" should have provided a red ASCII logo but on a test VM the graphics FreeBSD logo (/boot/images/freebsd-logo-rev.png) is displayed. "orbbw" provides a black and white ASCII logo, though.
Thanks!
 
If your motherboard supports UEFI, then you can enable UEFI boot in your BIOS motherboard settings and then install /boot/loader.efi file to your boot partition formatted with fat32 and then boot from it. What is your current sysctl value? I also think that your partition table should be GPT to use UEFI, i am not sure.

Code:
% sysctl machdep.bootmethod
machdep.bootmethod: UEFI

I fail to mount:

Code:
$ doas mount -t msdosfs /dev/ada0p1 /mnt
mount_msdosfs: /dev/ada0p1: Invalid argument
$ gpart list
Geom name: ada0
modified: false
state: OK
fwheads: 16
fwsectors: 63
last: 250069639
first: 40
entries: 128
scheme: GPT
Providers:
1. Name: ada0p1
   Mediasize: 524288 (512K)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r0w0e0
   efimedia: HD(1,GPT,1b7794ce-11be-11ee-a55f-68f728f39c4d,0x28,0x400)
   rawuuid: 1b7794ce-11be-11ee-a55f-68f728f39c4d
   rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f
   label: gptboot0
   length: 524288
   offset: 20480
   type: freebsd-boot
   index: 1
   end: 1063
   start: 40
...

what am I doing wrong? Or better: what should I do instead?

I dug up https://forums.freebsd.org/threads/how-to-mount-the-boot-partitions.74436/post-455083 and now have even more defunct examples to read, but no working one.

It mentions https://man.freebsd.org/cgi/man.cgi?query=gpart&sektion=8&manpath=freebsd-release-ports but that doesn't tell how to place a loader.efi.
 
I think that freebsd-boot partition is not meant to be mounted but i am not sure. If you have free space on the root drive, then you can try creating a efi partition.

# gpart add -t efi -s 33M adaX
# newfs_msdos -F32 -c1 /dev/adaXpX
# mount_msdosfs /dev/adaXpX /media
# mkdir -p /media/efi/boot
# cp /boot/loader.efi /media/efi/boot/bootx64.efi
# umount /media

Can you try # fstyp /dev/ada0p1

You seem to have GPT partition table but I don't know if you have efi partition already, can you show output of gpart show ada0. Also what was the value of the sysctl command i sent?
 
  • Thanks
Reactions: mro
Code:
$ doas fstyp /dev/ada0p1
fstyp: /dev/ada0p1: filesystem not recognized

$ doas gpart show ada0
=>       40  250069600  ada0  GPT  (119G)
         40       1024     1  freebsd-boot  (512K)
       1064        984        - free -  (492K)
       2048    4194304     2  freebsd-swap  (2.0G)
    4196352  245872640     3  freebsd-zfs  (117G)
  250068992        648        - free -  (324K)

$ sysctl machdep.bootmethod
machdep.bootmethod: BIOS
 
Code:
$ doas fstyp /dev/ada0p1
fstyp: /dev/ada0p1: filesystem not recognized

$ doas gpart show ada0
=>       40  250069600  ada0  GPT  (119G)
         40       1024     1  freebsd-boot  (512K)
       1064        984        - free -  (492K)
       2048    4194304     2  freebsd-swap  (2.0G)
    4196352  245872640     3  freebsd-zfs  (117G)
  250068992        648        - free -  (324K)

$ sysctl machdep.bootmethod
machdep.bootmethod: BIOS
Thanks, you are booting with BIOS method currently, does your system support UEFI? Then you can do something like that:
1. Delete the swap partition
2. Create a efi partition (Do the steps above I sent)
3. Create a swap again and use all free space
This command below would delete swap partition in ada0
# gpart delete -i 2 ada0
You first may need to turn off the swap, # swapoff /dev/ada0p2
# gpart add -t freebsd-swap ada0
You may need to edit /etc/fstab because swap partition will be changed as numerical.
 
  • Thanks
Reactions: mro
nxjoseph the system supports UEFI, I just flipped the switch in the BIOS. Deleting partitions scares me a bit - but I guess I will have to as the freebsd-boot partition is just a bit smaller than the loader.efi. the -i 2 above refers to the 2 in the partition list, right? I won't haste it. Thanks for your help! I'll follow up.
 
nxjoseph the system supports UEFI, I just flipped the switch in the BIOS. Deleting partitions scares me a bit - but I guess I will have to as the freebsd-boot partition is just a bit smaller than the loader.efi. the -i 2 above refers to the 2 in the partition list, right? I won't haste it. Thanks for your help! I'll follow up.
Good. I never had a freebsd-boot partition and i think that it is somewhat deprecated when there is UEFI. Yes, # gpart delete -i 2 ada0 means index number which is the 2nd swap partition of ada0. You are welcome.
 
  • Thanks
Reactions: mro
I think that freebsd-boot partition is not meant to be mounted but i am not sure.
Correct. It contains "raw" data, the contents of gptboot(8) or gptzfsboot(8) depending if it needs to boot UFS or ZFS. The data is simply written to that partition as-is. The freebsd-boot partition can only be at most 545KB but is typically 512K. Hence the space constraints. The efi partition has no space constraints as far as I know, besides the limitations of FAT(32).
 
Back
Top