I�d like to add Xmodem capability to GRUB �Legacy�
0.95/0.96. Instead of obtaining a kernel from a tftp
server a la ifconfig, I�d like to have GRUB accept a
kernel via xmodem. I�ll be doing this over a
null-modem link, but conceivably this could be over a
modem as well.
I�d like affect as little of the existing GRUB code as
possible. Let�s say I�ve got a function
int xmodem_receive(char* file, int maxbytes);
file is a pointer of maxbytes where the contents of
the received kernel or initrd will be written. The
return value indicates the actual size* of the
received file.
While I�ve used and configured GRUB many times, I�ve
never touched the GRUB source code before. About all
I know is that I�ll need to build this into stage2.
Also, after noticing the memory map in the document
(Hacking GRUB section) I realize malloc is probably
out of the question. Here are my thoughts/questions
so far:
1. I�ll need a token similar to (nd) to indicate that
a file is to be received via the console, say
(xmodem).
2. I�ll need to add to (or identify an existing spot)
in the memory map. Where does (nd) put the
kernel/initrd?
3. What functions in GRUB will I need to modify?
Where should xmodem_receive be called? It will need
to be called once to obtain a kernel, and a second
time to obtain an initrd.
Thanks!
Craig
And for the curious, here�s some additional background
as to why I�m interested in this:
- With a brand new head-less, keyboard-less system,
I�d like to be able to pop a GRUB boot CD in the
drive, redirect the console to the serial port, and
upload a linux kernel+initrd image over the serial
line. Out of the box, GRUB supports all but the
serial upload of a kernel and initrd image.
- No need to compile GRUB with netboot support.
Especially useful when neither GRUB nor EtherBoot
supports a given NIC (and the NIC doesn�t support
PXE).
To keep things simple I�m initially planning on coding
up the xmodem receive myself. I�m aware of the
shortcomings of xmodem--if this type of functionality
is useful in the GRUB baseline I would consider
leveraging off of the �lrzsz� code to support
X/Y/ZModem (lrzsz is a GPLed branch of rzsz).
* I believe the receive end of Xmodem rounds file
sizes up to within a few bytes--assume this isn�t an
issue for this discussion.
__________________________________
Do you Yahoo!?
Yahoo! Mail - 250MB free storage. Do more. Manage less.
http://info.mail.yahoo.com/mail_250
_______________________________________________
Bug-grub mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-grub