Matt Fleming [Tue, 24 May 2011 10:54:10 +0000 (11:54 +0100)]
ldlinux: Add localboot support
Add a few tweaks to enable ldlinux to localboot a hard disk. Most of
the support was already there, there were just a few bug fixes in
execute().
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Tue, 24 May 2011 10:37:49 +0000 (11:37 +0100)]
ldlinux: Search in isolinux/ directory for config files
If we're running from an ISO image we should be looking in the
isolinux/ directory for isolinux.cfg, not in the top-level directory.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Fri, 29 Apr 2011 10:20:11 +0000 (11:20 +0100)]
hdt: libmenu.a no longer exists
Don't link against libmenu.a, it no longer exists as it was removed in
commit
74518b8b691c ("elflink: Make ELF the default object format").
This fixes the following build error,
make[2]: *** No rule to make target `../cmenu/libmenu/libmenu.a', needed by `hdt.c32'. Stop.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
H. Peter Anvin [Wed, 27 Apr 2011 21:27:35 +0000 (14:27 -0700)]
load_env32 should not include menu.h
Remove stay #include that does not resolve.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Matt Fleming [Fri, 15 Apr 2011 20:35:48 +0000 (21:35 +0100)]
elf_gen_dep.sh: Prioritise symbols exported by core
It's possible for multiple modules to export the same symbol. We
always favour the symbols exported from core/ because this means that
modules will have less runtime dependencies.
For example, some symbols required by ldlinux.c32 are exported by both
core/ and libmenu.c32. Because we don't want ldlinux.c32 to have any
dependencies, we need to make sure we resolve to the symbol exported
by core/.
Note that now the order in which we extract global symbols from ELF
files in elf_gen_dep.sh is important, because this dictates our order
of preference and hence core/isolinux.elf and core/pxelinux.elf need
to come first.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Fri, 15 Apr 2011 20:27:37 +0000 (21:27 +0100)]
elf_gen_dep.sh: Don't calculate dependencies for whitespace symbols
Don't try to resolve dependencies for a symbol whose name is purely
made up of whitespace.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Fri, 15 Apr 2011 20:10:55 +0000 (21:10 +0100)]
elflink: Don't require every module to have init/exit functions
Don't complain or refuse to load a module if it doesn't contain an
init or exit function, as many of the init/exit functions are in fact
empty.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Fri, 15 Apr 2011 20:03:51 +0000 (21:03 +0100)]
elflink: Don't compile in debug output by default
Turn off ELF_DEBUG, we really don't need to see the "[ELF] MODULE
UNLOADED" message everytime we finish executing an ELF module.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Tue, 26 Apr 2011 09:02:13 +0000 (10:02 +0100)]
elflink: ldlinux should not have any dependencies
ldlinux currently requires the get_key() symbol, which means it has a
dependency on libutil_com.c32. ldlinux.c32 really should be a
standalone module so let's move get_key.c into ldlinux/.
However, moving get_key.c creates a new problem - native linux
applications such as com32/samples/keytest.c require the get_key()
symbol which is currently exported by libutil_lnx.a. To fix this, we
create a new native linux library that exports any required symbols
from ldlinux. With this change we need to update com32/Makefile so
that we build com32/elfink/ldlinux before com32/samples, and seeing as
ldlinux now has no dependencies, we may as well move it to the front
of $SUBDIRS.
Also, update elf_gen_dep.sh to skip ldlinux.c32 and not search for
dependencies for any of its unresolved symbols. This way, if anyone
inadvertently introduces a dependency that cannot be resolved by the
core, ldlinux.c32 will fail to load at runtime (which guarantees that
the newly introduced dependency won't go unnoticed).
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Fri, 15 Apr 2011 10:48:37 +0000 (11:48 +0100)]
exit.c: Truncate exit status to uint8_t
The valid range for an exit status is 0 - 255, so we need to truncate
the value passed to _exit().
I noticed this when a module was doing _exit(-1), and ended up calling
longjmp(.., 0xffffffff + 1)
which meant that setjmp() in spawn_load() returned 0. Obviously, we
wanted the setjmp() to return 256 (0xff + 1), because the code in
spawn_load() handles the return value like so,
ret_val = setjmp(module->u.x.process_exit);
if (ret_val)
ret_val--; /* Valid range is 0-255 */
else if (!module->main_func)
ret_val = -1;
else
exit((module->main_func)(argc, argv)); /* Actually run! */
There actually is code in spawn_load() to properly truncate 'ret_val',
but it is applied too late. The truncation needs to happen when we
pass the exit status to longjmp().
Suggested-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Tue, 26 Apr 2011 08:59:53 +0000 (09:59 +0100)]
elflink: Make ELF the default object format
com32/elflink/modules was originally created to house ELF modules and
keep them separate from the COM32 modules as the elflink branch was
being developed. However, this has inadvertently created a maintenance
nightmare because code was copied from elsewhere in the tree into
com32/elflink/modules, resulting in duplication. Bug fixes have been
going into the original code but have not been merged onto the elflink
branch, leaving the duplicate code in com32/elflink/modules buggy.
So let's delete this directory. There really is no reason to keep ELF
and COM32 modules separate because there's no reason to need both
COM32 and ELF modules to coexist. ELF is a far superior object file
format and all modules are not emitted as ELF objects.
Now that we're outputting ELF modules we can use dynamic memory
instead of the cs_bounce bounce buffer.
This commit requires a certain amount of shuffling for some
files. quicksort.c isn't a module and belongs as part of the util
library. cli.h belongs in com32/include so that other modules can make
use of the cli code in ldlinux.c32.
All libraries are now ELF shared libraries which are only loaded to
fixup unresolved symbols for executable modules and renamed from *.a
to *.c32. This reduces the runtime memory footprint because libraries
are only loaded when needed and because every executable no longer
gets its own copy of code/data (as it would if linking with a static
library). Also, remove MINLIBOBJS from libcom32.c32 because it is
already part of libcom32min.a and we don't want to have any duplicate
symbols between the core (which links with libcom32min.a) and
libcom32.c32.
Welcome to the New World Order of ELF modules!
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Wed, 13 Apr 2011 23:59:12 +0000 (00:59 +0100)]
elflink: Delete core-elf.h
This header file really just duplicates code that is available in
other header files. It has no reason to exist.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Wed, 13 Apr 2011 23:52:23 +0000 (00:52 +0100)]
com32: Move menu.h
menu.h is required by the menu code in com32/menu and also by
ldlinux. So move it to a more neutral place.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Wed, 13 Apr 2011 23:50:08 +0000 (00:50 +0100)]
com32: We only need one refstr.h
Delete the duplicate refstr.h and move the remaining copy into
com32/include so that it can be included by both ldlinux and the menu
code.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Wed, 13 Apr 2011 22:00:16 +0000 (23:00 +0100)]
cmenu: Rename menu.h to cmenu.h
In preparation for moving com32/menu/menu.h to com32/include/ let's
rename com32/cmenu/menu.h. This stops us having two header files named
menu.h which would mean that we'd have to be super careful with our
include paths to ensure we included the correct header.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Tue, 12 Apr 2011 21:28:57 +0000 (22:28 +0100)]
com32: Remove klibc.c32
We don't need this anymore as it includes DYNOBJS but libcom32.c32
also includes those objects and we can now dynamically load
libcom32.c32 at runtime.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Wed, 13 Apr 2011 11:54:49 +0000 (12:54 +0100)]
com32: Put deleted object files back into the Makefile
For some reason that I can't understand, some object files were
removed from this Makefile in the following commit,
|commit
0cb6490fa96f752c01bbb9add2c9ca6dbf99ece2
|Author: Feng Tang <feng.tang@intel.com>
|Date: Thu Jun 3 10:48:22 2010 +0800
|
| elflink: start merge with pathbased branch
|
| modify these files to make compile pass
|
| modified: com32/MCONFIG
| modified: com32/Makefile
| modified: com32/include/klibc/compiler.h
| modified: com32/include/sys/elfcommon.h
| modified: com32/lib/Makefile
| modified: com32/lib/free.c
| modified: com32/lib/malloc.c
However, with this patch things continue to compile correctly so I'm
unsure why they were ever removed. Furthermore, pieces of code in
com32/ refer to symbols defined in these these object files and so
they are required in order to load modules.
These missing object files were discovered when loading libcom32.c32,
which wouldn't load because it was complaining about unresolved
symbols.
The removal of core/strncasecmp.c needs some explanation. There are
currently two identical copies of strncasecmp.c, one in com32/lib and
one in core/, and while the core copy is part of core/libcom32.a, the
copy in com32/lib isn't compiled. Now, because there are no references
to strncasecmp within core/ the symbol isn't pulled in from libcom32.a
and exported as a global symbol by the core. So, if ELF modules have
references to strncasecmp they cannot be resolved at runtime.
To fix this I've included strncasecmp.o in libcom32min.a which
isolinux.elf, ldlinux.elf and pxelinux.elf link against with
--whole-archive, which means that even if there are no references to
strncasecmp within the core, that symbol is still exported.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Fri, 8 Apr 2011 12:21:51 +0000 (13:21 +0100)]
elflink: Move more code from core/ into ldlinux
ldlinux now contains all the code necessary to load and execute
modules, none is contained in the core.
This change also allows us to change the spawn_load() prototype and to
push the job of processing arguments to executable functions (e.g. the
contents of char *argv[] as passed to a module's main function) into
ldlinux/execute.c instead of doing it in spawn_load(). Moving it into
ldlinux/ makes sense because the only core user of spawn_load() is
load_env32() and we don't require any sort of argument processing in
that path.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Thu, 7 Apr 2011 20:02:02 +0000 (21:02 +0100)]
elflink: Remove MODULE_MAIN() from executable ELF modules
To make it easier to move existing COM32 modules over to ELF modules
without having to modify them we need to search for and run their
main() functions when they're loaded instead of requiring their
initial function to be labeled with MODULE_MAIN().
Currently, we require all executable ELF modules to specify their
initial function with the use of the MODULE_MAIN() macro and not via
the traditional method of naming it main(). However, there are weird
restrictions on what functions can be passed to MODULE_MAIN(), for
instance, they must be declared static.
This patch makes life much simpler and allows executable ELF modules
to be loaded without the MODULE_MAIN() wrapper, but rather by naming
their initial function main(). All the modules in com32/modules can
now be run as ELF modules without any modifications.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Fri, 8 Apr 2011 12:52:30 +0000 (13:52 +0100)]
com32: console is already initialised when we enter main()
There's no need to initialise the console when we enter main() as
ldlinux.c32 will already have initialised it for us. Leaving the calls
to openconsole() causes the console settings to be reset whenever we
run a module.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Tue, 12 Apr 2011 21:24:36 +0000 (22:24 +0100)]
exit: Delete exit.S and references to __exit_handler
We stopped using exit.S (and thus __exit_handler) in
71d5d1ba646e
("elflink: change the exit.c, remove the exit.S to make process exit
working") when we moved to using the C version of _exit(). If we don't
remove the symbol __exit_handler we'll encounter undefined symbol
errors when moving libcom32.a over to an ELF shared library.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Tue, 12 Apr 2011 21:23:55 +0000 (22:23 +0100)]
mk: LDFLAGS use elf_i386 emulation for ld
elf32_i386 isn't a valid ld emulation mode. Presumably no one is using
$(LDFLAGS) set in this file.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Thu, 7 Apr 2011 20:00:31 +0000 (21:00 +0100)]
mk: Add rule for emitting .c32 ELF files
We currently open code the Makefile rules for outputting .c32 files,
so provide a pattern rule to make things easier.
There are no users of this rule yet, but we'll make use of it when we
switch all modules over to ELF.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Thu, 7 Apr 2011 17:12:51 +0000 (18:12 +0100)]
elflink: Move elf MCONFIG to mk/elf.mk
Catch up with recent changes to the Makefile fragments in the MCONFIG
files.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Tue, 26 Apr 2011 08:51:32 +0000 (09:51 +0100)]
Merge branch 'for-hpa/elflink/core' into elflink
Matt Fleming [Tue, 26 Apr 2011 08:51:14 +0000 (09:51 +0100)]
Merge branch 'for-hpa/elflink/ldlinux' into elflink
Matt Fleming [Tue, 26 Apr 2011 08:46:34 +0000 (09:46 +0100)]
Merge remote-tracking branch 'zytor/master' into elflink
We need the recent Makefile filename changes to be merged into the
elflink branch because it will make things simpler when converting all
modules to ELF format.
Conflicts:
com32/Makefile
com32/modules/Makefile
version
H. Peter Anvin [Tue, 26 Apr 2011 08:30:29 +0000 (01:30 -0700)]
hdt: add back -I$(com32)
hdt picks up include files from outside the include directory and so
needs an explicit -I$(com32). This probably should be fixed.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Tue, 26 Apr 2011 08:29:28 +0000 (01:29 -0700)]
sysdump: add $(LIBS) to the link rule
$(C_LIBS) doesn't include $(LIBS) so we need to add it explicitly.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Tue, 26 Apr 2011 08:18:18 +0000 (01:18 -0700)]
Merge remote-tracking branch 'mfleming/for-hpa/makefile-cleanup'
Resolved Conflicts:
com32/hdt/Makefile
com32/sysdump/Makefile
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Tue, 26 Apr 2011 03:18:07 +0000 (20:18 -0700)]
isolinux: remove broken and obsolete open_file_t
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Tue, 26 Apr 2011 03:16:07 +0000 (20:16 -0700)]
isolinux: remove .img file support
Remove disk image support from ISOLINUX. Very few BIOSes support this
call correctly, and it is likely to have been broken for a very long
time anyway.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Tue, 26 Apr 2011 00:15:40 +0000 (17:15 -0700)]
com32: inet_ntoa() takes struct in_addr
The standard definition for inet_ntoa() is to take struct in_addr, and
not doing that causes a conflict on the lwip branch.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Tue, 26 Apr 2011 00:00:22 +0000 (17:00 -0700)]
hdt: remove set-but-unused variable
Remove a set but unused variable in HDT, which prevents building with
gcc 4.6. This is probably a bug; presumably the active flag should be
presented to the user, too.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 25 Apr 2011 22:24:33 +0000 (15:24 -0700)]
Merge remote-tracking branch 'sherbszt/gfxboot32'
Steffen Winterfeldt [Tue, 19 Apr 2011 13:27:26 +0000 (15:27 +0200)]
gfxboot: pass current working dir to gfxboot core
Pass current working dir to (and back from) gfxboot core via gfx_config
struct. This way I can implement a chdir() in the gfxboot core without
the need for additional 16-bit comboot calls. gfxboot may change the
directory, so you have to read and apply the current setting in boot() (to
read kernel etc. from right location).
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
H. Peter Anvin [Mon, 25 Apr 2011 21:34:30 +0000 (14:34 -0700)]
Merge remote-tracking branch 'hdt/master'
H. Peter Anvin [Mon, 25 Apr 2011 21:32:08 +0000 (14:32 -0700)]
diag/geodsp: zero-fill sectors in -1 mode
In -1 mode, zero-fill the sector instead of writing whatever garbage
was in the buffer already.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 25 Apr 2011 21:27:28 +0000 (14:27 -0700)]
diag/geodsp: fix ordering of args to fread/fwrite in mk-lba-img
If we want the return value to be in bytes, make sure we pass the byte
count in the nmemb field instead of the size field.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 25 Apr 2011 19:39:08 +0000 (12:39 -0700)]
diag/geodsp: Avoid large intermediate files
Allow the generation program mk-lba-img to merge the prefix file and
output to stdout, so it can be fed directly to the compressor; that
way we avoid generating huge intermediate files on disk.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 25 Apr 2011 19:22:21 +0000 (12:22 -0700)]
ppmtolss16: remove obsolete Perl construct
defined() on an array is considered obsolete; instead check for a
nonzero number of elements with scalar().
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Steffen Winterfeldt [Tue, 19 Apr 2011 13:27:26 +0000 (15:27 +0200)]
gfxboot: handle INITRD config line
Handle case where there is no initrd= option but a separate initrd config line.
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
H. Peter Anvin [Fri, 22 Apr 2011 04:32:01 +0000 (21:32 -0700)]
version: now working on version 4.05
4.04 is out, next version will be 4.05 (or later).
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Erwan Velu [Thu, 21 Apr 2011 19:47:57 +0000 (21:47 +0200)]
hdt: Final release 0.5.0
Thanks for all who participe in this release.
Erwan Velu [Thu, 21 Apr 2011 19:43:54 +0000 (21:43 +0200)]
hdt: Using dashed instead of . into label name
When generating floppy images some version of mtools (< 4.0.14) are
buggy and generate incorrect labels. So using > 4.0.13 is recommended.
Anyway, let's use _ into the volume name, that cleaner :
We now have
disk label="HDT_0_5_0_B"
instead of
disk label="HDT_0~5~0-B"
Erwan Velu [Wed, 20 Apr 2011 19:06:14 +0000 (21:06 +0200)]
hdt: Fixing ACPI display
Some screenshots shows that we have some troubles for aligning items.
This is now fixed.
Erwan Velu [Wed, 20 Apr 2011 18:44:29 +0000 (20:44 +0200)]
hdt: New release beta5
Erwan Velu [Wed, 20 Apr 2011 18:21:21 +0000 (20:21 +0200)]
libupload: Adding tftp.h missing file
Oups, this while wasn't commited :/
Erwan Velu [Wed, 20 Apr 2011 18:20:22 +0000 (20:20 +0200)]
hdt: Showing specific message for auto mode
That's a nice info to know that some output were generated by the
automatic mode.
Erwan Velu [Wed, 20 Apr 2011 18:14:45 +0000 (20:14 +0200)]
hdt: Removing useless printf in dump mode
This message was clearly boring to read ;o)
Erwan Velu [Wed, 20 Apr 2011 18:12:24 +0000 (20:12 +0200)]
libupload: Fixing tftp return value
The default return value for the tftp mode.
This made the tftp to return error even if the upload was succesful.
Erwan Velu [Tue, 19 Apr 2011 18:23:20 +0000 (20:23 +0200)]
hdt: New release Beta4
Erwan Velu [Tue, 19 Apr 2011 18:05:35 +0000 (20:05 +0200)]
hdt: Adding dump mode on pre-built images
As we now have a dump mode, let's add an entry in our menu for that.
Erwan Velu [Tue, 19 Apr 2011 18:00:46 +0000 (20:00 +0200)]
hdt: Preventing dump mode if no PXE config
Dump mode can only work if PXE is present.
H. Peter Anvin [Mon, 18 Apr 2011 21:53:45 +0000 (14:53 -0700)]
Merge commit 'syslinux-4.04' into dynamic-sector
H. Peter Anvin [Mon, 18 Apr 2011 21:24:17 +0000 (14:24 -0700)]
spec: Use BuildRequires, add diag/ subdirectory
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 18 Apr 2011 21:12:58 +0000 (14:12 -0700)]
diag: Don't remove BTARGET on make clean
"make clean" should not remove BTARGET
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Erwan Velu [Mon, 18 Apr 2011 21:12:22 +0000 (23:12 +0200)]
Merge branch 'master' of git://git./boot/syslinux/syslinux
H. Peter Anvin [Mon, 18 Apr 2011 21:11:26 +0000 (14:11 -0700)]
Merge remote-tracking branch 'pcacjr/syslinux-update-for-hpa'
Erwan Velu [Mon, 18 Apr 2011 21:08:21 +0000 (23:08 +0200)]
hdt: Reporting TFTP errors in dump mode
If we get some errors from the tftp, let's report it to the user.
This will make user's life easier to understand why the dumping mode
isn't working.
Erwan Velu [Mon, 18 Apr 2011 21:07:39 +0000 (23:07 +0200)]
libupload: Implementing error code on tftp
When using the tftp backend, let's return the errors we got on the
server.
H. Peter Anvin [Mon, 18 Apr 2011 21:06:54 +0000 (14:06 -0700)]
menu: allow "menu hiddenkey" to take multiple keys; run unlabel
- Allow "menu hiddenkey" to take a comma-separated list of keys.
- Run unlabel() on the commands passed to menu hiddenkey.
XXX: Consider moving unlabelling to post-menu instead.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Erwan Velu [Mon, 18 Apr 2011 20:37:15 +0000 (22:37 +0200)]
hdt: Fixing automatic mode parsing
Parsing of the auto='' mode was weak an non functionnal in many
configuration like
auto='dump'
This is now fixed.
H. Peter Anvin [Mon, 18 Apr 2011 20:53:19 +0000 (13:53 -0700)]
NEWS: Document MENU HIDDENKEY
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Erwan Velu [Mon, 18 Apr 2011 19:07:33 +0000 (21:07 +0200)]
libupload: Fixing memset call
We have to use the size of the element, not the size of the pointer.
Erwan Velu [Sun, 17 Apr 2011 17:44:21 +0000 (19:44 +0200)]
hdt: New release 0.5.0-beta3
Erwan Velu [Sat, 16 Apr 2011 18:34:40 +0000 (20:34 +0200)]
cpuid: Using generic model if cyrix id is unknown
When using the specific Cyrix call to determine the model, if the model
is unknown, let's consider the generic call was right.
This insure a better display of the model id.
Matt Fleming [Fri, 8 Apr 2011 12:15:43 +0000 (13:15 +0100)]
ldlinux: Pass entire cmdline to execute()
We need to pass the entire cmdline to execute(), not just the kernel
name. execute() does all the required processing of cmdline arguments
and passes them to the loader in the correct format, e.g. for COM32
modules the cmdline arguments need to be passed in the traditional
char *argv[] way.
So stop using strtok() which modifies its first argument and means we
therefore lose the cmdline after the kernel name.
Previously, the "argc" and "argv" arguments that are passed to a
module's main() function contained bogus values.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Wed, 6 Apr 2011 13:37:43 +0000 (14:37 +0100)]
ldlinux: Move cmdline processing out of cli.c
While it makes perfect sense for cli.c to read input from the user and
parse certain characters (Ctrl-R, TABs, etc), once that processing is
done it should be up to the caller to decide what to do with the
expanded cmdline string. For example, the logic to figure out what
type of kernel we're loading (calculated from a kernel's filename
extension as typed on the command-line) is currently in cli.c, and
that is just wrong. That kind of logic belongs in ldlinux.c
So move process_command() from cli.c to ldlinux.c and extend it so
that if the user types a label name at the prompt, we load the kernel
for that label as described in the config file.
Now that we've moved all cli history code into edit_cmdline() it seems
like a good time to turn it on permanently.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Wed, 6 Apr 2011 11:59:29 +0000 (12:59 +0100)]
ldlinux, cli: Do not assign 'comm_counter' unnecessarily
There's no need to assign a value to 'comm_counter' at the start of
the edit_cmdline() because it is always assigned before being used.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Wed, 6 Apr 2011 12:31:16 +0000 (13:31 +0100)]
elflink: Jump to kaboom if we fail to load ldlinux.c32
Previously if we failed to load ldlinux.c32, we would drop out of
load_env32() and try to execute the assembly kernel loader.
With this patch, if we drop out of load_env32() we jump to kaboom
which drops the user at a command-line, at least that way they have a
chance of fixing the reason ldlinux.c32 failed to load.
Also, delete the comment that talks about loading and parsing the
configuration file - that is now done by ldlinux.c32.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Tue, 12 Apr 2011 13:44:32 +0000 (14:44 +0100)]
lua: Delete superfluous $(LIBS) prerequisite
com32.mk already includes the necessary library in $(C_LIBS), we don't
need to list them again in $(LIBS).
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Tue, 12 Apr 2011 13:39:57 +0000 (14:39 +0100)]
sysdump: Delete superfluous $(LIBS) prerequisite
com32.mk already includes the necessary libraries in $(C_LIBS), we
don't need to list them again in $(LIBS).
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Mon, 11 Apr 2011 13:44:44 +0000 (14:44 +0100)]
hdt: Delete superfluous $(LIBS) prerequisites
com32.mk already includes the necessary libraries in $(C_LIBS), we
don't need to list them again in $(LIBS).
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Matt Fleming [Mon, 11 Apr 2011 12:38:36 +0000 (13:38 +0100)]
menu.c32: Delete superfluous $(LIBS) prerequistite
com32.mk already includes the necessary libraries in $(C_LIBS), we
don't need to list them again in $(LIBS).
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Erwan Velu [Sat, 16 Apr 2011 06:06:01 +0000 (08:06 +0200)]
cpuid: Improving Cyrix/NSC detection
This code add the specific detection code for Cyrix/NSC processor.
Code came from the Linux kernel.
Erwan Velu [Fri, 15 Apr 2011 19:26:52 +0000 (21:26 +0200)]
hdt: Fixing buffer corruption in PXE menu
Jim Cromie reported that PXE menu behave like :
gPXE Detected: ]No
This commit avoid this buffer corruption.
Paulo Alcantara [Fri, 15 Apr 2011 18:28:31 +0000 (15:28 -0300)]
syslinux: check --update option properly
Signed-off-by: Paulo Alcantara <pcacjr@gmail.com>
Paulo Alcantara [Fri, 15 Apr 2011 18:21:10 +0000 (15:21 -0300)]
extlinux: remove already_installed
Signed-off-by: Paulo Alcantara <pcacjr@gmail.com>
Paulo Alcantara [Fri, 15 Apr 2011 18:13:54 +0000 (15:13 -0300)]
extlinux: use syslinux_already_installed instead of already_installed
Signed-off-by: Paulo Alcantara <pcacjr@gmail.com>
Paulo Alcantara [Fri, 15 Apr 2011 17:55:29 +0000 (14:55 -0300)]
libinstaller: implement syslinux_already_installed
syslinux_already_installed function will be used in both extlinux and
syslinux for checking if the boot sector has either the string
"SYSLINUX" or "EXTLINUX" in the OEMID field.
Signed-off-by: Paulo Alcantara <pcacjr@gmail.com>
Erwan Velu [Thu, 14 Apr 2011 18:58:05 +0000 (20:58 +0200)]
cpuid: Managing UNKNOWN CPU better
It's safe to manage the unknown cpu as a regular one. This will avoid
weird behavior when CPU isn't well detected.
Erwan Velu [Wed, 13 Apr 2011 19:13:37 +0000 (21:13 +0200)]
hdt: Changing boot flag semantic in menu mode
What we report is the presence of the boot flag and not the ability of a
partition to be bootable. A partition can have a valid bootloader with a
boot flag not set. So the 'Bootable' semantic was wrong.
Jim Cromie [Wed, 13 Apr 2011 19:03:58 +0000 (21:03 +0200)]
cpuid: add cpuid info for "Geode by NSC"
Without this, cpu_detect(), and set_generic_info() would take 416
seconds on a soekris 4801 and hdt would report ?????????? as the
processor vendor.
Jim Cromie [Wed, 13 Apr 2011 18:57:31 +0000 (20:57 +0200)]
hdt: fix precedence problem in double-space check
Erwan Velu [Wed, 13 Apr 2011 18:42:38 +0000 (20:42 +0200)]
hdt: Display non-sequentials disks configurations
If the location of the disks wasn't sequential on the system, the menu
mode was missing some.
This commit fix ticket #46.
Thanks gerth for reporting.
Erwan Velu [Wed, 13 Apr 2011 17:33:27 +0000 (19:33 +0200)]
hdt: Adding chain.c32 to pre-built images
This got a requirement from some users.
Erwan Velu [Tue, 12 Apr 2011 17:43:34 +0000 (19:43 +0200)]
hdt: Fixing checksums deletion
We have to delete all the checksums files while cleaning.
Older release might exists.
Erwan Velu [Tue, 12 Apr 2011 17:28:38 +0000 (19:28 +0200)]
hdt: New release 0.5.0-beta2
H. Peter Anvin [Mon, 11 Apr 2011 22:42:06 +0000 (15:42 -0700)]
keytest: make somewhat more comprehensible
Someone may very well need to use keytest to figure out their
keymappings. Make it a bit more user friendly.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 11 Apr 2011 22:41:26 +0000 (15:41 -0700)]
keyname: better handling of named control characters
Named control character (Tab, Enter, Backspace etc.) should use those
names rather than caret sequences.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 11 Apr 2011 22:33:48 +0000 (15:33 -0700)]
keytest: show the human name together with the keycode
Since we now have library support for showing the keycode name, make
keytest print that as well.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 11 Apr 2011 22:23:05 +0000 (15:23 -0700)]
menu: clear the timeout line on MENU HIDDENKEY
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 11 Apr 2011 22:22:17 +0000 (15:22 -0700)]
menu hiddenkey: fix parsing the config file option
Fix parsing bugs in the config file.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 11 Apr 2011 21:59:45 +0000 (14:59 -0700)]
menu: Add "menu hiddenkey" to make terminating menu hidden a command
Use "menu hiddenkey" together with "menu hidden" for a one-keystroke
action.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Erwan Velu [Mon, 11 Apr 2011 20:02:52 +0000 (22:02 +0200)]
hdt: Adding dump entry in the menu
If the PXE is enabled, let's show a dump menu at the main menu.
Erwan Velu [Mon, 11 Apr 2011 19:29:27 +0000 (21:29 +0200)]
hdt: Adding checksums file
When generating a release, let's create a list of the checksums
Erwan Velu [Mon, 11 Apr 2011 19:10:11 +0000 (21:10 +0200)]
hdt: Adding dump_mode & tftp_ip boot option
dump_mode=<dir> give the user a chance to select a directory on the tftp
server.
tftp_ip=<w.x.y.z> give the user a chance to select another tftp server
for dumping data. By default, we use the tftp that serves the pxe
booting.
Erwan Velu [Mon, 11 Apr 2011 18:32:49 +0000 (20:32 +0200)]
hdt: new beta 0.5.0-beta1
This first beta is featuring the dumping code.
Erwan Velu [Mon, 11 Apr 2011 18:32:27 +0000 (20:32 +0200)]
hdt: Dumping HDT
HDT information is now dumped in the 'hdt' file