移植和配置xinetd 移植和配置等相类似执行文件&&tftp-hpa客户端使用说明

本文详细介绍了在嵌入式系统中进行交叉编译的过程,特别是针对xinetd服务的编译与部署步骤。从环境变量设置到源码编译,再到目标板上的配置与启动,提供了完整的操作指南。

基本理论:

$ export TOOL_PATH=path_to_xycloud_devtools $ export PATH=${TOOL_PATH}/gcc/bin:$PATH $ ./configure --host=arm-linux-gnueabihf --build=x86-linux

具体见:https://docs.xycloud.com/products/1/3/2.html

如果出现:命令 'ls' 可在 '/bin/ls' 处找到 由于/bin 不在PATH 环境变量中,故无法找到该命。。。,解决方法:$cd /etc/environment,执行 $source /etc/environment

具体见:https://jingyan.baidu.com/article/63acb44af85a2861fcc17efb.html

-----------------------------------------------------------------------------------------------------------

1、 下载xinetd

官网http://www.wendangwang.com/连接失败,于是到http://www.wendangwang.com的下载中心下载

版本为xinetd-2.3.14。

2、 编译

解压源码到工作目录tar zxvf xinetd-2.3.14.tar.gz;

在xinetd-2.3.14目录下配置:

./configure --host=arm-linux --prefix=/home/xxxx/testrootfs/usr

交叉编译:make

安装:make install

之后在prefix指定的目录中将会创建sbin和man目录,xinetd可执行文件在sbin中。其中还有两个文件itox和xconv.pl,是可以将原来inetd配置文件(/etc/inetd.conf)转换为xinetd配置文件(/etc/xinetd.conf),一个是可执行文件一个是Perl脚本,功能一样。

缩减大小,xinetd将从500多K字节缩减为120K左右:
arm-linux-strip /home/xxxx/testrootfs/usr/sbin/itox

arm-linux-strip /home/xxxx/testrootfs/usr/sbin/xinetd



3、 在目标板中部署

将/home/xxxx/testrootfs/usr/sbin/中所有文件复制到目标板文件系统的/usr/sbin/中;

在目标板控制台执行inetd配置文件转换:

$xconv.pl < /etc/inetd/conf > /etc/xinetd.conf

修改/etc/rc.d/init.d/netd,将其中

base=inetd

改为

base=xinetd

至此,重启开发板后自动运行的就是xinetd了。
具体见:https://www.wendangwang.com/doc/e7db401c08ddc229df7f5533

-----------------------------------------------------------------------------------------------------

1、板子 sudo apt-get install tftp-hpa

2、主机chmod 777 tftp—dir

3、tftp 192.168.1.122 -c put lib2.tar.gz lib2.tar.gz

 

在Linux系统中,TFTP(Trivial File Transfer Protocol)服务可以通过不同的软件包组合来实现。常见的安装方式包括 `sudo apt-get install tftp-hpa tftpd-hpa` `sudo apt-get install xinetd tftpd tftp`。这两种方式在架构设计、配置方式以及服务运行模式等方面存在显著差异。 ### 服务架构与运行方式 `tftpd-hpa` 是一个独立运行的 TFTP 服务守护进程,它不需要依赖任何其他服务即可运行。安装完成后,`tftpd-hpa` 会以独立服务的形式启动,并监听 UDP 69 端口。其配置文件通常位于 `/etc/default/tftpd-hpa`,用户可以通过修改该文件指定服务目录、运行用户以及启动参数等[^1]。 比之下,`tftpd` 通常与 `xinetd` 服务结合使用。`xinetd` 是一个超级守护进程,负责管理多个网络服务的启动与运行。在该模式下,`tftpd` 作为 `xinetd` 的子服务,只有在接收到 TFTP 请求时才会被启动,这种方式节省了系统资源,但响应速度略逊于独立服务[^4]。 ### 配置复杂度与灵活性 使用 `tftpd-hpa` 时,配置较为直接,用户只需修改 `/etc/default/tftpd-hpa` 文件即可完成服务目录、权限设置等。例如: ```bash TFTP_USERNAME="tftp" TFTP_DIRECTORY="/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-l -c -s" ``` 上述配置指定了运行用户、服务目录、监听地址以及运行参数,如 `-c` 允许上传文件,`-s` 指定服务目录等[^1]。 而 `xinetd` 模式下的 `tftpd` 配置则需要修改 `/etc/xinetd.d/tftp` 文件,示例配置如下: ```bash service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot -c disable = no } ``` 此配置文件定义了服务类型、协议、运行用户、服务器路径以及启动参数等。`-s` 表示指定服务目录,`-c` 表示允许上传文件[^4]。 ### 服务启动与管理 `tftpd-hpa` 的服务可以通过 `systemctl` 或 `service` 命令直接管理,例如: ```bash sudo service tftpd-hpa restart ``` 而 `xinetd` 模式下的 `tftpd` 服务则依赖于 `xinetd` 的管理,重启服务时需要重启 `xinetd`: ```bash sudo service xinetd restart ``` ### 性能与适用场景 由于 `tftpd-hpa` 是独立运行的服务,其性能更为稳定,适用于需要频繁进行 TFTP 传输的环境,如 PXE 启动服务器、嵌入式设备固件更新等。而 `xinetd` 模式下的 `tftpd` 更适合资源受限的系统或偶尔使用 TFTP 的场景,因为它仅在需要时才启动服务,节省了系统资源。 ### 测试方式 无论采用哪种方式安装,测试 TFTP 服务的方法基本一致。可以通过以下命令测试服务是否正常运行: ```bash tftp 127.0.0.1 tftp> get test.txt tftp> put test1.txt tftp> q ``` 如果能够成功下载上传文件,则表示服务安装成功[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值