海泰ukey内核支持及使用

来源:互联网 发布:网络电缆套什么定额 编辑:程序博客网 时间:2024/05/03 05:52

 Linux内核模块
  Redhat 7.2的内核为2.4.9,对Usb接口支持不足,不建议使用Redhat 7.3
  以前的版本,有用户在Redhat 7.2下使用KeyDisk出错,KeyDisk是将key
  和U盘通过Usb Hub连接在一起的,需要内核支持Usb Hub等特性,升级内
  核后才解决。

  Redhat 7.3内核在G31等新主板上兼容性不好,需要将Usb 2.0高速模块
  ehci-hcd.o卸载才能使用,或根据Redhat 7.3 Updates升级内核。

  Redhat 7.2/7.3/8.0的官方更新都将内核升级为2.4.20,也希望用户理解
  ,因为我们目前没提供内核驱动模块,因此兼容性完全取决于您的内核,
  如果您想在老系统上用高速Key,那请您升级内核,除此之外我们也无能
  为力,内核2.4.21的CentOS 3.9就可以直接支持Usb 2.0高速传输。

  驱动依赖于UsbDevFs内核模块(在Linux 2.6内核是UsbFs),但一般的
  Linux发行版的内核都内嵌这个模块,如Redhat 7.3/9.0,Slackware 8.1
  /9.0,此模块在Linux 2.4/2.6版中不能编译成单独的驱动文件,如内核
  没有嵌入此模块,需要重新编译。在2.4内核的Menuconfig中如下选择:
   <*> Support for USB
   --- Miscellaneous USB options
   [*]   Preliminary USB device filesystem
   <*>   USB Mass Storage support

  Mass Storage类型UsbKey需要内核支持Scsi SD/SG模块:
   <*> SCSI support
   --- SCSI support type (disk,tape,CD-ROM)
   <M>   SCSI disk support
   <M>   SCSI generic support

  在Linux 3.0.8内核中,UsbDevFs/UsbFs被标记为作废(DEPRECATED)选项
   [*]     USB device filesystem (DEPRECATED)
  在3.x内核中可以不选择UsbDevFs/UsbFs,内核应该会对没有驱动的设备
  注册/dev/bus/usb/BBB/DDD节点,BBB是总线号,DDD是设备号,海泰驱动
  可以依赖于/dev/bus/usb目录来操作Usbkey,/dev/bus/usb目录好象没有
  可配置的内核编译选项,但要在udev的配置文件中放开usb写权限,请参
  考说明3.3.2-3.3.4。

  Haikey设备插拔反馈要依赖于/sys/bus/usb来确认枚举信息,该内核选项
  在2.6.22-3.0.8中被标记为作废(DEPRECATED)选项,但请选中。
   [*]     USB device class-devices (DEPRECATED)

  海泰某款Hid类型的UsbKey在2.4版本的内核中长数据的Urb写通讯有问题
  ,在驱动层被禁止,目前只支持2.6内核。

  非中芯z32的Key对内核2.6.5-2.6.27中的Usb Interface的处理很敏感,
  内核能引发通讯错误,最新的驱动能做到在单一进程访问Key期间,避免
  发送Usb Interface指令。

  目前不支持内核层直接调用UsbKey,因为海泰的驱动是不开源的,要提供
  上百种Linux发行版的驱动模块库太累了,更别说各种定制的用户版了。

 Linux内核检测
   Linux系统必须有/proc/bus/usb或/dev/bus/usb目录,如没有需
   要重新编译内核。
   用mount命令可以查到2.4内核usbdevfs的内容,例:
    [root@rh73 2.4.18-3]# mount
    /dev/sda1 on / type ext2 (rw)
    none on /proc type proc (rw)
    usbdevfs on /proc/bus/usb type usbdevfs (rw)
   如没有可以执行(HaiKey驱动已经内含,自动执行)
    mount -t usbdevfs none /proc/bus/usb
 内核在/proc/bus/usb目录下,应该有001之类的目录,
   cat /proc/bus/usb/devices应该能找到Usb设备信息,例如:
    S:  Product=USB UHCI Root Hub
   如果没有这些信息,说明内核Usb驱动没有工作,或不支持UsbDevFs。
  2.3.4 在3.x内核应该有/dev/bus/usb目录。

 Mac版驱动安装
  Mac版的Pkcs11需要安装驱动才能在Osx系统里使用U盘协议和Hid协议的
  Haikey,该驱动为软件包里的haikey.kext.tar.bz2,请用root权限
  (sudo bash)将其解压到/System/Library/Extensions目录下,也可以用
  make copykext来实现拷贝驱动。

  PCSC协议的haikey不需要安装Mac驱动。

 未支持的平台
  如果用户需要开发新的Linux平台,则需要提供x86-Linux下的Gcc交叉编
  译包,包括内核头文件和C库给海泰方圆公司,目前的Pkcs11库对32/64位
  和Endian都不敏感,重新编译即可,如果用户希望兼容的系统多一些,应
  尽量使用低版本的glibc库。

  目前通用Linux支持Glibc,uClinux支持uClibc,android支持bionic,其
  他C运行库暂不支持,如有明确的用户销量可以和海泰公司联系。

  OpenRisc、H8300、V850的uClibc版本暂不支持。

  非Linux的驱动移植如果销量不足需要支付开发费用。

  平台的命名
  有用户对armse等命名产生了困扰,这里的命名仅仅是海泰方圆根据编译
  器的预定义宏总结而得到的简称,它代表C语言在函数调用时的参数传递
  规则,不同的规则不能混用,比如armse可以由以下C代码检测:
  #if defined(__ARMEL__) && defined(__SOFTFP__) && defined(__VFP_FP__) && defined(__ARM_EABI__)
   #error You using armse Architecture,LittleEndian,SoftVfp,EABI
  #endif

测试平台
  2.7.1 x86/x64平台测试环境为Linux光盘启动版root帐号
    Ubuntu 5.10-11.10十三种发行版,光盘启动
    Fedora 7-16 Live CD十种发行版
    CentOS 6.0/6.1 Live CD两种发行版

  2.7.2 嵌入式平台请先将C语言程序在x86平台测试通过后,再测试嵌入
   式平台。

  2.7.3 armse平台测试环境以Fedora Core 6为主

   Fedora 6测试rom:
   http://ftp.arm.linux.org.uk/pub/linux/arm/fedora/rootfs/fc6-arm-root-with-gcc.tar.bz2

   Fedora 6软件包:
   http://ftp.arm.linux.org.uk/pub/linux/arm/fedora/pub/fedora/linux/core/6/arm/os/Fedora/RPMS/

   Fedora 6升级包:
   http://ftp.arm.linux.org.uk/pub/linux/arm/fedora/pub/fedora/linux/core/updates/6/arm/

  2.7.4 其它armse测试环境
   Fedora 6/8/10/11/12
   http://ftp.arm.linux.org.uk/pub/linux/arm/fedora/pub/fedora/linux/releases/

   Fedora 13/14/15/16/17/18
   http://archive.fedoraproject.org/pub/fedora-secondary/releases/

   Ubuntu
   http://old-releases.ubuntu.com/releases/9.10/ubuntu-9.10-desktop-armel+dove.img
   http://old-releases.ubuntu.com/releases/9.10/ubuntu-9.10-desktop-armel+imx51.img
   http://cdimage.ubuntu.com/releases/11.04/release/ubuntu-11.04-preinstalled-headless-armel+omap.img.gz

   Slackware,13.1开始支持EABI(Version 4+)
   http://ftp.slackware.org.uk/armedslack/

   Slackware Rom:
   http://ftp.armedslack.org/armedslack/armedslack-devtools/minirootfs/roots/slack-13.1-miniroot_14Jun10.tar.xz
   http://ftp.armedslack.org/armedslack/armedslack-devtools/minirootfs/roots/slack-13.37-miniroot_01May11.tar.xz

   http://mirrors.kernel.org/yocto/yocto-0.9/qemu/qemuarm/yocto-image-sdk-qemuarm-0.9.rootfs.tar.bz2
   http://ftp.denx.de/pub/eldk/5.3/targets/armv5te/core-image-sato-generic-armv5te.tar.gz
   http://distfiles.gentoo.org/experimental/arm/stages/armv4l/stage3-armv4l-2008.0.tar.bz2

  2.7.5 ARM uClinux测试环境
   http://uclibc.org/downloads/binaries/0.9.30/mini-native-armv4l.tar.bz2 (softfpa)
   http://uclibc.org/downloads/binaries/0.9.30/mini-native-armv5l.tar.bz2
   http://uclibc.org/downloads/binaries/0.9.30/mini-native-mips.tar.bz2
   http://uclibc.org/downloads/binaries/0.9.30/mini-native-mipsel.tar.bz2

  2.7.6 Mips O32测试环境
   http://distfiles.gentoo.org/releases/mips/2007.0/stages/stage3-mips3-2007.0.tar.bz2
   http://ftp.denx.de/pub/eldk/5.3/targets/mips/core-image-sato-generic-mips.tar.bz2
   http://landley.net/aboriginal/downloads/binaries/root-filesystem/root-filesystem-mips.tar.bz2
   http://mirror.wzff.de/sabotage/sabotage-0.9.7-mips-rootfs.tar.xz

   Mipsel O32测试环境
   ftp://ftp.ingenic.cn/3sw/JZ4760B/01LinuxBsp/20120925/rootfs/root-jz-20120925.tar.bz2
   ftp://ftp.ingenic.cn/3sw/01linux/03root/root-jz-20100304.tar.bz2
   http://landley.net/aboriginal/downloads/binaries/root-filesystem/root-filesystem-mipsel.tar.bz2
   http://www.loongson.cn/dev/ftp/os/Fedora13/rootfs/Fedora13-o32-mips-20130104-multilib.tar.gz
   http://mirror.wzff.de/sabotage/sabotage-0.9.7-mipsel-rootfs.tar.xz

   Mipsel N32测试环境
   http://files.mips101.org/Fedora-12-rootfs-MIPS/fedora-12-n32-rootfs-20100414.tar.gz

   Mipsel uClibc测试环境
   http://distfiles.gentoo.org/experimental/mips/uclibc/stage3-mipsel3-uclibc-vanilla-20130520.tar.bz2

   Mips64测试环境
   http://landley.net/aboriginal/downloads/binaries/root-filesystem/root-filesystem-mips64.tar.bz2

  2.7.7 PowerPC测试环境
   http://distfiles.gentoo.org/releases/ppc/2007.0/ppc32/stages/stage3-ppc-2007.0.tar.bz2
   http://ftp.denx.de/pub/eldk/5.3/targets/powerpc/core-image-sato-generic-powerpc.tar.gz
   http://landley.net/aboriginal/downloads/binaries/root-filesystem/root-filesystem-powerpc.tar.bz2
   http://mirror.wzff.de/sabotage/sabotage-0.9.8-powerpc-rootfs.tar.xz

   Power64测试环境
   http://distfiles.gentoo.org/releases/ppc/2007.0/ppc64/stages/stage3-ppc64-64ul-2007.0.tar.bz2

  2.7.8 Sparc测试环境
   http://landley.net/aboriginal/downloads/binaries/root-filesystem/root-filesystem-sparc.tar.bz2

   Sparc64测试环境
   http://distfiles.gentoo.org/releases/sparc/2007.0/sparc64/stages/stage3-sparc64-2007.0.tar.bz2

  2.7.9 SuperH测试环境
   http://distfiles.gentoo.org/experimental/sh/stages/stage3-sh4-2006.1.tar.bz2
   http://landley.net/aboriginal/downloads/binaries/root-filesystem/root-filesystem-sh4.tar.bz2

  2.7.10 Frv测试环境
   http://ftp.redhat.com/redhat/gnupro/FRV/rootfs-glibc-frv-050408-1.tar.bz2

  2.7.11 IA64测试环境
   http://distfiles.gentoo.org/releases/ia64/2007.0/stages/stage3-ia64-2007.0.tar.bz2

  2.7.12 M68k测试环境
   http://landley.net/aboriginal/downloads/binaries/root-filesystem/root-filesystem-m68k.tar.bz2

 编译
  make      本机编译

 交叉编译
  make ARCH=uclinux    交叉编译uClinux平台
  make ARCH=armse GCC=arm-eabi-gcc  交叉编译Armse平台

  交叉编译需要用户自行获取工具链,haikey.h应该可以自动找到合适的
  cpu架构,例如:
   make GCC=/usr/local/arm/2.95.3/bin/arm-linux-gcc
  可能会有以下结果
   haikey.h: Your gcc should use: ARCH=arm,(LittleEndian)

  自动检测的准确性依赖于编译器,如果自动检测不能确定使用的cpu架构
  ,请用如下命令编译,然后将hello.o发送给我们,我们帮您确定。
   arm-linux-gcc -c -o hello.o hello.c

  交叉编译的关键是确定宏ARCH和CROSS的定义,用户可以自行更换各编译
  平台的CROSS宏在arch.mk里的定义,强制指定用户自己的交叉编译工具链
  ,在Makefile里使用的编译器为$(CROSS)gcc,比如当CROSS=arm-eabi-时
  ,真正的编译器是arm-eabi-gcc

第三方交叉编译工具链
  稳定的版本:
  Arm、Arms、Armb、Armbs(四合一版本)
   ftp://ftp.opengear.com/cdk/tools/arm-linux-tools-20061213.sh
   ftp://ftp.opengear.com/cdk/tools/arm-linux-tools-20130218.sh
  Arm
   http://ftp.arm.linux.org.uk/pub/linux/arm/toolchain/cross-2.95.3.tar.bz2
   http://ftp.arm.linux.org.uk/pub/linux/arm/toolchain/cross-3.2.tar.bz2
  Armse
   http://ftp.arm.linux.org.uk/pub/linux/arm/fedora/cross/cross5/i386/armv5tel-redhat-linux-gnueabi-gcc-4.1.2-33.fa1.cross5.i386.rpm
   http://downloads.yoctoproject.org/releases/poky-archive-images/blinky-3.0/poky-3.0-blinky-arm-toolchain.tar.bz2
   http://downloads.openmoko.org/developer/toolchains/openmoko-i686-20071228-arm-linux-gnueabi-toolchain.tar.bz2
   http://repo.meego.com/MeeGo/sdk/host/repos/meego/1.2.0/i586/meego-1.2-sdk-arm-gcc-4.5.1-4.1.i586.rpm
   http://download.tizen.org/sdk/current/binary/cross-arm-gcc-4.5_0.20.16_linux.zip
   http://www.mucross.com/downloads/cross-toolchain/mucross-1.5-i686-linux-armv5te-linux-gnueabi-toolchain.tar.bz2
   http://ftp.stlinux.com/pub/stlinux/2.3/STLinux/arm/stlinux23-cross-arm-gcc-4.2.1-37.i386.rpm
   http://downloads.ti.com/sdoemb/sdoemb_public_sw/arago_toolchain/2011_09/exports/arago-2011.09-armv5te-linux-gnueabi-sdk.tar.bz2
  Armuse
   http://ftp.arm.linux.org.uk/pub/linux/arm/fedora/cross/cross5/i386/armv5tel-uclibc-linux-gnueabi-gcc-4.1.2-33.fa1.cross5.i386.rpm
   http://ftp.stlinux.com/pub/stlinux/2.4/STLinux/armv7_uclibc/stlinux24-cross-armv7_uclibc-gcc-4.5.1-92.i386.rpm
   http://downloads.openwrt.org/backfire/10.03.1/orion/OpenWrt-Toolchain-orion-for-arm_v5t-gcc-4.3.3%2bcs_uClibc-0.9.30.1_eabi.tar.bz2
  Armubse
   http://downloads.openwrt.org/backfire/10.03.1/ixp4xx_generic/OpenWrt-Toolchain-ixp4xx-for-armeb_v5te-gcc-4.3.3%2bcs_uClibc-0.9.30.1_eabi.tar.bz2
  Armu
   http://www.uclibc.org/downloads/binaries/0.9.30/cross-compiler-armv5l.tar.bz2
  Armus
   http://www.uclibc.org/downloads/binaries/0.9.30/cross-compiler-armv4l.tar.bz2
  Armfu、Armfus
   http://www.uclinux.org/pub/uClinux/m68k-elf-tools/gcc-3/uclinux-tools-20050221/arm-uclinux-elf-tools-c++-gcc3.4.3-20050221.sh
  Arms
   http://archives.fedoraproject.org/pub/archive/fedora/linux/extras/6/i386/arm-gp2x-linux-gcc-4.1.2-6.fc6.i386.rpm
   http://download.ronetix.info/toolchains/arm/openzaurus-arm-linux-glibc-3.4.4.tar.bz2
  Mips、Mipsl、Mipss、Mipsls、Mipsu、Mipsus、Mipsul、Mipsuls(八合一版本)
   http://www.codesourcery.com/sgpp/lite/mips/portal/package4432/public/mips-linux-gnu/mips-4.3-154-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
  Mips
   http://www.linux-mips.org/pub/linux/mips/redhat/7.3/RPMS/i386/toolchain-mips-20021126-1.i386.rpm
   http://www.linux-mips.org/pub/linux/mips/people/macro/RPMS/i386/mips-linux-gcc-c++-gch-4.1.2-9.i386.rpm
  Mipsl
   http://www.linux-mips.org/pub/linux/mips/redhat/7.3/RPMS/i386/toolchain-mipsel-20021126-1.i386.rpm
   http://www.linux-mips.org/pub/linux/mips/people/macro/RPMS/i386/mipsel-linux-gcc-c-4.1.2-9.i386.rpm
   http://www.mucross.com/downloads/cross-toolchain/mucross-1.5-i686-linux-mipsel-linux-toolchain.tar.bz2
  Mips64
   http://www.linux-mips.org/pub/linux/mips/people/macro/RPMS/i386/mips64-linux-gcc-4.1.2-20.i386.rpm
  Mips64l
   http://www.linux-mips.org/pub/linux/mips/people/macro/RPMS/i386/mips64el-linux-gcc-4.1.2-9.i386.rpm
  ppc
   http://www.mucross.com/downloads/cross-toolchain/mucross-1.5-i686-linux-ppce300c3-linux-toolchain.tar.bz2
  ppcu
   http://www.uclibc.org/downloads/binaries/0.9.30/cross-compiler-powerpc.tar.bz2
  ppcus
   http://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-powerpc-440fp.tar.bz2
  sh
   http://ftp.stlinux.com/pub/stlinux/2.0/ST_Linux_2.0/RPM_Distribution/sh4-glibc-cross-devel/stlinux20-cross-sh4-gcc-3.4.3-17.i386.rpm
  shu
   http://ftp.stlinux.com/pub/stlinux/2.2/STLinux/sh4/stlinux22-cross-sh4-uclibc-gcc-4.1.1-24.i386.rpm
   http://www.uclibc.org/downloads/binaries/0.9.30/cross-compiler-sh4.tar.bz2
  bfinu、bfinuf
   http://download.ronetix.info/toolchains/blackfin/ronetix-bfin-uclinux.2007R1-RC10.070525.tar.bz2
  不可靠版本,仅供参考:
  Arms
   http://www.scratchbox.org/download/files/sbox-releases/0.9.8/tarball/scratchbox-toolchain-arm-gcc3.4.cs-glibc-sf-0.9.8.5.tar.gz
   http://tinderbox.dev.gentoo.org/cross-x86/arm-softfloat-linux-gnu/cross-arm-softfloat-linux-gnu/
  Armu
   http://www.scratchbox.org/download/files/sbox-releases/stable/tarball/scratchbox-toolchain-arm-gcc3.4-uclibc0.9.28-1.0.4-i386.tar.gz
   http://tinderbox.dev.gentoo.org/cross-x86/arm-gentoo-linux-uclibc/cross-arm-gentoo-linux-uclibc/
  Armus
   http://www.scratchbox.org/download/files/sbox-releases/0.9.8/tarball/scratchbox-toolchain-arm-gcc3.4.cs-uclibc-sf-0.9.8.5.tar.gz
   http://tinderbox.dev.gentoo.org/cross-x86/arm-softfloat-linux-uclibc/cross-arm-softfloat-linux-uclibc/
  Armuse
   http://tinderbox.dev.gentoo.org/cross-x86/arm-gentoo-linux-uclibceabi/cross-arm-gentoo-linux-uclibceabi/
  Armb
   http://tinderbox.dev.gentoo.org/cross-x86/armeb-unknown-linux-gnu/cross-armeb-unknown-linux-gnu/
  Armbs
   http://tinderbox.dev.gentoo.org/cross-x86/armeb-softfloat-linux-gnu/cross-armeb-softfloat-linux-gnu/

0 0
原创粉丝点击