说明:环境为虚拟机+cenos,其centos内核为:
//*********************samba配置************************************************
关键steps
1:修改文件 /etc/samba/smb.conf
[global]
workgroup = MYGROUP
# 关键地方,匿名需要改为share 默认为user认证方式
security = share
[suiyuan_wlan] //在windows上面显示的名称
comment = file backup share //注释 无关紧要
path = /wlan#共享的目录 记得要更改访问权限 chmod 755
public = yes
guest ok = yes
wirtable = yes
在windows上面 访问 \\ip\suiyuan_wlan 就可以查看linux上面共享的目录了
2: 重新启动服务
俩个相关的服务是否开启
service smb restart
service nmb restart
[root@centos ~]$uname -a
Linux centos.ocaldomain 2.6.18-194.el5xen #1 SMP Fri Apr 2 16:16:54 EDT 2010 i686 i686 i386 GNU/Linux
使用过的uboot为tekkman制作的。开发板为:mini2440
一:linux上 nfs 建立
配置nfs exports文件
查看nsf 服务是否启动:
[root@centos ~]$service nfs status
rpc.mountd (pid 9313) is running...
nfsd (pid 9310 9309 9308 9307 9306 9305 9304 9303) is running...
rpc.rquotad (pid 9298) is running.
则表示nfs服务正常运行。
查看nfs的配置文件
[root@centos /etc]$cat exports
/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 *(rw,sync,no_root_squash)
/opt/FriendlyARM/ *(rw,sync,no_root_squash)
/mini2440/rootfs *(rw,sync,no_root_squash) //其中/mini2440/rootfs为nfs共享的目录
/mini2440/fsmini *(rw,sync,no_root_squash)
/mini2440/qte_yaffs *(rw,sync,no_root_squash)
当对文件/etc/exprots进行了编辑之后需要重新启动nfs服务
[root@centos /etc]$service nfs restart
Shutting down NFS mountd: [ OK ]
Shutting down NFS daemon: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down NFS services: [ OK ]
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
之后exprots中的文件就可以配共享访问了。
在uboot中需要设置命令参数值:如下
[u-boot@MINI2440]# printenv
bootdelay=1
baudrate=115200
ethaddr=08:90:90:90:90:90
xloy=bmp d 70000
stdin=serial
stdout=serial
stderr=serial
ethact=dm9000
filesize=229DEC
fileaddr=30008000
gatewayip=192.168.1.1
netmask=255.255.255.0
ipaddr=192.168.1.146
serverip=192.168.1.149
bootcmd=nfs 0x30008000 192.168.1.149:/opt/FriendlyARM/uImage;bootm
bootargs=noinitrd root=/dev/nfs proto=tcp,nolock,nfsvers=3, rw nfsroot=192.168.1.149:/mini2440/rootfs ip=192.168.1.146:192.168.1.149::255.255.255.0 console=ttySAC0,115200 init=/linuxrc mem=64M
Environment size: 509/131068 bytes 以上颜色表示的为主要的参数。
其中
内核放到了目录:/opt/FriendlyARM/uImage中。uImage是通过/opt/FriendlyARM/mini2440/tekkaman/tools/mkimage命令将zImage转化为uImage的。在生成内核zImge的过程中,好像可以用make uImage命令生成uboot可以下载的uImage,但是我自己试验的时候不行。
rootfs放到了/mini2440/rootfs 中,rootfs是自己穿件的根文件系统。
同时zImage 到uimage 的转化自己写了一个shell脚本。如下
[root@centos /opt/FriendlyARM]$cat zImage_to_uImage.sh
#!/bin/sh
/opt/FriendlyARM/mini2440/tekkaman/tools/mkimage -A arm -O linux -T kernel -C none -a 30008000 -e 30008040 -n "linux_kernel_`date '+%Y-%m-%d %T'`" -d /opt/FriendlyARM/mini2440/linux-2.6.32.2/arch/arm/boot/zImage /opt/FriendlyARM/uImage
[root@centos /opt/FriendlyARM]$./zImage_to_uImage.sh
Image Name: linux_kernel_2012-02-05 15:03:01
Created: Sun Feb 5 15:03:01 2012
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2268588 Bytes = 2215.42 kB = 2.16 MB
Load Address: 30008000
Entry Point: 30008040
只要在调试内核中的驱动或者根文件系统的时候,不要下载到flash中去,通过nsf直接在内从进行,有助于对flash的使用次数及速度。
同时可以利用uboot中的的ftp来加载内核到内存中去,但是需要在serverip对于机器上面已经开启了tftpf服务。
总结一下linux上面tftp服务的建立及在uboot中使用ftp下载内核到内存中。
二:linux上 tftp 建立
对网络的配置文件进行编辑
[root@centos /etc/sysconfig/networking/devices]$gedit ifcfg-eth0 &
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static //这个应该是“static”,而不是“dhcp”或“none”;
HWADDR=00:0C:29:E7:A4:D5
ONBOOT=yes
DHCP_HOSTNAME=centos.ocaldomain
IPADDR=192.168.1.149
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
然后重新激活下网卡就可以了.
#service iptables stop
#service iptables status
#service network restart
Tfpt服务安装
1:挂载光盘
2:由于tftp跟xinetd有关,因此首先安装xinetd rpm.
[root@centos /media/CentOS_5.5_Final/CentOS]$ls |grep xinet*
xinetd-2.3.14-10.el5.i386.rpm
之后再安装 tftp rpm
[root@centos/media/CentOS_5.5_Final/CentOS]$rpm -ivh tftp-server-0.49-2.el5.centos.i386.rpm
3:修改配置文件 /etc/xinetd.d/tftp
[root@centos /etc/xinetd.d]$vi tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /opt/FriendlyARM //为内核uImage存放的位置与shell zImage_to_uImage.sh中最终生成uImage的位置相同
disable = yes -àno
per_source = 11
cps = 100 2
flags = IPv4
}
4:重新启动xinetd服务
[root@centos /media/CentOS_5.5_Final/CentOS]$ /etc/init.d/xinetd restart
之后uboot通过tftp下载内核uImage可以顺利进行了。
u-boot@MINI2440]# tftp 0x30008000 uImage
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:90:90:90:90:90
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 192.168.1.149; our IP address is 192.168.1.146
Filename 'uImage'.
Load address: 0x30008000
Loading: T #################################################################
#################################################################
#########################
done
Bytes transferred = 2268652 (229dec hex)