EXTERNAL: Re: Tar/gzip Commands: Busybox vs. GNU (error: Invalid magic)

Chen, Simon (N-DCR SYSTEM HOUSE) simon.chen at lmco.com
Fri Mar 20 16:15:18 UTC 2015


Hi Issac,

Sorry I left out my versions. I am using busybox_1.22.1 on poky-daisy-11.0.1 (Yocto), and it is the current version of fglrx (AMD-driver-installer-14.501.1003). If you could remember the version of that busybox, please let me know. And thank you for your input, I am looking into the Yocto forums.

Sincerely,
Simon Chen

-----Original Message-----
From: Isaac Dunham [mailto:ibid.ag at gmail.com] 
Sent: Thursday, March 19, 2015 7:23 PM
To: Chen, Simon (N-DCR SYSTEM HOUSE)
Cc: busybox at busybox.net
Subject: EXTERNAL: Re: Tar/gzip Commands: Busybox vs. GNU (error: Invalid magic)

On Thu, Mar 19, 2015 at 07:34:18PM +0000, Chen, Simon (N-DCR SYSTEM
HOUSE) wrote:
> Hi,
> 
> I am working on an embedded OS called YOCTO, which apparently includes 
> BusyBox into its build. YOCTO is currently running on a target board, 
> and I am trying to integrate an AMD Radeon E8860 GPU into it.
> This requires installation of a driver called "fglrx", otherwise also 
> known as AMD Catalyst. The driver installer (which is a .run) uses 
> BusyBox "gzip -cd" and "tar" commands to extract an undisclosed 
> internal file, which returned the error message "Invalid magic." This 
> does not happen when I try running the driver installer on a desktop 
> UBUNTU OS, which uses GNU. I was wondering what the key differences 
> between GNU's and Busybox's extraction functions were, and what I 
> could do to fix this error.

0) You may do better asking in a Yocto forum/list than here.
Wherever you ask, tell the versions of Busybox, Yocto, and fglrx involved.

1) A ".run" file is a self extracting archive, of similar sort to what shar makes; however, it is unlikely that you could extract it with unshar. You might be able to edit it (use a copy, not the original.)

2) "Invalid magic" means that gzip is getting non-gzip data, or tar is getting a compressed archive, or some such thing.
I've seen this happen when gzip gets passed a filename not ending with ".gz", and the output goes to tar; if a name ending in ".tgz" is used as a temporary file, busybox gzip may act like "cat" and send still- compressed data to stdout.
I do not remember which version of Busybox this affected off the top of my head, but it was relatively recent (I think it has been solved though).
The workaround I used was to redirect stdin to read from the file:
- gzip -dc FILE
+ gzip -dc < FILE

3) While I don't remember what it is, I know that fglrx has an option that will create archives raher than installing the driver.
This may be your best bet.

> Thanks,
> Simon Chen

HTH,
Isaac Dunham


More information about the busybox mailing list