This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Unable to create symbolic link in Ubuntu (guest in virtualbox)

Following the instruction contained in "How to build ubuntu under virtualbox" (http://processors.wiki.ti.com/index.php/How_to_Build_a_Ubuntu_Linux_host_under_VirtualBox) I shared successfully the files between ubuntu & windows (virtualbox 4.0.2).

Unfortunately when I try to create a symbolic link inside the shared folder, during the rebuil of u-boot, (inside mkconfig) I get the following error "ln: creating symbolic link `asm': Protocol error".

If I create, in my home directory (every directory outside the shared foled), a symbolic link with a file in a shared folder this is ok.

Can someone tell me where I wrong?

Thanks

  • Is the shared folder from Ubuntu have full access rights? Right click on the folder and this window pops up, should have full access. I did not try a sym link yet though.

     

  • Yes, it has full rights. I'm able to create symlink from linux folder (example my home folder) to shared folder, I can modify/create a file in a shared folder but I cannot create a symlink (ln -s target symlink).

    So it seems impossible to share between windows & linux the sources code of uboot. I could move the sources code into linux folder and copy the binary file in the shared folder at the end of building process.

     

  • Alessandro,

    I may not have understood your query fully. Are you trying to:

    A) Create symbolic link from 'regular' linux area on Ubuntu (Guest OS) to another location within a shared folder with WIndows (Host OS)?

    OR

    B) Create symbolic link from shared area to another location on Guest OS?

    The shared folder - though visible in guest os (via vboxsf) - is a directory on either a FAT32 or NTFS partition. You won't be able to create symbolic links on this location. Contents of shared folder have to be "same" across the host and guest. (I haven't tried this myself, but appears to be logical...)

  • First of all, thanks for your reply.

    I try to explain better my scenario.

    I need to modify and debug some part of u-boot, so I thought to use Code Composer in Windows to burn&debug sw, while to use Ubuntu for building.

    I saw that it was possible by VirtualBox, so I created a shared folder where I put all u-boot sources.

    The building procedure of u-boot needs to create symbolic link for some include dir (specific for the microprocessor, in my case "arm"), but I get an error during it.

    In fact if I try to create a generic symbolic link inside the shared folder I get the "protocol error".

    I can create a workaround for this, moving the u-boot sources in a 'regular' area of Ubuntu, copying the binary file on the shared folder at the end of the building; but how can I debug the u-boot without sources)?

     

     

  • sandro sandro said:
    The building procedure of u-boot needs to create symbolic link for some include dir (specific for the microprocessor, in my case "arm"), but I get an error during it.

    In fact if I try to create a generic symbolic link inside the shared folder I get the "protocol error".

    This is because the underlying filesystem is either FAT32/ NTFS... as explained in my earlier response

    sandro sandro said:
    I can create a workaround for this, moving the u-boot sources in a 'regular' area of Ubuntu, copying the binary file on the shared folder at the end of the building; but how can I debug the u-boot without sources)?

    I don't think CCS would be able to access contents within the Virtualbox. If you don't mind duplicating, i can suggest following:

    1) Build u-boot within the Virtualbox.

    2) Use 'rsync' (or equiv) to synchronize the contents of this dir on your windows host.

    3) Let CCS use the windows path as default for your debug session.

    4) After each successful build - that you want to use as debug, you would use rsync to ensure all "changed" content in your Virtualbox area is copied to Windows host.

    The rsync would definitely take longer when you do "distclean"; but it may be quite faster for incremental builds - after few changes.

    "rsync" can also be used to exclude the files in ".git" folder - if you are maintaining the source repo for u-boot in the virtualbox.

    Typical syntax of rsync is: "rsync -a source [--delete] destination" (Here, --delete is optional). You may want to check the man page of rsync for more details.

    Do share your experience, if you choose to follow this approach...

  • Thanks Sanjeev for your suggestions.

    I have seen  the new version of CCS (v5) is also for Linux.This could be the final and the best solution, otherwise I will use the "rsync" way.

    Best regards

    Alessandro