arm qt自启+网络自动获取ip地址c

本文详细介绍如何在嵌入式系统中实现网络IP自动获取及QT应用自启动配置。包括busybox配置、内核编译支持、脚本编写及系统初始化设置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

移植了uboot/kernel/fs后,又移植了qt5.5.1,现在需要每次需要press Enter才能进入命令行,而且需要每次手动启动qt程序,手动获取ip地址设置网关等着实麻烦,这里记录一下自动设置的方法。


1.设置ip自动获取

这个网上一大堆,只需要设置udhcpc得到的ip设置到对应网卡就好。步骤如下


(1)制作文件系统时需要选中udhcpc命令,即在busybox的选项中选中udhcpc命令即可。

注:我这里用的busybox是1.23.2版本

在网上(http://www.busybox.net/)下载busybox1.23.2,解压到自己的文件夹中。执行make menuconfig,得到下面界面



注:以下前两步是我制作文件系统的需要,关于udhcpc的步骤是3)中所述。

1)在Busybox Setting → Build Options → Cross Compiler prefix (NEW)选项中设置自己交叉编译器的头,我这里设置为(arm-linux-gnueabi-)

2)选中Busybox Setting → Build Options→Build BusyBox as a static binary (no shared libs)属性

3)选中编译命令(这里只演示udhcpc),进入Networking Utilities 选中[*] udhcp Client (udhcpc) ,用于生成udhcpc(client)命令,见下图



4)如果没有别的需求,退出保存即可。制作文件系统需要后续编译安装,这里就不介绍了。


(2)编译内核是需要对DHCP添加支持

1)在内核源码目录下执行make menuconfig (注:请先设置好编译器和平台等变量,我的是arm, arm-linux-gnueabi-gcc)

2)依次选中并进入[*] Networking support  --->Networking options  --->目录下选中

          <* > Packet socket                 //添加.配置CONFIG_PACKET

          [ * ]     IP: DHCP support         //添加

          [ * ] Network packet filtering (replaces ipchains)  --->  

如下图:




3)其他各项根据自己需要设置,这里不介绍,退出保存,编译内核。


(3)文件拷贝+脚本设置

1)将busybox安装目录下的examples/udhcp/simple.script文件拷贝到开发板/usr/share/udhcpc/下(如果开发板上没有该路径,请自行创建),重命名为default.script文件

2)在开发板的etc/init.d/rcS文件中添加自动获取命令/sbin/udhcpc(不过前提是先启动网卡如ifconfig eth0 up)


2.qt自启动

qt自启动需要在用户登录后进行,所以一定要注意执行时机。

(1)设置自动登录,并进入命令行

1)打开开发板etc目录下的inittab文件,设置进入命令行模式的语句 console::respawn:-/bin/sh,这里的respawn就是自动进入命令行,如果设置为console::askfirst:-/bin/sh,就需要手动敲击Enter键进入命令行。

2)添加启动语句。

在linux中/etc/init.d/rcS一般是登录前的初始化,即在启动过程中的初始化。而profile一般是设置环境变量的,设置完成后即可启动qt了,于是在/etc/init.d中创建rcqt文件,内容为

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. #!/bin/sh -e  
  2. #  
  3. # rcqt  
  4. #  
  5. # start qt  
  6.   
  7. /test/qt_test -qws  
注:我的qt执行文件名为qt_test,放在开发板的/test/文件夹下了。

将rcqt文件添加可执行权限(chmod a+x rcqt),在profile中文件中调用刚刚创建的文件,添加语句

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. # start qt  
  2. ./etc/init.d/rcqt  




这样就OK了。 arm qt自启+网络自动获取ip地址http://blog.youkuaiyun.com/shengzhadon/article/details/50802699




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值