【小a原创】一个3918的文件系统


#1

一、交叉编译安装
1、解压交叉编译工具:
sudo tar -jxvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /opt/
2、配置系统设置:
在/etc/profile文件里面添加交叉编译工具链路径:
vim /etc/profile
加上 export PATH=$PATH:/opt/arm-2009q3/bin/ 再把之前的交叉编译屏蔽
遇到问题说明请见下面链接:

blog.chinaunix.net/uid-25847519-id-4444238.html

二、内核编译操作:
1、解压 kernel_V1.0.05.tar.gz 内核包
tar -zxf kernel_V1.0.05.tar.gz 得到kernel文件目录
2、编译内核
cd kernel
cp arch/arm/configs/aimer39_ak3918_defconfig .config
make menuconfig
make zImage
或者:

mkdir build-39

cd kernel
make O=…/build-39 aimer39_ak3918_defconfig
make O=…/build-39 menuconfig
make j=4

出现:
LD vmlinux
SYSMAP System.map
SYSMAP .tmp_System.map
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
AS arch/arm/boot/compressed/head.o
LZO arch/arm/boot/compressed/piggy.lzo
/bin/sh: 1: lzop: not found
make[2]: *** [arch/arm/boot/compressed/piggy.lzo] 错误 1
make[1]: *** [arch/arm/boot/compressed/vmlinux] 错误 2
make: *** [zImage] 错误 2
解决:
a、lzo安装
1)、wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz
2)、 sudo su
tar xzvf lzo-2.06.tar.gz
3)、cd lzo-2.06
./configure --enable-shared
4)、make
make install
b、lzop安装:
1)、wget ‘http://www.lzop.org/download/lzop-1.03.tar.gz
2)、tar xzvf lzop-1.03.tar.gz
3)、cd lzop-1.03
./configure
ii)若出现configure: error: cannot compute sizeof (size_t)
See `config.log’ for more details

这个问题的原因是linux在查找动态链接库时,忽视了/usr/local/lib中一系列*.so,将其添加到配置文件中,就可以解决。

解决办法(有root权限)

1、打开/etc/ld.so.conf这个配置文件

2、把下面这行内容添加进去

/usr/local/lib

3、保存文件,执行命令:/sbin/ldconfig

(没有root权限)

对于非root用户来说,/etc/ld.so.conf是read-only的,想要解决这个问题也是有办法的。在vim74目录下先执行如下命
令:export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH // 为编译器设定额外的搜索路径,原理基本类似,
修改ld.so.conf的根本原因只是为了让编译器在make过程中去对应的路径下寻找依赖,这里直接指定搜索路径,是一个效果。
接下来, 就正常了
4)、make
make install

三、集成步骤操作如下:
1、tar -zxf rootfs_V1.1.00.tar.gz
2、cp boalib_V1.1.00.tar.gz wifilib_V1.1.00.tar.gz akmedialib_V1.1.00.tar.gz akuiolib_V1.1.00.tar.gz .1.00.tar.gz alsalib_V1.1.00.tar.gz librootfs/
cd librootfs/
tar -zxf 拷贝过去的压缩包
3、tar -zxf ipcamera_V1.1.00.tar.gz
cd ipcamera/
make (cp: 无法 stat “akiperflib/*”: 没有该文件或目录 这个提示不要管,是开发人员调试用的)
make install
4、cd demos
tar -zxf recorder_V1.1.00.tar.gz MediaPlayer_V1.1.00.tar.gz Audio_Recorder_V1.1.00.tar.gz
修改各个目录下面的Makefile:
LOCAL_C_INCLUDES := …/…/librootfs/akmedialib/include/akmedialib
…/…/librootfs/alsalib/include
LOCAL_LDFLAGS := -L…/…/librootfs/akmedialib/usr/lib
-L…/…/librootfs/alsalib/usr/lib
改为:
LOCAL_C_INCLUDES := …/…/targetfs/librootfs/akmedialib/include/akmedialib
…/…/targetfs/librootfs/alsalib/include
LOCAL_LDFLAGS := -L…/…/targetfs/librootfs/akmedialib/usr/lib
-L…/…/targetfs/librootfs/alsalib/usr/lib
分别 make
拷贝各个目录下面生成的执行文件到
cp -fa BUILD_recorder_EXEC/recorder …/…/targetfs/ipcamera/rootfs/rootfs/usr/bin/ (recorder只是一个,还有两个目录)

四、生成文件系统:
1、编译与文件系统制作:
到ipcamera目录下面 make reinstall
cd ipcamera
make reinstall

问题1:在制作文件系统时候出现下面问题 (是系统版本过低导致的)
./mkfs.jffs2: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.8’ not found (required by ./mkfs.jffs2)
解决办法:
我将ubuntu8.04一直更新到ubuntu12.04之后再去编译,就可以成功了。
咳咳,编译通过,Lubuntu14
感谢原作者
【无从考证】