博文

目前显示的是 六月, 2018的博文

移植exFAT到Android4.2.2

最近在Android上测试64GB的TF卡支持情况,发现在Windows平台上默认会把卡格式化为exFAT,而不是以前的FAT32或NTFS,故而引发了我对该文件系统的了解。 在Linux内核中不支持exFAT文件系统,需要像对ntfs(移植可查阅“参考网址”相关内容)支持一样使用fuse,即用户态文件系统,那什么是exFAT和fuse呢? 1.exFAT exFAT(Extended File Allocation Table),又名FAT64,是一种特别适合于闪存的文件系统,可支持单个文件超过4GB的大小。 2.fuse 用户空间文件系统(Filesystem in Userspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统。目前Linux通过内核模块对此进行支持。 上面两个名词的详细资料请查阅“参考网址”相关内容。 了解完了相关内容,那如何移植呢?下面是移植过程: 1.准备工作 a.exFAT源码 使用svn co http://exfat.googlecode.com/svn/trunk/ exfat-read-only命令下载整份exfat源码到当前的exfat-read-only目录中,现在的(2013年07月24日的版本为1.0.0)。 b.fuse源码 从https://code.google.com/p/exfat/wiki/HOWTO了解到还需要fuse-devel或libfuse-dev,故而从http://sourceforge.net/projects/fuse/files/fuse-2.X/2.9.3/下载最新的fuse-2.9.3.tar.gz文件。 2.移植步骤 a.设置内核的配置:CONFIG_FUSE_FS=y;(会创建/dev/fuse结点) b.在Android源码目录下的external目录下创建exfat-fuse目录,交将上面通过svn下载的exFAT代码复制到该目录下,并将fuse-2.9.3.tar.gz文件解压后将其文件也复制到该目录下,进入到exfat-fuse目录,执行./configure命令,会创建include/config.h等文件; c.在exfat-fuse目录下创建Android.mk文件,内容如下:

移植OpenCV1.0至ARM9

在大学的时候,由于项目需要,将OpenCV移植到S3C2440的开发板上,下面是之前移植过程和碰到的问题解决过程: 首先,从 http://www.opencv.org.cn 下载1.0的源码包,然后解压出来,进入解压后的目录,再进行下面的修改: 将configure 文件下列内容注释掉(有两处),只保留GTK_CFLAGS="" 、GTK_LIBS="" 、have_gtk=no 三项内容(如下黑体所示); # if test "$PKG_CONFIG" = "no" ; then # echo "*** The pkg-config script could not be found. Make sure it is" # echo "*** in your path, or set the PKG_CONFIG environment variable" # echo "*** to the full path to pkg-config." # echo "*** Or see  http://www.freedesktop.org/software/pkgconfig  to get pkgconfig." # else # PKG_CONFIG_MIN_VERSION=0.9.0 # if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then # echo "$as_me:$LINENO: checking for \"gtk+-2.0 gdk-pixbuf-2.0\"" >&5 echo $ECHO_N "checking for \"gtk+-2.0 gdk-pixbuf-2.0\"... $ECHO_C" >&6 # if $PKG_CONFIG --exists ""gtk+-2.0 gdk-pixbuf-2.0"" ; then # echo &

基于gobot框架在BBB Debian运行的GoLang程序

为了让GoLang与BBB搭配使用,我们借助了gobot机器上框架(查阅“参考资料”里的链接),在BBB Debian系统上运行go程序来控制硬件,下面是我们的整个入门配置和测试记录(在PC Ubuntu系统下进行): 1.获取gobot源码    go get -d -u  github.com/hybridgroup/gobot/ ... && go install  github.com/hybridgroup/gobot/platforms/beaglebone    这里需要注意和碰到需处理的问题:    a.需翻墙,同步代码过程会自动同步依赖库源码,有些需要VPN翻墙才能使用;    b.同步源码过程中会碰到exec: "hg": executable file not found in $PATH 提示,此里需执行sudo apt-get install mercurial命令。    同步代码后,会在$GOPATH目录下的src和pkg两个目录下存在相关的源码文件。 2.交叉编译BBB的GOBOT a.配置ARM交叉编译的GO环境    cd $GOROOT     GOOS=linux GOARCH=arm ./make.bash --no-clean b.创建BBB上的测试程序及在BBB上验证     创建beaglebone_blink.go文件,文件内容如下:     package main     import (             "time"             " github.com/hybridgroup/gobot "             " github.com/hybridgroup/gobot/platforms/beaglebone "             " github.com/hybridgroup/gobot/platforms/gpio "     )     func main() {             gbot := gobot.NewGobot()             beagleboneAdaptor := beaglebone.NewBeaglebo

移植OpenCV3.1到BBB-Debian

图片
本文讲述将OpenCV及其依赖库的源码编译移植到BeagleBone Black开源板的Debian系统里,下面是其移植全过程命令: cd /home/guochongxin/bbb-debian mkdir thirds cd thirds mkdir install wget -c http://zlib.net/zlib-1.2.8.tar.xz tar xvf zlib-1.2.8.tar.xz cd zlib-1.2.8/ CC=/home/guochongxin/bbb-debian/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-gcc ./configure --prefix=/home/guochongxin/bbb-debian/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/arm-linux-gnueabihf/ --shared make make install cd .. wget -c http://www.ijg.org/files/jpegsrc.v9b.tar.gz tar xvf jpegsrc.v9b.tar.gz cd jpeg-9b/ CC=/home/guochongxin/bbb-debian/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-gcc ./configure --prefix=/home/guochongxin/bbb-debian/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/arm-linux-gnueabihf/ --host=arm-linux-gnueabihf --enable-shared make make install cd .. wget -c http://prdownloads.sourceforge.net/libpng/libpng-1.6.21.tar.xz tar xvf libpng-1.6.21.tar.xz cd libpng-1.6.21/ CC=/home/guo

Ubuntu apt-get安装virtualenv失败处理一例

在Ubuntu里面安装virtualenv时出现如下提示: guochongxin@xinu:~/xinu/python$ sudo apt-get install python-virtualenv Reading package lists... Done Building dependency tree           Reading state information... Done You might want to run 'apt-get -f install' to correct these: The following packages have unmet dependencies:   libc-dev-bin : Depends: libc6 (< 2.16) but 2.17-0ubuntu5 is to be installed   libc6 : Breaks: libc6:i386 (!= 2.17-0ubuntu5) but 2.15-0ubuntu10.4 is to be installed   libc6:i386 : Breaks: libc6 (!= 2.15-0ubuntu10.4) but 2.17-0ubuntu5 is to be installed   libc6-dev : Depends: libc6 (= 2.15-0ubuntu10.4) but 2.17-0ubuntu5 is to be installed   libc6-i386 : Depends: libc6 (= 2.15-0ubuntu10.4) but 2.17-0ubuntu5 is to be installed   libnih1 : PreDepends: libc6 (< 2.16) but 2.17-0ubuntu5 is to be installed E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution). 使用sudo apt-get -f install命令,执行后仍是一样提示,最后查到