目錄:

[1] CoLinux 簡介
[2] 下載所需套件
[3] 安裝 CoLinux
[4] 解壓縮 Root FileSystem & swap Devic
[5] 設定網路名稱 & 修改 fc1.colinux.xml
[6] 啟動 CoLinux
[7] 後續的網路設定
[8] 設定/啟動/關閉 swap
[9] 相關套件安裝
[10] 設定 Service 以及開機後立即啟動服務的方法
[11] 在你搞爛系統之前
[12] 關於分割區的的擴充和 Project 管理
[13] 有的沒的 - 將 CoLinux 以 Windows "服務" 的方式來啟動
[14] 其它無關痛癢的議題

--------------------------------------------

[1] CoLinux 簡介:
  略過......哈哈!自己去 Google 一下吧!

--------------------------------------------

[2] 下載所需套件:

  官方網站: (http://www.colinux.org/ )
  下載處: (http://sourceforge.net/projects/colinux )

  下載:
    (1) coLinux-0.6.3.exe (coLinux主程式)
    (2) colinux_minimal_fedora_core_1.zip
      (Root FileSystem Image, OS Image,隨便你要叫他什麼,反正就是有人先幫你安裝好
       Minimal Fedora Core 1,然後封裝成一個檔案)

  下載WinPcap: (http://www.winpcap.org)

--------------------------------------------

[3] 安裝 CoLinux:

  基本上用 "下一步" 安裝法就可以安裝好了,但是有兩個地方請注意:

  (1) 安裝時取消 Root Filesystem image Download 選項,因為我們會自行下載。
    (就是你剛剛下載的 colinux_minimal_fedora_core_1.zip )

  (2) 建議安裝在c:\colinux 或是 d:\colinux (建議有3G以上的空間)
    (小弟的測試環境安裝在d:\colinux下)

  安裝過程中會安裝一個虛擬的網路卡: "TAP-Win32 Adapter V8 (coLinux)"
  安裝完後重新開機之後,檢視你的 "網路連線" 應該會多一張虛擬的網路卡。

--------------------------------------------


[4] 解壓縮 Root FileSystem & swap Device:

  安裝完 CoLinux 之後,你應該會在安裝目錄下看到幾個檔案,像是:
  vmlinux,initrd.gz
  我想這不用我說明吧,但是這樣還不能使系統運作,因為你只有 Kernel image 和
  Initial Ram Disk,一般開機完之後不是有個動作叫做 mount Root FileSystem 嗎?
  是的,以下就來 "安裝它"(其實只是把它解壓縮出來而已啦!)

  將 colinux_minimal_fedora_core_1.zip 解壓縮之後可以看到:

D:\colinux_minimal_fedora_core_1>dir

磁碟區 D 中的磁碟沒有標籤。
磁碟區序號: AAA0-D909
D:\colinux_minimal_fedora_core_1 的目錄
2006/02/16 下午 05:03  

     .
2006/02/16 下午 05:03  
     ..
2004/03/10 上午 05:55        45 blank_1.bz2
2004/03/10 上午 05:55        49 blank_10.bz2
2004/03/10 上午 05:55        113 blank_100.bz2
2004/03/10 上午 05:57        785 blank_1024.bz2
2004/03/10 上午 05:57        112 blank_128.bz2
2004/03/10 上午 05:57        208 blank_256.bz2
2004/03/10 上午 05:58        306 blank_384.bz2
2004/03/10 上午 05:58        402 blank_512.bz2
2004/03/10 上午 06:00        79 blank_64.bz2
2004/03/10 上午 06:00        594 blank_768.bz2
2004/04/14 上午 08:05        490 fc1.colinux.xml
2004/04/14 上午 08:17    83,727,430 fc1_2GB_root.bz2
2004/04/13 下午 09:12       1,413 README.txt
      3 個檔案   83,732,026 位元組
      2 個目錄  9,922,768,896 位元組可用


  這邊我需要的檔案有:
  (1) blank_128.bz2 可以被格式化為 swap device。
  (2) fc1_2GB_root.bz2 是 Fedora Core 1 的 Root FileSystem,解壓縮之後約 2G 多。
  (3) fc1.colinux.xml 是 CoLinux 的主要環境設定檔,它與安裝完 CoLinux 之後,
    會在安裝目錄下看到的 default.colinux.xml 是同一個東西,
    原則上你只要使用它去修改就可以了,概念上"有點像"是 Grub 和 fstab 的綜合體。

  安裝: (路徑可以自由設定)
  (1) 解壓縮 fc1_2GB_root.bz2 會得到檔名為 fc1_2GB_root 的檔案,將它複製到d:\colinux\下。
  (2) 將 fc1.colinux.xml 複製到d:\colinux\下。
  (3) 解壓縮 blank_128.bz2 會得到檔名為 blank_128 的檔案,
    將它複製到 d:\colinux\ 下並更名為 swap_device

  ps: 事實上我上面步驟中所用的檔名與目錄,你都可以自己更改,只要在接下來的設定檔中正確地指到
    Root FileSystem 和 swap device 所在的路徑。

--------------------------------------------

[5] 設定網路名稱 & 修改 fc1.colinux.xml:

  這是比較重要的步驟,很多人無法完成 CoLinux 的開機都是因為這邊的步驟發生錯誤:
  修改 fc1.colinux.xml (剛才複製到d:\colinux\下了):



  
  
  
  
   ro root=/dev/cobd0
  
  
  
  


  重點說明:

  (1) block_device index 0 是我們的 Root FileSystem 所在位置,
    不管你放在哪裡指定到正確的路徑和檔名就好。

    它的 device 不像我們所熟悉的 hda0, hda1,而是 cobd0, cobd1,
    我猜是 "COlinux Block Device" 的意思,稍後 CoLinux 開機之後,
    你應該可以在 /dev/ 下看到這些 devices。

  (2) block_device index 7 是 swap device,為什麼一定要是 "7"?
    我看討論區的文章說是這一個 Root FileSystem 的預設值?
    我之前嘗試手賤改了 index 值,但是我忘記測試有沒有成功?
    因為反正 index 7 可以用,我也很懶得去測試,如果你測過的話可以告訴大家結果如何!

    不過基本上在 CoLinux 開機之後,你去check /etc/fstab 的設定和 fc1.colinux.xml
    的設定互相對應就沒問題了(這個過程也可以讓你了解 CoLinux 的配置哲學)。

  (3) 其中這裡示範的網路設定方式為 bridged,注意 name 的設定是你網路連線的名稱,
    安裝 CoLinux 時會安裝一張虛擬網卡 "TAP-Win32 Adapter V8 (coLinux)",
    我目前的電腦連線出去的網卡是 "Intel® PRO/100 VE Network Connection",
    他的連線名稱為 "區域連線" ,也許你安裝 CoLinux之後,會有個 "區域連線2"。

    因為修改設定檔 fc1.colinux.xml 不支援中文名稱,
    所以你只要在 [開始] --> [設定] --> [控制台] --> [網路連線] 中,
    在那個 "區域連線" 上按右鍵,重新命名為任意名稱,
    在設定時填入 name="YOUR_NETWORK_CONN" 中就可以了,
    這裡我將原本的 "區域連線" 更名為 "LAN" ,將 "區域連線2" 更名為 "TAP",
    由於我是透過 "LAN" 那張網卡連線出去的,所以在剛剛的是定中才會設定 name="LAN"。

    說明一下目前我的工作環境的網路是透過 LAN 連線出去,在 10.10.2.x 的網段上,
    透過DHCP自動取得IP,(但其實固定的也沒有差別啦)。

  ps:
    在 SourceForge 上你可以下載到不同的 Root FileSystem Image(Gentoo, Debian...),
    你可以為每個 Root FileSystem Image 撰寫不同的 *.xml 設定檔,並且各別取不同的名字,
    然後在啟動 CoLinux 時傳參數指定到不同的 *.xml 設定檔,就會開啟不同的 OS,
    但是......你會這麼變態嗎?(我硬碟小啦!... >_<)

--------------------------------------------

[6] 啟動 CoLinux:

  使用 Windows 的 Command Line Window (cmd.exe)
  (記住我剛剛將 CoLinux 安裝在 d:\ 下)

  1. D:\coLinux>colinux-daemon.exe -h

  Cooperative Linux Daemon, 0.6.3
  Compiled on Sun Feb 5 20:25:03 2006
syntax:
  colinux-daemon [-h] [-d] [-t name]
         ([-c config.xml]|[configuration and boot parameters])
   -h       Show this help text
   -c config.xml Specify configuration file
          (default: colinux.default.xml)
   -d       Don't launch and attach a coLinux console on
          startup
   -t name    When spawning a console, this is the type of
          console (e.g, nt, fltk, etc...)

  這是說明檔,不用再說明了吧,重點是 -c 可以自己指定設定檔的名稱,
  不指定的話,預設會找 colinux.default.xml

  注意:
    執行之前必須先安裝好WinPcap,否則會出現找不到wincap.dll的錯誤而無法啟動。

  執行:
    colinux-daemon.exe -c default.colinux.xml -t nt

  (跑了一大串資訊之後...)

Fedora Core release 1 (Yarrow)
Kernel 2.6.11-co-0.6.3 on an i686

colinux login:

  預設帳號是root,不用密碼。

--------------------------------------------

[7] 後續的網路設定:

  登入之後 ifconfig 你會發現預設的 ip 是 192.168.0.40,
  你可以經過修改 /etc/sysconfig/network-scripts/ifcfg-eth0 讓你的 CoLinux 與你的網段一致。

  修改網路設定:
  (1) /etc/sysconfig/network-scripts/ifcfg-eth0
  (2) /etc/resolv.conf

  修改完後: service network restart
  就可以 ping 出去囉!

--------------------------------------------

[8] 設定/啟動/關閉 swap:

  記得我們剛才設定的 swap 嗎?

  (1) 確定你的config.xml有這一段:
    
    

  (2) 確定你的 CoLinux 系統的 /etc/fstab 有這一段:
    /dev/cobd7 swap swap defaults 0 0

  (3) 以 free 指令查看 swap 有沒有啟動

  (4) 若要關閉 swap 用 swapoff -a 指定

  (5) 若想自行增加或替換swap大小:
    可以去下載 swap (http://gniarf.nerim.net/colinux/swap/)。

    或是去下載 blank (http://gniarf.nerim.net/colinux/blank/)
    再自行 format 為 swap device,修改方式:

    1). 先改 config.xml
    2). 開機後改 /etc/fstab
    3) # mkswap /dev/cobd7 (視你的設定而定)
    4) # swapon -a
    5) # free (檢查)

--------------------------------------------

[9] 相關套件安裝:

  然後呢?......基本上,Linux OS 有了網路之後,剩下來應該就是你的事情囉!
  這一版的 Mini Fedora Core 1 上的預設安裝套件非常少,連 gcc 都沒有,
  但它有 apt 和 wget 可以讓你下載套件,你可以開始用 apt-get 安裝所有你需要的套件。

  其實我也是因為學習安裝 CoLinux 才學會使用 apt 指令的,關於apt的指令,
  我個人推薦這篇文章:
  http://apt.nc.hcc.edu.tw/web/apt/apt.html

  這是我自己安裝的套件 (for My Projects):

  apt-get update (每次使用之前一定先下這個指令)
  apt-get dist-upgrade (建議先將目前的套件更新)
  (這個步驟有夠久,先去泡杯咖啡吧!)

  apt-get install gcc
  apt-get install make
  apt-get install genromfs
  apt-get install lftp
  apt-get install vsftpd
  apt-get install tftp-server
  apt-get install tftp
  apt-get install samba
  apt-get install samba-client
  apt-get install subversion
  apt-get install tar
  apt-get install gzip
  apt-get install unzip
  apt-get install ncurses(或ncurses-devel)
  (沒有這個ncurses套件,make menuconfig 不會顯示畫面)

  apt-get install file
  apt-get install man

  視你需要做增減,重點就是善用 "apt-cache search " 指令找到你要的套件。

  這個微型化的 Linux 版本上面所安裝的套建,和啟動的 Service 非常少,
  這可以讓你練習管理自己的 Linux 主機,包含套件管理,System Services 管理...等等。

  如果你願意的話,你可以用 apt 自己把 X-Window裝起來,用 VNC 或是 FreeNX 連進去之後,
  你會看到一個 X-Window 登入畫面,並且可以使用你的桌面環境。

  想要動手裝看看的話,可以參考這一篇:
  http://pukiwiki.kandix.idv.tw/index.php?Fedora%2FMiniFedora

--------------------------------------------

[10] 設定 Service 以及開機後立即啟動服務的方法:

  設定 tftp server, samba server, vsftpd,設定的方式應該不用我說明了,
  網路上可以找到很多文件。

  我記得 CoLinux 預設只啟動 sshd,那麼如何設定開機後自動啟動其它的 Services 呢?
  也許你以前很依賴 RedHat/Fedora 的 setup 指令,但是 CoLinux 沒有這個指令唷~

  請你學會正統 Linux 用的指令 - chkconfig
  不再贅述了,請參考這一篇:
  http://linux.vbird.org/linux_basic/0560daemons.php#starting_daemon

  ps: 使用 ssh 登入 CoLinux 時,帳號/密碼為 root/colinux。

  ps2: 我自己目前都把專案放在 CoLinux 中,並且將專案資料夾以 SAMBA 分享給
     Windows 系統 "連線遠端磁碟機"(我真討厭這個冗長的名稱!)
     這樣我可以用我的 UltraEdit 去看 Code。

  ps3: 因為啟動 CoLinux 的方式是透過 Windiws Command Line 的視窗,
     而且視窗大小不好調(事實上,我不知道怎麼調啦!)
     複製貼上的行為也是 Windiws Command Line 的模式,
     所以我建議用 Putty 或是 SecureCRT 之類的軟體 ssh 進去做編譯。

--------------------------------------------

[11] 在你搞爛系統之前:

  到這邊你已經建構了一個完整的開發環境,也安裝了你所需要的套件,
  所以我會建議你在你搞爛你的 CoLinux 系統之前先備份吧!

  現在就先 poeroff CoLinux,然後把你的 d:\colinux\fc1_2GB_root
  壓縮備份起來 (壓縮之後 size 約在 300Mb 以下)

  你可以連 *.xml 的設定檔和 CoLinux 的主程式一起燒錄起來,然後放在你家的貓找不到的地方,
  這樣你下次想幫別人安裝或是重新安裝時,就不用在重新搞 apt update 那個步驟了。

--------------------------------------------

[12] 關於分割區的的擴充和 Project 管理:

  到這邊如果你應該有足夠的資訊可以把你的嵌入式專案搬移到 CoLinux 下,
  並且在 Build firmware 之後透過 tftp load 到你的 Target Board 上。

  可是你可能會問,當初我們安裝的 RootFS 約有 2G 的空間,如果我需要維護不同的專案,
  勢必一定會到空間吃緊的狀況,這個時候就需要擴充分割區了,
  其實概念跟你在 PC 上裝一顆新的硬碟很像啦!

  步驟如下:

  (1) 下載 ext3fs image (http://gniarf.nerim.net/colinux/fs/)
    把它解壓縮到你喜歡的地方,這裡示範是: d:\colinux\fs_2048Mb
    (我下載的是已經格式化為 ext3 的 2G FileSystem 空間)

  (2) 修改 config.xml,增加一個新的 block device:
    
    

  (3) 開機進 CoLinux 之後,修改 /etc/fstab:
    增加: /dev/cobd2 /mnt/projects ext3 defaults 0 0

  (4) # mount –a (可在下指令之前和之後用 df 指令檢查比較)

  一般而言我們可以將/home,/opt,/mnt,/YOURNAME,使用額外的 FileSystem image,
  好處是方便管理與備份,比如你可以為每一個 project 開一個 "cobd?" 設定 /project?? 之類的掛載點,
  然後設定 SAMBA 讓 Windows mount 它,這樣要備份的話也只是備份那個 /project?? 所對應的
  Filesystem Image File 而已。

  ps:
    我的管理方式是我去下載很多 ext3fs image,並且全部都 mount 到 /mnt/ 下的資料夾,
    比如 /mnt/project01,/mnt/project02 其實都對應到各自的 Ext3 格式的 FileSystem Image。

    我把各個專案用到的 SourceCode 和 Cross-Toolchain 都放進去 /mnt/project?? 中,
    然後在我的工作目錄下(例如: /home/andrew)去做 Symbolic Link 到 /mnt/ 下的各個專案,
    這樣就算是要設定 Cross-Toolchain 的 PATH 都不會有問題。

    有些龜毛的 Cross-Toolchain 一定要你安裝在 /opt下,
    但你又不想增加 Base OS 系統(指 Root FileSystem 的分割區)的空間時,
    都可以用 Symbolic Link 的方式解決。

    我這樣做的用意是我想切開 Base OS 系統所用的 image (例如:fc1_2GB_root)
    和存放專案所用的 image (例如:fs_2048Mb)。
    所以我想備份專案時,或是我想把專案移交給別人時,
    只要將專案對應的 image tar 給其它成員就好了!

  ps2:
    另外,當你開啟 SAMBA 分享專案時,可能會發生你在 Windows 上用 UltraEdit 去修改
    卻不能存檔的情況發生,主要的原因幾乎都是因為你連線時的帳號,
    對那個 Project 存放路徑的權限設定的關係,解決的方式我就不談了,
    相信大家都會用 chmod,chown,chgrp 的指令。

--------------------------------------------

[13] 有的沒的 - 將 CoLinux 以 Windows "服務" 的方式來啟動:

  每次都要寫一長串指令來啟動 CoLinux 是不是很麻煩,跟我這樣做:

  (1) 開啟一個命令列視窗 (開始=>執行=>cmd)
    cd D:\coLinux
    D:\coLinux>colinux-daemon.exe –h (看--install-service)

  (2) 打: colinux-daemon.exe -c default.colinux.xml -t nt --install-service coLinux
    (最後一個 "coLinux" 的名字是自己取的,將會加到 Windows 的啟動服務清單中)

  (3) 要啟動 coLinux 可以直接執行:
    net start coLinux
    要停止 coLinux 可以直接執行;
    net stop coLinux
    或是直接到 "服務" 裡去啟動或停止 coLinux,您也可以將其設定成開機後自動啟動 coLinux。

  ps: 不過...有誰會無聊到去用它嗎?誰願意一開機就有個 CoLinux 啟動吃我的記憶體,
    還是寫個 DOS Batch File 吧:

    D:\coLinux\colinux-daemon.exe -c D:\CoLinux\colinux.xml -t nt

    如果你變態到一次使用多個 OS image,你可以在桌面寫幾個這樣的 Batch Files,
    然後每一個都指到不同的 *.xml。http://forum.jollen.org/index.php?showtopic=20

    全站熱搜

    立你斯 發表在 痞客邦 留言(3) 人氣()