VirtualBox上のTiny Core Linux 6.0でホストとのファイル共有を有効にする / Enabling file sharing with host machine in Tiny Core Linux 6.0 on VirtualBox

  • 投稿日:
  • 更新日:2015/02/23
  • by
  • カテゴリ:

(English below)

Tiny Core Linuxの最近のバージョン(5.xおよび6.0)では、VirtualBox上で利用するときに便利なGuest Additionsがtczで提供されていません。4.x時代はありました(virtualbox-ose-additions.tcz)。

そこで、ここでは自分で作ってみようと思います。まだ途中ですが、とりあえずファイル共有が成功するところまでは行っています。VirtualBoxのバージョンは4.3.20で確認しています。

カーネルモジュールの作成

まず、VirtualBoxのGuest Additionsを自分で作るには、Linuxのソースをローカルにおいておく必要があります。
また、コンフィグレーションに従った準備とツールが必要です。

まずは、VirtualBox上のハードディスクにTiny Core Linux 6.0をインストールします。その後、VirtualBoxの「デバイス」→「Guest AdditionsのCDイメージを挿入...」でCDを挿入しておきます。

さて、ここではGuest Additionsをビルドしなければならないため、Tiny Core Linux用にパッチの当たったカーネルを用意する必要があります。ここでは、/mnt/sda1/srcというディレクトリを作り、そこにダウンロードしています。

(コンパイル環境の準備)
% tce-load -wil compiletc
(パッチの当たったカーネルのダウンロードと展開)
% cd /mnt1/sda1
% sudo mkdir src
% sudo chown tc src
% wget http://distro.ibiblio.org/tinycorelinux/6.x/x86/release/src/kernel/linux-3.16.6-patched.txz
% tar xvfJ linux-3.16.6-patched.txz

今度は展開したソースを/usr/src/linuxにリンクします。こうしないとGuest Additionsのインストーラが認識しません。

% sudo mkdir /usr/src
% sudo ln -s /mnt/sda1/src/linux-3.16.6 /usr/src/linux

次にカーネルコンフィグレーションファイルをダウンロードし、コンパイル可能にします。

% wget http://distro.ibiblio.org/tinycorelinux/6.x/x86/release/src/kernel/config-3.16.6-tinycore
(カーネルコンフィグレーションファイルとして設置)
% cp config-3.16.6-tinycore linux-3.16.6/.config

VBoxLinuxAdditionsが動作できるように準備します。make modulesはかなり時間がかかるので、辛抱強く待ちます。

% cd linux-3.16.6
% make prepare
% make modules (VBoxLinuxAdditions.run内でmodpostが必要なため)

これでようやくVBoxLinuxAdditionsが実行できます。

% sudo /mnt/sr0/VBoxLinuxAdditions.run

これで、カーネルモジュールのファイルが3つ(vboxguest.ko, vboxvideo.ko, vboxsf.ko)と、いろいろサポートファイルがインストールされます。

このあとVirtualBoxのメニューから「デバイス」→「共有フォルダー設定...」でエラーが出なければ成功です! ホストの共有設定をしてマウントしてみましょう。

% sudo mkdir /mnt/shared
% sudo mount.vboxsf MyShared /mnt/shared

パッケージング

以上の作業はfrugal installだとリブートで消えてしまうので、tczにする必要があります。パッケージング作業はかなり複雑なので、今回は説明を省略しますが、完成したファイルをダウンロードできるようにしておきます。ページ下部のダウンロードへのリンクを参照してください。

問題点

現在のバージョンは次の問題があります。

  • グラフィックスに関しては対応していない
    以前のバージョンに存在していたファイルで一部作っていないものがあるので、おそらくグラフィクス(マウス統合など)には対応しません。具体的には、virtualbox-ose-additions.tcz内に以下のファイルがりません。
    usr/local/share/virtualbox-ose-additions/xorg.conf.sample
    usr/local/lib/X11/modules/dri/vboxvideo_dri.so
    usr/local/lib/X11/modules/drivers/vboxvideo.so
  • modprobe vboxsfしないと動かない
    これはvirtualbox-ose-additions-3.16.6-tinycore.tcz内で対応していることなのですが、ロードに実行するスクリプト(tce.installed内)で、以前のバージョンではやっていなかったmodprobeを行っています。この原因と影響はわかっていません。

もしどなたかもっと良いソリューションを作ったら、コメントかトラックバックで連絡ください...。

(ダウンロードへ)

In the recent versions (5.x and 6.0) of Tiny Core Linux doesn't provide Guest Additions as tcz packages where it did in version 4.x (virtualbox-ose-additions.tcz).

So, let's make it yourself. At this stage I did enable the file sharing with the host machine. I have checked this with VirtualBox 4.3.20.

Making the kernel modules

You need the patched Linux source files on your machine if you want to build Guest Additions by yourself. Also you need a series of configuration and preparation.

First thing first, install Tiny Core Linux 6.0 on your hard drive on VirtualBox. Then insert Guest Additions CD Image from the menu in VirtualBox.

To build Guest Additions, you need the patched kernel source code for Tiny Core Linux. Here I made a directory /mnt/sda1/src and downloaded the kernel source.

(Preparing compiling environment)
% tce-load -wil compiletc
(Downloading and extracting patched Tiny Core Linux kernel)
% cd /mnt1/sda1
% sudo mkdir src
% sudo chown tc src
% wget http://distro.ibiblio.org/tinycorelinux/6.x/x86/release/src/kernel/linux-3.16.6-patched.txz
% tar xvfJ linux-3.16.6-patched.txz

Now you need to link the extracted source directory to /usr/src/linux to let Guest Additions installer know the location of the kernel source.

% sudo mkdir /usr/src
% sudo ln -s /mnt/sda1/src/linux-3.16.6 /usr/src/linux

Next you want to download the kernel configuration file for Tiny Core Linux.

% wget http://distro.ibiblio.org/tinycorelinux/6.x/x86/release/src/kernel/config-3.16.6-tinycore
(Put the file in the source tree)
% cp config-3.16.6-tinycore linux-3.16.6/.config

Prepare kernel modules for VBoxLinuxAdditions. It takes a while for make modules.

% cd linux-3.16.6
% make prepare
% make modules (we need modpost in VBoxLinuxAdditions.run)

Pfew, now you can execute VBoxLinuxAdditions.sh.

% sudo /mnt/sr0/VBoxLinuxAdditions.run

This command generates 3 kernel modules (vboxguest.ko, vboxvideo.ko, vboxsf.ko) with a bunch of support files.

Try "Device" -> "Shared Folder" in the menu of VirtualBox. If you don't see an error message, it's a success! Let's configure a sharing and mount something.

% sudo mkdir /mnt/shared
% sudo mount.vboxsf MyShared /mnt/shared

Packaging

Unless frugal install, you need to package it to tcz not to lose it, but it is very difficult and tedious process to make packages for this. I'll explain it some time later, but you can download the file below.

Issues

Current version has the following issues.

  • Doesn't support graphics properly
    I didn't make some files in virtualbox-ose-additions.tcz that you could find in the former version, so probably it doesn't work nicely with graphics (e.g. mouse integration). In detail, the following files are missing in virtualbox-ose-additions.tcz
    usr/local/share/virtualbox-ose-additions/xorg.conf.sample
    usr/local/lib/X11/modules/dri/vboxvideo_dri.so
    usr/local/lib/X11/modules/drivers/vboxvideo.so
  • Doesn't work unless modprobe vboxsf
    Somehow modprobe command didn't exist in the post-execute script (in tce.installed) in the former version, but I added it as I didn't know how to make vboxsf kernel module available without it. Also I don't know any side effect of this. I.e. tce.installed/virtualbox-ose-additions-modules-3.16.6-tinycore post processing script is a bit different from the former version of the same file.

If you make better solution, please let me know in a comment or a trackback...

Download virtualbox-ose-additions-3.16.6-20150120.tar.gz

こちらもよく読まれています