CoLinux TIPS

CoLinuxのミニ情報

ウィンドウが2つ開いてうっとおしいんだけど

起動時オプションに

-t nt

をつけると1つになります
pic6.gif

キーボードがUSタイプになっているので日本語キーボードにしたい

$ su -
Password:
# dpkg-reconfigure console-data

Select keymap from arch list
  ↓
qwerty
  ↓
Japanese
  ↓
Standard

タイムゾーンを日本にしたい

$ su -
Password:
# tzconfig
  ↓
Nuber: 5
  ↓
Name: [] Tokyo

coLinux上からCFカードを認識させたい

お使いのコンピュータでCFカードがどのように WINDOWSに認識されているかを調べます。

コントロールパネル
   →管理ツール
     →コンピュータの管理

pic1.jpg

この例では CFカード (Gドライブ)が disk1 として Windowsに認識されています。 ここではディスク番号を調べただけで、何も変更を加えません

Windowsでは

partition0ディスク全部 (whole disk)
partition1第1パーテーション
partition2第2パーテーション

となるようです。またWindowsではCFのようなリムーバブルディスクにはパーテーションは1つしか作れないようです。

coLinux 起動パラメータ (config.txt) の後ろに

sda=\Device\Harddisk1\Partition0
sda1=\Device\Harddisk1\Partition1

と追加してcoLinuxを起動します。

パーテーションを切ります。前述したようにパーテーションは1つだけとしてください。

# cfdisk /dev/sda       (/dev/sdaはCFカード全体を示す)

ここでいったんcolinuxを終了し、CFカードを抜き取ります。WindowsOSが認識しているパーテーションサイズと、CFカードに書き込まれたパーテーションサイズが異なるとエラーの原因となるためです。

必ずcoLinuxを再起動と、CFカードを抜く、刺しなおすをしてください。

coLinuxの電源OFF
# poweroff

WindowsPCからCFカードを抜いて、しばらく置いてから挿しなおし WindowOSに新しいパーテーションサイズを認識させます

再度coLinuxを起動して、フォーマットします。ext2形式でフォーマットする場合は以下のようにします。

# mkfs.ext2 /dev/sda1          (/dev/sda1はCFカード第1パーテーションを示す)

この後 /dev/sda1 デバイスをマウントして自由に使えますが、ライトキャッシュが無効化されているようなので、かなり遅いです…

マウントの例
# mount /dev/sda1 /mnt -t ext2

CoLinuxのカーネルを再コンパイルしたい

CoLinux-0.7.8編

CoLinux上で自作ドライバモジュールの実験をしたいときなど、カーネルソースは日常的に必要?ですよね。以下に手順を載せます。

追加のライブラリやgccをインストールする
$ su -
password:
# apt-get install gcc libncurses5-dev
$ uname -r
2.6.33.5-co-0.7.8

とすると素のカーネルは 2.6.33.5 ということなので、ftp.kernel.orgから素のカーネルをダウンロードする

$ mkdir ~/colinux-kernel
$ cd ~/colinux-kernel
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.5.tar.bz2

http://www.colinux.org/ から coLinux-0.7.8-src.tar.gz を探し出してきてダウンロードする

つまり必用なものは次の2つです

linux-2.6.33.5.tar.bz2
coLinux-0.7.8-src.tar.gz

展開します

$ cd ~/colinux-kernel
$ tar xjf linux-2.6.33.5.tar.bz2
$ tar xzf coLinux-0.7.8-src.tar.gz

この時点で次の2つのディレクトリができています

/home/kaihatsu/colinux-kernel/coLinux-0.7.8
/home/kaihatsu/colinux-kernel/linux-2.6.33.5

CoLinuxのパッチを作る

$ cd coLinux-0.7.8/patch/
$ cat `cat series-2.6.33.5 ` > /tmp/sumary.patch
$ cd ../../

カーネルソースにパッチします

$ cd linux-2.6.33.5
$ patch -p1 < /tmp/sumary.patch

コンフィグレーションを得る

$ cp ../coLinux-0.7.8/conf/linux-2.6.33.5-config .config

ビルドします

$ make menuconfig
$ make

出来上がった vmlinux を Windows上でCoLinuxをインストールしたフォルダに置きます。たとえば

C:\colinux\vmlinux

といった風に置きます。注意点としては

  • zImageや bzImage は使用しません。
  • CoLinux上から reboot コマンドでは新カーネルで再起動しません。poweroffでcolinuxを終了してから、再び起動してください。

CoLinuxからWindowsのシリアルポートを使いたい

それはできません

残念ながら、今のところ(0.6.3では)サポートされていません。colinux的な考え方をするなら、16550Aのエミュではなくて、/dev/ttyCOS0 等の新しいTTYドライバを作ることになるのでしょう。作ろうと思えば作れると思いますが。。

SWAP領域を作りたい

Windowsのコマンドプロンプト(スタート→ファイル名を指定して実行→cmd)で以下のコマンドを実行します。

C:\> fsutil file createnew swapfile.bin 134217728

上記は128Mbyte(134217728バイト)の例です。これは一瞬で終わります。このswapfile.bin(中身は空)をルートイメージファイルが置いてあるのと同一のディレクトリに置いてください。

coLinuxの起動パラメータに

hda2=c:\colinux\swapfile.bin

などと書き加え、イメージファイルを hda2 パーテーションに割り当てます。

colinuxを起動して root ユーザにて

colinux:~# mkswap /dev/hda2
Setting up swapspace version 1, size = 134213 kB
no label, UUID=7b0a7904-4138-4ff8-93d2-4fc6f7691f5b

として swap領域としてフォーマットします。

swapon すると swapの使用を開始します。

colinux:~# swapon /dev/hda2

次回起動時以降、自動的にswapを有効にするには /etc/fstab に /dev/hda2 の行を追加します。

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>               <dump>  <pass>
/dev/hda1      /               ext3    errors=remount-ro       0       1
/dev/hda2      none            swap    sw                      0       0           ←この行を追加した
proc            /proc           proc    defaults                0       0
tmpfs           /dev/shm        tmpfs   defaults                0       0

colinuxのディスクがいっぱいになってしまった。拡張したい。

SWAP領域を作りたいと同じ要領です。新しいパーティション・イメージ・ファイルを作ってファイルを全部引っ越します。

Windowsのコマンドプロンプト(スタート→ファイル名を指定して実行→cmd)で以下のコマンドを実行します。

C:\>cd c:\colinux
C:\colinux>fsutil file createnew new_rootfs.bin 2146435072
ここで 2146435072 = 2047*1024*1024 = 2G弱です。
なぜ 2048*1024*1024 ではないかというと、2G=0x80000000 (singed int でマイナス値) で一部の圧縮ソフトが誤動作するため

coLinuxの起動パラメータに

hda3=c:\colinux\new_rootfs.bin

と書き加え、再起動します。

rootユーザでログインし、/dev/hda3 をフォーマットします

# mkfs.ext3 /dev/hda3

マウントし、全ディレクトリをコピーします。
ただし単純に cp -a を実行すると /proc /mnt が再帰的にコピーされたりしてまずいので
ディレクトリを指定してコピーします

# mount /dev/hda3 /mnt
# cp -a /bin /boot /dev /etc /home /initrd /lib /opt /root /sbin /usr /var /mnt/
# cd /mnt
# mkdir cdrom
# mkdir floppy
# mkdir mnt
# mkdir proc
# mkdir sys
# mkdir tmp
# mkdir windows
# cd ../
# umount /mnt

coLinuxの起動パラメータを

hda1=c:\colinux\new_rootfs.bin

にして (hda3は削除して) 引っ越し完了

関連

  1. CoLinuxインストール導入編
  2. CoLinuxインストール基本設定編
  3. CoLinuxインストールネットワーク設定編
  4. CoLinuxインストールdebian設定編
  5. CoLinuxインストール開発環境の構築編
  6. CoLinuxインストールQt/Embedded編
  7. Debian FAQ
  8. CoLinux TIPS

自動

コメント欄