?? 制作嵌入式linux文件系統(tǒng)(ramdisk,cramfs,squashfs) - 嵌入我的夢想 - csdnblog.htm
字號:
<dt>用戶操作</dt><dd class="middle"><a href="http://webim.csdn.net/Messages/zyb19831212.ashx" target="_blank">[即時聊天]</a> <a href="http://hi.csdn.net/Admin/WriteMessage.aspx?Receiver=zyb19831212" target="_blank">[發(fā)私信]</a> <a href="http://webim.csdn.net/AddFriends/zyb19831212.ashx" target="_blank">[加為好友]</a></dd><dt> <a href="http://hi.csdn.net/zyb19831212">嵌入我的夢想</a><span>ID:<a href="http://hi.csdn.net/zyb19831212">zyb19831212</a></span></dt><dd class="middle"> <a href="http://hi.csdn.net/zyb19831212"><img src="http://avatar.profile.csdn.net/8/0/1/1_zyb19831212.jpg" alt="" /></a></dd><dd class="middle"> <a href="http://profile.csdn.net/8/E4/edit.html"></a></dd><dd> 共<em>5413</em>次訪問,排名<em>18845</em>,<a href="http://hi.csdn.net/zyb19831212/profile/contactlist/1.html">好友</a><em>3</em>人,<a href="http://hi.csdn.net/zyb19831212/profile/concernedlist/1.html">關注者</a><em>11</em>人。<br/>有計劃、認真負責,有了目標立即行動</dd><dd> </dd><dt>zyb19831212的文章</dt><dd>原創(chuàng) 4 篇</dd><dd>翻譯 0 篇</dd><dd>轉(zhuǎn)載 12 篇</dd><dd>評論 7 篇</dd>
<dt>最近評論</dt><dd>yly_123456:<a href="http://blog.csdn.net/zyb19831212/archive/2007/12/05/1919269.aspx#862425" Title="點擊查看《回復:Linux2.6內(nèi)核移植筆記(一)》">你好,我現(xiàn)在也在移植2.6.18內(nèi)核到博創(chuàng)的開發(fā)板上,按你上面的說明一步步做下來的 ,但是企鵝出不來,顯示以下信息:<br />NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit<br />)<br />NAND_ECC_NONE selected by board driver. ……</a></dd><dd>yly_123456:<a href="http://blog.csdn.net/zyb19831212/archive/2007/12/05/1919269.aspx#862424" Title="點擊查看《回復:Linux2.6內(nèi)核移植筆記(一)》">你好,我現(xiàn)在也在移植2.6.18內(nèi)核到博創(chuàng)的開發(fā)板上,按你上面的說明一步步做下來的 ,但是企鵝出不來,顯示以下信息:<br />NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit<br />)<br />NAND_ECC_NONE selected by board driver. ……</a></dd><dd>yly_123456:<a href="http://blog.csdn.net/zyb19831212/archive/2007/12/05/1919269.aspx#862422" Title="點擊查看《回復:Linux2.6內(nèi)核移植筆記(一)》">你好,我現(xiàn)在也在移植2.6.18內(nèi)核到博創(chuàng)的開發(fā)板上,按你上面的說明一步步做下來的 ,但是企鵝出不來,顯示以下信息:<br />NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit<br />)<br />NAND_ECC_NONE selected by board driver. ……</a></dd><dd>cola1985:<a href="http://blog.csdn.net/zyb19831212/archive/2007/12/05/1919118.aspx#802902" Title="點擊查看《回復:CC2420引腳連接關系》">請問你的引腳關系取自哪段代碼?特別是CC2420與PXA引腳,希望你能夠發(fā)給我一份。郵箱wukao1985@gmail.com</a></dd><dd>tianxinluoming:<a href="http://blog.csdn.net/zyb19831212/archive/2007/12/03/1914356.aspx#751318" Title="點擊查看《回復:Redhat9下LXR 0.3的安裝》">http://forum.csdn.net/PointForum/Forum/UserTopicList.aspx請你去回答 一個管理linux-->mysql的問題好嗎!</a></dd>
<dt>文章分類</dt><dd><div class="publiclist_sidebar"><ul><li><a href="http://blog.csdn.net/zyb19831212/category/348368.aspx">ARM</a><a href="http://blog.csdn.net/zyb19831212/category/348368.aspx/rss">(RSS)</a></li><li><a href="http://blog.csdn.net/zyb19831212/category/348531.aspx">個人日記</a><a href="http://blog.csdn.net/zyb19831212/category/348531.aspx/rss">(RSS)</a></li><li><a href="http://blog.csdn.net/zyb19831212/category/348367.aspx">嵌入式Linux</a><a href="http://blog.csdn.net/zyb19831212/category/348367.aspx/rss">(RSS)</a></li><li><a href="http://blog.csdn.net/zyb19831212/category/352298.aspx">無線傳感器網(wǎng)絡</a><a href="http://blog.csdn.net/zyb19831212/category/352298.aspx/rss">(RSS)</a></li><li><a href="http://blog.csdn.net/zyb19831212/category/348369.aspx">無線通信</a><a href="http://blog.csdn.net/zyb19831212/category/348369.aspx/rss">(RSS)</a></li></ul></div></dd><dt>收藏</dt><dd><div class="publiclist_sidebar"><ul><li><a href="http://blog.csdn.net/zyb19831212/category/351731.aspx">Linux</a></li><li><a href="http://blog.csdn.net/zyb19831212/category/351733.aspx">其他</a></li></ul></div></dd><dt>相冊</dt><dd><a href="http://blog.csdn.net/zyb19831212/Gallery/351928.aspx">生活照</a></dd><dd><a href="http://blog.csdn.net/zyb19831212/Gallery/348395.aspx">學校</a></dd><dd><a href="http://blog.csdn.net/zyb19831212/Gallery/348425.aspx">作品</a></dd><dt>ARM</dt><dd><a href="http://www.eecatalog.com/" target="_blank">eecatalog</a></dd><dd><a href="http://www.armzone.com/index.asp" target="_self">勤研電子</a></dd><dd><a href="http://www.hhcn.com/chinese/cnindex.html" target="_blank">華恒科技</a></dd><dd><a href="http://www.arm9.net/" target="_blank">友善之臂</a></dd><dd><a href="http://arm920.vicp.net/" target="_blank">成都上佳電子</a></dd><dt>Linux</dt><dd><a href="http://www.handhelds.org/geeklog/index.php" target="_blank">Handhelds</a></dd><dd><a href="http://www.kernel.org/" target="_blank">Linux Kernel</a></dd><dd><a href="http://www.ccidnet.com/images/tech/linux/zhuanti/yizhi/index.htm" target="_blank">Linux移植技術</a></dd><dd><a href="http://lwn.net" target="_blank">LWN</a></dd><dd><a href="http://blog.chinaunix.net/u/22968/article_60587.html" target="_blank">網(wǎng)上-趙海軍</a></dd><dt>WSN</dt><dd><a href="http://www.ember.com/" target="_blank">Ember</a></dd><dd><a href="http://www.freescale.com/webapp/sps/site/homepage.jsp?nodeId=01J4Fs" target="_self">Freescale</a></dd><dd><a href="http://embedded.seattle.intel-research.net/wiki/index.php?title=Main_Page" target="_blank">Platform X </a></dd><dd><a href="http://platformx.sourceforge.net/" target="_blank">PlatformX Project</a></dd><dd><a href="http://www.sentilla.com/" target="_blank">Sentilla</a></dd><dd><a href="http://www.tinyos.net" target="_blank">TinyOS</a></dd><dd><a href="http://www.wsnblog.com" target="_blank">wsn blog</a></dd><dd><a href="http://www.xbow.com" target="_blank">xbow</a></dd><dt>公司</dt><dd><a href="http://www.alcatel-lucent.com/wps/portal" target="_blank">alcatel-lucent</a></dd><dd><a href="http://www.ericsson.com/" target="_blank">Ericsson</a></dd><dd><a href="http://www.freescale.com" target="_blank">Freescale</a></dd><dd><a href="http://www.nokia.com/" target="_blank">Nokia</a></dd><dd><a href="http://www.nokiasiemensnetworks.com/" target="_blank">NSN</a></dd><dt>朋友</dt><dd><a href="http://blog.csdn.net/fengyv/MyArticles.aspx" target="_blank">csdn-TOP大雜燴</a></dd><dd><a href="http://blog.tianya.cn/blogger/view_blog.asp?BlogName=chengducorner" target="_blank">老卿</a></dd><dt>存檔</dt><dd><div class="publiclist_sidebar"><ul><li><a href="/zyb19831212/archive/2007/12.aspx">2007年12月(13)</a></li><li><a href="/zyb19831212/archive/2007/11.aspx">2007年11月(3)</a></li></ul></div></dd>
<span id="RecentVisitors"></span>
<dt>軟件項目交易</dt><dd><iframe style="margin:0; padding:0; width: 180px; height: 32px;" src="http://prj.csdn.net/CSDN/CsdnBlog/CsdnBlogPage.html" frameborder="0" scrolling="no" ></iframe></dd>
<span id="SubscriptionList"><dt>訂閱我的博客</dt><dd><a href="http://blog.csdn.net/zyb19831212/Rss.aspx" ><img border="0" alt="XML聚合" src="/images/xml.gif" /></a> <a href="http://feeds.feedsky.com/csdn.net/zyb19831212" target="_blank"><img border="0" alt="FeedSky" src="/images/feedsky.gif" /></a></dd></span>
</dl>
</div>
</div>
</div>
<div id="csdnblog_content">
<div class="gutter">
<div class="default_contents">
<div class="user_article">
<script type="text/javascript" src="http://blog.csdn.net/js/LoadFeedbackCount.js"></script>
<h1 class="title_txt"><img src="/images/turnship.gif" border="0" width="15" height="14" alt="轉(zhuǎn)載" /> 制作嵌入式linux文件系統(tǒng)(ramdisk,cramfs,squashfs)<cite class="fav_csdnstylebykimi"><a href="JavaScript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(saveit=window.open('http://wz.csdn.net/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'saveit','scrollbars=no,width=590,height=300,left=75,top=20,status=no,resizable=yes'));saveit.focus();" class="fav_csdnstylebykimi" title="收藏到我的網(wǎng)摘中,并分享給我的朋友">收藏</a></cite></h1>
<div class="blogstory">
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>一、什么是文件系統(tǒng) (Filesystem);<br /><br />A directory structure contained within a disk drive or disk area. The total available disk space can be composed of one or more filesystems. A filesystem must be mounted before it can be accessed. To mount a filesystem, you must specify a directory to act as the mount point. Once mounted, any access to the mount point directory or its subdirectories will access the separate filesystem.
<p>文件系統(tǒng)是包括在一個磁盤(包括光盤、軟盤、閃盤及其它存儲設備)或分區(qū)的目錄結構;一個可應用的磁盤設備可以包含一個或多個文件系統(tǒng);如果您想進入一個文件系統(tǒng),首先您要做的是掛載(mount)文件系統(tǒng);為了掛載(mount)文件系統(tǒng),您必須指定一個掛載點。</p>
二、主要嵌入式采用的文件系統(tǒng) ;<br /><br />* Linux 中,rootfs 是必不可少的。PC 上主要實現(xiàn)有 ramdisk 和直接掛載 HD(Harddisk,硬盤) 上的根文件系統(tǒng);嵌入式中一般不從 HD 啟動,而是從 Flash 啟動,最簡單的方法是將 rootfs load 到 RAM 的 RAMDisk,稍復雜的就是 直接從Flash 讀取的 Cramfs,更復雜的是在 Flash 上分區(qū),并構建 JFFS2 等文件系統(tǒng)。<br /><br />* RAMDisk 將制作好的 rootfs 壓縮后寫入 Flash,啟動的時候由 Bootloader load 到RAM,解壓縮,然后掛載到 /。這種方法操作簡單,但是在 RAM 中的文件系統(tǒng)不是壓縮的,因此需要占用許多嵌入式系統(tǒng)中稀有資源 RAM。<br /><br />ramdisk 就是用內(nèi)存空間來模擬出硬盤分區(qū),ramdisk通常使用磁盤文件系統(tǒng)的壓縮存放在flash中,在系統(tǒng)初始化時,解壓縮到SDRAM并掛載根文件系統(tǒng), 在linux系統(tǒng)中,ramdisk有二種,一種就是可以格式化并加載,在linux內(nèi)核2.0/2.2就已經(jīng)支持,其不足之處是大小固定;另一種是 2.4的內(nèi)核才支持,通過,ramfs來實現(xiàn),他不能被格式化,但用起來方便,其大小隨所需要的空間增加或減少,是目前l(fā)inux常用的ramdisk技術.<br /><br />* initrd 是 RAMDisk 的格式,kernel 2.4 之前都是 image-initrd,Kernel 2.5 引入了 cpio-initrd,大大簡化了 Linux 的啟動過程,附合 Linux 的基本哲學:Keep it simple, stupid(KISS). 不過cpio-initrd 作為新的格式,還沒有經(jīng)過廣泛測試,嵌入式 Linux 中主要采用的還是 image-initrd。<br /><br />* Cramfs 是 Linus 寫的很簡單的文件系統(tǒng),有很好的壓縮綠,也可以直接從 Flash 上運行,不須 load 到 RAM 中,因此節(jié)約了 RAM。但是 Cramfs 是只讀的,對于需要運行時修改的目錄(如: /etc, /var, /tmp)多有不便,因此,一般將這些目錄做成ramfs 等可寫的 fs。<br /><br />* SquashFS 是對 Cramfs 的增強。突破了 Cramfs 的一些限制,在 Flash 和 RAM 的使用量方面也具有優(yōu)勢。不過,據(jù)開發(fā)者介紹,在性能上可能不如 Cramfs。這也是一種新方法,在嵌入式系統(tǒng)采用之前,需要經(jīng)過更多的測試<br /><br />三、建一個包含所有文件的目錄 ;<br /><br />1。建一個目錄rootfs 用來裝文件系統(tǒng)<br /><br />2。mkdir bin dev etc lib proc sbin tmp usr var<br /><br />3. ln -fs bin/busybox linuxrc(使用busybox)<br /><br />4. 到系統(tǒng) /dev 把所有的device打一個包,拷貝到 dev下面(最省事的做法);或者使用mknod來自己建所需要的device,我自己用的如下:<br />crw-rw-rw- 1 root root 5, 1 2006-02-24 13:12 console<br />crw-rw-rw- 1 root root 5, 64 2006-02-24 13:12 cua0<br />crw-rw-rw- 1 root root 63, 0 2006-02-24 13:12 dk0<br />crw-rw-rw- 1 root root 63, 1 2006-02-24 13:12 dk1<br />drwxr-xr-x 2 root root 4096 2006-02-24 13:12 flash<br />brw-rw-rw- 1 root root 3, 0 2006-02-24 13:12 hda<br />crw-rw-rw- 1 root root 36, 10 2006-02-24 13:12 ipsec<br />crw-rw-rw- 1 root root 241, 0 2006-02-24 13:12 ixNpe<br />crw-rw-rw- 1 root root 1, 2 2006-02-24 13:12 kmem<br />crw-rw-rw- 1 root root 126, 0 2006-02-24 13:12 ledman<br />lrwxrwxrwx 1 root root 16 2007-09-19 14:08 log -> /tmp/var/log/log<br />crw-rw-rw- 1 root root 1, 1 2006-02-24 13:12 mem<br />crw-rw-rw- 1 root root 90, 0 2006-02-24 13:12 mtd0<br />brw-rw-rw- 1 root root 31, 0 2006-02-24 13:12 mtdblock0<br />brw-rw-rw- 1 root root 31, 1 2006-02-24 13:12 mtdblock1<br />brw-rw-rw- 1 root root 31, 2 2006-02-24 13:12 mtdblock2<br />brw-rw-rw- 1 root root 31, 3 2006-02-24 13:12 mtdblock3<br />brw-rw-rw- 1 root root 31, 4 2006-02-24 13:12 mtdblock4<br />brw-rw-rw- 1 root root 31, 5 2006-02-24 13:12 mtdblock5<br />brw-rw-rw- 1 root root 31, 6 2006-02-24 13:12 mtdblock6<br />crw-rw-rw- 1 root root 90, 1 2006-02-24 13:12 mtdr0<br />crw-rw-rw- 1 root root 1, 3 2006-02-24 13:12 null<br />crw-rw-rw- 1 root root 108, 0 2006-02-24 13:12 ppp<br />crw-r--r-- 1 root root 5, 2 2006-03-29 15:56 ptmx<br />drwxr-xr-x 2 root root 4096 2006-03-29 15:56 pts<br />crw-rw-rw- 1 root root 2, 0 2006-02-24 13:12 ptyp0<br />brw-rw-rw- 1 root root 1, 0 2006-02-24 13:12 ram0<br />crw-rw-rw- 1 root root 1, 8 2006-02-24 13:12 random<br />crw-rw-rw- 1 root root 5, 0 2006-02-24 13:12 tty<br />crw-rw-rw- 1 root root 4, 0 2006-02-24 13:12 tty0<br />crw-rw-rw- 1 root root 3, 0 2006-02-24 13:12 ttyp0<br />crw-rw-rw- 1 root root 4, 64 2006-02-24 13:12 ttyS0<br />crw-rw-rw- 1 root root 1, 9 2006-02-24 13:12 urandom<br />crw-rw-rw- 1 root root 1, 5 2006-02-24 13:12 zero<br /><br />舉例: mknod console c 5 1 這樣 crw-rw-rw- 1 root root 5, 1 2006-02-24 13:12 console<br /><br />5。將編譯好的busybox拷貝到/bin下面,除了busybox外,所有其他的命令都是他的link<br /><br />ash chgrp clear dd echo fgrep gzip ip ls modprobe mv ping pwd sed stty tar true zcat busybox chmod cp df egrep grep hostname kill mkdir more netstat ping2file rm sh sync tftp umount cat chown date dmesg false gunzip ifconfig ln mknod mount pidof ps rmdir sleep sysinfo touch uname<br /><br />所有的命令你可以在busybox下面用make menuconfig來增減<br /><br />6。同樣/sbin下面也是busybox的link<br /><br />halt ifconfig init insmod klogd losetup lsmod mkswap modprobe reboot rmmod route swapoff swapon<br /><br />7。同樣/usr/bin下面也是busybox的link<br />basename dirname env free id logger reset tail tr tty uptime which xargs<br />awk cut du expr head killall mkfifo sort test traceroute uniq wc whoami yes<br /><br /><font size="4"><span style="COLOR: rgb(255,1,2)">上面幾乎是最全的link,各個看官可以酌情刪減,不過link也不占什么空間!<br /><br /></span></font>8。同樣/usr/sbin下面放著所有編譯完的可執(zhí)行文件,具體就不多說了<br /><font size="4"><span style="COLOR: rgb(255,1,2)"><br /></span></font>9。<span style="COLOR: rgb(255,1,2)">非常重要之/lib,務必重視<br /> <br /> 找到你編譯環(huán)境的target目錄,把需要的lib文件先用strip壓縮(非target目錄下的,而已編譯環(huán)境提供的strip),先把最基本的libc, ld等等,必須同樣做跟target/lib里面一樣的link。<br /><br /> 然后根據(jù)特定的應用加相應的lib,不要把不用的加進去,lib比較占空間。<br /><br /></span>10。在/etc下面加上需要的配置文件,最最重要的是rcS<br />#!/bin/sh<br />export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/sbin/scripts<br /><br />UTC=yes<br /><br />mount -n -t proc proc /proc<br />mount -n -t ramfs ramfs /tmp<br />mount -n -t devpts devpts /dev/pts<br /><br /># build var directories <br />/bin/mkdir -m 0777 /tmp/var<br />/bin/mkdir -m 0777 /var/lock<br />/bin/mkdir -m 0777 /var/log<br />/bin/mkdir -m 0777 /var/run<br />/bin/mkdir -m 0777 /var/tmp<br />#/bin/mkdir -m 0777 /tmp/etc<br /><br />#/bin/cp -a /usr/etc/* /etc<br />#/bin/cp -a /usr/dev/* /dev/<br /><br /># loads the NPE ethernet modules into the kernel.<br /><br />insmod /lib/modules/2.6.13.2/intel/ixp400.ko<br /><br /># Firmware code for NPE Engine.<br /> <br />cat /etc/IxNpeMicrocode.dat > /dev/ixNpe<br /><br />insmod /lib/modules/2.6.13.2/intel/ixp400_eth.ko netdev_max_backlog=500<br />insmod /lib/modules/led.ko<br />insmod /lib/modules/push_button.ko<br /><br />下面的具體應用沒有再舉例加上了,這個是系統(tǒng)init必須的。<br /><br />其他的情況類似如此了,我在附件里面給了一個lunksys的GPL項目的target,大家看著比劃。<br /><br /><a target="_blank" href="http://blogimg.chinaunix.net/blog/upfile/070921141551.rar">附件</a><br /><br />四、生成一個ramdisk<br /><br />#!/bin/sh<br />MODULE_NAME=ramdisk<br />RAMPATH=`pwd`<br />TMPPATH=${RAMPATH}/tmp<br />SOURCE=${RAMPATH}/../target<br /><br />if [ ! -d ${TMPPATH} ]<br />then<br /> mkdir ${TMPPATH}<br />fi<br /><br />if [ `whoami` != 'root' ]<br />then {<br /> echo "You should run the shell as root, Please rerun as a root."<br /> echo "Aborting."<br /> exit 1<br /> }<br />fi<br /><br /># Clear in tmp path<br />rm -rf ${TMPPATH}/tmpmnt<br />rm -rf ${TMPPATH}/ramrootfs<br />mkdir ${TMPPATH}/tmpmnt<br /><br /># Clear the old ramdisk<br />rm -f ${RAMPATH}/$MODULE_NAME<br /><br /># Make a temp file which size is suitable<br />dd if=/dev/zero of=${TMPPATH}/ramrootfs bs=1k count=6144<br /><br /># Create a ext2 filesystem<br />mke2fs -F -m 0 -i 2000 ${TMPPATH}/ramrootfs<br /><br /># Mount it to tmpmnt/<br />mount -o loop -t ext2 ${TMPPATH}/ramrootfs ${TMPPATH}/tmpmnt<br /><br /># Copy everything from kernel to this.<br />cd ${TMPPATH}/tmpmnt<br />echo ${SOURCE}<br />cp -av ${SOURCE}/* .<br />cd ${TMPPATH}<br /><br /># Unmount it the ext2 filesystem<br />umount ${TMPPATH}/tmpmnt<br />cat ${TMPPATH}/ramrootfs | gzip -9 > /${RAMPATH}/ramdisk<br />echo Copying ramdisk image to ${RAMPATH}<br />sync<br /><br />這里給出一個自動生成腳本!<br /><br />五、生成一個cramfs<br /><br /> 找到cramfs的toolchain<br /> 。/mkcramfs -r $(FS1_DIR) $(FS_NAME).1<br /><br />六、生成一個mksquashfs<br /> 找到squashfs的toolchain<br /> 。/mksquashfs $(FS_DIR) $(FS_NAME) -noappend -be -lzma -no-fragments -noI<br /><br />做文件系統(tǒng)最困難和最可能出問題的地方是在/lib庫和/dev方面,請大家多注意這兩方面<br /> <p class="right articalinfo">發(fā)表于 @ <a href="http://blog.csdn.net/zyb19831212/archive/2007/11/16/1887930.aspx" Title = "permalink">2007年11月16日 10:20:00</a>|<a href="http://blog.csdn.net/zyb19831212/archive/2007/11/16/1887930.aspx#FeedBack" Title = "評論">評論(<span id="FeedbackCount_1887930">loading...</span><script type="text/javascript">AddFeedbackCountStack("1887930")</script>)</a>|<a href="http://writeblog.csdn.net/PostEdit.aspx?entryId=1887930" Title = "編輯">編輯</a></p>
<span id="Post.ascx_ViewPost_PreviousAndNextEntriesDown"><h3 class="pagego"><a href="http://blog.csdn.net/zyb19831212/archive/2007/11/29/1907361.aspx">新一篇: 基于XubunTOS Live CD的TinyOS開發(fā)</a> | </h3></span>
</div>
<div id="Post.ascx_TagAd_palTagAd">
<div class="tagadfornews" id="csdn_tag_adstyle">
</div>
</div>
</div>
<div class="commentslist">
<span id="Anthem_Post.ascx_Comments_ltlComments__"><span id="Post.ascx_Comments_ltlComments"><div id="commentslist"><h3>評論:沒有評論。</h3></div></span></span>
</div>
<div class="spacecommment">
<div id="Anthem_Post.ascx_PostComment_CommentUpdatePanel__"><div id="Post.ascx_PostComment_CommentUpdatePanel">
<fieldset>
<legend>發(fā)表評論</legend>
<div id="Post.ascx_PostComment_CommentPanel">
<ul>
<li>姓 名:<input name="Post.ascx:PostComment:tbName" type="text" value="zhenwenxian" maxlength="32" id="Post.ascx_PostComment_tbName" disabled="disabled" Size="40" /><span controltovalidate="Post.ascx_PostComment_tbName" errormessage="請輸入名字" id="Post.ascx_PostComment_RequiredFieldValidator2" evaluationfunction="RequiredFieldValidatorEvaluateIsValid" initialvalue="" style="color:Red;visibility:hidden;">請輸入名字</span></li>
<li style="display: none">主 頁:<input name="Post.ascx:PostComment:tbUrl" type="text" value="http://hi.csdn.net/zhenwenxian" maxlength="256" id="Post.ascx_PostComment_tbUrl" disabled="disabled" Size="40" /></li>
<li>
<div id="Post.ascx_PostComment_AntiBotImageRegion">
校驗碼:
<input name="Post.ascx:PostComment:tbAntiBotImage" type="text" id="Post.ascx_PostComment_tbAntiBotImage" style="width:75px;" />
<span display="Dynamic" id="Post.ascx_PostComment_valAntiBotImage" evaluationfunction="CustomValidatorEvaluateIsValid" style="color:Red;display:none;">檢驗碼無效!</span>
<span id="Anthem_Post.ascx_PostComment_imgAntiBotImage__"><img id="Post.ascx_PostComment_imgAntiBotImage" src="/AntiBotImage.aspx?abi=1734&id=1887930" alt="" align="absmiddle" border="0" /></span>
<span id="Anthem_Post.ascx_PostComment_lbCreateAntiBotImage__"><a onclick="javascript:Anthem_FireCallBackEvent(this,event,'Post.ascx:PostComment:lbCreateAntiBotImage','',false,'','','',true,null,null,null,true,true);return false;" id="Post.ascx_PostComment_lbCreateAntiBotImage" href="javascript:__doPostBack('Post.ascx$PostComment$lbCreateAntiBotImage','')">看不清,換一張</a></span>
</div>
</li>
</ul>
<span controltovalidate="Post.ascx_PostComment_tbComment" errormessage="請輸入評論" id="Post.ascx_PostComment_RequiredFieldValidator3" evaluationfunction="RequiredFieldValidatorEvaluateIsValid" initialvalue="" style="color:Red;visibility:hidden;">請輸入評論</span><br />
<textarea name="Post.ascx:PostComment:tbComment" rows="10" cols="50" id="Post.ascx_PostComment_tbComment"></textarea><br />
<span id="Anthem_Post.ascx_PostComment_btnSubmit__"><input type="submit" name="Post.ascx:PostComment:btnSubmit" value="提交" onclick="javascript:Anthem_FireCallBackEvent(this,event,'Post.ascx:PostComment:btnSubmit','',true,'','','正在處理...',false,null,null,null,true,true);return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Post.ascx:PostComment:btnSubmit", "", true, "", "", false, false))" language="javascript" id="Post.ascx_PostComment_btnSubmit" /></span>
<br />
<span id="Post.ascx_PostComment_Message" style="color:Red;"></span>
</div>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -