Mac OSX下执行crosstool-ng提示“Your file system ‘xxxx’ is *not* case-sensitive!”

Mac下面使用HomeBrew安装了crosstool-ng来编译树莓派的代码,结果在执行的时候报告如下错误:

比较简单的解决方法就是创建一个支持大小写区分的文件,作为一个分区挂载,然后把代码拷贝到这个分区中执行编译。

1.创建分区文件

2.挂载分区

早期版本的Mac OS X

对于OS X EI Capitan(10.11.5)版本而言,生成的文件名变成了raspberry.dmg.sparseimage因此需要使用这个文件来挂载

挂载后会在桌面生成一个名为Raspberry的磁盘文件夹生成,直接操作这个目录即可。

3.修改crosstool-ng的编译工具下载目录

如下图的方式进行操作:

1.选择"Paths and misc options",并选中"Select"之后点击回车按键

Crosstool-NG-PathAndMiscOptions

2.点击向下的方向按键,,找到"(${Home}/src) Local tarballs directory",这个项,并选中"Select"之后点击回车按键,修改为"/Volumes/raspberry/src",然后继续向下,找到"(${Home}/x-tools/${CT_TARGET}) Prefix directory",这个项,并选中"Select"之后点击回车按键,修改为"/Volumes/raspberry/x-tools/${CT_TARGET}"

Crosstool-NG-PathAndMiscDirectory
Crosstool-NG-PathAndMiscOptionsPrefixDirectoryVolumesraspberry

修改后的结果如下图:

Crosstool-NG-PathAndMiscDirectoryChange
完成操作后,不断快速按下Esc按键,在最后弹出的确认保存窗口中选择保存即可,如下图:

Crosstool-NG-Configure-Save

4.卸载分区

升级到OS X Yosemite后 Android Studio启动崩溃 Symbol not found: _CGContextSetAllowsAcceleration

Mac OS 升到Yosemite后, 打开 Android Studio报

解决方法,是重新安装Apple的Java支持:
Apple官网下载或者本站下载

mac上通过brew安装opencv

在Mac OSX上如果想使用OpenCV,可以通过自己手动编译源码的方式,但比较繁琐。

推荐使用Homebrew来进行安装,步骤很简单,如下:

等待几分钟,即可安装成功。

Mac SSD TRIM的终极方案

该方法在 Mac 10.9.1 版本上面有效。

Enable SSD TRIM for Mac, Ultimate Solution. TRIM终极方案 我的Mac机型是Mac mini Late 2012,把硬盘换成了SSD。试了多种打开SSD TRIM的教程,总不能成功,有一次还弄到系统无法启动。今天大盘开始盘整了,于是可以静下心来把那些教程仔细debug一遍,发现了问题所在,成功开启了SSD TRIM。

最重要的先讲:在做这个工作之前,用Time Machine备份机器。

其次是怎么会弄到系统无法启动?原因是在改写IOAHCIBlockStorage这个文件的时候,把权限破坏了。一旦权限不对,系统会显示警告窗口,说无法加载IOAHCIBlockStorage。千万不要忽视这个警告,去重启机器,而是应该先修复权限。最简单最彻底的办法就是使用Disk Utility,选择系统盘,然后Repare Disk Permissions.

为什么有些教程会不起作用呢?这是因为不同的系统版本,如10.8.1、10.8.2,加上不同的机型,特别是新机型,系统文件有可能是不一样的。
如果教程不起作用,那就要先理解这些开启SSD TRIM办法的实质:其实就是把IOAHCIBlockStorage文件中硬盘型号的字符“APPLE SSD”这九个字节抹去,替换成全零字节。但是在整个文件中做全替换也不行,只能替换含义为硬盘型号字符的字节。
就因为各种系统和机型的文件不同,同时又要选择性地做替换,于是出现了不同的教程。这里介绍的终极方案,就是先查看你机器上的IOAHCIBlockStorage文件,然后修改教程中的一条命令,然后再执行那些命令。

ugmbbc_001734902074378

用一个二进制编辑器(比如说“Hex Fiend”)打开

搜索十六进制“52 6F 74 61 74 69 6F 6E 61 6C 00”,也就是“Rotational”字串加上0结尾。整个文件我就只搜到一个匹配的。查看后面是不是9个字符的“APPLE SSD”,如果是的话,就看“APPLE SSD”接下来的字符是什么。图中是“Time To Ready”,记下这个字串的第一个字符,是“T”,他的十六进制是54。

接下来就修改那些教程中的命令,请看https://gist.github.com/3334193,点击“Download Gist”下载文件,然后双击打开,就会自动解压缩。修改文件enable_trim.sh中的(x00{1,20}x51)中的51为上文的54,修改完就是(x00{1,20}x54),保存文件。解压的这个enable_trim.sh文件是没有执行权限的,那就在控制台运行“chmod 755 enable_trim.sh”,赋予执行权限。

注意,对于由于某墙封锁导致的不能访问github 问题,可以直接复制如下代码来自己生成sh文件

在运行“./enable_trim.sh”之前,一定要保证你现在的

文件一定是未经修改的原系统文件。执行完毕后,系统如果没有弹出什么提示框,那就万事大吉了。有兴趣的话,你还可以用Hex Fiend查看一下修改后的文件,和原文件相比,有啥不同。

ugmbbc_0016571229804857
手工重启机器后,应该就是成功了。
ugmbbc_0017201152901000

参考连接 http://www.cnbeta.com/articles/219752.htm

Mac Gradle 编译报告Failure initializing default system SSL context

Mac 10.9 版本下使用Gradle 编译 Android 项目,报告错误

使用 -debug 参数,得到的详细输出如下

可以看到,异常信息为

到具体的目录下面去看,这个文件果然是不存在的,有些版本链接到了一个不存在的目录,这种情况一般是经历过系统升级,往往会造成这个现象,另外,就是系统安装的Java 是Apple 提供的 Java 版本,而不是 Orcale 官网下载的独立版本。

解决方法是可以到Orcale 官网下载最新版本的 Java ,安装替换即可解决问题。

使用 Homebrew 安装指定版本的软件

在命令行下使用

就可以安装 FORMULANAME 对应的工具,它会处理好依赖关系,非常方便。默认情况下,安装最新版本。但是现在在使用 Gradle 的时候,最新版本的 Gradle 是1.10,但是编译Android 的项目失败,只能降级成 1.9 版本的才行,解决方法如下

1.查看 brew 支持哪些版本的 gradle

可以看到,支持 1.9 版本的。

2. 进入 brew 所在的git仓库

3.复制粘贴刚才 brew versions gradle 命令的提示,我们需要1.9 版本的,因此执行

此时,本地仓库中的gradle 就被替换成了 1.9 的链接地址信息。

4. 安装

可以看到输出的信息已经是 1.9 的版本了。

Java: Finding/Setting JDK/$JAVA_HOME on Mac OS X

As long as I’ve been using a Mac I always understood that if you needed to set $JAVA_HOME for any program.

On my machine this points to the 1.6 JDK:

This was a bit surprising to me since I’ve actually got Java 7 installed on the machine as well so I’d assumed the symlink would have been changed:

Andres and I were looking at something around this yesterday and wanted to set $JAVA_HOME to the location of the 1.7 JDK on the system if it had been installed.

We eventually came across the following article which explains that you can use the /usr/libexec/java_homecommand line tool to do this.

For example, if we want to find where the 1.7 JDK is we could run the following:

And if we want 1.6 the following does the trick:

We can also list all the JVMs installed on the machine:

Mac OS X 10.9 Android NDK r9c 编译 FFTW 3.3.3

在Mac OS X 10.9 上使用 NDK  r9c 编译 FFTW 3.3.3

1.下载FFTW源代码

2.建立一个Android 工程,并且添加 NDK 支持

3.解压缩FFTW的源代码到刚刚建立的Android 目录下面 文件夹名字为 fftw-3.3.3

4.建立编译脚本 build.sh 并在命令行下执行

  • INSTALL_DIR tells make to install the compiled library in our project's jni directory
  • PATH tells make to look for our tool chain in the NDK directory. Note that you might have to change this value - explore your NDK directory to make sure that the path exists
  • SYS_ROOT tells make where to look for system libraries and header files
  • ./configure --host=arm-eabi  tells make that we are cross-compiling a ARM architecture.

5.修改Android.mk 文件

华为Android手机在MAC系统下ADB识别

使用MACOS发现在Android开发环境完整的情况下,接入小米,SAMSUNG,HTC,ZTE等手机都可以自动识别,如果暂时不能识别,只需要在 adb_usb.ini 中设置之后也可以识别,并可以在DDMS中查看LOGCAT,唯独华为的手机不可识别。USB开发调试也设置了,但是在Windows下却可以识别,为什么呢?别急,有工程模式:

在拨号界面输入:

找到->"ProjectMenu"->“后台设置”->“USB端口设置” 改成 "GOOGLE模式"

注意,此时手机提示要重启,但是不要重启。重启之后会还原为正常模式的。

如果还是不能识别,则切换成其他模式,反复切换一下,最后设置成"GOOGLE模式" ,或者重新插拔一下数据线,就可以识别到了。