lensens

  IT博客 :: 首页 :: 联系 :: 聚合  :: 管理
  7 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks

2009年6月18日 #

这是学习之路上的一个突破。
对于uclinux来说,调试驱动和应用程序是一个复杂的过程,如果每做一次修改,就要编译一次内核,其工作量是相当巨大的,所以找到一种简单方便的调试方法非常重要,而静态加载驱动和应用程序是工程的最终形式。
记下建立步骤用来备忘和以飨像我这样的小菜虫们,呵呵   (uclinux源码版本为20060311)
1、配置内核:
   功能包括 nfs客户服务端 + 可加载模块功能
   在内核配置界面 :
   Loadble module support ---> [*] Enable loadable moudule support 
                                 [*] Kernel moudule loader(NEW)
   Flie systems ---> Network File Systems ---> <*> NFS file system support
                                               [*] Provide NFSv3 client support
   Networking options ---> [*] IP: fast network address translation
   用户配置界面:
   Network Applications ---> [*] portmap
   BusyBox ---> [*] insmod
                [*] lsmod
                [*] rmmod
2、make dep
   make clean
   make lib_only
   make user_only
   make romfs
   make linux
   make
   下载uclinux_rom.bin到开发板
3、建立开发板与VMlinux的NFS连接 (见 随笔 《uclinux 驱动开发配置》)
4、编写驱动程序
5、编写应用程序
6、在vmware_linux(fedora 10)打开minicom终端   (见 随笔 《uclinux 驱动开发配置》)
7、启动开发板 输入命令:
   >/cd var
   >var/ mkdir mnt
   >var/portmap &   (打开NFS客户端)
   >var/ifconfig eth0 192.168.1.155 (vmware_linux IP 为 192.168.1.107)
   >var/mount -t nfs -o nolock 192.168.1.107:/home/armwork/mnt /var/mnt
8、将编译好的驱动程序.o文件(例 gpio.o) 和 驱动应用程序(例 led  beep) 传到 /var/mnt中
9、输入命令:
   >var/mnt/ insmod gpio.o
   >var/mnt/ lsmod   (查看有没有加载进)
   >var/mnt/ ./led   
   >var/mnt/ ./beep
10、执行不成功,只需修改.c 源码,再编译后,传到/var/mnt中执行调试,很方便。
11、调试成功后,将驱动程序和驱动应用程序加载到内核,编译内核载入就OK了。(见 随笔 《内核添加应用程序》 、 《内核添加驱动程序》)
12、over
posted @ 2009-06-18 22:40 lensens 阅读(556) | 评论 (1)编辑 收藏

驱动程序添加到内核的方法:
1、将驱动源码(例 gpio.c gpio.h config.h)copy到 uClinux-dist/linux-2.4.x/drivers/char,修改该目录下的Makefile,在适当的地方添加 obj-$(CONFIG_LENSENS_GPIO) +=gpio.o;
2、在uClinux-dist/linux-2.4.x/drivers/char 下 打开 config.in,在适当的的地方添加:
   if [“$CONFIG_ARCH_SAMSUNG”=”y”]; then
   tristate 'MY driver module' CONFIG_LENSENS_GPIO
3、在uClinux-dist/linux-2.4.x/drivers/char 下 打开 mem.c,在int chr_dev_init()函数中增加如下代码:gpio_init();并在该文件头部声明 extern void gpio_init(void);
4、进入uClinux-dist/vendors/Samsung/44B0,打开Makefile,在DEVICES=\最后添加:
   DEVICES=\
           tty,c,5,0  console,c,5,1  ...\
           ...
           \
           pc,c,126,0  pd,c,126,1  pe,c,126,2  pf,c,126,3  \
           pg,c,126,4
5、make dep
   make clean
   make lib_only
   make user_only
   make romfs
   make linux
   make
posted @ 2009-06-18 22:39 lensens 阅读(221) | 评论 (0)编辑 收藏

HELLO WORLD 的实现
   编写的第一个程序当然是hello world程序。
   1)在Uclinux-dist/user/下创建一新文件夹lensens_hello
   2)编写hello.c
      #include <stdio.h>
      int main(void)
      {
       printf("Hello World!\n"):
       return 0;
       }
    3)编写Makefile
      EXEC = hello
      OBJS = hello.o
      all: $(EXEC)
      $(EXEC): $(OBJS)
             $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)
      romfs:
             $(ROMFSINST) /bin/$(EXEC)
      clean:
             -rm -f $(EXEC) *.elf *.gdb *.o
     4)修改user/Makefile
        按字母排列顺序增添:  dir_$(CONFIG_USER_LRNSENS_HELLO) += lensens_hello
     5)修改config/config.in,目的是在配置的时候显示配置选项
        添加到类似结构的最后
        ####################################################
        mainmenu_option next_comment
        comment 'My New Application'
        bool 'Hello World' CONFIG_USER_LENSENS_HELLO
        endmenu
        ####################################################
     6)配置
       在用户程序配置界面下选择
       My New Application 进入 选择
       【*】Hello World
     7)编译
       make dep
       make clean
       make lib_only
       make user_only
       make romfs
       make linux
       make

posted @ 2009-06-18 22:38 lensens 阅读(119) | 评论 (0)编辑 收藏

2009年5月7日 #

一串的动作为驱动开发准备环境:

一、为VMware linux 增加一个虚拟硬盘用于专门开发嵌入式驱动
         1、点击VM-->SETTING-->hard disk-->add-->hard disk-->creat a new virtual disk-->scsi-->3G(视情况而定)-->armwork.vmdk-->finish
         2、重启linux
         3、执行命令: fdisk -l  看有没有/dev/sdb
         4、创建分区 fdisk /dev/sdb      m       n     p     3   一串指令后,fdisk -l    最下方出现/dev/sdb3
         5、格式化分区 mkfs.ext3 /dev/sdb3
         6、挂载 mkdir /home/armwork    ;  mount /dev/sdb3 /home/armwork
         7、ls /home/armwork 看看有没有lost+found文件夹

二、samba实现虚拟机linux与主机windows共享
         1、启动虚拟机,进入linux(Fedora 10),打开 系统——>管理——>网络,点击设备eth0编辑,设置为DHCP,自动获取DNS;
         2、PING 一下网关,windows IP,看看通不通;
         3、mkdir /mnt/vmwindows_share;
         4、在windows下新建一个共享文件夹vmlinux_share;
         5、进入linux,执行命令:mount -t cifs //192.168.1.100/vmlinux_share  /mnt/vmwindows_share  -o username=administrator    输入windows账户密码。其中,192.168.1.100为windows IP,administrator为windows登陆账户;
         6、ls  /mnt/vmwindows_share  看看有没有共享的文件

三、增添串口COM1,配置minicom,与开发板通信
         1、关闭虚拟机linux,在linux虚拟文件的文件夹下,找到.vmx 虚拟机配置文件,添加三行:
                     serial0.present = "true"
                     serial0.fileType = "device"
                     serial0.fileName = "COM1"
                  保存,启动linux
         2、打开终端,su   输入密码获得root权
         3、minicom -s
         4、选择serial port setup   修改A  /dev/ttyS0;E   115200 8N1;    F   no;G   no
         5、选择modem and dialing  清空A B K
         6、save as s3c44b0
         7、退出
         8、启动开发板,看看有没有启动uclinux

四、建立开发板与VMlinux的NFS连接
      1、在VMlinux查看NFS服务状态,service nfs status,并打开 service nfs start
      2、在VMlinux中设置一个共享文件夹,mkdir /home/armwork/mnt
          打开共享配置文件 vi /etc/exports 增添一个共享目录  /home/armwork/mnt (rw)  *(rw,sync)  ,保存退出。
          执行命令: exportfs -rv
          更改属性:chmod -R 777 /home/armwork/mnt
      3、配置uclinux使其拥有NFS客户端服务:
           1) make menuconfig
               Networking options -->【缺省】
             File systems --> Network File Systems --> 
             【*】NFS file system support
             【*】Provide NFSv3 client support
             Network Applications --> 
             【*】portmap
             BusyBox --> 
             【*】mount(mount nfs support)

          2)make dep
          3)make clean
          4)make lib_only
          5)   make user_only
          6)   make romfs
          7)   make image(有错误,找不到linux,是因为没有编译内核,可以先make linux;也可以不管,直接编译make,因为make中有make linux动作)
          8)   make
      4、将编译好的uclinux_rom.bin烧进开发板,启动uclinux
      5、进入shell命令行 >/
      6、设置ip使开发板与VMlinux处于同一网段。ifconfig eth0 192.168.1.155
      7、>/ cd var
      8、>/var/  mkdir  mnt
      9、开启NFS客户端服务 >/var/  portmap &
      10、挂载开发主机共享目录   >/var/ mount -t nfs -o nolock 192.168.1.107:/home/armwork/mnt  /var/mnt    其中192.168.1.107为VMlinux 的IP地址
      11、在VMlinux 上 共享文件夹中建立一个新目录,mkdir /home/armwork/mnt/hello,在终端查看 >/var/mnt/ ls
      12、OK 哈哈
posted @ 2009-05-07 23:41 lensens 阅读(356) | 评论 (1)编辑 收藏

2009年4月26日 #

VMware Worktation 6.5 出来了,功能更加的完善,于是就想把linux重装一遍,再加上先前装的redhat没有图形界面,所以这次就想装一个有图形界面的REDHAT ENTERPRISE 4 AS版本。记录安装步骤以作备份。
  1、下载VM6.5新版并安装。安装步骤就不说了,网上资料太多。
  2、下载REDHAT ENTERPRISE 4 AS 的4个iso文件:RHEL4-i386-AS-disc1.iso、RHEL4-i386-AS-disc2.iso、RHEL4-i386-AS-disc3.iso、RHEL4-i386-AS-disc4.iso。
  3、打开VM,创建一个新的虚拟机。安装时导入位置选择RHEL4-i386-AS-disc1.iso,后根据提示安装。
  4、虚拟机此时会自动安装。中途会提示插入第二、第三、第四张盘,看到Vm下方有change Disc按钮,点击更改安装文件。
  5、接下来就等待登录吧。哈哈
posted @ 2009-04-26 23:37 lensens 阅读(219) | 评论 (0)编辑 收藏

为了实现VM linux 与 windows的数据共享,VMware Workstation提供了一个叫做VMware-tools的虚拟工具。下面是实现步骤:

1、打开VM(装的是6.5版本),启动linux虚拟机(REDHAT ENTERPRISE 4 AS)。

2、选择VMware的菜单选项VM——Install VMware Tools。

3、在linux下,执行命令:

   mkdir /mnt/cdrom

   mount /dev/cdrom /mnt/cdrom

4、cd /mnt/cdrom 进入cdrom后ls,发现其中有三个文件,VMwareTools-7.8.5-156735.tar.gz 和VMwareTools-   7.8.5-156735.i386.rpm,另外一个是文本文件。复制这两个文件到/tmp。

   cp VMwareTools-7.8.5-156735.tar.gz VMwareTools-7.8.5-156735.i386.rpm /tmp

5、进入/tmp(cd /tmp),安装VMwareTools-7.8.5-156735.i386.rpm(rpm -ivh VMwareTools-7.8.5-156735.i386.rpm)

6、执行命令 tar zxvf VMwareTools-7.8.5-156735.tar.gz后,进入vmware-tools-distrib目录,发现vmware-install.pl文件。执行命令:./vmware-install.pl 随后一直按enter,直至完成。

7、打开/tmp,此时会发现有一个hgfs的文件夹。

8、设置共享:打开菜单选项VM——settings——options,发现里面有一个shared Folders,选中ALWAYS enabled,添加ADD,设定windows下的HOST PATH(D:\vmlinux_share)。OK

9、卸载光驱。umount /dev/cdrom

10、可以享受共享数据了。

    cd /mnt/hgfs/vmlinux_share

    ls看看有没有共享的文件。哈哈

posted @ 2009-04-26 23:37 lensens 阅读(2515) | 评论 (1)编辑 收藏

说起来真惭愧,玩了这么长时间的嵌入式LINUX,电脑里还没有一个像样的LINUX系统。虽然装过vmware 和cygwin,但用起来肯定没有那么真实。防止以后如要再装,所以记下详细的安装步骤。

1) 选择一款稳定好用的LINUX操作系统。对比其他,redhat绝对是大哥级别的,无论从他的稳定、功能还是普及度,都是最棒的。Red Hat Enterprise 4 AS 基于2.6.9版本的linux内核,易于上手,较为稳定,且硬盘安装支持图形模式。从网上下载4个iso文件,分别是RHEL4-i386-AS-disc1.iso/RHEL4-i386-AS-disc2.iso/RHEL4-i386-AS-disc3.iso/RHEL4-i386-AS-disc4.iso。

2) 使用PartitionMagic 8.0分出一个分区,将4个iso文件放入根目录上;解压RHEL4-i386-AS-disc1,将里面的isolinux文件夹及其所有内容放入根目录下,保留该目录下的initrd.img和vmlinuz两个文件,其它删除。

3) 下载grub.exe;下载安装maxdos工具,以进入纯DOS。

4) 进入纯DOS后,执行grub命令,直到出现grub>

5) 执行命令root(hd0,X) X为iso安装文件放置的分区

6) 执行kernel /isolinux/vmlinuz

7) 执行initrd /isolinux/initrd.img

8) 执行boot,此时可以进入安装画面了

posted @ 2009-04-26 23:35 lensens 阅读(133) | 评论 (0)编辑 收藏