Monday, January 25, 2010

Build uClinux on Ubuntu 9.10

I have successfully build a uClinux kernel on Redhat Linux. Now I'm trying to setup a Ubuntu and build it again on it.

I have spent the past few days trying to setting up a Ubuntu 9.10 box and finially got it installed and running on a Dell dimension 2400 desktop. (The system will boot to Win XP or Ubuntu by changing the BIOs. For Win XP, turn Ubuntu disk off; for Ubuntu, turn Win XP disk off).

When I install m68k took chain for uClinux by running:
m68k-elf-tools-20031003.sh

I got error: tail: cannot open input `+43' for reading, no such file ...

Some smart people give a solution, by running the following command in sequence:
1. tail -n +43 m68k-elf-tools-20031003.sh > m68k-elf-tools-20031003.tar (this retrieve the tar ball file from within the .sh file)

2. tar xvf m68k-elf-tools-20031003.tar (untar the toolchain to ./usr/local dir. So if you want to install the tool chain to /usr/local, you can run the tar command from root dir)

This is where they are talking about this: http://www.linuxquestions.org/questions/linux-newbie-8/fc-6-gunzip-stdin-invalid-compressed-data-format-violated-535785/

Now install the uClinux distribution ... smooth!

make xconfig, make dep, and make. images are successfully generated!

BTW: looks like a newer version of mk68k tool chain installation doesn't has the above problem.

2 comments:

  1. The tail command:
    Tail outputs the last past of a file. So "tail -n +43 m68k-elf-tools-20031003.sh > m68k-elf-tools-20031003.tar " actually means to output the .sh file starting from line 43 to a .tar file. Line 43 is where the archive starts.

    The reason I see the `+43' not found error is that on Ubuntu 9.10, tail command expects an option such as "-n" (which is not required for older version). If no option is given, the param after the command will be taken as the file name to output.

    ReplyDelete
  2. You solved my same problem, thanks a lot

    ReplyDelete