📄 制作嵌入式linux文件系统(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">[发私信]</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>原创 4 篇</dd><dd>翻译 0 篇</dd><dd>转载 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内核移植笔记(一)》">你好,我现在也在移植2.6.18内核到博创的开发板上,按你上面的说明一步步做下来的 ,但是企鹅出不来,显示以下信息:<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内核移植笔记(一)》">你好,我现在也在移植2.6.18内核到博创的开发板上,按你上面的说明一步步做下来的 ,但是企鹅出不来,显示以下信息:<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内核移植笔记(一)》">你好,我现在也在移植2.6.18内核到博创的开发板上,按你上面的说明一步步做下来的 ,但是企鹅出不来,显示以下信息:<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引脚,希望你能够发给我一份。邮箱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">无线传感器网络</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">网上-赵海军</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="转载" /> 制作嵌入式linux文件系统(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="收藏到我的网摘中,并分享给我的朋友">收藏</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>一、什么是文件系统 (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>文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统;为了挂载(mount)文件系统,您必须指定一个挂载点。</p>
二、主要嵌入式采用的文件系统 ;<br /><br />* Linux 中,rootfs 是必不可少的。PC 上主要实现有 ramdisk 和直接挂载 HD(Harddisk,硬盘) 上的根文件系统;嵌入式中一般不从 HD 启动,而是从 Flash 启动,最简单的方法是将 rootfs load 到 RAM 的 RAMDisk,稍复杂的就是 直接从Flash 读取的 Cramfs,更复杂的是在 Flash 上分区,并构建 JFFS2 等文件系统。<br /><br />* RAMDisk 将制作好的 rootfs 压缩后写入 Flash,启动的时候由 Bootloader load 到RAM,解压缩,然后挂载到 /。这种方法操作简单,但是在 RAM 中的文件系统不是压缩的,因此需要占用许多嵌入式系统中稀有资源 RAM。<br /><br />ramdisk 就是用内存空间来模拟出硬盘分区,ramdisk通常使用磁盘文件系统的压缩存放在flash中,在系统初始化时,解压缩到SDRAM并挂载根文件系统, 在linux系统中,ramdisk有二种,一种就是可以格式化并加载,在linux内核2.0/2.2就已经支持,其不足之处是大小固定;另一种是 2.4的内核才支持,通过,ramfs来实现,他不能被格式化,但用起来方便,其大小随所需要的空间增加或减少,是目前linux常用的ramdisk技术.<br /><br />* initrd 是 RAMDisk 的格式,kernel 2.4 之前都是 image-initrd,Kernel 2.5 引入了 cpio-initrd,大大简化了 Linux 的启动过程,附合 Linux 的基本哲学:Keep it simple, stupid(KISS). 不过cpio-initrd 作为新的格式,还没有经过广泛测试,嵌入式 Linux 中主要采用的还是 image-initrd。<br /><br />* Cramfs 是 Linus 写的很简单的文件系统,有很好的压缩绿,也可以直接从 Flash 上运行,不须 load 到 RAM 中,因此节约了 RAM。但是 Cramfs 是只读的,对于需要运行时修改的目录(如: /etc, /var, /tmp)多有不便,因此,一般将这些目录做成ramfs 等可写的 fs。<br /><br />* SquashFS 是对 Cramfs 的增强。突破了 Cramfs 的一些限制,在 Flash 和 RAM 的使用量方面也具有优势。不过,据开发者介绍,在性能上可能不如 Cramfs。这也是一种新方法,在嵌入式系统采用之前,需要经过更多的测试<br /><br />三、建一个包含所有文件的目录 ;<br /><br />1。建一个目录rootfs 用来装文件系统<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. 到系统 /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下面放着所有编译完的可执行文件,具体就不多说了<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 /> 找到你编译环境的target目录,把需要的lib文件先用strip压縮(非target目录下的,而已编译环境提供的strip),先把最基本的libc, ld等等,必须同样做跟target/lib里面一样的link。<br /><br /> 然后根据特定的应用加相应的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 />下面的具体应用没有再举例加上了,这个是系统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 />做文件系统最困难和最可能出问题的地方是在/lib库和/dev方面,请大家多注意这两方面<br /> <p class="right articalinfo">发表于 @ <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开发</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>发表评论</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 + -