日历

« 2008-05-17  
    123
45678910
11121314151617
18192021222324
25262728293031

最新评论

统计信息

  • 访问量: 1654
  • 日志数: 21
  • 建立时间: 2007-08-23
  • 更新时间: 2008-03-11

RSS订阅

我的最新日志

  • Linux2.6.18SD卡驱动的修正

    2008-3-11

    platform: s3c2440 + linux 2.6.18

      在linux2.6.18 中,sd卡的驱动有不少的bug.例如,没有写保护的功能.

      在驱动的模块中预留了写保护的函数,但是没有实现,代码也只有几行,只要加上去编译一下就OK了.

    static struct mmc_host_ops s3c2410sdi_ops = {
    .request = s3c2410sdi_request,
    .set_ios = s3c2410sdi_set_ios,
    .get_ro = s3c2440_get_ro, //sd card ReadOnly Flag.
    
    };

      实现函数如下:

    static int s3c2440_get_ro(struct mmc_host *mmc)
    {
    struct s3c2410sdi_host *host = mmc_priv(mmc);
    
    unsigned long flags;
    int present;
    
    spin_lock_irqsave(&host->complete_lock, flags);
    
    present = read_gpio_bit(S3C2410_GPB0); 
    present &= 0x01;
    spin_unlock_irqrestore(&host->complete_lock, flags);
    
    return present;
    }
    nr0-011  000-150  000-180  000-399  000-710  000-732  1z0-222 
      还有一些就是热插拔的和中断检测口,只要设置一下就可以用了.

      比较麻烦的是对SD卡写操作,只要写稍微大点的文件到SD卡就会出错,打印出如下信息:

    [IRQ] csta=00000a19 dsta=00000002 fsta=00002200 dcnt=00008000
    
    [IRQ] csta=00000a19 dsta=00000002 fsta=00002200 dcnt=00007000
    
    [IRQ] csta=00000a19 dsta=00000002 fsta=00002200 dcnt=00007000
    
    [IRQ] csta=00000a19 dsta=00000002 fsta=00002200 dcnt=00007000
     922-100  mb2-421  MB3-214  HP0-634  HP0-662  jn0-120
      对比正常传送打印出来的信息,很明显程序是在这里挂掉了.

      后来跟踪代码发现,当写一个 4096(512*8)的数据时,只写了第一个512byte就不往下写了,所以dcnt一直为 7000,出现这个现象的原因是因为程序对 host->pio_words 这个变量赋的值为128,通过 host->pio_words-- 递减到0时就不进入

      while(sdi_fsta & S3C2410_SDIFSTA_TFDET && host->pio_words)这个循环了,

      所以 host->pio_words=sdi_bsize>>2; 这一行应改为

      host->pio_words = mrq->data->blocks * (sdi_bsize>>2);

      这样对SD卡的写操作就解决了.但写的速度不是很快.

      还有一个问题,比如 cp 一个文件到SD卡上,是不是首先先将这个文件写到SDRAM上,然后umount的时候再将SDRAM中的内容真正写SD卡上??我umount的时候会过多一会才出现终端的提示符,根据写入文件的大小确定 umount的时间?

      后来查了一下资料,Linux文件系统更新是一个复杂的过程,当用户程序对文件系统进行修改以后,例如进行了写操作,文件数据把修改记录在内核缓冲中,在数据没有写到磁盘的时候,依然能够执行用户进程,所有数据的改变都在inode的内容中得到反映。磁盘的数据更新实际上是异步进行的,很有可能在写操作已经完成很长时间以后才真正对磁盘的数据进行更新。sync命令强制把磁盘缓冲的所有数据写入磁盘,如果在没有把磁盘缓冲区的信息写入磁盘之前终止系统,则磁盘的文件系统就会处在一个不稳定的状态。而在正常模式下即使没有对分区进行umount的操作,在重启之前系统会调用sync命令强制把磁盘缓冲的所有数据写入磁盘,而在急救模式下必须对所挂的分区进行umount的操作,系统才会调用sync命令强制把磁盘缓冲的所有数据写入磁盘,请在急救模式下的朋友注意这个问题。其实“reboot -n(Don’t sync before reboot or halt)”在重启之前不用sync命令强制把磁盘缓冲的所有数据写入磁盘,就很能说明问题。

      所以要 cp 完之后要执行 sync 命令将缓冲区的内容写到磁盘中,然后再umount 就不会出现延时了

  • LIUNX驱动中内核模块与编译模块不匹配解决方案

    2008-1-07

    在写LINUX驱动中会出现内核模块和编译模块不匹配的问题 例如在REDHAT9.0 中有内核版本2.4.20-8

    其实还是2.4.20的内核,后面的-8表示需要的补丁包号。如果不加载补丁,在编译驱动程序时,内核仍然会用2.4.20 去编译。也能够正常编译。但在加载驱动模块时,就不能正常加载。对于这种情况有几种解决方案

    (1)指定编译的头文件  I/usr/src/linux-2.4.20-8/include

    (2)强制性加载  inmod  -f **.o

    对于强制性加载会发出警告,但可以不理会他。

     建议用第一种方案。

    对第一种方案的Makefile 可以这样写。

    CC = gcc

    INCLUDEDIR= /usr/src/linux-2.4.20-8/include

    CFLAGS = -D__KERNEL__ -D__MODULE -I/$(INCLUDEDIR)

    ifdef CONPIG_SMP

    CFLAGS += -D__SMP__ -DSMP

    endif

    EXEC = hello

    OBJC= hello.o

    SRC =hello.c

    all : $(EXEC)

    $(OBJC): $(SRC)

              $(LD) -r $^ -o $@

    clean:

           rm -f *.o *~core

     117-102 117-301 190-721 000-746

  • Linux系统如何显示中文目录和文件名

    2007-12-09

    修改/etc/下的fstab文件,fstab内容如下

    /dev/hda9 / ext2 defaults 1 1
    /dev/hda8 /boot ext2 defaults 1 2
    none /dev/pts devpts gid=5,mode=620 0 0
    none /proc proc defaults 0 0
    none /dev/shm tmpfs defaults 0 0
    /dev/hda10 swap swap defaults 0 0
    /dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
    /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
    /dev/hda1 /mnt/winme vfat defaults,codepage=936,iocharset=cp936 0 0
    /dev/hda5 /mnt/program vfat defaults,codepage=936,iocharset=cp936 0 0
    /dev/hda6 /mnt/backup vfat defaults,codepage=936,iocharset=cp936 0 0
    /dev/hda7 /mnt/files vfat defaults,codepage=936,iocharset=cp936 0 0
    1z0-033 HP0-096


      前面八行是系统本来就有的,不去管他,后面四行四我添加的,我只解释其中一行
      第九行:/dev/hda1 代表系统C盘(D盘以后是从5开始,hda5代表D盘,依次排列)
      vfat 是分区格式,这里表示fat32(fat16用msdos来表示)
      winme是我在/mnt下建立的文件夹,以便把C盘挂载到/mnt/winme下,加参数codepage=936,iocharset=cp936是为了显示中文 HP0-069 。

  • 疯狂英语快速突破的五大阶段!

    2007-11-08

     第一阶段
        “打通”耳朵 完全听清
        四个要领:
        第一,选择1盘(再次强调是1盘而非1套)适合自身英语水平的磁带。
        第二,每天集中精力把A面和B面连续听两遍。
        第三,要坚持天天听,但每隔6天要休息1天。
        第四,直到听清磁带中的所有内容。
        注意:完全听清指的是,当你打开录音机再听那盘磁带时,没等磁带转到那儿,脑海里就已经浮现出后面的内容,而且要具体到句子、单词甚至发音,一项也不能缺。遇到生词,千万别查词典。但千万别那样做,这样做就会前功尽弃,好不容易形成的分类体系,瞬间就可能泡汤。休息那天要完全忘记英语。千万不要跟说话时总冒出几句英语的朋友在一起。选择的英语磁带最重要的是内容不能掺有中文。
        
        第二阶段
        听读并举 掌握语法
        七个要领:
        第一,把已经能完全听清的磁带中的第1盘磁带再找出来。
        第二,听写这盘磁带的内容。
        第三,做听写练习时,一句句地听。即:听完一句后,先按暂停,把刚才听到的写下来,反复听,直到完全听清这句为止。不会的单词根据发音大致拼写出来即可。
        第四,听写完整盘磁带的所有内容后,用英英词典确认不会的单词的拼写是否正确(知道其意当然好,不知道也不要紧)。
        第五,按这种方法听写完整盘磁带的内容后,尽量模仿磁带的发音和语调,从头到尾大声朗读(不满意的部分要再听一遍磁带重新朗读)。
        第六,感觉到所有的句子都已经能琅琅上口以后,便结束这一阶段。
        第七,整个过程中,每个星期要有1天与英语完全隔绝。
        注意:听一遍写一个单词,再听一遍再写一个单词的方法是不可取的。必须首先听完一句话能记住多少就先写多少,然后再注意听一遍没听清楚或只是大致写下来的单词。在这时候也要注意,不能看着已经写下的部分听写,要一直眼望空中或闭上眼睛去听,然后再写下来。此时查词典的目的只是为了确认如何拼写,并不是为了理解词义。相关教材一定要在最后时刻再拿出来翻阅。
        第三阶段
        跃跃欲说 出口成章
        七个要领:
        第一,用英英词典查以前做听写练习时不懂的单词 920-533  000-297  310-301  。
        第二,把单词的解释和例句记下来,若这其中还有不懂的单词的话,继续查词典。
        第三,查词典要坚持查到没有不懂的单词为止。
        第四,大约查1个小时后,暂停查词典,并大声朗读通过查词典整理出的内容。
        第五,朗读约1个小时后结束。
        第六,每周要歇1天。
        第七,查在原文和单词解释中出现的所有不懂的单词,并一直朗读到完全吃透解释和例句为止。
        注意:本阶段重要的是多查词典。刚开始时,也许看英文解释非常陌生,根本看不进去,但随着重复的单词和句子越来越多,总有一天你会突然发觉什么都能理解了。千万不要打开英汉词典,如果这样做的话,你就永远都不能摆脱英语-汉语-英语的恶性机械循环。完成第三阶段,人们将感觉到无需再查词典了。总之,如果通过英英词典掌握词汇,就能自然而然地掌握英语。
        
        第四阶段
        自我领悟 无典自通
        四个要领:
        第一,准备1盘录像带。
        第二,带上耳朵,每天看一遍。
        第三,能够完全听清之后,便开始听写、朗读。
        第四,将不清楚的单词,利用英英词典查找并朗读。
        注意:应该要挑选当代的,对话多的,有文化背景的那种电影,要挑没有字幕的。惊险或暴力电影好看倒是好看,但绝对没什么可学的。
        
        第五阶段
        文化融通 渐入佳境
        六个要领:
        第一,准备1张最近的英文原版报纸(在美国发行的报纸)。
        第二,从社会版面挑选一篇短文章(1-2分钟就能念完的),然后大声朗读。必须坚持到完全消化为止,就好像自己成了新闻主持人一样。
        第三,当确信自己不看原文也可以记住文章内容时,把它像讲一个故事一样绘声绘色地复述下来。
        第四,能够流利地诵读时,再选第二篇文章,重复上面所讲的方法。
        第五,看完一个版面后,就像第三阶段那样处理不认识的单词。
        第六,把报纸上广告,名人访谈,漫画等所有的内容,都按上述方法加以学习。
  • 基础知识:RedHatLinuxAS和ES的区别

    2007-11-02

    概述

    Redhat有两大Linux产品系列,其一是免费的Fedora Core系列主要用于桌面版本,提供了较多新特性的支持。另外一个产品系列是收费的Enterprise系列,这个系列分成:AS/ES/WS等分支,他们都是redhat企业级Linux,简称为 RHEL

    是超级服务器版(Advanced Server),他在标准Linux内核的基础上,做了性能上的增强,并提高了可靠性,集成了众多常见服务器的驱动程序。可轻松识别IBM/DELL/HP等常见机架式服务器的磁盘阵列卡等设备。

    典型的AS应用为:

    1.数据库和数据库应用软件

    2.WEB和中间件

    3.CRM, ERP,SCM

    ES 2B0-021 920-209 md0-235 2B0-019 

    是企业服务器(Enterprise Server),AS的精简版本。他与常见的AS系列的区别是,AS支持到4路以上CPU,而ES只能支持两路CPU。AS和ES在大多数程序包上并无区别,只在内核等少数软件包上有差异。AS和ES的售价差别比较大,通常ES用在随服务器一同购买的OEM版本中例如购买DELL服务器,搭配的Linux会是ES系列。如果要搭配AS系列,则需要多花数千元。

    典型的ES应用为:

    1. 公司WEB架构

    2.网络边缘应用 (DHCP, DNS,920-571 920-481 HP0-X02 1Y0-327 510-802, 防火墙等)

    3.邮件和文件/打印服务

    4.中小规模数据库和部门应用软件

    是工作站服务版(Workstation Server),ES的进一步简化版,主要针对企业内部的桌面办公市场,国内较少采用WS是桌面应用的最佳环境。它包含各种常用的桌面应用软件(Office工具,邮件,即时信息,浏览器等),可以运行各种客户-服务器配置工具,软件开发工具和各种应用软件(例如EDA和Oil/Gas应用软件, 但它不提供网络服务功能(如DNS和DHCP),它只适合作客户端应用。

    AS、ES功能上没有什么区别,无论x86,还是Itanium版,RHEL的后三张盘完全一样,也就是说,软件包完全一样。第一张盘实际上没有什么软件包的,只是启用安装程序,确定安装文件包而已,只是在服务级别,支持的CPU数量和内存数量上有区别。

  • Linux操作系统出现严重故障后的救援模式

    2007-10-17

     1、把系统安装光盘插入,重启机器,启动时迅速按下Del键,进入CMOS,把启动顺序改为光盘先启动,这样就启动了Linux安装程序,按F5,按提示打入Linux rescue回车,进入救援模式,接下来是选择语言及键盘,直接回车即可,程序提示已经把硬盘上的Linux系统安装到了/mnt/sysimage下,然后出现了超级用户提示符#.

      2、进入到硬盘etc目录下:cd /mnt/sysimage/etc,先做备份防不测:

      cp shadow shadow.old 修改shadow文件的属性为可写:chmod +w shadow 然后用vi修改之:找到含root用户信息的那一行:root:……:,前两个冒号之间就是加密的密码,把它删除掉(冒号不能删),存盘退出。这样 root的密码就为空了 1Y0-308 。

      不会用vi的用户可以采取如下方法:找一张DOS盘插入软驱,把Shadow拷贝到DOS盘上:mcopy shadow a:/ 然后在Windows下用附件中的  SCSA CCIA 记事本修改之,注意打开文件类型一定要选所有文件(*.*),存盘退出。最后再拷回:mcopy a:/shadow mnt/sysimage/etc

      3、把Shadow的属性改回只读:chmod -w shadow,最后输入Exit退出,取出光盘。

      4、为安全起见,重启后应在终端窗口中再给root加上密码。

  • pass4sure IT Test Question

    2007-10-09

    pass4sure UM0-411 jn0-541 Exam will provide you with exam questions and verified answers that reflect the actual exam. These questions and answers provide you with the experience of taking the actual test.

    there are some questions about pass4sure  IT Test  .

    1.Each task listed below is a reason to customize an LDAP search filter, EXCEPT for which one of the following?

    A: To search for external groups to include in places
    B: To search for external user names to include in places
    C: To search for external user names when authenticating users
    D: To search for external users?public keys when authenticating users
    Correct Answers:  D

    2.The QuickPlace administrator needs to set up multi-server session-based authentication (MSSO). Which one of the following describes the two NOTES.INI settings that must be in place for MSSO to be properly configured for a QuickPlace service?

    A: "QuickPlaceMSSO=1" and "h _ScopeUrlInQP"
    B: "QPWebConfig=MSSO" and "h _ScopeUrlInQP=1"
    C: "h_ScopeUrlInQP" and "NoWebFileSystemACLs=1"
    D: "NoWebFileSystemACLs=1" and "QuickPlaceMSSO=1"
    Correct Answers:  C

    3.A tiffany Necklaces company is planning their QuickPlace deployment and would like to add Sametime awareness to the QuickPlace server places. Which one of the following best describes the tasks that must be performed in order for this to work properly?

    A: Install Sametime on the same SCSA CCIA server as the QuickPlace server.
    B: Modify the Sametime configuration in the QuickPlace Server Settings room to point to the location of the new Sametime server.
    C: Install the QuickPlace Java toolkit on the new server, and copy toolkit files and the Sametime PeopleOnline applet to the Sametime server.
    D: All of the above
    Correct Answers:  B

    4.Which one of the following MCSA  statements about super users is true?

    A: A super user can be a local or an external user.
    B: A super user is created when QuickPlace is installed.
    C: A super user can enter every place on a QuickPlace server.
    D: A super user can create Server Certificates in the Server Settings room in the administration place.
    Correct Answers:  C

  • linux下直接读写palm扩展卡内容

    2007-10-07

    在linux下可以直接通过palm连接电脑(数据线或者底座)来读取sd卡上内容。以下为过程:
      
      首先你需要card export 最新版2.15
      以下地址有测试版http://www.softick.com/cardexport/
      
      同步安装以后在palm上运行,ce会要求你重新起动palm。
      
      然后将palm连在底座上或者数据线连接,点connect,此时是没有反应的……到console下fdisk -l你应该可以看到有这样一段话:
      Disk /dev/sdc: 255 MB, 255852544 bytes
      16 heads, 32 sectors/track, 976 cylinders
      Units = cylinders of 512 * 512 = 262144 bytes
      250-101 HP0-773 HP0-505 920-124 000-773
      Device BootStart EndBlocks Id System
      /dev/sdc1 1 976249805+ 6 FAT16
      
      然后mkdir /mnt/usb 此处就是建立一个目录,其实名字自己可以选择
      然后mount /dev/sdc1 /mnt/usb
      此处sdc1是通过刚才fdisk命令查出来的,/mnt/usb是我刚才建立的
      这样到mnt/usb目录下你应该就可以看到你的卡上的内容了!
  • my exams questions

    2007-9-26

    1.Given the following information for a company: 

    Network address: 190.166.0.0
    Subnet mask: 255.255.192.0
    Subnets: 190.166.64.0 and 190.166.128.0

    Which host addresses are  HP0-538 642-964  located on subnetwork 190.166.128.0? (Choose 4.)

    A:190.166.121.75
    B:190.166.136.87
    C:190.166.128.100
    D:190.166.192.111
    E:190.166.148.212
    F:190.166.191.150
    G:190.166.110.219
    Correct Answers:  B, C, E, F

    2.Which protocol is used   SCSA CCIA  clp exams by hosts to keep local routers and gateways notified of their membership in a particular multicast group?

    A: IRC
    B: POP3
    C: SNMP
    D: IGMP
    E: SMTP
    F: ICMP
    Correct Answers:  D

    3.What does an OSPF tiffany Necklaces  router do when it receives an LSU packet? (Choose 2.)

    A:Forwards the LSU on to the designated router (DR)
    B:Sends a hello packet to the router that sent the LSU packet
    C:Compares the information to its link state advertisement database
    D:Sends an acknowledgement packet to the router that sent the LSU packet
    E:Replaces its link state advertisement database with the new information
    Correct Answers:  C, D

    4.You are interested in selecting a routing protocol that provides rapid convergence for your company's large IP network. Which protocol meets these requirements?

    A: RIP
    B: OSPF
    C: RIPv2
    D: Static protocol
    Correct Answers:  B
    pass4sure Guarantee to Pass Your  MB7-231 MB7-224  ExamIf you prepare for the exam using our ExamInside testing engine, we guarantee your success in the 310-150 350-020  exam  on your first attempt.

  • Ubuntu开启root用户及其它登录问题的解决

    2007-9-24

    Ubuntu安装后,root用户默认是被锁定了的,不允许登录,也不允许“su”到 root。有人说这是个不好的实践,特别是对于服务器来说。我觉得对于桌面用户来说,这样安全性更高一些,是应该的;但对于服务器可以设置成“允许 su 到root,但不允许root用户直接登录”。而我为了开发时的方便,则在桌面和服务器上都采用这种方式。

      允许 su 到 root

      非常简单,下面是设置的方法:

      me@tipfoo:~$ sudo passwd

      Password: <—— 输入安装时那个用户的密码

      Enter new UNIX password: <—— 新的Root用户密码

      Retype new UNIX password: <—— 重复新的Root用户密码

      passwd:已成功更新密码

      允许root登录

      如果要允许root登录(不推荐),则这样操作:

      me@tipfoo:~$ gksu /usr/sbin/gdmsetup

      (或者使用桌面菜单:系统>系统管理>登录窗口)

      点“安全”选项页,选择“允许本地管理员登录”。

      注:这一步依赖上一步

      不输入密码直接登录

      在论坛上也看见有人抱怨,家中的Ubuntu不能像Window$那样──不用输入密码就能登录。其实同样能做到:

      就在上一步的“安全”选项页中,勾选:

      “启用自动登录”,“用户”选择(如:“me”);

      注意:公共用的计算机千万不能这么设置!

      SSH登录远程服务器

      如果远程服务器只允许root用户SSH到服务器时,在Ubuntu下,必须“su 到root”用户才能登录成功(具体是看服务器端的配置)。

      首先,复制密钥到“/root/.ssh/”目录,

      me@tipfoo:~$ su

      Password:
        e20-090 ee0-200

      root@tipfoo:/home/me# chmod 600 -R /root/.ssh/

      root@tipfoo:/home/me# ssh -p 27482 11.22.33.44

      Enter passphrase for key '/root/.ssh/id_rsa':

      Last login: Thu Jun 21 14:29:00 2007 from 11.22.33.45

Open Toolbar