yaffs2制作教程

合集下载

转载ramdisk.imgsystem.imguserdata.img介绍与解包、打包方法

转载ramdisk.imgsystem.imguserdata.img介绍与解包、打包方法

ramdisk.img system.img userdata.img介绍及解包、打包方法2011-11-25 11:37:24分类:ramdisk.img system.img userdata.img介绍及解包、打包方法Android 源码编译后,在out/target/product/generic下生成的三个镜像文件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data。

ramdisk.img是根文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,android加载这3个映像文件后,会把system和userdata分别加载到ramdisk文件系统中的system和data目录下。

三个镜像文件及其三个目录树之间的生成关系是我们进行ROM制作的基础,下面将做详细介绍。

Ramdisk镜像是采用cpio打包,gzip压缩的。

用file验证:# file ramdisk.img输出: # ramdisk.img: gzip compressed data, from Unix为了便于说明问题,我们将ramdisk.img拷贝到其它一个目录,然后按以下步骤将ramdisk.img还原为目录树:# mv ramdisk.img ramdisk.img.gz# gunzip ramdisk.img.gz# mkdir ramdisk#cd ramdisk#mkdir temp#cd temp# cpio –i –F ../ramdisk.img这样,就得到一个完整的ramdisk目录,与out/target/product/generic/root对比后,我们发现它们是一样的内容。

通过执行以下的操作,我们可由目录树再生成ramdisk镜像# cd temp# find . | cpio -o -H newc | gzip > ../ramdisk-new.img 这两个镜像都属于yaffs2文件格式,生成方式是一样的。

PhotoshopCS2平面设计与制作短训教程 第5课 图像的调整与影调的修饰.ppt

PhotoshopCS2平面设计与制作短训教程 第5课 图像的调整与影调的修饰.ppt
图 5-7 饱和度设置对话框与饱和度最大、最小值时的效果
调整明度可以改变图像的明 暗程度,最暗是黑色,最亮是白 色,设置对话框与明度增加和减 少的效果如图5-8所示。
图 5-8 明度设置对话框与明度增加、减少时的效果
4. 曲线调整
单击图5-1菜单中的“曲线”命令,弹出的对话框如图5-9所示。 可以进行颜色的精确调整,不但可以是多通道的,还可以是单一 通道的,如果是RGB模式,可以是红、绿、蓝三色通道,如果是 CMYK模式,则是洋红、黄、青和黑四色通道。调整前后的效果 对比如图5-10所示。
图 5-4 自动色阶调整效果
2. 亮度/对比度调整
单击图5-1菜单中的“亮度/对比度”命令,弹出对话框, 如图5-5所示,调整亮度和对比度,它是对图像的色调范围进行 简单的调整。与“曲线”和“色阶”不同,此命令对图像中的 每个像素进行同样的调整。“亮度/对比度”命令对单个通道不 起作用,效果如图5-5所示。
图 5-34 旋转180度效果图 5-35 顺时针旋转效果图 5-36 逆时针旋转效果
(3) 翻转 Photoshop CS2中有两种翻转:水平翻转和垂直翻转。 水平翻转:选择了区域或图层后,单击图5-33子菜单中的“水平 翻转”命令,立刻实现以过中心的垂直线为轴的水平翻转,效果 如图5-37所示。 垂直翻转:选择了区域或图层后,单击图5-33子菜单中的“垂直 翻转”命令,立刻实现以过中心的水平线为轴的垂直翻转,效果 如图5-37所示。
第5课 图像的调整与影调的修饰
本课学习利用调节命令调节图像的色彩 和影调,并调节图像的效果、画布和图像的 大小,对图像进行必要的修饰。
5.1 课前导读
图像的色彩调整主要是色阶调整、亮度调整、对 比度调整、色相和饱和度的调整。此外还可以进行变 化、曲线等精确调整,制作去色、换色、混合等特别 效果。

Fireworks 2

Fireworks 2

Fireworks MX教程(十三)制作虚线背景图片1.新建一个文件,设置如下图。

2.导出文件,在dreamweaver中,就可以把这个图像作为单元格的当前图像3.使用“缩放”工具,把画布放大800%。

4.使用矩形工具,在最中间处画一个点。

导出这个文件,在dreamweaver中,把这个图像作为单元格的背景,就可以做出虚线效果。

Fireworks MX教程(十四)去背景图1.打开要去背景的图片,使用魔术棒工具,选择图片中的背景。

1.在属性面板中设置容差,边缘可以选择羽化。

2.删除选中的背景,反复进行这个过程,最后的图片如下Fireworks MX教程(十五)圆角矩形框1.在工具面板上选择圆角矩形工具,在画布上绘制一个圆角矩形。

2.在属性检查器中设置如下。

3做出的圆角矩形框。

Fireworks MX教程(十六)制作阴影线1.新建一个文档,画布颜色为黑色。

2.选中“线条”工具,按住SHIFT键,画一条直线,颜色为黑色。

3按Ctrl+Shift+D键,克隆这条线,点击键盘上的向下键一下,然后把这条线的颜色变为白色。

最终的效果如下图。

Fireworks MX教程(十七)制作圆角图片使用圆角矩形作为蒙版,可以轻松的把图片变成圆角形状。

1.打开一个图片。

2使用圆角矩形工具在画布上画一个圆角矩形,在属性检查器上,输入它的大小,大小和上图的大小一样。

选中上图就可以知道它的大小。

3调整圆角矩形的填充颜色为白色。

把圆角矩形和实例中的“花”图片完全重合。

3.在层面板中,选中这两个图片,如果只有这两个图片,可以按CTRL+A全选。

选择菜单中的“蒙版”/“组合为蒙版”。

4.如果要输出有透明背景的图片,必须选择GIF或者PNG格式,PNG对照片级图片支持更好。

这里选择GIF,Alpha透明。

5.做好的圆角图片。

Fireworks MX教程(十八)文字蒙盖图像文本蒙版是一种矢量蒙版,只需将文本用作蒙版对象即可。

要取得成功的效果,文字的颜色需要改成白色,并且选择的字体尽量粗,实例中使用的是“汉仪超粗黑繁”。

Flash-AS2制作网络MP3音乐播放器

Flash-AS2制作网络MP3音乐播放器

Flash AS2XXX网络MP3音乐播放器在这个播放器中,我内置了几首歌曲的连接,点击节目单会看到它们.同时提供了一个音乐XXX的文本框,你可以输入任何歌曲的XXX进行播放.在播放时,会有一个播放进度条,同其它的媒体播放器一样,你可以点击进度条来移动歌曲的播放点,达到快进和快退的目的.而播放控制按钮功能也同其它媒体播放器一样.播放器中设置了音量调节滑块和声道调节滑块.而闪动的光栅的高度则随音量的高低的变化而变化.现在来XXX这个播放器的.1.首先来做一些准备工作.播放器的外观并非本教程的内容,但一些部件是必须的.先作5个按钮:播放,暂停,停止,快进,快退,如下图:它们的实例名称分别是:ply_btn,zd_btn,stop_btn,kj_btn,kt_btn2.下面来XXX进度条,新建一影片剪辑,画一细长矩形,新插入一层,再画一个相同长度不同颜色的矩形,并将它转换为影片剪辑元件,实例名称为:jdt_mc.回到主场景,将进度条影片剪辑放到舞台上,取实例名称为:jdk_mc.如图:3.声道控制面板,新建一影片剪辑,按下图画出声道控制面板:画一个小的矩形放到面板的中间刻度上,将小矩形转换为影片剪辑,或者就叫滑块吧.为它取实例名称:sdhk_mc.回到主场景,将声道控制影片剪辑拖到舞台上,为它取实例名称:sd_mc4.音量控制面板,新建影片剪辑,按下图画出音量控制面板:将滑块元件(在上一步中创建的)拖到舞台上,放到音量最大处(右边),为它取实例名称:ylhk_mc回到主场景,将音量控制影片剪辑拖到舞台上,为它取实例名称为:yl_mc5.节目单按钮,做下面一样的影片剪辑,放在舞台上,取实例名称为:jmdbtn_mc6.节目单,新建影片剪辑,画一矩形,在矩形上放一个文本框,输入歌曲名称,演唱者:同样的方法创建其它的歌曲名称影片剪辑.新建一影片剪辑,将这些歌曲名称影片剪辑,从库中拖入排好:分别给这些歌名影片剪辑取实例名称:song1_mc,song2_mc……..song5_mc.新建一图层,画一矩形盖住所有歌名,然后将这一层拖到最下面.这个矩形的颜色应与歌曲名称影片中的矩形颜色相同.回到主场景,将节目单影片剪辑拖到舞台上,放到节目单按钮下面,取实例名称为:song_mc7.光栅,新建影片剪辑,画如下图形:放在舞台上,然后复制4个,共5个,分别取实例名称为:gb1,gb2,gb3,gb4,gb58.XXX栏,在舞台上建一个动态文本框,取实例名称为:RUL_txt9.再放两个动态文本,用来用数字显示进度.两个文本框的实例名称分别为:dqcd_txt,zcd_txt10.好了,所有的东西都准备齐了,至于你想怎样将它们摆放得漂亮一些,那是你的事情了,本文不涉及到这些内容.我们要写代码了.[next]我们首先要获得歌曲的XXX,将XXX放到XXX文本框中,当然,最简单的办法是,直接在XXX框中输入XXX.但我们内置了几首歌,这就要为这些歌名元件添加点击事件,当点击时,将歌曲XXX放到XXX框中.在刚打开播放器时,我们让节目单不可见,点击节目单按钮后,才让节目单显示出来:song_mc._yscale = 0;这样节目单的高度为0,就不可见了.jmdbtn_mc.onRelease = function(){if(song_mc._yscale > 0){song_mc._yscale = 0;}else {song_mc._yscale=100;}}点击节目单按钮,如果节目单是打开的则关闭节目单,如果是关闭的则打开节目单.节目单打开后,就可以点击歌曲名称将XXX放到XXX框中了:song_mc.song1_mc.onRelease = function(){RUL_txt.text ="bbb:///%E5%9B%BD%E5%AE%B6160.mp3";song_mc._yscale=0;}song_mc.song2_mc.onRelease = function(){RUL_txt.text ="bbb://lfg.ourivyaaa/sjweb/enjoyment/music/tiany.mp3";song_mc._yscale=0;}song_mc.song3_mc.onRelease = function(){RUL_txt.text="bbb://xuegong.zhbitaaa/jx/edit/uploadfile/2008223213733227.mp3";song_mc._yscale=0;}song_mc.song4_mc.onRelease = function(){RUL_txt.text ="bbb://bbb/music/%E7%94%BB%E5%BF%83.mp3";song_mc._yscale=0;}song_mc.song5_mc.onRelease = function(){RUL_txt.text ="bbb://1968.wzegaaa/UploadFiles/2008-6/436743781.mp3";song_mc._yscale=0;}song_mc.song6_mc.onRelease = function(){RUL_txt.text ="bbb://211.155.30.36:8089/music/Audio/6.mp3";song_mc._yscale=0;}XXX栏中有了歌曲的XXX,那么就可以点击播放按钮播放歌曲了.首先要创建一个Sound类,用来加载mp3:var wmp3:Sound = new Sound();在播放前,应该将进度条设在0处:jdk_mc.jdt_mc._xscale = 0;将光栅的高度设为零,因为设光栅高度为零的动作要多次执行,所以将它做成一个函数,然后调用它:function gbhl(){for(i=1;i<6;i++){gb_mc = eval("gb"+i); gb_mc._yscale = 0;}}gbhl();我们还需要一些变量后面有用:var zcd;//歌曲的总长度var dqcd;//当前已播放的长度,用于暂停按钮和进度条var ztd =0;//暂停点,用于暂停按钮var jd;//进度条的位置var rul:String;//歌曲的XXXvar sdz;//声道的值var ylz;//音量的值这些变量现在不用管它,在后面用到它们时会给予说明的.接下来就该写播放按钮上的代码了,有了播放按钮,就可以兴赏音乐了.在播放时,首先应该判断当前是从头开始播放还是处于暂停状态,如果是暂停,那么我们上面声明的变量ztd就不会是0,根据这个变量是否为零就可以确定是从头开始播放还是从ztd开始播放,如果ztd为零,首先从XXX栏获得歌曲XXX,然后判定XXX是否为空,如果不为空则将进度条归零,然后加载歌曲,并播放歌曲.调用mp3pl()函数,这个函数是在歌曲播放过程中设置一些效果比如进度条,光栅等.如果ztd不为零,则歌曲从暂停点处播放,并调用mp3pl()函数.ply_btn.onRelease = function(){if(ztd ==0){rul = RUL_txt.text;if(rul){jdk_mc.jdt_mc._xscale = 0;wmp3.loadSound(rul,true);wmp3.start();mp3pl(wmp3);}}else {wmp3.start(ztd);mp3pl(wmp3);}}现在来看看mp3pl()函数,在这个函数中会用到Sound类的两个属性和一个方法,先介绍一下.duration属性:该属性返回声音的总长度,以毫秒计算.position属性:上一节已经介绍过,它返回声音已播放的长度,以毫秒计算.getVolume()方法:返回声音单量的大小,数字为0-100.在这个函数中,在onEnterFrame事件中,首先获取歌曲的总长度和当前已播放的长度,将这两个数字显示在文本框中,计算出播放进度,设置进度条的 _xscale比例,显示播放进度,然后根据音量设置光栅的高度,首先将_yscale设为音量的一半,然后将另一半设为random()产生随机数,这样就产生闪动的效果.function mp3pl(mp3){onEnterFrame = function(){zcd = mp3.duration/1000;dqcd = mp3.position/1000;zcd_txt.text = Math.floor(zcd); dqcd_txt.text = Math.floor(dqcd); jd = dqcd/zcd*100;jdk_mc.jdt_mc._xscale = jd;if(dqcd!=zcd){for(i=1;i<6;i++){gb_mc = eval("gb"+i);gb_mc._yscale =mp3.getVolume()/2+ random(mp3.getVolume()/2);}}}}现在应该基本成形了,剩下的就是几个按加上功能了.当点击进度条时根据鼠标在进度条上的位置,确定歌曲重新从那一点上开始播放,达到快进或快退的功能.jdk_mc.onRelease= function(){var djd = _xmouse - jdk_mc._x;var kjd = djd/jdk_mc._width*zcd;wmp3.stop();wmp3.start(kjd);}暂停按钮:记录当前已播放的长度,并存到ztd中,停止播放歌曲,这样当点击播放按钮时,因ztd不等于0,而使歌曲从ztd开始播放.zd_btn.onRelease =function(){ztd = dqcd;wmp3.stop();delete onEnterFrame;gbhl();}停止按钮:将ztd设为0,停止播放歌曲.stop_btn.onRelease=function(){wmp3.stop();ztd = 0;delete onEnterFrame;gbhl();}快进快退按钮,在当前已播放长度的基础上加上或减去5秒,重新播放歌曲kj_btn.onRelease=function(){wmp3.stop();kjd = dqcd + 5;wmp3.start(kjd);}kt_btn.onRelease=function(){wmp3.stop();ktd = dqcd - 5;wmp3.start(ktd);}下面的声道控制,在Sound类,的setPan()方法可以设置声音的声道,值为0-100,0声音将完全由左声道播出,而100则完全由右声道播出. 当移动声道控制上滑块,放开时根据滑块的位置设置声道的值.sd_mc.sdhk_mc.onPress = function(){startDrag(this,true,0,0,sd_mc._width-this._width/2,0);}sd_mc.sdhk_mc.onRelease = function(){stopDrag();sdz = (this._x)/sd_mc._width*100;wmp3.setPan(sdz);}音量控制,在Sound类中可以使用setVolume()方法设置声音的音量,值为0-100,当移动音量控制上滑块,放开时根据滑块的位置设置音量的值.yl_mc.ylhk_mc.onPress = function(){startDrag(this,true,0,0,yl_mc._width-this._width/2,0);}yl_mc.ylhk_mc.onRelease = function(){stopDrag();ylz = (this._x)/yl_mc._width*100;wmp3.setVolume(ylz);}OK,现在真正的完全完成了,静下心来欣赏音乐吧.完整的代码:song_mc._yscale = 0;var wmp3:Sound = new Sound();var zcd;var dqcd;var ztd =0;var jd;var rul:String;var sdz;var ylz;jdk_mc.jdt_mc._xscale = 0;gbhl();ply_btn.onRelease = function(){if(ztd ==0){rul = RUL_txt.text;if(rul){jdk_mc.jdt_mc._xscale = 0;wmp3.loadSound(rul,true);wmp3.start();mp3pl(wmp3);}mp3pl(wmp3);}}jdk_mc.onRelease= function(){var djd = _xmouse - jdk_mc._x;var kjd = djd/jdk_mc._width*zcd;wmp3.stop();wmp3.start(kjd);}function mp3pl(mp3){onEnterFrame = function(){zcd = mp3.duration/1000;dqcd = mp3.position/1000;zcd_txt.text = Math.floor(zcd);dqcd_txt.text = Math.floor(dqcd);jd = dqcd/zcd*100;jdk_mc.jdt_mc._xscale = jd;if(dqcd!=zcd){for(i=1;i<6;i++){gb_mc = eval("gb"+i);gb_mc._yscale =mp3.getVolume()/2+ random(mp3.getVolume()/2);}}}}jmdbtn_mc.onRelease = function(){if(song_mc._yscale > 0){song_mc._yscale = 0;}else {song_mc._yscale=100;}}song_mc.song1_mc.onRelease = function(){RUL_txt.text ="bbb:///%E5%9B%BD%E5%AE%B6160.mp3";song_mc._yscale=0;RUL_txt.text ="bbb://lfg.ourivyaaa/sjweb/enjoyment/music/tiany.mp3";song_mc._yscale=0;}song_mc.song3_mc.onRelease = function(){RUL_txt.text ="bbb://xuegong.zhbitaaa/jx/edit/uploadfile/2008223213733227.mp3";song_mc._yscale=0;}song_mc.song4_mc.onRelease = function(){RUL_txt.text ="bbb://bbb/music/%E7%94%BB%E5%BF%83.mp3";song_mc._yscale=0;}song_mc.song5_mc.onRelease = function(){RUL_txt.text ="bbb://1968.wzegaaa/UploadFiles/2008-6/436743781.mp3";song_mc._yscale=0;}song_mc.song6_mc.onRelease = function(){RUL_txt.text ="bbb://211.155.30.36:8089/music/Audio/6.mp3";song_mc._yscale=0;}function gbhl(){for(i=1;i<6;i++){gb_mc = eval("gb"+i);gb_mc._yscale = 0;}}stop_btn.onRelease=function(){wmp3.stop();ztd = 0;delete onEnterFrame;gbhl();}zd_btn.onRelease =function(){ztd = dqcd;wmp3.stop();delete onEnterFrame;gbhl();wmp3.stop();kjd = dqcd + 5;wmp3.start(kjd);}kt_btn.onRelease=function(){wmp3.stop();ktd = dqcd - 5;wmp3.start(ktd);}sd_mc.sdhk_mc.onPress = function(){startDrag(this,true,0,0,sd_mc._width-this._width/2,0);}sd_mc.sdhk_mc.onRelease = function(){stopDrag();sdz = (this._x)/sd_mc._width*100;wmp3.setPan(sdz);}yl_mc.ylhk_mc.onPress = function(){startDrag(this,true,0,0,yl_mc._width-this._width/2,0);}yl_mc.ylhk_mc.onRelease = function(){stopDrag();ylz = (this._x)/yl_mc._width*100;wmp3.setVolume(ylz);}(注:可编辑下载,若有不当之处,请指正,谢谢!)。

烧写ARM开发板系统教程-----uboot、内核以及文件系统

烧写ARM开发板系统教程-----uboot、内核以及文件系统

烧写ARM开发板系统教程-----uboot、内核以及⽂件系统⼀、sd启动将u-boot镜像写⼊SD卡,将SD卡通过读卡器接上电脑(或直接插⼊笔记本卡槽),通过"cat /proc/partitions"找出SD卡对应的设备,我的设备节点是/dev/sdb.(内存卡的节点)。

当有多个交叉编译器是,不⽅便设置环境变量时,可以在编译命令中指定交叉编译器,具体如下:在源码中操作以下步骤:make distcleanmake ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- mrpropermake ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- tiny210_configmake ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- all spl编译出tiny210-uboot.bin,注意交叉编译⼯具路径执⾏下⾯的命令$sudo dd iflag=dsync oflag=dsync if=tiny210-uboot.bin of=/dev/sdb seek=1把内存卡插⼊开发板,使⽤串⼝⼯具设置环境变量:setenv gatewayip 192.168.1.1(电脑⽹关)setenv ipaddr 192.168.1.102(开发板ip,不要与虚拟机和电脑ip冲突)setenv netmask 255.255.255.0setenv serverip 192.168.1.10(虚拟机ip)saveenv⼆、nand启动烧写Uboot:通过SD卡启动的u-boot for tiny210 将u-boot镜像写⼊nandflash在虚拟机下重启tftp sudo service tftpd-hpa restart开发板终端下执⾏下⾯的命令:[FriendlyLEG-TINY210]# tftp 21000000 tiny210-uboot.bin[FriendlyLEG-TINY210]# nand erase.chip[FriendlyLEG-TINY210]# nand write 21000000 0 3c1f4 (写⼊长度)内核的烧写位置是0x600000开始的区域,⽂件系统烧写位置为0xe00000开始的区域。

Photoshop CS2 精品教程-第3章

Photoshop CS2 精品教程-第3章

3.5 选区的编辑与应用
3.5.1 选区的描边
选区的描边是指沿着选区的边缘描绘指定宽度的颜色。
3.5.2 选区的填充
选区的填充是指在选区的内部填充颜色或图案,并且在填充 的同时还可设置填充颜色或图案的混合模式和不透明度。
具体的操作方法请参阅 视频“V3-10.avi”。
3.6 上机实践——绘制可爱的小熊
3.3.3 图层对选区制作的影响
在利用魔棒工具制作选区时,在其工具属性栏中,勾选“对 所有图层取样”复选框表示将从所有图层中选取颜色相近区 域。不勾选该复选框则表示只选取当前图层的颜色相近区域。 具体操作请参阅视频“V3-9.avi”。
未勾选“对所有 图层取样”单选 钮后的选取效果 勾选“对所有 图层取样”单 选钮后的选取 效果
选区的收缩与选区的扩展正好相反,“收缩选区”可将制作 好的选区按指定的像素进行收缩。“收缩选区”命令一般用 来制作空心字,如下图所示。 要收缩选区,选择“选择”>“修改”>“收缩”菜单即可。
3.4.4 平滑选区
平滑选区是按指定的半径值来平滑选区的尖角。通常用来消 除用魔棒工具、“色彩范围”命令定义选区时所选择的一些 不必要的零星区域。
3.3 创建颜色相近的选区
3.3.1 用魔棒工具按颜色制作选区
魔棒工具属于灵活性很强的选择工具,通常用它选取图像中 颜色相同或相近的区域,而不必跟踪其轮廓。其具体的使用 方法可参阅视频“V3-7.avi”。
3.3.2 用“色彩范围”命令按颜色制作选区
利用“色彩范围”命令可以制作非常复杂的选区。用户可通 过在图像窗口中指定颜色来定义选区,也可通过指定其他颜 色来增加或减少选区。具体使用方法可参阅视频“V3-8.avi”。
3.1.3 选区的增减与相交

使用yaffs2img工具制作Android刷机包教程

使用yaffs2img工具制作Android刷机包教程

制作刷机包打开‘yaffs2img浏览器’,点击左上角的‘选取yaffs2文件’选择你刚刚复制出来的files文件夹里的system.img先来认识一下这个软件1.定制软件的提取(此部和制作刷机包没关系,可以不做,想用官方软件的同学可以看看)选择app,右键你想要提取软件,提取就可以了,我是把整个app文件夹提取出来了,不用的软件直接删掉好了2.定制软件的精简在你不想要用的软件上直接右键,删除,就好了,你也可以右键添加你想要用的软件,得把软件改成比较简短的英文名,否则有可能不能用秀一下我精简后的列表,大家可以参照着精简uncher文件的替换下载好你想要用的桌面软件,改名为‘Launcher’,删掉app中的‘Launcher2’,添加进去你改好名字的‘Launcher’就好了,我比较喜欢ADW,所以我把ADW的文件名改为Launcher,替换掉原来的Launcher2就好了4.破音问题的解决在左边导航点选‘etc’,右键添加文件,把附件中的声音配置文件解压出来‘AudioFilter.csv’添加进去就好了AudioFilter.rar (355 Bytes)5.字体的更改下载字体文件,中文字体库一律把名字改名为‘DroidSans Fallback.ttf’,英文字体改为‘DroidSans.ttf ’,加粗的英文字体改为‘DroidSans-Bold.ttf ’然后再左边导航栏点选‘fonts’,把之前自带的字体删除,然后把你改好名字的字体添加进去就好了把国产机皇的字体也分享给大家,中文+英文+英文加粗6.开机音乐和照相机音乐的删除在导航栏点选‘media’,在audio/ui文件夹下,删除‘Bootsound.mp3’(开机音乐)和‘camera_click.ogg’(相机按键音)7.开机画面的定制先导出‘media’中的压缩包‘bootanimation.zip’,解压出来参照着做,里面总共有part0、part1、desc.txt三个,desc文档里的东西是开机画面的播放控制参数240 320 6 p 1 0 part0 p 0 0 part1240 320 6 [240是照片宽度,320是照片高度,6是每秒连续现在六张的意思,也就是帧数,可以根据自己加入连续动画的速度调整大小]p 1 0 part0 [part0文件夹中的画面全部显示一遍,不懂的就不要修改了] p 0 0 part1 [part1中的画面显示一遍并停留在这张画面]添加的图片的要求:240X320,png格式,文件不要太大,图像的编辑可以用‘可牛’,照片大小的压缩可以用‘JPEGImager’全部添加好以后就要压缩成zip格式的包了,选中part0、part1、desc.txt这三个文件,右键选择‘添加到压缩文件’做好压缩包以后,删除原有的‘bootanimation.zip’,添加你刚刚制作的新‘bootanimation.zip’’8.取得永久root权限(未测试,测试完的同学回个帖)9.更版本信息,在rom里签上你自己的名字让你的手机信息里显示你自己的版本,让你的ROM独一无二这是我的版本信息,秀一秀修改方法在此,嘿嘿导出system\build.prop,以记事本的方式打开在图中方框位置添加进你的信息就好了我的修改好是这样的,参照着改就好了,修改完替换掉原有的build.prop就好了慢慢做吧,你专属的ROM制作是那么的简单,嘿嘿10.通知栏,电池,信号,系统图标,关机画面,默认壁纸修改修改这些主要是修改system\ framework 里的‘framework-res.apk’系统框架文件如果新的图标和想要替换掉的分辨率不一样,替换以后显示可能会有点问题,最好分辨率调成一样以后再替换图片编辑可以用PS,也可以用可牛影像,我不会用PS,用的可牛影像10.1关机画面以压缩文件模式打开‘framework-res.apk’,解压出assets文件夹,把assets\images\N600_Shutdown替换成你想要的开机画面就可以了,文件必须是png格式,分辨率为240 x 320,文件名必须为N600_Shutdown,改好之后删掉framework-res.apk中原有的assets文件夹,把修改好的文件夹添加进去就好了10.2默认桌面的修改方法和修改关机画面一样,只要把res\drawable\default_wallpaper替换掉就可以了,格式为JPEG,分辨率为480 x 320,10.3解锁画面的修改在\res\drawable-ldpi里,替换掉里面的图片就好了,也可以替换时间的字体10.4电池,信号,系统图标的修改电池,信号,系统图标的修改同样是直接替换,N600+调用的系统图标都在res\drawable-mdpi目录下,可以用其他手机的framework-res.apk下的图标直接替换掉,我用的是网上下载的,顺便传上来framework-res.rar (3.6 MB)如果把所有图标替换掉也是这个效果,通知栏可以透明,就是显示不是很好有的手机调用图标是res\drawable-hdpi里面的图标,注意区分顺便把魅族M9的framework-res.apk也传上来吧,可以借鉴里面的图标下载地址:/file/f525058b67再给出几张不同颜色的透明图片以供选用,可以放大图片,然后截取你想要的部分透明背景.rar (228.85 KB)10.5设置菜单的修改修改system\app\settings\res里对应的图标就好了,大家可以参考夜游神的美化刷机包进行修改借鉴/thread-156248-1-1.html10.6软件图标和背景的修改还是修改软件里res目录里的图片,套路都是一样的,保持图片的格式分辨率一致就好了,修改完别忘了签名美化教程:安卓APK软件美化图标全图文教程给出一个实例,QQ的美化教程,其他软件的美化都差不多,大家参照着改就好了/bbs/thread-1032572-1-1.html11.保存DIY好的刷机包点选上面的整理另存在弹出的对话框直接点确定就好了以文件名‘system.img’保存在桌面或者其他地方,然后拖到files文件夹中替换原来的system.img文件就好了卡刷包的制作方法有时间再更新接下来你就可以享用自己DIY的rom了第一次在这么权威的论坛发帖,有什么不足请大家多多指教,祝你DIY的开心!!!!最后友情提醒:别忘了顶贴附上我自己制作的精简刷机包[全部没有root,想要root看一下教程]:5.2更新的版本:最精简最稳定的2.2ROM\系统仅占25.14M\系统图标美化\透明电量控制[线刷]/thread-146503-1-1.html以下为4.16版本:NO.1 sdl1836_2.2_华康少女[77.78MB]:/file/f5c483aecfNO.2 sdl1836_2.2_萝莉体[77.72MB]:/file/f58cb22f9fNO.3 sdl1836_2.2_自带字体[73.45MB]:/file/f56880e859下载 (14.73 KB) 2011-4-16 19:13。

photoshop cs2经典教程

photoshop cs2经典教程

实例制作 火焰字的制作
操作步骤: 1、新建一个700*450像素,背景为白色的图像文件; 2、填充背景为黑色; 3、选择文字工具中的“横排文字蒙板工具”,输入“FIRE”,调出字符面板, 调整文字的大小与字体等 4、用油漆桶工具为文字填充为白色,取消选择; 5、选择工具箱中的涂抹工具,在画笔里面选择一中带纹理的画笔(32); 6、执行“编辑”->“首选项”->“显示与光标”->选中“尺寸画笔笔尖”; 7、利用涂抹工具一笔一笔涂抹出火焰的效果; 8、为火焰添加颜色,点击图层面板下的“创建新的事填充或调整图层”按钮, 选择“色彩平衡”,调整色阶为:85 0 -28,选择高光->确定; 9、再制作一个文字层,选择文字工具中的横排文字工具,输入“FIRE”,调 整位置,与背景文字重合,图层混合模式调整为叠加; 10、对背景层添加滤镜,选择“滤镜”->“模糊”->“高斯模糊”,半径为3.2 11、复制背景层,在副本上点击图层面板下的“创建新的事填充或调整图 层”->色彩平衡->色阶:89 22 -62; 12、选择“FIRE”文字图层,调整不透明度为65%.
实例制作
光辉字的制作
操作步骤: 1、新建一个340*100像素RGB模式的文件,前景色为 白色; 2、点击文字工具,输入黑色文字“暑期培训”; 3、右键点击字体图层进行删格化,然后合并图层; 4、执行滤镜-&
1、设置文本的旋转和变形的方法; 2、介绍更改文本排列方式的操作方法; 3、将文本转换为选取范围的具体方法; 4、将文本转换为路径和形状的全体方法; 5、设置文本拼写检查的方法; 6、使用文本查找与替换的操作方法;
第一讲 工具箱
1、选框工具 7、画笔和铅笔工具
2、套索工具

转载ramdisk.img system.img userdata.img介绍及解包、打包方法

转载ramdisk.img system.img userdata.img介绍及解包、打包方法

ramdisk.img system.img userdata.img介绍及解包、打包方法2011-11-25 11:37:24分类:ramdisk.img system.img userdata.img介绍及解包、打包方法Android 源码编译后,在out/target/product/generic下生成的三个镜像文件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data。

ramdisk.img是根文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,android加载这3个映像文件后,会把system和userdata分别加载到ramdisk文件系统中的system和data目录下。

三个镜像文件及其三个目录树之间的生成关系是我们进行ROM制作的基础,下面将做详细介绍。

Ramdisk镜像是采用cpio打包,gzip压缩的。

用file验证:# file ramdisk.img输出: # ramdisk.img: gzip compressed data, from Unix为了便于说明问题,我们将ramdisk.img拷贝到其它一个目录,然后按以下步骤将ramdisk.img还原为目录树:# mv ramdisk.img ramdisk.img.gz# gunzip ramdisk.img.gz# mkdir ramdisk#cd ramdisk#mkdir temp#cd temp# cpio –i –F ../ramdisk.img这样,就得到一个完整的ramdisk目录,与out/target/product/generic/root对比后,我们发现它们是一样的内容。

通过执行以下的操作,我们可由目录树再生成ramdisk镜像# cd temp# find . | cpio -o -H newc | gzip > ../ramdisk-new.img 这两个镜像都属于yaffs2文件格式,生成方式是一样的。

flashas2简易教程第1篇

flashas2简易教程第1篇

flashas2简易教程第1篇上一篇教程出来以后,很多网友留言,问我为什么不直接讲as3,而是很过时的唠叨as2,这里首先澄清一下,as3 是一个好东西,本博客并非要视as3为无物,在一个3.0的时代推崇2.0,而是2.0简易教程这个系列,将主要以2.0 为主。

关于3.0的应用,我们也会在其它的一些系列或者相关的文章中提到。

至于本教程面对的对象,其实我在第0篇的唠叨里已经说得很清楚了,就是针对那些已经使用过Flash很多年,对fl ash产生了深厚的感情,甚至就是吃flash这碗饭的同志们,随着flash越来越向技术平台转型,很多人可能觉得跟不上,觉得掉队了,甚至对自己flash的能力产生了怀疑,所以,这系列其实就是想说,flash as并没有那么难,障碍在自己的心里。

只要你愿意去做,你会发现你完全跟得上flash大潮的发展。

所以,简单点说,这个教程不是面对程序员的,恰恰就是面对设计师和动画师的。

这个回答可能很多人不喜欢,并且要问我,为何在一个程序员云集的博客发给设计师的东西。

我要说首先互联网是开放的,其次,像博客园这样执著于专业领域的网站实在不多。

好的,废话结束,下面开始讲课。

用过flash的人都知道,flash中,有一个很重要的概念:影片剪辑(一般,我们简称为mc),它几乎是flash一切动画的基础。

Flash 这东西,一言以蔽之,就是如何让很多影片剪辑在界面里按你想象的运动起来。

滑动、变大、变小、旋转、显示、消失……就是这些最基础的运动,构成了flash,甚至是说任何图形界面的软件的最基本的交互和展现形式。

在关键祯时代,我们用关键祯来进行这些最基本的事情,在as时代,我们用as来做,如此而已。

在早期的flash版本里边,我们都知道,按钮司交互,影片剪辑管运动,所以,以前大家做一个flash,思路很简单,我需要一个东西有交互行为,说白了就是我点点点,他动动动,就直接做个按钮,放到库里,再拖到场景里用;我需要一个东西动起来,直接建一个影片建立,放到场景里,再拖到场景里用。

战地2单机载具DIY制作教程

战地2单机载具DIY制作教程

战地2单机载具DIY制作教程战地系列游戏中最经典的就是战地2,不但联机、单机玩,与其它3D类游戏最大区别是能DIY,如模组制作,枪支、载具的改装和数据修改,枪支、载具以及人物角色模型修改和制作,地图的修改和制作。

模型制作修改软件有3ds max(max9以下版本)或MAYA,贴图制作软件Photoshop + dds插件,地图及载具制作修改工具BF2 Editor,模型查看器BfMeshView,BF2导入导出工具。

本教程分初级篇和进阶篇两个内容进行图文讲解。

初级篇:本篇以“小鸟”直升飞机、3ds max编辑和导入导出模型为例,由于制作模型及贴图需要大量精力、时间制作,制作模型不作讲解。

以导入模型和导出型模型结构、BF2 Editor简单修改数据以及模型的重要文件基本讲解。

在制作载具前,首先要认识载具模型编辑中材质编辑器必须的贴图名称、和载具编辑结构、名称的作用:1、ColormapGloss :用于载具表面的贴图2、AnimatedUVAlpha_TestColormapGloss :动画贴图,用于坦克类履带转动时的贴图。

3、AnimatedUVColormapGloss:动画贴图,用于坦克最下面的轮转动时的贴图4、EnvMapColormapGloss :用于载具表面有反光类拟镜面的油光贴图。

5、Cockpit 驾驶舱(第一人视觉贴图)6、AlphaEnvMap 透明有少许反光,用于玻璃类贴图。

7、Alpha 透明用于玻璃类贴图。

以上七个贴图名称一定要记住,不同的名称有不同的贴图效果。

尤其是履带类的贴图,名称错了是不能导出模型的。

以下dds格式贴图后缀名几个名称也一定要记住:名称:XXXX_C.dds 例如:US_littlebird_c.dds 是用于表面贴图名称:XXXX_b.dds 例如:US_littlebird_b.dds 是用于表面凹凸贴图名称:XXXX_wreck.dds 例如:US_littlebird_wreck.dds 在贴图模型中起加亮加黑作用,一般用于破坏模型图例:接下来介绍载具结构和名称:root_bundledmesh_xxxx: 整体模型辅助点对象geom0: 第一人视图模型辅助对象geom1: 第三人视图模型辅助对象geom2: 破坏模型辅助对象lod0: 最近距离的视图模型辅助对象(lod0下面的模型为最精网格模型)lod1: 中近距离的视图模型辅助对象(lod1下面的模型为60%—80%网格模型)lod2: 中远距离的视图模型辅助对象(lod2下面的模型为30%—40%网格模型)lod3: 最远距离的视图模型辅助对象(lod3下面的模型为10%—20%网格模型)nonvis_: 碰撞模型辅助对象col0: 子弹贴花碰撞模型(原模型或90%网格模型)col1: 地面碰撞模型(尽量简单的模型)col2: 士兵碰撞模型(尽量简单的模型)col3: AI碰撞模型(房屋掩体类固定物体必需的,载具和固定武器不需要col3)模型名称__PlayerControlObject (PlayerControlObject翻译为播放器控制对象,理解为载具中士兵所在控制的位置)模型名称__GenericFireArm (武器模型)模型名称__RotationalBundle (可旋转的模型)模型名称__Engine (发动机模型)模型名称__Spring (弹簧、转动轮子模型)模型名称__Wing (飞机翼模型)模型名称__Bundle (翻译为捆或束,理解为物体中的子物体,一般用于载具中的多管武器)模型名称__GenericProjectile (枪支和炸弹、导弹类模型)模型名称__Rotor (翻译为旋翼,一般用于直升机的螺旋橖)以上的各类名称要记住,在3ds max编辑中对应各种载具都要应用的,跟着讲解载具的导入(有能力自己建模的可跳开这一步),模型编辑前要建立textures文件夹,路径即:\bf2\mods\bf2\Objects\Vehicles\Air\US_littlebird\textures, textures文件夹是载具贴图放置的文件夹。

Cubase SX 2基础教程

Cubase SX 2基础教程

Cubase SX 2基础教程MIDI制作部分CubaseSX2简单入门(MIDI篇)在发这个帖子的同时,我首先声明,对于CubaseSX来说,我本人就是大菜鸟一个。

我一直使用Cakewalk和Sonar制作音乐,从Cakewalk4.0起步一直使用到今天的Sonar3,CubaseSX从1.0版到今天的2.0,在使用Cakewalk和Sonar的同时,逐步学习CubaseSX的优点,始终把两个软件的功能在做比较。

不断地学习CubaseSX 的长处,为了大家能够不断地学习和使用CubaseSX,我只把自己所知道的写出来供大家参考,再次声明,我的知识也不是凭空就有的,也是在互联网这个知识的海洋里不断地跟各位大师和高手学习来的,今天的这个简单教程,我只不过是用我自己的语言从新组织了一下,便于大家接受而已,在你看我这个教程的同时,别把我当成什么高手,真正的高手就在互联网上,当你学会了一点知识后,一定要首先感谢那些为了传播知识不辞辛劳的默默奉献着们。

当你学会了一些操作以后,别忘了再教给那些新的朋友,知识是需要传播的,把从老师那里学来的知识传给更多的需要者,这才是对老师的最好的报答。

希望这个教程能够为大家起到一点帮助作用。

1.首先启动CubaseSX点文件(左起第一个菜单)选新建项目(Ctrl+N),出现对话框,选第一项,然后确定。

图一2.然后又出现一个《设置项目目录》的对话框,目的是问你将来用CubaseSX所生成的音频文件存放在什么地方,你可以选磁盘的某个分区、目录,也可以自己重建一个专门为CubaseSX存放音频文件的目录。

选择或者创建好后,点确定。

图二3.点“项目”菜单(左起第三个),选填加音轨,至于你想填加MIDI轨还是音频轨一看就明白了,我还是顺着MIDI的路子往下说。

选择MIDI,然后在界面上便出现了一条MIDI音轨。

图3设置MIDI在这里我要说一下,我用的输入键盘是一个合成器,如果你没有MIDI键盘的话,能不能使用软键盘(象Cakewalk 和Sonar的虚拟键盘)我可不知道,我只以真实的键盘作为MIDI输入,现在来看MIDI轨道左边的输入,点IN 条右边的小三角选择你的输入设备,如我所用的是YAMAHA的就选择YAMAHA的YAMAHA Driver,然后再在下边的栏目里选择MIDI输出,方法跟选择输入一样。

yaffs2文件系统工具mkyaffs2image

yaffs2文件系统工具mkyaffs2image

yaffs2⽂件系统⼯具mkyaffs2imageyaffs2⽂件系统是针对nandflash的⽂件系统,其制作⼯具为mkyaffs2image。

⼀、差异不同nand容量,⼯具不⼀样。

⾸先使⽤的是mkyaffs2image,编译⽣成根⽂件系统的镜像之后,下载到板⼦上,启动的时候报错,错误代码这⾥没有上传。

问题出在⼯具使⽤的不正确,查看⼯具⽬录下,发现有mkyaffs2image-128M⼯具,于是在⽹上查阅了⾸先采⽤的mkyaffs2image和mkyaffs2image-128M的区别,发现这对不同的板载nand flash容量,使⽤不同的⼯具制作根⽂件系统。

查看了⾃⼰使⽤的友善之臂板⼦上使⽤的nand flash是256M的,于是果断使⽤mkyaffs2image-128M⼯具制作根⽂件系统。

因为mkyaffs2image-128M针对128M或者更⼤的容量。

⼆、编译If you want to use GIT directly from the command line then public read-only access is available, using the (bash) command:git clone git:///yaffs2mkyaffs2image是在yaffs⽂件系统的utils⽬录下,只把其中的chunkSize spareSize 与 pagesPerBlock⼏个变量,按照nand_flash中的改⼀下就可以⽤。

// Adjust these to match your NAND LAYOUT://#define chunkSize 8192//#define spareSize 232#define chunkSize 4096//#define spareSize 218#define spareSize 128#define pagesPerBlock 128三、使⽤1、验证是否成功可直接在终端下输⼊:mkyaffs2imagemkyaffs2image: image building tool for YAFFS2 built Jul 92009usage: mkyaffs2image dir image_file [convert]dir the directory tree to be convertedimage_file the output file to hold the image'convert' produce a big-endian image from a little-endian machine注意核对convert的⼤⼩端。

yaffs2分析(原)

yaffs2分析(原)

yaffs2分析(原)文件系统的重要作用就是对文件或者文件夹的数据进行相应的管理,无论是文件数据还是文件夹里面的内容数据在文件系统看来就是一个个元数据(metadata)。

文件系统就是实现这些元数据的相应管理。

由于yaffs2 是一个相对比较简单的文件系统,下面通过yaffs的启动过程看看yaffs文件元数据的组织。

由于Yaffs是基于nand flash 的,由于nand所特有的一些特性,所以yaffs就有了一些自身文件系统所特有的一些特性。

如文件的结构信息是保存在spare 里面的,无论是文件夹数据还是文件数据,都是保存到spare数据的。

typedef struct {unsigned sequenceNumber;unsigned objectId;unsigned chunkId;unsigned byteCount;} yaffs_PackedTags2TagsPart;保存在spare 里面的yaffs2结构如上。

在yaffs启动时候,如果checkpoint没有响应的保存掉电时的结构的话,就需要进行一下全盘的扫描,其中的扫描主要是在yaffs_scan里面完成的,文件系统结构的创建就是主要在这个scan的过程中实现的。

static int yaffs_Scan(yaffs_Device *dev){1 首先就是要对全盘的block 块进行相应的扫描,主要就是扫描出坏的块/* Scan all the blocks to determine their state */bi = dev->blockInfo;for (blk = dev->internalStartBlock; blk <= dev->internalEndBlock; blk++) {}2 对于坏的块进行相应的标记玩之后,就是逐个对block 里面每一个page进行扫描,并建立相应的结构/* For each chunk in each block that needs scanning....*/for (c = 0; !alloc_failed && c < dev->param.nChunksPerBlock &&state == YAFFS_BLOCK_STATE_NEEDS_SCANNING; c++) {if (!tags.chunkUsed) {如果是一个未被使用的page的话由系统进行回收。

NUC97XLinuxyaffs2根文件系统制作

NUC97XLinuxyaffs2根文件系统制作

NUC97XLinuxyaffs2根文件系统制作NUC97X Linux yaffs2 根文件系统制作ARM kernrl文件系统中只有一个根文件系统,根文件系统被加载后,还可以再挂载其它文件系统,互不影响。

比如可以在Nandflash,SPI, EMMC,SD,U盘等每个存储模块上挂载不同的文件系统。

每个存储部件又可以具体分为许多块,就像电脑里分成许多盘。

不同部件甚至不同的块也可以有不同的文件系统。

挂载根文件系统后,如果要继续在其它存储部件或不同的块上挂载其它文件系统,可以使用mount命令来实现。

不同的块要被文件系统识别,可以要么在kernel环境下,使用命令把它变成所需要的某种文件格式的块。

也可以使用工具把你要烧录的文件夹,其中可以为空文件做成文件系统可识别的镜像烧到存储区域。

Kernel中默认就有根文件系统,但该文件系统操作的区域为RAM 中,如创建或修改文件,掉电或复位后文件和数据即丢失。

因此要制作能挂载在flash等存储部件的根文件系统,指定具体存储部件和存储位置,以便在ARM平台上运行的kernel能识别系统文件,同事能够保存和同步文件和数据。

制作根文件系统是制作ARM平台的文件系统,而不是制作PC端linux平台的根文件系统。

根文件系统制作过程,参考:Linux BSP\nuc970bsp-release-20161108\Documents\ChineseNUC970 Linux 快速入门.pdf 3.8章节,5.3.1 基本系統設置章节,5.3.4 文件系統設置章节。

開機命令設置–以RAM為根文件系統的設定開機命令設置–以SPI Flash JFFS2文件系統為根文件系統的設定開機命令設置–以NAND Flash YAFFS2文件系統為根文件系統的設定開機命令設置–以NAND Flash UBIFS文件系統為根文件系統的設定開機命令設置–以NFS文件系統為根文件系統的設定開機命令設置–以NAND Flash YAFFS2文件系統為根文件系統的設定介绍一.1.NAND flash的设置使能MTD 的“Caching block device access to MTD devices Device drivers”驅動中的基本設置如果需要由U-boot環境變數傳入就必須將”Command line partition table parsing”選上, 否則會使用驅動程式裡的默認配置, 这里要把该项禁止。

bin包制作

bin包制作

【教程】想解开官方bin,从官方Bin文件中提取system文件的进来吧!/read.php?tid-11280.html2. U880Bintool下载地址【by myls】万众期待之【ZTE U880 Bin Tool】开始公测/read.php?tid-14255.html在此要特地感谢liushen大大提供这么好的工具~机友的福星啊!!!大家应该都知道定制个性化zip rom包主要是通过修改system文件夹下的apk或者是添加apk文件来达到的。

但是此处是定制个性化bin包,所以主要是修改system.img文件来定制。

最后将修改好的文件合并为一个bin包就大功告成~system.img/data.img文件可以通过如下方法得到:a. 将中意的ROM刷进手机,使用recovery备份出system.img、data.imgb. 将中意的ROM解压后把system/data打包成system.img、data.img下面就着重介绍第二种方法三、制作步骤:1. 用U880Bintool解开官方的bin包,得到如下5个文件2. 定制system.img打开yaffs2img软件,点击左上角的“选取yaffs2 IMG”按钮,浏览并选择system.img文件,等待软件解开,解开后如下图:Ok,接下来的工作就主要是在这个软件中进行了,继续往下面看制作rom的时候,我们主要是进行精简、添加、修改和替换apk,对于system.img文件,我们也可以通过yaffs2img来完成这一系列动作2.1. 精简打开app文件夹,里面存放了很多apk文件,我们在需要精简的apk文件上右击,选择删除2.2. 添加如上图所示,选择添加菜单后,弹出如下窗口浏览选择你要添加的apk文件并打开.此处需要注意以下2点:2.2.1. 不要添加带有中文的apk文件,如果有,请修改名字!!2.2.2. 添加的apk文件用解压软件打开,如果有lib文件夹,请注意提取*.apk\lib\ armeabi\文件夹下面所有的*.so文件放入\system\lib下面,否则集成的软件不可用!!添加好的onekeylock.apk需要修改权限,此处的权限请修改为644,如下图所示:输入644,点击ok即可。

JZ2440开发板使用手册

JZ2440开发板使用手册

百问网·精智JZ2440使用手册提示:除了QT外,可以不看本手册,参考《嵌入式Linux应用开发完全手册》及视频即可第1章嵌入式Linux开发环境构建 (4)1.1 安装Ubuntu 9.10 (4)1.1.1 安装VMware (4)1.1.2 安装Ubuntu 9.10 (13)1.2 安装Ubuntu下的开发工具 (20)1.3 安装Windows下的开发工具 (22)第2章精智JZ2440开发板烧写程序方法 (23)2.1 使用JTAG工具烧写开发板 (23)2.1.1 Windows下并口JTAG驱动安装 (23)2.1.2 Windows下OpenJTAG驱动安装 (29)2.1.3 Ubuntu下驱动程序的安装 (29)2.1.4 JTAG烧写软件oflash的用法 (29)2.2 通过u-boot烧写整个系统 (29)2.2.1 在Windows下使用dnw和u-boot烧写系统 (30)2.2.2 在Linux下使用dnw和u-boot烧写系统 (31)第3章板上Linux系统搭建 (33)3.1 修改、编译、使用u-boot (33)3.1.1 使用补丁修改、编译u-boot (33)3.1.2 u-boot使用方法 (33)3.2 修改、编译、使用Linux内核 (36)3.2.1 使用补丁修改、编译内核 (36)3.2.2 使用uImage (36)3.3 修改、编译QT (36)3.3.1 编译依赖的软件 (36)3.3.2 使用补丁修改、编译QT (39)3.4 构造根文件系统 (39)3.4.1 基于最小根文件系统制作QT文件系统 (39)3.4.2 制作YAFFS2、JFFS2文件系统映象文件 (42)第1章 嵌入式Linux开发环境构建1.1 安装Ubuntu 9.10注意:如果使用光盘上已经制作好的虚拟机,那么1.1或1.2的内容可以忽略。

《嵌入式Linux应用开发完全手册》里使用的主机开发环境是Ubuntu 7.10,现在最新的Ubuntu版本是9.10。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Yaffs2根文件系统制作环境:交叉编译环境:4.3.3 (天嵌科技提供,存放路径/opt/EmbedSky/4.3.3)开发平台:TQ24401,编译busybox获取busybox源码busybox-1.17.2.tar (/downloads/)置于目录/opt/embed下#tar jxvf busybox-1.17.2.tar.bz2#cd busybox-1.17.2#vim Makefile将164行改为CROSS_COMPILE = arm-linux- 将190行改为ARCH = arm 保存推出进入配置菜单#make menuconfig 采用默认配置保存推出#make#make install在busybox-1.17.2的根目录下出现了一个_install目录在该目录下又有三个目录文件bin sbin usr 和一个链接文件 linuxrc 。

2,创建根文件系统必要的目录回到/opt/embed目录下创建根文件系统必要的目录#mkdir root_fs#cd root_fs将刚才生成的三个目录bin sbin usr和一个链接文件linuxrc考到目录root_fs下#cp -rf ../busybox-1.17.2/_install/* ./#mkdir dev etc home lib mnt opt proc root sys tmp var创建几个必要的二级目录#mkdir usr/lib usr/share#mkdir etc/rc.d#mkdir var/lib var/lock var/run var/tmp3,创建必要文件(1), 获取库文件 (我的交叉编译工具链放在目录 /opt/EmbedSky/下的)#cp -rf /opt/EmbedSky/4.3.3/arm-none-linux-gn?i/libc/armv4t/lib/* so* lib -a(2),将主机 etc 目录下的passwd、group、shadow文件拷贝到 root_fs/etc 目录下#cp -f /etc/passwd /etc/group /etc/shadow etc将目录/opt/embed/busybox-1.17.2/examples/bootfloppy/etc下的所有文件拷贝到root_fs/etc下。

在这个目录下有三个文件fstab, inittab, profile和一个目录init.d,在目录init.d中有一个文件rcS。

#cp -rf ../busybox-1.17.2/examples/bootfloppy/etc/* etc在目录etc下创建文件mdev.conf。

mdev是?v的一个简化版本,我们可以通过文件mdev.conf自定义一些设备节点的名称或链接来满足特定的需要,但在此处让它为空。

#touch etc/mdev.conf(3)创建两个设备文件dev/console dev/null。

在linux内核源码文件init/main.c中有打开设备文件dev/console 的操作如下:static noinline int init_post(void)__releases(kernel_lock){………………………………if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0 )printk(KERN_WARNING "Warning: unable to open an initial console.\ n");………………………………}内核启动执行到这里时mdev还没有构建dev目录,如果没有创建设备文件dev/console就将会打印警告Warning: unable to open an initial console。

在内核启动的过程中要将产生的一些垃圾信息丢弃就需要空设备dev/null。

#mknod dev/console c 5 1#mknod dev/null c 1 34,几个必要文件的修改在启动过程中bootloader会传递参数init=/linuxrc给内核的main( )函数,所以在文件系统被挂在后,运行的第一个程序是linuxrc,而linuxrc是一个指向/bin/busybox的链接文件,也就是说文件系统被挂在后运行的第一个程序是busybox。

Busybox首先会解析文件/etc/inittab,这个文件中存放的是系统的配置信息,这些配置信息指明了接下来将要启动那些程序。

(1),修改文件etc/inittab如下::sysinit:/etc/init.d/rcStq2440_serial0::askfirst:-/bin/sh::ctrlaltdel:/sbin/reboot::shutdown:/bin/umount -a -r/etc/inittab 文件中每个条目用来定义一个子进程,并确定它的启动方法,格式如下<id>:<runlevels>:<action>:<process><id>:表示这个进程要使用的控制台(即标准输入、标准输出、标准错误设备)。

如果省略,则使用与init进程一样的控制台。

<runlevels>:对于Busybox init程序,这个字段滑意义,可以省略。

<action>:表示init程序如何控制这个子进程,<process>: 要执行的程序,它可以是可执行程序,也可以是脚本文件etc/inittab配置条目说明如下:::sysinit:/etc/init.d/rcS启动系统初始化文件/etc/init.d/rcS。

字段sysinit表明文件/etc/init.d/rcS在系统启动后最先执行,并且只执行一次,init进程等待它结束才继续执行其它动作。

(脚本文件名一般为rc,后缀S代表单用户运行级别脚本)tq2440_serial0::askfirst:-/bin/sh在串口tq2440_serial0上启动askfirst动作的shell。

S3C2410的串口名在/dev下是s3c2410_serialx。

此时还没有移植自己的内核,用天嵌科技的内核所以串口名为tq2440_serial0。

askfirst表明init进程先输出“Please press Enter to actvie this console”,等用户输入回车键之后才启动-/bin/sh。

::ctrlaltdel:/sbin/reboot当按下Ctrl+Alt+Delete组合键时,init重启执行程序。

字段ctrlaltdel表明当按下Ctrl+Alt+Delete组合键时,执行相应的进程。

::shutdown:/bin/umount -a -r告诉init在关机时运行umount命令卸载所有的文件系统,如果卸载失败,试图以只读方式重新挂载。

字段shutdown表明在重启关闭系统命令时执行相应进程。

(2),当解析完文件etc/inittab后就将启动这些进程,首先要执行的是启动脚本etc/init.d/rcS。

修改文件etc/init.d/rcS如下:#! /bin/shPATH=/sbin:/bin:/usr/sbin:/usr/binrunlevel=Sprevlevel=Numask 022export PATH runlevel prevlevel/bin/hostname cyembedecho "----------mount all----------"/bin/mount -aecho /sbin/mdev>/proc/sys/kernel/hotplugmdev -secho "**************************************"echo "**************************************"echo "Kernel version:linux-2.6.30.4"echo "Date:2010.09.16"echo "**************************************"说明如下:#! /bin/sh 用busybox的shellPATH=/sbin:/bin:/usr/sbin:/usr/bin //shell命令的搜索路径runlevel=S //运行在单用户模式prevlevel=N //前一个级别为n表示没有前一个级别umask 022 //权限位掩码export PATH runlevel prevlevel //将设置的变量导出到环境中/bin/hostname cyembed //主机名,cyembed将出现在shell提示符中[root@cyembed/]#/bin/mount -a //将文件etc/fstab中指明的文件系统挂载到对应挂载点上echo /sbin/mdev>/proc/sys/kernel/hotplug //用mdev来处理内核的热插拔事件。

当有热插拔事件产生时,内核就会调用位于/sbin目录的 mdev。

这时 mdev通过环境变量中的 ACTION 和 DEVPATH,(这两个变量是系统自带的)来确定此次热插拔事件的动作以及影响了/sys 中的那个目录。

接着会看看这个目录中是否有“dev”的属性文件,如果有就利用这些信息为这个设备在/dev 下创建设备节点文件。

mdev -s //建立dev目录。

以‘-s’为参数调用位于/sbin 目录写的 mdev (其实是个链接,作用是传递参数给/bin目录下的busybox 程序并调用它),mdev扫描 /sys/class 和/sys /block中所有的类设备目录,如果在目录中含有名为“dev”的文件,且文件中包含的是设备号,则 mdev 就利用这些信息为这个设备在/dev下创建设备节点文件。

一般只在启动时才执行一次“mdev -s”。

(3),修改文件etc/fstab如下:#device mount-point type option dump fsck ord erproc /proc proc defaults 0 0none /tmp ramfs defaults 0 0sysfs /sys sysfs defaults 0 0mdev /dev ramfs defaults 0 0在系统启动初始化文件/etc/init.d/rcS中有执行挂载命令/bin/mount -a ,这便是将文件etc/fstab中指定的文件系统挂载到对应的挂载点上。

相关文档
最新文档