海泰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/
- 海泰ukey内核支持及使用
- Ukey证书校验流程和使用注意事项
- android ffmpeg内核 开源播放器编译与使用 支持2.3及4.0
- Windows7+IE8 无法使用网银Ukey的解决方法
- MYSQL 使用及中文支持
- tomcat ukey
- source insight 支持verilog 及使用技巧
- vollery框架使用及支持https
- @SuppressWarning 使用及支持的参数
- (转载)使用kgdb调试linux内核及内核模块
- (转载)使用kgdb调试linux内核及内核模块
- 使用kgdb调试linux内核及内核模块
- 使用kgdb调试linux内核及内核模块
- (转载)使用kgdb调试linux内核及内核模块
- 使用kgdb调试linux内核及内核模块
- 使用kgdb调试linux内核及内核模块
- 使用kgdb调试linux内核及内核模块
- 转 使用kgdb调试linux内核及内核模块
- 对于有序数组的二分查找算法
- Android -- 仿微信滑动,底部图片和字体变化的效果
- Android 集成支付宝SDK
- 剑指offer系列源码-数组中出现次数超过一半的数字
- select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
- 海泰ukey内核支持及使用
- android RPC深入理解
- 编译包-库
- Data插入MySQL出现乱码解决方法
- RelativeLayout相对布局
- 监听scrollview滚动
- leetcode: Search in Rotated Sorted Array
- VLOOKUP函数查找两个工作表的重复数据
- jsp中实现上传图片即时显示效果功能