一下子又是几个月没写呢。是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可以,电话可以打,不过好像蓝牙挂掉了。不过哥不用蓝牙, 先这么凑合。