hi randy,
the klogctl(10, NULL, 0) is only available since 2.6.6
a lot of embedded systems are still using 2.4.x.
therefore i suggest (untested of cause):

#if kernel >266
int get_size()
{
    int len;    
     len = klogctl(10, NULL, 0);       /* read ringbuffer size */
     if (len <= 0)
             len = 16384;
        return len;
}
#else
int get_size()
{
        return 16384;
}

#endif

re,
 wh


Randy Robertson schrieb:
> I wasted a bunch of time wondering why even when I increased 
> CONFIG_LOG_BUF_SHIFT I was missing 
> the first half second of my boot logs from dmesg.  I saw a bunch of linux 
> code referencing early_printk, 
> and thought there was some magic crossover time when things actually started 
> going to the log buffer. 
> 
> I didn't even think to read the dmesg man page because it never even occurred 
> to me that dmesg would be 
> dumb enough to hard code the size of the kernel buffer.
> 
> If you would kindly apply this patch, you would be doing humanity a great 
> service by ensuring that nobody ever 
> wastes time because of this again.
> 
> ---
>  util-linux/dmesg.c |    8 +++++++-
>  1 files changed, 7 insertions(+), 1 deletions(-)
> 
> diff --git a/util-linux/dmesg.c b/util-linux/dmesg.c
> index f52026c..236a3dc 100644
> --- a/util-linux/dmesg.c
> +++ b/util-linux/dmesg.c
> @@ -31,7 +31,13 @@ int dmesg_main(int argc UNUSED_PARAM, char **argv)
>                 return EXIT_SUCCESS;
>         }
>  
> -       len = (flags & OPT_s) ? xatoul_range(size, 2, INT_MAX) : 16384;
> +       if (flags & OPT_s) {
> +               len = xatoul_range(size, 2, INT_MAX);
> +       } else {
> +               len = klogctl(10, NULL, 0);       /* read ringbuffer size */
> +               if (len <= 0)
> +                       len = 16384;
> +       }
>         buf = xmalloc(len);
>         len = klogctl(3 + (flags & OPT_c), buf, len);
>         if (len < 0)
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to