How to dual boot with FreeBSD

I maked 40_custom like this:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "FreeBSD" {
    insmod bsd
    insmod ufs2
    set root=(hd0,gpt4)
    kfreebsd /boot/loader
}

GRUB2 says bsd.mod and ufs2.mod not found but they’re at /boot/grub2/x86_64-efi/

ls /boot/grub2/x86_64-efi/
acpi.mod              cpio_be.mod     fshelp.mod              halt.mod                  luks.mod         offsetio.mod         reiserfs.mod        true.mod
adler32.mod           cpio.mod        fs.lst                  hashsum.mod               lvm.mod          ohci.mod             relocator.mod       udf.mod
affs.mod              cpuid.mod       functional_test.mod     hdparm.mod                lzopio.mod       part_acorn.mod       romfs.mod           ufs1_be.mod
afs.mod               crc64.mod       gcry_arcfour.mod        hello.mod                 macbless.mod     part_amiga.mod       scsi.mod            ufs1.mod
ahci.mod              cryptodisk.mod  gcry_blowfish.mod       help.mod                  macho.mod        part_apple.mod       search_fs_file.mod  ufs2.mod
all_video.mod         crypto.lst      gcry_camellia.mod       hexdump.mod               mdraid09_be.mod  part_bsd.mod         search_fs_uuid.mod  uhci.mod
aout.mod              crypto.mod      gcry_cast5.mod          hfs.mod                   mdraid09.mod     part_dfly.mod        search_label.mod    usb_keyboard.mod
appleldr.mod          cs5536.mod      gcry_crc.mod            hfspluscomp.mod           mdraid1x.mod     part_dvh.mod         search.mod          usb.mod
archelp.mod           ctz_test.mod    gcry_des.mod            hfsplus.mod               memdisk.mod      part_gpt.mod         serial.mod          usbms.mod
ata.mod               datehook.mod    gcry_dsa.mod            http.mod                  memrw.mod        partmap.lst          setjmp.mod          usbserial_common.mod
at_keyboard.mod       date.mod        gcry_idea.mod           iorw.mod                  minicmd.mod      part_msdos.mod       setjmp_test.mod     usbserial_ftdi.mod
backtrace.mod         datetime.mod    gcry_md4.mod            iso9660.mod               minix2_be.mod    part_plan.mod        setpci.mod          usbserial_pl2303.mod
bfs.mod               diskfilter.mod  gcry_md5.mod            jfs.mod                   minix2.mod       part_sun.mod         sfs.mod             usbserial_usbdebug.mod
bitmap.mod            disk.mod        gcry_rfc2268.mod        jpeg.mod                  minix3_be.mod    part_sunpc.mod       shift_test.mod      usbtest.mod
bitmap_scale.mod      div.mod         gcry_rijndael.mod       keylayouts.mod            minix3.mod       parttool.lst         signature_test.mod  verify.mod
blocklist.mod         div_test.mod    gcry_rmd160.mod         keystatus.mod             minix_be.mod     parttool.mod         sleep.mod           video_colors.mod
boot.mod              dm_nv.mod       gcry_rsa.mod            ldm.mod                   minix.mod        password.mod         sleep_test.mod      video_fb.mod
bsd.mod               echo.mod        gcry_seed.mod           legacycfg.mod             mmap.mod         password_pbkdf2.mod  spkmodem.mod        videoinfo.mod
bswap_test.mod        efifwsetup.mod  gcry_serpent.mod        legacy_password_test.mod  moddep.lst       pata.mod             squash4.mod         video.lst
btrfs.mod             efi_gop.mod     gcry_sha1.mod           linux16.mod               modinfo.sh       pbkdf2.mod           syslinuxcfg.mod     video.mod
bufio.mod             efi_netfs.mod   gcry_sha256.mod         linuxefi.mod              morse.mod        pbkdf2_test.mod      tar.mod             videotest_checksum.mod
cat.mod               efinet.mod      gcry_sha512.mod         linux.mod                 mpi.mod          pcidump.mod          terminal.lst        videotest.mod
cbfs.mod              efi_uga.mod     gcry_tiger.mod          loadbios.mod              msdospart.mod    play.mod             terminal.mod        xfs.mod
cbls.mod              ehci.mod        gcry_twofish.mod        load.cfg                  mul_test.mod     png.mod              terminfo.mod        xnu.mod
cbmemc.mod            elf.mod         gcry_whirlpool.mod      loadenv.mod               multiboot2.mod   priority_queue.mod   test_blockarg.mod   xnu_uuid.mod
cbtable.mod           eval.mod        geli.mod                loopback.mod              multiboot.mod    probe.mod            testload.mod        xnu_uuid_test.mod
cbtime.mod            exfat.mod       gettext.mod             lsacpi.mod                nativedisk.mod   procfs.mod           test.mod            xzio.mod
chain.mod             exfctest.mod    gfxmenu.mod             lsefimmap.mod             net.mod          progress.mod         testspeed.mod       zfscrypt.mod
cmdline_cat_test.mod  ext2.mod        gfxterm_background.mod  lsefi.mod                 newc.mod         raid5rec.mod         tftp.mod            zfsinfo.mod
cmp.mod               extcmd.mod      gfxterm_menu.mod        lsefisystab.mod           nilfs2.mod       raid6rec.mod         tga.mod             zfs.mod
cmp_test.mod          fat.mod         gfxterm.mod             lsmmap.mod                normal.mod       random.mod           time.mod
command.lst           file.mod        gptsync.mod             ls.mod                    ntfscomp.mod     read.mod             tpm.mod
configfile.mod        fixvideo.mod    grub.efi                lspci.mod                 ntfs.mod         reboot.mod           trig.mod
core.efi              font.mod        gzio.mod                lssal.mod                 odc.mod          regexp.mod           tr.mod

I fixed it.
https://forums.opensuse.org/showthread.php/531982-How-to-dual-boot-OpenSUSE-and-FreeBSD?p=2872224#post2872224

Hi
Can you post the output from the following command (as root user);


os-prober

If it’s not detecting FreeBSD, then it should be considered a bug…

openSUSE:Submitting bug reports - openSUSE

I am also requesting this, the same as Malcolm is.

There is no output:

No, it is missing feature. Which means if someone needs it, it should be implemented. Such support can only be implemented by someone having access to test system (i.e. dual *BSD/Linux installation). Which means bug is unlikely to help - patch is more useful …

Maybe FreeBSD install is using a file format Linux can’t read out of the box???