env.sh_smb-2.2.7a 在文章的底部
將env.sh_smb-2.2.7a 放入到解壓後的 samba-2.2.7a/source/ 下
然後運行
./env.sh_smb-2.2.7a
在make 時可能會出現錯誤,
vi nsswitch/winbindd_nss.h
加入:typedef unsigned int uint32;
保存
make
又出現錯誤.....
刪除: typedef unsigned int uint32;
保存
make
(我也不清楚爲什麼,不過,通過了!)
成功
在 source/bin/下得到編譯後的 程序如下
nmbd
smbd
smbclient ...
arm-linux-strip bin/* 壓縮下
file smbclient
:smbclient: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, stripped
成功,
接下來就是要對 文件系統進行配置了
比如:
--with-configdir=$MB2_SAMBA smb.conf 放在哪,這個在 configure 的選項中有配置了
--with-logfilebase=$MB2_SAMBA/log log
--with-lockdir=$MB2_SAMBA/var/locks
--with-piddir=$MB2_SAMBA/var/locks pid
--with-privatedir=$MB2_SAMBA/private .....
然後將寫好的smb.conf放到/tmp/smb中
可以將 samba-2.2.7a/example/下的 smb.conf.default 改寫成 smb.conf 用於開發板
nmbd -i -d 3
smbd -i -d 3 如果配置不正確,這些可以用於DEBUG
nmbd -D
smbd -D
ps
969 root 1092 S /attach/ms0/smb2.7a/nmbd -D
971 root 2048 S /attach/ms0/smb2.7a/smbd -D
這個是用靜太編譯的,所以代碼會大些,但是同樣的配置對3.2.0以上的版本可以正常生成bin文件但在
ARM9板子上都不能運行 . 不知道爲什麼 ,請高手指教下!非常感謝!
file smbclient
:bin/smbclient: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped
在arm9板子上: /attach/ms0/new3.2/smbclient: not found
########################################################
#!/bin/sh
#export LIBS=/usr/local/arm_linux_4.2/arm-none-linux-gnueabi/lib
export CPPFLAGS=-I/usr/local/arm_linux_4.2/arm-linux/include
export LDFLAGS='-L/usr/local/arm_linux_4.2/arm-linux/lib -L/usr/local/arm_linux_4.2/lib/gcc/arm-linux/4.2.1'
export CC='/usr/local/arm_linux_4.2/bin/arm-linux-gcc -O2 -static '
export PATH=$PATH:/usr/local/arm_linux_4.2/bin
export AR=arm-linux-ar
echo /# > arm-linux.cache
MB2_SAMBA=/tmp/smb
./configure /
--host=i686 /
--target=arm-linux /
--disable-cups /
--cache-file=arm-linux.cache /
--disable-iprint /
--disable-pie /
--disable-fam /
--disable-largefile /
--enable-swat=no /
--enable-cup=no /
--enable-iprint=no /
--enable-pie=no /
--enable-fam=no /
--enable-static=yes /
--enable-shared-libs=no /
--enable-dnssd=no /
--with-ldap=no /
--with-ads=no /
--with-cifsmount=no /
--with-utmp=no /
--with-libtalloc=no /
--with-libtdb=no /
--with-libnetapi=no /
--with-libaddns=no /
--with-libsmbclient=no /
--with-libsmbsharemodes=no /
--with-acl-support=no /
--with-sendfile-support=no /
--with-winbind=no /
--with-static-modules=nmbd,smbd,smbclient,smbpasswd /
--with-logfilebase=$MB2_SAMBA/log /
--with-lockdir=$MB2_SAMBA/var/locks /
--with-piddir=$MB2_SAMBA/var/locks /
--with-privatedir=$MB2_SAMBA/private /
--with-configdir=$MB2_SAMBA
# --with-codepagedir=/tmp/codepagedir
make clean
time make
cd ./bin
arm-linux-strip *
cd ..
########################################################