arm qt自启+网络自动获取ip地址c
2016-11-05 15:45
691 查看
移植了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,得到下面界面
![](https://oscdn.geek-share.com/Uploads/Images/Content/202007/31/5792a937788705bf66cd217895b12b99)
注:以下前两步是我制作文件系统的需要,关于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)命令,见下图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202007/31/876b8e7d1b43fda2fa1019b03adf79af)
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) --->
如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202007/31/e432c445a8f1bda6e67cea4517ba766d)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202007/31/702130f3b817f25c15f9ed0761299004)
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
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
#!/bin/sh -e
#
# rcqt
#
# start qt
/test/qt_test -qws
注:我的qt执行文件名为qt_test,放在开发板的/test/文件夹下了。
将rcqt文件添加可执行权限(chmod a+x rcqt),在profile中文件中调用刚刚创建的文件,添加语句
[plain] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
# start qt
./etc/init.d/rcqt
这样就OK了。arm qt自启+网络自动获取ip地址http://blog.csdn.net/shengzhadon/article/details/50802699
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
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
#!/bin/sh -e
#
# rcqt
#
# start qt
/test/qt_test -qws
注:我的qt执行文件名为qt_test,放在开发板的/test/文件夹下了。
将rcqt文件添加可执行权限(chmod a+x rcqt),在profile中文件中调用刚刚创建的文件,添加语句
[plain] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
# start qt
./etc/init.d/rcqt
这样就OK了。arm qt自启+网络自动获取ip地址http://blog.csdn.net/shengzhadon/article/details/50802699
相关文章推荐
- arm qt自启+网络自动获取ip地址
- 嵌入式 ARM-Linux配置DHCP自动获取IP地址
- ARM-Linux配置DHCP自动获取IP地址
- ARM-Linux配置DHCP自动获取IP地址
- qt获取网络ip地址的类
- ARM开机自动获取ip及网络启动总结
- Qt编程14:Qt获取本地网络IP地址以及其他属性(以IPv4为例)
- qt获取网络ip地址的类QHhostInfo,QNetworkInterface,QHostAdress
- ARM-Linux配置DHCP自动获取IP地址
- qt获取网络ip地址的类
- QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址
- QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址
- qt获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址
- QT 通过UDP广播获取网络中所有设备ip地址
- ARM-Linux配置DHCP自动获取IP地址
- ARM-Linux配置DHCP自动获取IP地址
- ARM-Linux配置DHCP自动获取IP地址
- QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址
- centos7 配置网络,自动获取ip地址
- Java学习笔记之网络编程基础-根据域名自动到DNS上获取IP地址