总结下samba-2.2.7a的移植过程:
1.下载源代码
从 http://www.samba.org 下载 samba-2.2.7a.tar.gz 并解压。
2.设置环境变量
export CPPFLAGS=-I/opt/host/armv4l/armv4l-unknown-linux/include/
export LDFLAGS=-L/opt/host/armv4l/armv4l-unknown-linux/lib/
export CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc
3.
./configure --host=i686 --target=arm-linux
3.
make
4. make 后出错
Compiling smbd/server.c
In file included from include/includes.h:683,
from smbd/server.c:22:
include/smb.h:380: parse error before `int32'
(分析:显然少定义)
在include/config.h文件里增加:
#define SIZEOF_INT 4
#define SIZEOF_LONG 4
#define SIZEOF_SHORT 2
#define HAVE_GETTIMEOFDAY_TZ 1
#define USE_SETEUID 1
#define HAVE_IFACE_IFCONF 1
引用自 http://www.linuxforum.net/forum/ ... 5&page=4&o=
在此对前辈表示万分的感谢
5. 继续make再次出错,提示找不到 sys/capability.h
在/include/includes.h
注释掉这一行 #include <sys/capability.h>
6. make 出了一大堆warning但是编译成功
7. 把bin下的smbclient放到开发板上测试,运行提示少个库文件,在交叉编译器的lib里可以找到,放到开发板lib/下。ok!
(如果要使用samba服务器还需要添加相应的配置文件,具体做法可以参考上面的的网址)。
折腾了一天,终于在pxa255的开发板上将samba的移植弄好了,贴出来和大家共享。
一、编译
1、从www.samba.org上下载最新samba的软码包,解压;
2、设置环境变量:
export LD_LIBARY_PATH=/usr/local/arm/3.0/lib/
export CPPFLAGS=-I/usr/local/arm/3.0/include
export LDFLAGS=-L/usr/local/arm/3.0/lib/
export CC=/usr/local/arm/3.0/bin/arm-linux-gcc
export CFLAGS="-march=armv4 -mtune=arm9tdmi -mshort-load-bytes"
3、运行configure
./configure --host=i686 --target=arm-linux
4、在include/config.h文件里增加:
#define SIZEOF_INT 4
#define SIZEOF_LONG 4
#define SIZEOF_SHORT 2
#define HAVE_GETTIMEOFDAY_TZ 1
#define USE_SETEUID 1
#define HAVE_IFACE_IFCONF 1
5、make
二、应用
1、在将要烧到flash的文件系统下创建以下目录:
/usr/local/samba
/usr/local/samba/bin
/usr/local/samba/var
/usr/local/samba/private
/usr/local/samba/lib
注:因为我们编译的时候使用的是缺省配置,程序在运行时会在上述目录里生成文件。
同时编译文件系统应该和编译samba时候应该选用同样的c库。
2、将编译后的samba源码目录下的bin/子目录里的内容拷贝到/usr/local/samba/bin
从网上下载一个简单的smb.conf,经过修改后放到/usr/local/samba/lib。
smb.conf是samba守护进程nmbd、smbd运行的配置文件,在这个文件里指定了
验证、共享用户、共享打印。
3、用smbpasswd -a username 添加一个samba用户,并生成samba密码文件smbpasswd,这个文件
的具体位置同样在smb.conf里指定。
4、运行samba守护进程
运行:nmbd -D, smbd -D,smbd提供 SMB/CIFS server,nmbd提供NetBIOS name server。
我们也可以通过在rc.local里添加,从而系统在启动后就会自动加载samba服务。
5、启动samba的服务后,我们就可以在windows的浏览器窗口里用ip地址和刚刚生成的
samba用户身份来浏览服务器的共享目录。
1.下载源代码
从 http://www.samba.org 下载 samba-2.2.7a.tar.gz 并解压。
2.设置环境变量
export CPPFLAGS=-I/opt/host/armv4l/armv4l-unknown-linux/include/
export LDFLAGS=-L/opt/host/armv4l/armv4l-unknown-linux/lib/
export CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc
3.
./configure --host=i686 --target=arm-linux
3.
make
4. make 后出错
Compiling smbd/server.c
In file included from include/includes.h:683,
from smbd/server.c:22:
include/smb.h:380: parse error before `int32'
(分析:显然少定义)
在include/config.h文件里增加:
#define SIZEOF_INT 4
#define SIZEOF_LONG 4
#define SIZEOF_SHORT 2
#define HAVE_GETTIMEOFDAY_TZ 1
#define USE_SETEUID 1
#define HAVE_IFACE_IFCONF 1
引用自 http://www.linuxforum.net/forum/ ... 5&page=4&o=
在此对前辈表示万分的感谢
5. 继续make再次出错,提示找不到 sys/capability.h
在/include/includes.h
注释掉这一行 #include <sys/capability.h>
6. make 出了一大堆warning但是编译成功
7. 把bin下的smbclient放到开发板上测试,运行提示少个库文件,在交叉编译器的lib里可以找到,放到开发板lib/下。ok!
(如果要使用samba服务器还需要添加相应的配置文件,具体做法可以参考上面的的网址)。
Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1786502
折腾了一天,终于在pxa255的开发板上将samba的移植弄好了,贴出来和大家共享。
一、编译
1、从www.samba.org上下载最新samba的软码包,解压;
2、设置环境变量:
export LD_LIBARY_PATH=/usr/local/arm/3.0/lib/
export CPPFLAGS=-I/usr/local/arm/3.0/include
export LDFLAGS=-L/usr/local/arm/3.0/lib/
export CC=/usr/local/arm/3.0/bin/arm-linux-gcc
export CFLAGS="-march=armv4 -mtune=arm9tdmi -mshort-load-bytes"
3、运行configure
./configure --host=i686 --target=arm-linux
4、在include/config.h文件里增加:
#define SIZEOF_INT 4
#define SIZEOF_LONG 4
#define SIZEOF_SHORT 2
#define HAVE_GETTIMEOFDAY_TZ 1
#define USE_SETEUID 1
#define HAVE_IFACE_IFCONF 1
5、make
二、应用
1、在将要烧到flash的文件系统下创建以下目录:
/usr/local/samba
/usr/local/samba/bin
/usr/local/samba/var
/usr/local/samba/private
/usr/local/samba/lib
注:因为我们编译的时候使用的是缺省配置,程序在运行时会在上述目录里生成文件。
同时编译文件系统应该和编译samba时候应该选用同样的c库。
2、将编译后的samba源码目录下的bin/子目录里的内容拷贝到/usr/local/samba/bin
从网上下载一个简单的smb.conf,经过修改后放到/usr/local/samba/lib。
smb.conf是samba守护进程nmbd、smbd运行的配置文件,在这个文件里指定了
验证、共享用户、共享打印。
3、用smbpasswd -a username 添加一个samba用户,并生成samba密码文件smbpasswd,这个文件
的具体位置同样在smb.conf里指定。
4、运行samba守护进程
运行:nmbd -D, smbd -D,smbd提供 SMB/CIFS server,nmbd提供NetBIOS name server。
我们也可以通过在rc.local里添加,从而系统在启动后就会自动加载samba服务。
5、启动samba的服务后,我们就可以在windows的浏览器窗口里用ip地址和刚刚生成的
samba用户身份来浏览服务器的共享目录。