2015年3月1日 星期日

exfat ultis for arm

scons -Q -c => make clean
scons -Q     => make
(1) scons -Q CC=/usr/src/arm-linux-3.3/toolchain_gnueabi-4.4.0_ARMv5TE/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc

(2)修改SConstruct,然後scons -Q
修改SConstruct如下:
......
import os
import platform
import SCons

env = Environment(**ARGUMENTS)
env = Environment(CC='/usr/src/arm-linux-3.3/toolchain_gnueabi-4.4.0_ARMv5TE/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc')   =>新增加
......
......
......



(key)
(2)cross compile
看了一下SConstrct不太懂
後來搜尋一些網頁,在這邊得到很大的幫助
https://community.freescale.com/docs/DOC-94850
因此寫了一個簡單的script來幫助編譯
但比較重要的大概只有這一行:

scons SYSROOT=$PWD DESTDIR=$PWD/release CC=$GCC_PATH/bin/arm-marvell-linux-gnueabi-gcc AR=$GCC_PATH/bin/arm-marvell-linux-gnueabi-ar RANLIB=$GCC_PATH/bin/arm-marvell-linux-gnueabi-ranlib STRIP=$GCC_PATH/bin/arm-marvell-linux-gnueabi-strip install

簡單說就是要指向你cross compiler的環境
改完這邊應該就可以進行編譯了
(3)libexfat/compiler.h
這時候執行scons,應該會出現下列error:

In file included from libexfat/exfat.h:33:0,
                 from fuse/main.c:30:
libexfat/compiler.h:28:2: error: #error C99-compliant compiler is required
scons: *** [fuse/main.o] Error 1
scons: building terminated because of errors.

解決方法就是將compiler.h內的某幾行給註解掉,原因應該很明顯
#if __STDC_VERSION__ < 199901L
#error C99-compliant compiler is required
#endif

compile完會出現mount.exfat執行檔

3.exfat-utils-1.1.1
可參考第2項的(2)與(3)

之後將編譯出來的libfuse.so.*與mount.exfat放到嵌入式平台上
應該就可以用來mount exfat格式的隨身碟了

沒有留言:

張貼留言