一下子又是几个月没写呢。是8个月,嗯嗯。很多人应该以为我已经死了,只有烧纸才能联系我的吧。 其实不然,只不过是没有觉得需要写的东西,或者说想说的内容跟这个小站的内容风格不太一致, 也许以后需要改变一下。其间发生了许多事情,比如dooloo的上线,比如 在公司的工作变成下午到半夜工作(夜总会干部),比如说开始锻炼身体已经小有效果,等等。总尔 总而言之,2012年不算一个很虚度的年头,但是2013仍需努力。
废话说了这么多,下面是正文了。
换了一只Android的手机,Huawei U8825d。用着还不错,甚至电池都没有太让我失望,也许是我不玩大型 游戏的缘故。但是手机不能方便的通过wifi以samba或者NFS的模式挂载我笔记本上的内容,让我一直很纠 结。其实在应用市场里面已经有可以使用CIFS挂载的软件了,比如我用的FX,但是前提是你所用的 Android系统内核里面已经启用了cifs选项。Huawei默认没有启用这个参数,甚至都找不到用模块模式编译好 的cifs.ko。我是基本上没自己编译过内核的人,但是没办法,只有自己动手。
准备编译环境
U8825d内核源码
git clone git@github.com:derekhe/huawei-g330d-u8825d-kernel.git
准备cross compile需要用到的android NDK文件
在刚刚git clone
建立的目录里面
# 不论是不是32位都是这个...
wget http://dl.google.com/android/ndk/android-ndk-r8b-linux-x86.tar.bz2
tar xf android-ndk-r8b-linux-x86
ln -s android-ndk-r8b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin
export PATH=$PWD/bin:$PATH
不要用4.6的toolchain,编译不能过的….
export需要用到的几个环境变量
这俩没啥好说的
export ARCH=arm
export SUBARCH=arm
这个要照着刚刚那bin
目录里面的文件名写,编译的时候这前缀自动会加到CC
之类的环境变量前面
export CROSS_COMPILE=arm-linux-androideabi-
这个是华为坑爹的环境变量,没这个,不能过
export ENABLE_BTLA_VER30=true
编译
生成配置文件
make hw_g330d_defconfig
启用cifs参数
make menuconfig
# 选择 file system -> network file system -> cifs ... 选中就好
编译
make -j4
运气好的话一次就可以成功了。我运气不好,N次。
编好的内核是 arch/arm/boot/zImage
,需要用打包工具打包到boot.img里面然后用fastboot烧到手机上去。
我编译好的内核目前看来,cifs挂载没问题,wifi可以,电话可以打,不过好像蓝牙挂掉了。不过哥不用蓝牙,
先这么凑合。