查看“Buildroot 系统使用”的源代码
←
Buildroot 系统使用
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
该buildroot系统是基于wayland显示协议的嵌入式系统。系统集成的qt支持wayland、wayland-egl、eglfs、linuxfb显示插件。 ==基础信息== ===用户密码=== 系统默认使用root用户登录,并支持root用户ssh远程登录,给目标系统root用户设置密码为root<br /> <syntaxhighlight lang="bash"> $ passwd root > root > root </syntaxhighlight> ===系统设置=== 系统使用基于[https://wayland.freedesktop.org/ wayland]协议的[https://github.com/wayland-project/weston weston]软件来作为显示后端,开机启动脚本为/etc/init.d/S50launcher,脚本中启动了weston软件后又启动了/usr/bin/QLauncher程序,可将该程序替换为其他Qt程序。weston的配置文件为[https://jlk.fjfi.cvut.cz/arch/manpages/man/weston.ini.5 /etc/xdg/weston/weston.ini]。常用设置参考如下: <syntaxhighlight lang="bash"> [shell] panel-position=none # 取消桌面顶部的任务栏 background-image=/usr/lib/qt/examples/wayland/multi-output/images/background.jpg # 更换背景图片 background-color=0xFF000000 # 使用颜色参数将桌面背景设置为全黑 [launcher] icon=/usr/share/weston/terminal.png path=/usr/bin/weston-terminal # 在桌面顶部的任务栏中添加程序启动图标 [output] name=HDMI-A-1 mode=1920x1080@60.0 transform=90 # 将桌面旋转90度 # 参数可从启动weston时的打印查看到 </syntaxhighlight> 重启脚本命令: <syntaxhighlight lang="bash"> $ /etc/init.d/S50launcher stop $ /etc/init.d/S50launcher start </syntaxhighlight> ==使用示例== ===网络设置=== 系统下有ifupdown和[https://wiki.archlinux.org/index.php/Dhcpcd dhcpcd]两套软件可用来管理网络,开机启动脚本分别为/etc/init.d/S40network和/etc/init.d/S41dhcpcd,ifupdown的配置文件为/etc/network/interfaces,dhcpcd的配置文件为/etc/dhcpcd.conf。dhcpcd功能更丰富,建议使用dhcpcd配置网络。dhcpcd默认会对所有可用网络接口配置动态IP *使用dhcpcd设置网络 设置静态IP,编辑/etc/dhcpcd.conf,添加内容参考如下: <syntaxhighlight lang="bash"> interface eth0 static ip_address=192.168.0.10/24 static routers=192.168.0.1 static domain_name_servers=1.2.4.8 114.114.114.114 </syntaxhighlight> 调整网络优先级,编辑/etc/dhcpcd.conf,添加内容参考如下: <syntaxhighlight lang="bash"> interface eth0 metric 200 interface wlan0 metric 300 interface usb0 metric 400 </syntaxhighlight> *连接wifi 系统下使用[https://wiki.archlinux.org/index.php/Wpa_supplicant wpa_supplicant]软件连接wifi,开机启动脚本为/etc/init.d/S80wifireconnect,配置文件为/userdata/cfg/wpa_supplicant.conf,系统中提供了wifi_start.sh脚本用于输入wifi账号密码并进行连接,并借助系统下的dhcpcd服务配置了动态IP,参考命令如下: <syntaxhighlight lang="bash"> $ wifi_start.sh norco_2.4G norco85258506 # 账号:norco_2.4G # 密码:norco85258506 </syntaxhighlight> *4G模块上网 系统默认支持EC20 4G模块,插上4G模块、插上SIM卡、接上天线即可。系统下使用/etc/norco/init.d/ec20.sh脚本拨号上网,动态获取IP,无需要手动操作 *使用ifupdown设置网络 设置静态IP,编辑/etc/network/interfaces,参考设置如下:<br /> <syntaxhighlight lang="bash"> auto eth0 iface eth0 inet static address 192.168.0.10 gateway 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255 dns-nameservers 1.2.4.8 114.114.114.114 </syntaxhighlight> *常用调试命令 <syntaxhighlight lang="bash"> $ ip link set wlan0 up # 使能wlan0接口 $ iw dev wlan0 scan | grep SSID # 使用iw命令搜索wifi $ iwlist wlan0 scan | grep SSID # 使用iwlist命令搜索wifi $ cp /etc/wpa_supplicant.conf ./1.conf $ wpa_passphrase norco_2.4G norco85258506 >> ./1.conf # 将wifi账号和密码保存到配置文件 $ wpa_cli -i wlan0 disconnect # 关闭已有的wifi连接 $ killall wpa_supplicant # 杀死已启动的wpa_supplicant进程 $ wpa_supplicant -B -i wlan0 -c ./1.conf # 后台运行wpa_supplicant程序,尝试根据配置文件信息连接wifi $ wpa_cli -i wlan0 scan # 使用wpa_cli命令扫描wifi # 先运行wpa_supplicant程序,才可以使用wpa_cli命令 $ wpa_cli -i wlan0 scan_result # 使用wpa_cli命令查看扫描到的wifi $ ip addr add 192.168.1.3/24 brd + dev wlan0 # 设置静态IP $ ip route add default via 192.168.1.1 dev wlan0 # 添加网关 $ ip route delete default via 192.168.1.1 # 删除网关 </syntaxhighlight> {{模板:RKExportPackFirmware}} ==QT开发== ===搭建qt开发环境=== x86主机或虚拟机的系统用Ubuntu16.0或Ubuntu18.04进行交叉编译开发,开发环境配置参考如下:<br /> Ubuntu16.04系统主机编译环境建议安装 <syntaxhighlight lang="bash"> sudo apt-get install repo git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler gcc-aarch64-linux-gnu mtools parted libudev-dev libusb-1.0-0-dev python-linaro-image-tools linaro-image-tools autoconf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sed make binutils build-essential gcc g++ bash patch gzip bzip2 perl tar cpio python unzip rsync file bc wget libncurses5 libqt4-dev libglib2.0-dev libgtk2.0-dev libglade2-dev cvs git mercurial rsync openssh-client subversion asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 libssl-dev texinfo liblz4-tool genext2fs expect patchelf gawk </syntaxhighlight> Ubuntu18.04系统主机编译环境建议安装 <syntaxhighlight lang="bash"> sudo apt-get install asciidoc autoconf autotools-dev bash bc binfmt-support binutils bison build-essential bzip2 chrpath cmake cpio curl cvs dblatex device-tree-compiler diffstat expect fakeroot file flex g++ gawk gcc genext2fs git git-gui gitk g++-multilib graphviz gzip intltool libdrm-dev libglade2-dev libglib2.0-dev libgtk2.0-dev liblz4-tool libncurses5 libqt4-dev libsigsegv2 libssl-dev libudev-dev libusb-1.0-0-dev linaro-image-tools live-build m4 make mercurial mtools ncurses-dev openssh-client parted patch patchelf perl python python-linaro-image-tools python-matplotlib python-pip qemu-user-static repo rsync sed ssh subversion tar texinfo u-boot-tools unzip w3m wget libdb1-compat python3-pyelftools </syntaxhighlight> 主机PC端环境以Ubuntu16.04为例,目标板系统为buildroot嵌入式系统,默认使用root用户登录,并支持root用户ssh远程登录,给目标系统root用户配置密码为root<br /> <syntaxhighlight lang="bash"> $ passwd root > root > root </syntaxhighlight> SDK与系统镜像一同发布,从相应的烧录包中获取SDK。SDK中包含交叉编译工具链、qmake、与目标板系统的rootfs。解压SDK到任意目录$TOP_DIR(示例中以路径/home/lin/trash为例),并运行开发环境配置脚本<br /> <syntaxhighlight lang="bash"> $ tar host.tar.gz -C $TOP_DIR $ cd $TOP_DIR/host $ ./relocate-sdk.sh </syntaxhighlight> ===使用终端命令行编译运行qt程序=== qt程序使用SDK中的qt5 examples例程,通过qmake、make命令进行编译 <syntaxhighlight lang="bash"> $ export PATH=$TOP_DIR/host/bin:$PATH $ cd $TOP_DIR/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/qt/examples/opengl/hellowindow $ qmake $ make </syntaxhighlight> 生成hellowindow程序,可通过scp拷贝到目标板中直接运行<br /> <syntaxhighlight lang="bash"> $ scp hellowindow root@10.168.1.247: $ ssh root@10.168.1.247 $ ./hellowindow </syntaxhighlight> 系统在/etc/init.d/S50launcher开机启动服务中,启动了wayland显示服务,并运行了QLauncher桌面,若使用eglfs或linuxfb显示插件,则需要移除S50launcher服务 <syntaxhighlight lang="bash"> $ mv /etc/init.d/S50launcher ~ $ sync $ reboot </syntaxhighlight> 指定eglfs显示插件运行程序<br /> <syntaxhighlight lang="bash"> $ ./hellowindow -platform eglfs </syntaxhighlight> [[文件:Projects 0.jpg|800px]]<br /> <br /> 指定linuxfb显示插件运行程序<br /> <syntaxhighlight lang="bash"> $ ./calculator -platform linuxfb </syntaxhighlight> ===使用qtcreator开发调试qt程序=== qtcreator集成编辑、编译、运行、调试环境于一体,提升开发效率<br /> <br /> '''安装qtcreator'''<br /> <syntaxhighlight lang="bash"> $ sudo apt-get install qtcreator </syntaxhighlight> <br /> '''添加Qt Versions'''<br /> Tools --> Options --> Build & Run --> Qt Versions --> Add --> 选中qmake路径 --> Apply<br /> [[文件:Qtcreator1 Qt Versions.png]]<br /> <br /> <br /> '''添加Compilers'''<br /> Tools --> Options --> Build & Run --> Compilers --> Add --> GCC -- 选中g++路径 --> Apply<br /> 注意:选中g++路径,并修改ABI一栏明确指示平台架构为arm<br /> [[文件:Qtcreator1 Compilers.png]]<br /> <br /> <br /> '''添加Debuggers(可选项)'''<br /> Tools --> Options --> Build & Run --> Debuggers --> Add --> 选中gdb路径 --> Apply<br /> [[文件:Qtcreator1 Debuggers.png]]<br /> <br /> <br /> '''添加Devices(可选项)'''<br /> Tools --> Options --> Devices --> Add --> General Linux Device --> start Wizard<br /> [[文件:Qtcreator1 Devices.png]]<br /> <br /> 并点击"Test"测试设备联通'''<br /> [[文件:Device Test.png]]<br /> <br /> <br /> '''添加Kits'''<br /> Tools --> Options --> Build & Run --> Kits --> Add --> Apply<br /> [[文件:Qtcreator1 Kits.png]]<br /> <br /> <br /> '''打开 hellowindow 工程并选择Kits'''<br /> Welcome --> Open Porject --> 选择工程路径 /home/lin/trash/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/qt/examples/opengl/hellowindow/hellowindow.pro --> Configure Project<br /> [[文件:Qtcreator1 Configure Project.png]]<br /> <br /> <br /> '''编译运行 hellowindow'''<br /> Build --> Build Project "hellowindow" --> 重启qtcreator --> Build --> Run<br /> [[文件:Projects 1.png|1560px]]<br /> <br /> [[文件:Projects 2.jpg|1560px]]<br /> <br /> <br /> '''配置debug模式'''<br /> Projects --> buildroot-kit --> Build<br /> 注意:找到 Build Steps --> qmake --> Details --> Additional arguments --> 添加 QMAKE_CXXFLAGS+=-g [[文件:Projects 3.png|1560px]]<br /> <br /> Projects --> buildroot-kit --> Run<br /> 注意:找到 Run Environment --> Details --> 点击 Fetch Device Environment<br /> [[文件:Projects 4.png|1560px]]<br /> <br /> <br /> '''重新编译并调试运行'''<br /> Build --> Clean Project "hellowindow"<br /> Debug --> Start Debugging --> Start Debugging<br /> [[文件:Projects 5.png|1560px]]<br /> <br /> [[文件:Projects 6.jpg|1560px]]<br /> <br /> ===打印机的使用=== 系统已集成惠普USB打印机的支持,能够正常打印txt、pdf、图片等格式文件,能够在qt应用程序中直接打印,下面以打惠普印机(型号:HP LaserJet Professional P1108)进行说明: * 插上打印机,查找打印机设备及打印机驱动 <syntaxhighlight lang="bash"> $ lpinfo -v 输出: direct hp:/usb/HP_LaserJet_Professional_P1108?serial=000000000Q87E8S9PR1a $ lpinfo -m | grep 1108 输出: drv:///hp/hpcups.drv/hp-laserjet_professional_p1108.ppd </syntaxhighlight> * 添加默认打印机 <syntaxhighlight lang="bash"> $ lpadmin -p MyPrinter -E -v hp:/usb/HP_LaserJet_Professional_P1108?serial=000000000Q87E8S9PR1a -m drv:///hp/hpcups.drv/hp-laserjet_professional_p1108.ppd $ lpadmin -d MyPrinter </syntaxhighlight> * 打印测试 <syntaxhighlight lang="bash"> $ dmesg | tail | lp </syntaxhighlight> * qt应用程序打印测试 <syntaxhighlight lang="bash"> $ qt_printer_table </syntaxhighlight> <br />
该页面使用的模板:
模板:RKExportPackFirmware
(
查看源代码
)
模板:Ubuntu主机开发环境搭建
(
查看源代码
)
返回至
Buildroot 系统使用
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息