Hello, building Grub from source on FreeBSD with
./autogen.sh --disable-efiemu --disable-nls
./configure --disable-efiemu --disable-nls
The resulting config is below
GRUB2 will be compiled with following components:
Platform: i386-pc
With devmapper support: No (need libdevmapper header)
With
I got the Gparted ISO to boot, although in a bit roun-about way:
menuentry 'Gparted i386' {
set root=http,192.168.2.100
set isofile=gparted-live-0.19.0-beta1-3-i486.iso
loopback loop0 ($root)$isofile
linux (loop0)/live/vmlinuz boot=live config noswap noprompt verbose noeject
Hi.
I'm trying to boot several live ISO's using my PXE-boot server and Grub
loopback. ISO's are fetched by Grub from an HTTP server on the same host.
* I can boot the kernels of all live ISO's through PXE+HTTP transfer.
* Boot process fails at mount-root stage, where rootfs will obviously be
Hi Andrei, thanks for the answer.
You need to tell your kernel/initrd where to find ISO and it should be
able to fetch data from it via HTTP.
I was advised on debian-live, if ISO contains httpfs, you can boot by pointing
the live initramfs to the iso location on your web server; essentially
I have two separate issues involving the {kfreebsd} code in grub.cfg:
* First is, code snippet to get mount_root to use NFS V3 instead of V2. The
code for this in FreeBSD's /boot/loader.conf is: {boot-nfsroot-options=“nfsv3”}
The comparable grub.cfg code should be as below, but does not work
* First is, code snippet to get mount_root to use NFS V3 instead of
V2. grub.cfg code should be as below, but does not work
This should be kFreeBSD
Still does not work with
{set kFreeBSD.boot.nfsroot.options=nfsv3}
mount_root this time does not hang, but resulting mounted root is
Git repo is at latest head. compile fails due to missing field 'components'
initializer:
gmake[2]: Entering directory '/asp/git/grub/grub-core'
gmake all-am
gmake[3]: Entering directory '/asp/git/grub/grub-core'
cc -DHAVE_CONFIG_H -I. -I.. -Wall -W -I../include -I../include
And your compiler and version is ... ?
What I posted previously was from (clang version 3.4.1)
When I use gcc (gcc version 4.8.3) by invoking USE_GCC=any, the error is:
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -I../include -I../include
-DGRUB_MACHINE_PCBIOS=1 -DGRUB_MACHINE=I386_PC -m32
Hi Andrey,
Could you test current master, it should fix it.
Compiles installs very nicely now.
Used clang compiler (did not invoke USE_GCC=any)
Thanks regards.
___
Grub-devel mailing list
Grub-devel@gnu.org
1. gettext is consistently problematic on Freebsd:
# grub-mkconfig -o output.file =
grub-mkconfig: gettext_print: not found
2. grub no longer recognizes latest version of zfs file systems
# grub-probe -d dev/ada1p1 =
grub-probe: error: unknown filesystem.
--
FreeBSD_amd64_11-Current_RadeonKMS
Fixed but how did you manage to not have grub-probe?
Sorry, what?
Did you mean gnu_gettext? (it's installed)
2. grub no longer recognizes latest version of zfs file systems
# grub-probe -d dev/ada1p1 =
grub-probe: error: unknown filesystem.
Do you mean - it recognized it before but
So please try to bisect grub to find which commit broke it. The last
commit related to zfs was Wed Dec 18 23:39:49 2013 so it must be
something else (or something changed in your environment - compiler,
linker ...)
That's not the issue - the commit that broke it was a zpool upgrade some 3-4
yes,but a local repo takes care of that. (and that repo can be the contents
of the cd)
extracting the kernel, initrd, cmdline and rootfs (I have done it with a
gparted iso))
All that work is just so not worth it. I'd rather do something else with my
time.
It is a monster, to extract
I solved the problems and I just wanted to update the thread on how it
was done.
1. With my folder dhcp/tftp structure, the way to issue the mknetdir is
by including the sub-directory flag. This works:
cd /jail_or_vm/root/folder grub-mknetdir --net-directory=./boot
--subdir=grub
2. For
Is there a method to chainload from grub2 - grub_older
and grub2 - isolinux?
Most live-cd's use an isolinux configuration with many menu items
embedded in the isolinux layer.
Instead of spending time trying to guess at these, a chainload boot
would be most helpful.
Thanks and Regards.
--
GRUB has isolinux config parser.
Is there any link to usage with examples? The Grub manual does not
mention it all I could find was from osdetect.cfg:
syslinux_configfile -i /isolinux/isolinux.cfg
Which still isn't much to go on.
--
FreeBSD_amd64_11-Current_RadeonKMS
I got it partially working. The background image changes to Debian, but
it displays press any key to continue.. then drops back to the main
Grub menu. So what am I doing wrong here?
menuentry Debian-Jesse-i386-lxde --class gnu-linux --class gnu
--class os {
set thtp=http,192.168.2.100
set
How did you create your netboot directory and grub image? Your grub
requests /boot/grub/i386-pc/normal.mod, *NOT* grub/i386-pc/normal.mod.
It has wrong prefix.
my tftp dhcp are running in a jail (consider it like a VM) and the
jail(VM)'s root (data/amd64) is NFS exported so that it can be
Is it possible my findings below show that PXE booting on grub2 (trunk)
when compiled and running on FreeBSD is broken?
* When isc-dhcpd.conf has grub/i386-pc/core.0 as filename, wireshark
shows abort due to file not found: grub/i386-pc/normal.mod.
* From linux laptop, tfpt 192.168.2.1 then
I just now updated to latest in trunk, then deleted the gub/i386-pc
folder and reinstalled with grub-mknetdir --net-directory=/path/to
At first the PXE-boot process breaks with
Error message: File not found, because the i386-pc folder has perm
700 root:wheel. Only after chmod 755 does that error
Hi.
It looks like a PR was in fact filed: https://savannah.gnu.org/bugs/?41447
Is there anything I should add to it? Seems prety complete.
Before my other reported problem, I had gotten FreeBSD to boot with this
entry. If I can figure out how to load kernel module from grub, I won't
need to
Hi Andrey,
Hard to tell without knowing what previous version was. I'm afraid in
this case your only possibility is to bisect (man git-bisect) to find
commit that broke things.
I went all the way back to Jan 2014 to find a working build as starting
point (git branch name git reset --hard
Did you try pxechainloader instead? It should leave working PXE
environment.
Ah, very interesting. I have that file in the grub folder, but how / where
is it invoked from? dhcp.conf has:
{next-server 192.168.2.1;
filename grub/i386-pc/core.0;}
You are NOT suggesting modification to this I
I was just preparing this email when yours arrived.
The example below does not work either - client just reboots.
The module in my grub/i386-pc folder is named pxechain, so I have corrected
the insmod to that.
menuentry 'FreeBSD amd64' --class freebsd --class bsd --class os {
insmod pxechain
I just updated my git repo (git log shows Apr 20 16:12:41), then
re-compiled and reinstalled Grub. I then cd'ed to my TFTP root and ran
grub-mknetdir --net-directory=./ This completed without problem and
displayed message to direct TFTP to core.0 with correct path.
PXE Booting process now fails
I must also boot FreeBSD on NFS via TFTP (not HTTP), but this won't work:
menuentry 'FreeBSD chainload BTX' {
kfreebsd boot/loader
or kfreebsd boot/pxeboot }
This is because the BTX loader has not been booted in PXE mode and has no
record of available PXE devices. Booting into
Hello.
It seems I misunderstood the article I had referenced. I emailed the author
of that article for clarification and his response (partially) is below. My
apologies to the members of the list for this mistake I have made.
Actually, the kernel there is being loaded by TFTP, although HTTP can
set root=http,192.168.2.1
loopback loop0 ($root)/tftp/$isofile
Thank you - that was very useful and solves the iso-boot problem.
I must also boot FreeBSD on NFS via TFTP (not HTTP), but this won't work:
menuentry 'FreeBSD chainload BTX' {
kfreebsd boot/loader }
It's probably
In a previous discussion on this list, I was advised grub does not boot
over NFS, and that it must use TFTP only.
I had asked the questionn because of this article [
http://www.wonkity.com/~wblock/docs/html/pxe.html) where it states:
gpxelinux.0 from the SYSLINUX project will be used as a PXE
Hello Andrey,
The linked article, under the Advanced Options title (just past middle of
page) covers two interesting aspects of non-tftp transfer alternatives.
One is Faster Transfers With HTTP,
The other is NFS.
Neither method / description has anything to do with issue of mount_nfs
after the
Since I got grub's pxe set to go, I have started to try the ideas solutions.
* Answer to my first question from previous post (I don't see a way
where tftp-server would be able to serve-up the grub menu if it were
in say /data/tftp path?): This seems not possible. TFTPD cannot chroot
(-s) unless
This doesn't seem to be a GRUB problem at all. I use tftpd which serves
from /var/tftpd
You are right, it is not a GRUB problem; it's a folder structure error
in the way I approached the problem.
boot/grub ($prefix) is where grub.cfg goes. Judging from your first
question, is it possible you
Hello.
I have built and installed Grub from trunk (lbeit without docs and
efiemu, which I don't need). I have also installed the boot code and
have booted from grub. Here are my results:
* grub-probe correctly identifies partitions as ZFS.
* grub-mkconfig correctly generates a config file and has
I tried as suggested,
# grub-mknetdir --net-directory=/data/tftp --subdir=boot
And no files were plced in /data/tftp/boot
I did not see the relevance, but I also tried,
# grub-mknetdir --net-directory=/data/tftp --subdir=boot /dev/ada0
grub-mknetdir: Too many arguments
Try 'grub-mknetdir --help'
# grub-mknetdir -v = no output
dmesg shows nothing
ls -la /usr/local/bin/grub-mknetdir
-rwxr-xr-x 1 root wheel 444009 Nov 24 17:53 grub-mknetdir*
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel
Or just update to current trunk, I committed this patch.
Updated to trunk, it all works gets compiled.
Still have to manually clean out the docs references in Makefile however.
Thanks for the swift work.
___
Grub-devel mailing list
Found the problem. Either use -d or upgrade.
The -d flag did not work (gave error), so I I upgraded. Works now!
# grub-mknetdir --net-directory=/data/tftp --subdir=boot
Netboot directory for i386-pc created. Configure your DHCP server to
point to /data/tftp/boot/i386-pc/core.0
The DHCP message
Did earlier versions grub.texi compiled?
Yes, earlier versions of grub.texi did compile.
Setup build tree outside of git checkout and just copy
grub.texi over; it is self contained.
It's OK, I don't need it really. Unless you need me to test and get
back to you with results.
OK, I'll try it. But I need clarification:
* Should I copy the repo and do a git rollback on the copy?
* Easier to copy only grub/docs to another folder, but how do I start
the build then? The Makefile in grub/docs will fail just as when run
from top-level.
just copy grub.texi over
From my
Using grub-trunk. My PXE boot environment is a little different:
* FreeBSD_amd64 jail on /data/amd64, serving dhcp tftp from jail.
NFS-related (rpcbind, nfsd, mountd) being served from host (trivial
detail). Jail IP is 192.168.2.1
* Once PXE client obtains IP, the tftp-server needs to find
* Is there a way to compile without docs? This does not work:
./configure --disable-werror --disable-nls --disable-docs
* I disabled the docs section manually in grub/Makefile. gmake
completed but still with warning:
/usr/bin/ld: unrecognised emulation mode: elf_x86_64
Supported emulations:
Applied the diff but got error elsewhere. Git repo on
1bba40f57813c2ccf790e6aca8b96292634b04ca
Date: Sat Nov 23 12:39:21 2013 +0100
FreeBSD 11.0-CURRENT_amd64
config.status: creating grub-shell
chmod a+x grub-shell
(for x in tests/util/grub-shell-tester.in ; do cat ./$x; done) |
./config.status
More progress, but other problem. Compile passed through previous
error but breaks when building docs (which I really don't need).
Breaks at:
Making all in docs
gmake[2]: Entering directory `/asp/git/grub/docs'
Updating ./version.texi
restore=: backupdir=.am$$ \
am__cwd=`pwd`
It seems I made a mistake in my previous post. I should have included
a previous warning code as well (just in case.)Correction as to where
compile breaks:
cc -DHAVE_CONFIG_H -I../grub-core/efiemu/runtime
-DGRUB_FILE=\efiemu/runtime/efiemu.S\ -I. -I. -I.. -I.. -I../include
-I../include
config.log re-sent as link, as requested by mail list admin (file too large)
https://drive.google.com/file/d/0Bxs_eepbMt6qejJBZVQyZngtdTA/edit?usp=sharing
Regards.
___
Grub-devel mailing list
Grub-devel@gnu.org
The patched file is giving me an error. I tried patching several
times, but keep getting same error. Most likely some stupid error on
my part:
grub-core/osdep/unix/platform.c:43:4: error: expected expression
FILE *fp = fdopen (fd, r);
^
grub-core/osdep/unix/platform.c:44:20: error: expected
@ Vladimir:
Please attach your config.log
Enclosed as requested (for latest run)
A new problem: I updated the git repo to latest and tried to re-build.
Build was started with:
./autogen.sh USE_GCC=any --disable-werror
./configure USE_GCC=any --disable-werror
gmake USE_GCC=any
However, compile
Did you rerun ./autogen.sh?
I ran gmake clean and cleaned all conig folders, then re-started
from scratch.
What is the value of your target_os ?
Build, host target are all the same. I tried setting all 3 as
i386-freebsd for one of my runs, but that did not work.
Otherwise, I did not set it
@ Vladimir:
This is not quite what I asked. Please attach your config.log
Apologies, I did not see that request.
Anyway, I ran per your suggestion:
$ ./autogen.sh --disable-werror --target i386-freebsd
$ ./configure --disable-werror --target i386-freebsd
$ gmake
Compile completed cleanly, and
] Error 1
gmake[3]: Leaving directory `/asp/git/grub/grub-core'
On 11/5/13, Beeblebrox zap...@berentweb.com wrote:
Unrelated. float and double poisoning is OS-independent.
Thank you - I really appreciate that information.
Is there anything you would like me to do re
Supported emulations
Unrelated. float and double poisoning is OS-independent.
Thank you - I really appreciate that information.
Is there anything you would like me to do re
Supported emulations: elf_x86_64_fbsd elf_i386_fbsd
Or will you be pushing a code revision into trunk?
Regards.
Another slight problem. Updated the GIT repo to latest,
$ gmake clean /autogen.sh --disable-werror ./configure --disable-werror
$ gmake =
/usr/bin/ld: unrecognised emulation mode: elf_i386
Supported emulations: elf_x86_64_fbsd elf_i386_fbsd
gmake[3]: *** [disk.module] Error 1
gmake[3]: Leaving
/usr/include/machine/_types.h:65: error: expected '=', ',', ';', 'asm'
or '__attribute__' before '__double_t'
/usr/include/machine/_types.h:66: error: expected '=', ',', ';', 'asm'
or '__attribute__' before '__float_t'
You system headers do something stupid: they use float/double in
standalone
Per your suggestion, I ran:
$ ./autogen.sh --disable-werror
$ ./configure --disable-werror
$ gmake = breaks with below. (also tried with $ gmake -Wno-error).
Where to go from here?
gmake all-am
gmake[3]: Entering directory `/asp/git/grub/grub-core'
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W
switched local repo to git (git://git.savannah.gnu.org/grub.git)
Compile error persists as advised in previous mail
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel
What are sizes of size_t and int on your platform?
My system is amd4 running FreeBSD-9.2
If you require more information please instruct code to run from CLI for that.
___
Grub-devel mailing list
Grub-devel@gnu.org
cc1: warnings being treated as errors
grub_script.yy.c: In function 'yy_scan_bytes':
grub_script.yy.c:2298: warning: comparison between signed and unsigned
It is a flex bug which is hidden on platforms where sizeof(size_t)
sizeof(int).
Nothing I can do about flex, so then I just wait for
I had tried to build from source several months back, and had a
discussion on the FreeBSD mail list about the issue. The problem was
that the config is set as no_libzfs_support. What is the way to
correct this (need zfs library)?)
GRUB2 will be compiled with following components:
Platform: i386-pc
I dare to guess - install zfs library.
My system is FreeBSD - separate zfs library is a linuxism, since in
FreeBSD zfs is part of base source (/usr/src) and vannot be installed
as a separate package unlike in linux.
If you mean here that grub has separate zfslib source code, I have not found
How can I checkout/download grub trunk?
Is bzr the only option (http://bzr.savannah.gnu.org/r/grub/trunk/grub/)?
Or is there any other alternative including svn, git, tarball?
An alternative, even if not the latest version of what is in trunk,
would be acceptable.
@Andrey:
Should not it be (hd0,gpt2)/bsds@/boot/kernel/kernel
Tried that also, same error
@Vladimir:
Please reread what Andrey said. poolname is not part of the path.
Somehow, I missed Andrey's answer...
I don't understand however, how poolname is not part of path. If we
have tank0 as pool and
Massimo:
should be written as (hd0,gpt2)/mydataset/@/myfolder/myfile.
Yes, of course - I made the mistake because I was in a hurry writing
the mail. My current corrected menu choices are:
menuentry Test1-BSD-ZFS Direct-Boot {
insmod zfs
search -s -l bsds
set root='hd0,gpt2'
This doesn't demonstrate anything else than that you didn't use tools
correctly. It's: grub-probe -d /dev/ada0p2
Thank you very much - I ran the command you instructed and see that
the FS is identified correctly.
$ grub-probe -d /dev/ada0p2
zfs
I cannot, however, boot from grub directly into
flashing the bios from dos-booted USB drive is probably risky.
Thanks and regards.
On Sat, Aug 31, 2013 at 7:42 AM, Andrey Borzenkov arvidj...@gmail.com wrote:
В Wed, 28 Aug 2013 12:04:31 +0300
Beeblebrox zap...@berentweb.com пишет:
I would like to know if the following is possible:
* USB thumb
Where would be the correct place (forum, list, etc) to get help on this issue?
(getting grub2 to recognize and boot from FreeBSD ZFS zpools)
Regards.
On Fri, Aug 30, 2013 at 10:23 AM, Raif S. Berent r...@berentweb.com wrote:
My system is FreeBSD_9.2-stable_amd64_HDD-layout=GPT
grub
I would like to know if the following is possible:
* USB thumb drive has grub-1.98 on hd(0,1) gpt layout (boot-bios is hd0,2)
* hd(0,1)/boot/freedos has files
autoexec.bat, command.com, config.sys, kernel.sys, sys.com
Un-tarred from freedos FDOEM.144 and copied into folder
* Boot into USB drive's
Len Vladimir:
I just sent a repeat of the first message by mistake - please disregard.
You are trying to make it way too complicated. DOS doesn't like
complicated.
I'm fine with that. I just went about it in that manner because I was not
very sure how to get this done and more or less
I would like to know if the following is possible:
* USB thumb drive has grub-1.98 on hd(0,1) gpt layout (boot-bios is hd0,2)
* hd(0,1)/boot/freedos has files
autoexec.bat, command.com, config.sys, kernel.sys, sys.com
Un-tarred from freedos FDOEM.144 and copied into folder
* Boot into USB drive's
68 matches
Mail list logo