From owner-freebsd-doc@FreeBSD.ORG Sun Jul 9 09:30:13 2006 Return-Path: X-Original-To: freebsd-doc@hub.freebsd.org Delivered-To: freebsd-doc@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 414A416A4E0 for ; Sun, 9 Jul 2006 09:30:13 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id A18A843D4C for ; Sun, 9 Jul 2006 09:30:12 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k699UCWv054497 for ; Sun, 9 Jul 2006 09:30:12 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k699UCjv054494; Sun, 9 Jul 2006 09:30:12 GMT (envelope-from gnats) Resent-Date: Sun, 9 Jul 2006 09:30:12 GMT Resent-Message-Id: <200607090930.k699UCjv054494@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-doc@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, chinsan Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4169516A4DD; Sun, 9 Jul 2006 09:29:02 +0000 (UTC) (envelope-from chinsan.tw@gmail.com) Received: from smtp2.bc.hgc.com.tw (smtp2.bc.hgc.com.tw [203.133.1.156]) by mx1.FreeBSD.org (Postfix) with ESMTP id A8D4343D45; Sun, 9 Jul 2006 09:29:01 +0000 (GMT) (envelope-from chinsan.tw@gmail.com) Received: from smtp2.bc.hgc.com.tw (u14-109.u203-187.giga.net.tw [203.187.14.109]) by smtp2.bc.hgc.com.tw (Postfix) with SMTP id CD22C2E970; Sun, 9 Jul 2006 17:28:59 +0800 (CST) Received: by smtp2.bc.hgc.com.tw (sSMTP sendmail emulation); Sun, 9 Jul 2006 17:32:33 +0800 Message-Id: <20060709092859.CD22C2E970@smtp2.bc.hgc.com.tw> Date: Sun, 9 Jul 2006 17:32:33 +0800 From: chinsan To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: vanilla@FreeBSD.org Subject: docs/99955: [UPDATE] zh_TW: add articles/nanobsd X-BeenThere: freebsd-doc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: chinsan List-Id: Documentation project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Jul 2006 09:30:13 -0000 >Number: 99955 >Category: docs >Synopsis: [UPDATE] zh_TW: add articles/nanobsd >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-doc >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Sun Jul 09 09:30:11 GMT 2006 >Closed-Date: >Last-Modified: >Originator: chinsan >Release: FreeBSD 6.1-STABLE i386 >Organization: FreeBSD Taiwan >Environment: System: FreeBSD chinsan2.twbbs.org 6.1-STABLE FreeBSD 6.1-STABLE #1: Fri Jun 2 16:44:35 CST 2006 root@chinsan2.twbbs.org:/usr/obj/usr/src/sys/GENERIC i386 >Description: Add nanobsd article. This translation is based on the Simplified Chinese translation with changes to fit the language practice of Traditional Chinese. Obtained from: The FreeBSD Traditional Chinese Project Each changelog can reviewd at https://opensvn.csie.org/traccgi/freebsddoc/timeline ( http://chinsan2.twbbs.org/chinsan/zh_TW.Big5.20060709_1.svn729.diff ) Thanks. :p >How-To-Repeat: >Fix: --- zh_TW.Big5.20060709_1.svn729.diff begins here --- diff -ruN zh_TW.Big5.orig/articles/Makefile zh_TW.Big5/articles/Makefile --- zh_TW.Big5.orig/articles/Makefile Sun Jul 9 11:19:08 2006 +++ zh_TW.Big5/articles/Makefile Sun Jul 9 17:20:24 2006 @@ -6,6 +6,7 @@ SUBDIR+= freebsd-questions SUBDIR+= hubs SUBDIR+= mailing-list-faq +SUBDIR+= nanobsd SUBDIR+= pr-guidelines SUBDIR+= problem-reports diff -ruN zh_TW.Big5.orig/articles/nanobsd/Makefile zh_TW.Big5/articles/nanobsd/Makefile --- zh_TW.Big5.orig/articles/nanobsd/Makefile Thu Jan 1 08:00:00 1970 +++ zh_TW.Big5/articles/nanobsd/Makefile Sun Jul 9 17:20:24 2006 @@ -0,0 +1,28 @@ +# +# The FreeBSD Traditional Chinese Project +# +# Original Revision: 1.2 +# $FreeBSD$ +# +# Article: Introduction to NanoBSD + +DOC?= article + +FORMATS?= html +WITH_ARTICLE_TOC?= YES + +INSTALL_COMPRESSED?= gz +INSTALL_ONLY_COMPRESSED?= + +# Images from the cross-document image library +IMAGES_LIB= callouts/1.png +IMAGES_LIB+= callouts/2.png +IMAGES_LIB+= callouts/3.png +IMAGES_LIB+= callouts/4.png + +SRCS= article.sgml + +URL_RELPREFIX?= ../../../.. +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff -ruN zh_TW.Big5.orig/articles/nanobsd/article.sgml zh_TW.Big5/articles/nanobsd/article.sgml --- zh_TW.Big5.orig/articles/nanobsd/article.sgml Thu Jan 1 08:00:00 1970 +++ zh_TW.Big5/articles/nanobsd/article.sgml Sun Jul 9 17:20:24 2006 @@ -0,0 +1,436 @@ + + +%articles.ent; +]> + +
+ + NanoBSD 簡介 + + + + Daniel + Gerzo + + + + + $FreeBSD$ + + + 2006 + The FreeBSD Documentation Project + + + + &tm-attrib.freebsd; + &tm-attrib.general; + + + + 這篇文件提供了關於 NanoBSD 工具的情報介紹, + 這工具可用來建立用於嵌入式環境應用程式的 &os; 系統映像檔, + 以便存放到 Compact Flash 卡(或隨身碟)。 + + + + + NanoBSD 簡介 + + NanoBSD + + NanoBSD 是 &a.phk; 目前正在開發的一項工具。 + 它可用來建立用於嵌入式環境應用程式的 &os; 系統映像檔, + 以便存放到 Compact Flash 卡(或隨身碟,mass storage medium)。 + + 這一工具也可以用來自製安裝映像檔, + 以簡化俗稱為 嵌入式系統(computer appliances) 的系統安裝、維護工作。 + 通常,每個嵌入式系統產品都有限定硬體和軟體, + 或者換言之,所有的應用程式都是預先裝好的。 + 這些設備可以直接放到現有的網路中,而且(幾乎是)立即使用。 + + NanoBSD 提供的功能包括: + + + + 可以和 &os; 一樣使用 Ports 和 Packages — + 所有的應用程序都可以在 NanoBSD 中直接使用, + 而方式與 &os; 完全一樣。 + + + + 功能絲毫未損 — 在 &os; 做的任何工作,都可以在 + NanoBSD 中使用, + 除非您在建立 NanoBSD 映像檔時, + 有指定要拿掉它們。 + + + + 所有東西在運行時都是唯讀的 — 可以安全地拔掉電源插頭。 + 系統不正常關機的話,不用再跑 &man.fsck.8; 了。 + + + + 可輕鬆編譯、自行打造 — 只需使用一個 shell script 和一個設定檔, + 您可以輕鬆依需求來量身訂做適用的映像檔。 + + + + + + 如何使用 NanoBSD + + + NanoBSD 的設計 + + 一旦將映像檔存入嵌入式硬體,就可以用它來引導 NanoBSD + 了。 預設情況下,隨身碟會劃分為三部分: + + + + 兩個映像檔分割區: code#1 + 和 code#2 + + + + 一個設定檔分割區,在運行環境中, + 可以將其掛載(mount)到 /cfg 目錄下。 + + + + 這些分割區,在預設情況下是以唯讀方式掛載。 + + /etc 和 + /var 目錄均為 + &man.md.4;(malloc)磁碟。 + + 設定檔的分割區則是在 + /cfg 目錄。 + 它包含了用於 /etc + 目錄的檔案,在啟動之後暫時以唯讀方式掛載。 因此,若想要重開機保留新的設定, + 那麼要記得從 /etc 把改過的檔案複製回 + /cfg 目錄才行。 + + + 把修改過 <filename>/etc/resolv.conf</filename> 設定保存起來 + + &prompt.root; vi /etc/resolv.conf +[...] +&prompt.root; mount /cfg +&prompt.root; cp /etc/resolv.conf /cfg +&prompt.root; umount /cfg + + + + 只有在系統啟動過程中,以及需要修改設定檔的時候,才需要掛載含有 + /cfg 的那個分割區。 + + 一直都掛載 /cfg + 不是一個好主意,特別是當您把 NanoBSD + 放在不適合進行大量寫入動作的分割區時 + (比如:由於檔案系統的同步化會定期在系統碟內寫入資料)。 + + + + + 打造 NanoBSD 映像檔 + + NanoBSD 映像檔是透過使用非常簡單的 + nanobsd.sh shell script 來打造的,這個 script 可以在 + /usr/src/tools/tools/nanobsd + 目錄中找到。 這個 script 建立的映像檔,可以用 &man.dd.1; 工具來複製到隨身碟上。 + + 打造 + NanoBSD 映像檔所需的指令是: + + &prompt.root; cd /usr/src/tools/tools/nanobsd +&prompt.root; sh nanobsd.sh +&prompt.root; cd /usr/obj/nanobsd.full +&prompt.root; dd if=_.disk.full of=/dev/da0 bs=64k + + + + 進入 NanoBSD 打造 script 的主目錄。 + + + + 開始打造過程。 + + + + 進入打造好的映像檔所在的目錄。 + + + + 在隨身碟上安裝 NanoBSD + + + + + + 自行打造 NanoBSD 映像檔 + + 這可能是 NanoBSD 最為重要, + 同時也是您最感興趣的功能。 同時,在開發 + NanoBSD 應用程式時,這也是相當耗時的過程。 + + 執行下面的指令將會 + nanobsd.sh 讀取目前所在目錄的 + myconf.nano 檔的設定: + + &prompt.root; sh nanobsd.sh -c myconf.nano + + 自行打造的流程,只需兩個步驟: + + + + 自訂選項 + + + + 自訂功能 + + + + + 自訂選項 + + 透過修改設定,可以設定用於 + NanoBSD 打造過程中 buildworld + 和 installworld 階段的編譯、安裝選項,以及 + NanoBSD 主要打造過程中的選項。 + 透過使用這些選項可以削減系統的尺寸,使之能夠放入 + 64 MB 的隨身碟。 您還可以進一步透過這些選項來削減 &os;, + 直到它只包含 kernel 以及兩三個 userland 檔案為止。 + + 設定檔案中包含用以代替預設值的設定選項。簡介最重要的幾項設定如下: + + + + NANO_NAME — 本次打造的名稱(所建立工作目錄的名稱)。 + + + + NANO_SRC — 用以編譯、打造映像檔的 source tree 的位置。 + + + + NANO_KERNEL — 設定用來編譯的 kernel 設定檔檔名。 + + + + CONF_BUILD — 用於 + buildworld 打造階段的選項。 + + + + CONF_INSTALL — 用於 + installworld 打造階段的選項。 + + + + CONF_WORLD — 用於 + buildworld 和 + installworld 這兩個打造階段的選項。 + + + + FlashDevice — 定義所用的嵌入式硬體類型。 + 詳情請參考 FlashDevice.sub 檔。 + + + + + + 自訂功能 + + 透過在設定檔案中使用 shell 函數,可以進一步微調 + NanoBSD。 舉例說明一下自行打造函數的基本方式: + + cust_foo()( + echo "bar=topless" > \ + ${NANO_WORLDDIR}/etc/foo +) +customize_cmd cust_foo + + 下面舉更實際點的例子,它會把預設的 + /etc 目錄大小,從 5MB 調整為 30MB: + + cust_etc_size()( + cd ${NANO_WORLDDIR}/conf + echo 30000 > default/etc/md_size +) +customize_cmd cust_etc_size + + 除此之外,還有幾個預設的功能定義可以用來自訂: + + + + cust_comconsole — 在預設 VGA 顯示卡上停用 &man.getty.8; + (/dev/ttyv*)並啟用 serial port 的 COM1 以作為系統 console。 + + + + cust_allow_ssh_root — 允許 &man.sshd.8; + 可以用 root 帳號登入。 + + + + cust_install_files — + 從 nanobsd/Files + 目錄中安裝檔案,這包含一些實用的系統管理 script 。 + + + + + + 設定檔案舉例 + + 下面是用於自行打造的 NanoBSD 映像檔的完整例子: + + NANO_NAME=custom +NANO_SRC=/usr/src +NANO_KERNEL=MYKERNEL +NANO_IMAGES=2 + +CONF_BUILD=' +NO_KLDLOAD=YES +NO_NETGRAPH=YES +NO_PAM=YES +' + +CONF_INSTALL=' +NO_ACPI=YES +NO_BLUETOOTH=YES +NO_CVS=YES +NO_FORTRAN=YES +NO_HTML=YES +NO_LPR=YES +NO_MAN=YES +NO_SENDMAIL=YES +NO_SHAREDOCS=YES +NO_EXAMPLES=YES +NO_INSTALLLIB=YES +NO_CALENDAR=YES +NO_MISC=YES +NO_SHARE=YES +' + +CONF_WORLD=' +NO_BIND=YES +NO_MODULES=YES +NO_KERBEROS=YES +NO_GAMES=YES +NO_RESCUE=YES +NO_LOCALES=YES +NO_SYSCONS=YES +NO_INFO=YES +' + +FlashDevice SanDisk 1G + +cust_nobeastie()( + touch ${NANO_WORLDDIR}/boot/loader.conf + echo "beastie_disable=\"YES\"" >> ${NANO_WORLDDIR}/boot/loader.conf +) + +customize_cmd cust_comconsole +customize_cmd cust_install_files +customize_cmd cust_allow_ssh_root +customize_cmd cust_nobeastie + + + + + 更新 NanoBSD + + 更新 NanoBSD 相對 &os; 而言較為簡單: + + + + 和之前一樣打造新的 NanoBSD 映像檔。 + + + + 將新的映像檔放入正運行的 + NanoBSD 中未用的分割區之一。 + + 與之前最初安裝 NanoBSD 的步驟相比, + 這一步驟最重要的區別在於:這次不用 _.disk.full 檔(它包含整個磁碟的映像檔), + 而應安裝 _.disk.image 映像檔(這個檔案中,只包含一個系統分割區)。 + + + + 重新啟動,並從新安裝的分割區中啟動系統。 + + + + 如果一切順利的話,升級工作就完成了。 + + + + 如果發生了任何問題,則可以從先前的分割區啟動 + (其中包含了舊的、 可用的映像檔),來盡快恢復系統功能。 + 接下來可以修正新編譯的版本中存在的問題,並重複前述步驟。 + + + + 要在正在運行的 + NanoBSD 系統中安裝新的映像檔,可以使用位於 + /root 目錄的 + updatep1 或 + updatep2 script , + 實際上要用哪一個 script,則取決於正在運行的系統是位於哪個分割區而定。 + + 隨時提供新 NanoBSD 映像檔所提供的服務, + 以及採用的傳輸方法的不同,您可以參考並使用下列三種方式之一: + + + 使用 &man.ftp.1; + + 如果傳輸速度是第一要求的話,請採用下面例子: + + &prompt.root; ftp myhost +get _.disk.image "| sh updatep1" + + + + 使用 &man.ssh.1; + + 如果想更安全的話,應參考下面例子: + + &prompt.root; ssh myhost cat _.disk.image.gz | zcat | sh updatep1 + + + + 使用 &man.nc.1; + + 如果遠程主機既不提供 &man.ftp.1; 服務,也不提供 &man.sshd.8; 服務的話: + + + + 首先,在提供映像檔的主機上開啟 TCP listen,並讓它把映像檔傳給 client: + + myhost&prompt.root; nc -l 2222 < _.disk.image + + + 請確認您所使用的 port 沒有被防火牆阻止來自 + NanoBSD client 的連線請求。 + + + + 連到提供新映像檔服務的主機,並執行 updatep1 這支 script: + + &prompt.root; nc myhost 2222 | sh updatep1 + + + + + +
--- zh_TW.Big5.20060709_1.svn729.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: