范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

实用如何远程登录开发板?

  在公司里,一些开发环境(网络环境、远程登录环境等)都是由系统工程师搭建好的,我们只管用就可以。但是自己业余玩玩还是得自己动手折腾折腾,这两天我也为自己的板子搭建了一下网络环境、远程登录环境等,整个过程中遇到很多坑。从驱动移植、内核编译,再到上层软件库的交叉编译都遇到了很多坑。下面简单记录一下整个过程,方便自己之后再次使用的时候做参看,也给有需要的朋友小伙伴做个参考。 WiFi网卡(RTL8723)驱动移植1、把WiFi驱动文件夹放到内核文件夹中
  把RTL8723驱动文件夹放到 Linux-4.9.88/drivers/net/wireless 中。WiFi驱动可以在网上找得到。2、修改Kconfig及Makefile文件
  修改 Linux-4.9.88/drivers/net/wireless 文件夹下的Kconfig及Makefile文件。
  在Kconfig文件中添加如下内容: source "drivers/net/wireless/rtl8723BU/Kconfig"
  在Makefile文件中添加如下内容: obj-$(CONFIG_RTL8723BU) += rtl8723BU/
  3、make menuconfig配置内核
  我们需要加载rtl8723BU驱动、配置内核,如配置内核支持USB设备、WiFi设备等。
  在内核路径输入命令 make menuconfig 进入内核配置界面。(1)选中rtl8723BU模块
  (2)支持USB设备
  (3)支持wifi设备
  (4)支持无线网络IEEE 802.11
  配置好之后,可以把rtl8723BU驱动编译进内核,也可以编译成内核模块,然后再动态加载。关于内核模块相关之前分享相关基础驱动的学习的时候也有分享,如:
  基于总线设备驱动模型的LED驱动实践
  基于设备树的LED实例分析
  这里我们直接把rtl8723BU驱动编译进内核。 wpa_supplicant移植
  有了上一步的基础之后,我们就需要对无线网络进行配置,需要借助一些配置工具,wpa_supplicant就是用来配置无线网络的工具。下面我们来把wpa_supplicant移植到板子上。
  交叉编译wpa_supplicant需要依赖于libnl及openssl库,所以我们需要先交叉编译好这两个库。这些库都有很多个版本,可能会遇到版本不匹配的问题,这里我使用的版本如下: openssl-1.0.2 libnl-3.2.23 wpa_supplicant-2.9 (1)交叉编译openssl-1.0.2./config no-asm -shared --prefix=/home/LinuxZn/git_clone/openssl-1.0.2/openssl_build_arm os/compiler:/home/LinuxZn/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc make make install
  需要执行config脚本生成Makefile文件,这里加了一些配置参数,配置编译安装的位置为openssl_build_arm文件夹,配置交叉编译器为arm-linux-gnueabihf-gcc。
  make编译不通过的话,注意Makefile里交叉编译器配置有没有配置正确,正确的配置如: CROSS_COMPILE= arm-linux-gnueabihf- CC= /home/LinuxZn/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/$(CROSS_COMPILE)gcc
  编译得到:
  我们有必要检查一下生成的可执行程序、库是不是arm版本的,否则后面交叉编译wpa_supplicant就会有问题。如:
  (2)交叉编译libnl-3.2.23./configure --prefix=/home/LinuxZn/git_clone/libnl-3.2.23/libnl_build_arm --host=arm-linux-gnueabihf make make install
  交叉编译得到:
  (3)交叉编译wpa_supplicant-2.9
  将wpa_supplicant源码拷贝到linux主机并解压,然后进入wpa_supplicant目录下。 将wpa_supplicant目录下的defconfig拷贝一份并重命名为.config,然后打开.config文件: cp defconfig .config vim .config
  在.config文件中增加如下内容,其中openssl和libnl库的路径就是刚刚openssl和libnl安装的位置: #交叉编译器 CC=arm-linux-gnueabihf-gcc #openssl 库和头文件路径 CFLAGS += -I/home/LinuxZn/git_clone/openssl-1.0.2/openssl_build_arm/include LIBS += -L/home/LinuxZn/git_clone/openssl-1.0.2/openssl_build_arm/lib #libnl 库和头文件路径 CFLAGS += -I/home/LinuxZn/git_clone/libnl-3.2.23/libnl_build_arm/include/libnl3 LIBS += -L/home/LinuxZn/git_clone/libnl-3.2.23/libnl_build_arm/lib
  接着还需要指定 libnl 库的 pkgconfig 路径,环境变量 PKG_CONFIG_PATH 保存着 pkgconfig 包路径: export PKG_CONFIG_PATH=/home/LinuxZn/git_clone/libnl-3.2.23/libnl_build_arm/lib/pkgconfig:$PKG_CONFIG_PATH
  编译: make
  编译可能会报如下错误。这时候把.config里的下面两句屏蔽掉即可: #CONFIG_CTRL_IFACE_DBUS_NEW=y #CONFIG_CTRL_IFACE_DBUS_INTRO=y
  编译结束后会在当前目录下生成wpa_supplicant和wpa_cli两个工具。 将这两个文件拷贝到开发板/usr/bin目录下。
  首先,在开发板/etc目录下新建一个 wpa_supplicant.conf 文件,文件内容如下:ctrl_interface=/var/run/wpa_supplicant update_config=1 ctrl_interface_group=root ap_scan=1 network={   ssid="ChinaNet-9ee9"   psk="s6iyvweq"   key_mgmt=WPA-PSK }
  接着需要新建 /var/run/wpa_supplicant 目录:mkdir -p /var/run/wpa_supplicant
  最后使用下面的命令连接wifi: wpa_supplicant -Dwext -c /etc/wpa_supplicant.conf -i wlan1&
  输出如下信息(wlan1:  CTRL-EVENT-CONNECTED )则表明已经连接成功[root@imx6ull:/etc]# [  968.615223] ------------[ cut here ]------------ [  968.622210] WARNING: CPU: 0 PID: 127 at net/wireless/sme.c:733 __cfg80211_connect_result+0x2e4/0x404 [  968.635489] ---[ end trace c94b130fc23cc767 ]--- wlan1: Associated with 28:bf:89:7b:a1:23 wlan1: WPA: Key negotiation compl[  968.655338] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready eted with 28:bf:89:7b:a1:23 [PTK=CCMP GTK=CCMP] wlan1: CTRL-EVENT-CONNECTED - Connection to 28:bf:89:7b:a1:23 completed [id=0 id_str=]
  这样就是连接成功,再动态获取下ip即可 udhcpc -i wlan1 //-i指定网卡
  接着执行ifconfig就可以看到已经分配ip地址的无线网卡了。这里若wlan1还是没有ip地址,可能是获取的ip地址还没有被写入网卡设备。
  我们开发板分到的ip如:
  这时候如果我们的路由器可以上网的话,就可以ping得通外网,如果路由器没网的话,可以ping我们的Ubuntu主机进行测试。这里我们ping百度测试如下则表明我们的开发板已经搭建好网络环境了:
  这时候就可以愉快地玩耍啦! SSH移植
  上面两步已经让我们的开发板具有无线网络环境了。有必要搭建一个实用的环境:ssh环境。
  Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为 远程登录会话 (甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。 我们工作中经常使用ssh,Ubuntu主机可以很方便地与开发板进行交互。
  交叉编译openssh需要依赖于zlib及openssl库,所以我们需要先交叉编译好这两个库。这些库都有很多个版本,可能会遇到版本不匹配的问题,这里我使用的版本如下: openssl-1.0.2 zlib-1.2.3 openssh-4.6p1 (1)交叉编译openssl-1.0.2
  交叉编译openssl-1.0.2在上面编译wpa_supplicant-2.9已经演示过了,这里不再演示。 (2)交叉编译zlib-1.2.3./configure --prefix=/home/LinuxZn/git_clone/zlib-1.2.3/zlib_build_arm
  得到Makefile,修改里面的CC为交叉编译器: CC=arm-linux-gnueabihf-gcc  CFLAGS=-O3 -DUSE_MMAP #CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7 #CFLAGS=-g -DDEBUG #CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion  #           -Wstrict-prototypes -Wmissing-prototypes  LDFLAGS=-L. libz.a LDSHARED=arm-linux-gnueabihf-gcc CPP=arm-linux-gnueabihf-gcc -E
  然后执行: make make install
  编译得到:
  (3)交叉编译openssh-4.6p1./configure --host=arm-linux-gnueabihf --with-libs --with-zlib=/home/LinuxZn/git_clone/zlib-1.2.3/zlib_build_arm --with-ssl-dir=/home/LinuxZn/git_clone/openssl-1.0.2/openssl_build_arm --disable-etc-default-login CC=/home/LinuxZn/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc AR=/home/LinuxZn/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar make
  其中,各参数含义如下: --host 表示运行的平台。 --with-libs 表示需要的库文件。 --with-zlib 表示库文件 zlib 的安装路径。 --with-ssl-dir 表示 openssl 文件的安装路径。 --disable-etc-default-login 表示不使用当前环境变量的编译器,所以后面配置参数时,最后直接配置 CC 和 AR 这两个编译器。 CC 表示设置使用的编译器。 AR 表示设置使用的编译器的路径。
  编译: make
  这时候在openssh-4.6p1目录下会生成scp 、sftp、ssh、sshd、ssh-add、ssh-agent等工具:
  在板子上新建"/usr/libexec"、"/usr/local/etc "、"/usr/local/bin "三个目录: mkdir -p /usr/libexec /usr/local/etc /usr/local/bin
  下面把相关工具传到开发板上备用:
  ① 将 openssh-6.6p1 下的生成"scp 、sftp、ssh、sshd、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan"等可执行文件拷贝到开发板的 /usr/local/bin 目录下,命令mv scp sftp ssh sshd ssh-add ssh-agent ssh-keygen ssh-keyscan /usr/local/bin/
  ② 将"moduli、ssh_config、sshd_config"拷贝到开发板的 /usr/local/etc 目录下。mv moduli ssh_config sshd_config /usr/local/etc
  ③ 将"sftp-server、ssh-keysign"拷贝到开发板的 /usr/libexec 目录下。mv sftp-server ssh-keysign /usr/libexec
  ④ 使用"ssh-keygen"生成个四个 key 文件"ssh_host_rsa_key""ssh_host_dsa_key" "ssh_host_ecdsa_key"和"ssh_host_ed25519_key"。在openssh-4.6p1目录下,输入命令: ssh-keygen -t rsa -f ssh_host_rsa_key -N "" ssh-keygen -t dsa -f ssh_host_dsa_key -N "" ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N "" ssh-keygen -t dsa -f ssh_host_ed25519_key -N ""
  执行完成之后,将生成的如下几个文件拷贝到开发板的 /usr/local/etc/ 目录下:ssh_host_rsa_key ssh_host_dsa_key ssh_host_ecdsa_key" ssh_host_ed25519_key
  然后将它们的权限修改为 600。 mv ssh_host_rsa_key ssh_host_dsa_key ssh_host_ecdsa_key ssh_host_ed25519_key /usr/local/etc/ chmod 600 ssh_host_rsa_key ssh_host_dsa_key ssh_host_ecdsa_key ssh_host_ed25519_key
  在开发板终端中,使用命令 vi /etc/passwd ,打开 ssh 密钥文件,在 /etc/passwd 文件底行添加以下内容:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
  接着在开发板上新建 root 账户,使用命令: passwd root
  然后在开发板上运行 sshd 二进制文件,命令 /usr/local/bin/sshd
  可能会报错: /usr/local/bin/sshd: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory
  拷贝交叉编译器下的相关库至板子中。再次运行,可能会报错: Could not load host key: /usr/local/etc/ssh_host_key Disabling protocol version 1. Could not load host key
  但是不影响使用。
  最后,在我们的Ubuntu主机中使用ssh登录我们的开发板。首先,需要确认我们的Ubuntu主机的ip与开发板的ip是在同一网段内,如: Ubuntu IP:192.168.1.9 开发板IP:192.168.1.10
  在我们的Ubuntu中使用如下命令登录开发板:
  到了这一步,我们的ssh环境就已经搭建成功了。之后就可以愉快地玩耍了!
  以上就是本次的分享,整个过程要操作的步骤还是比较多的,遇到很多问题,我也参考了很多网上的博文,按照相关步骤来也还是会遇到很多问题,前前后后花了几天的业余时间才搞通的。搞Linux就是这样,会遇到很多问题。大家如果按照这篇文章操作如果遇到与本文的结果不一致的话,也是需要具体问题具体分析,可以结合多篇文章对比对比。
  相关参考:
  1、http://bbs.100ask.net/article/41
  2、https://blog.csdn.net/qq_24835087/article/details/104783990
  3、https://blog.csdn.net/Chihiro_S/article/details/109160899
  4、https://blog.csdn.net/qq_22902919/article
  猜你喜欢:
  必知必会 | 如何理解GNU?
  手头上无LCD却又急着开发UI?LCD模拟器了解一下
  LittlevGL在STM32上的移植使用
  1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。私信回复1024,即可免费获取!

特斯拉将在美国召回60万辆电动汽车,4大车型都有涉及据外媒报道,在2月份宣布召回57。9万辆之后,特斯拉在美国又将召回超过60万辆电动汽车,以修复相关的问题。报道称,此次特斯拉在美国召回的60多万辆电动汽车中,59。5万辆是与BooOPPOK10入网工信部,外观和配置曝光,天玑8000LCD高刷屏4月15日消息,一款型号为PGJM10的新机入网工信部,它就是大家期待已久的OPPOK10。这是首款搭载天玑8000的5G手机,还拥有120Hz高刷LCD屏幕和5000毫安时大电池iPhone12最新售价确认,128GB价格亲民,果粉幸福来得太突然最晚去拥抱5G的就是苹果,由于是一年一大更新的原则,这也使得苹果成为了最后一个踏入5G时代的手机厂商,但这丝毫不会影响它的发展,2020年发布的iPhone12是苹果旗下的首款5GOPPOFindN斩获京东平台13月折叠屏销量ampampamp销售额双冠军从2020年开始,折叠屏手机开始慢慢兴起,同时折叠屏手机将在2022年成为手机市场的霸主。但是近两年来却鲜有折叠屏手机能够惊艳市场用户。但是与2021年年底,一台折叠屏手机横空出世马斯克的世纪骗局之特斯拉汽车马斯克可能有一套很庞大的骗局体系。而特斯拉汽车是这套体系中最小的一部分,但特斯拉汽车是这套系统的基础或者说基石。他这套体系很大,要一点点才能说明白。首先说点技术,有一说一,一体化压汽车业减碳进程超速4月11日,汽车业3月数据出炉,新能源车销量暴增成为常态。在汽车销量排名前十的企业中,比亚迪拔得销量增速头筹,成为其率先宣布停产燃油车的最好注脚。种种迹象表明,在传统车企的快速转型国家安全与新能源汽车标识由数字415红星和光芒组成。数字4的设计,形似宣誓的动作,表现出全国人民誓要维护国家安全的决心,及安全有我的个人责任感。同时也有利于提高415的辨识度,便于传播。红星在数字上方新进展!小米汽车工厂已开工据财联社报道,小米汽车北京工厂所在地块已经开工建设,该地块正在进行平地整理工程,约已完成了十之四五。据报道,北京市规划和自然资源委员会于3月17日发布北京经济技术开发区亦庄新城YZ新能源汽车中国能弯道超车吗新能源汽车中国能弯道超车。传统汽车尾气的碳排放对环境的危害,已经成为全人类的共识,而新能源汽车是发展方向。一为何能弯道超车?汽车的核心技术在于发动机,变速箱,汽车底盘。这些技术需要速看!关乎湖北消费券买车买房退税5月24日,湖北省人民政府办公厅印发加快消费恢复提振若干措施的通知,提出我省今年将通过发放消费券,报废旧车并购买新能源汽车补贴8000元,合理调整住房公积金贷款首付和额度,在允许临前苏联黑科技电离层研究天线天眼天线的缩小版前苏联电离层研究天线(虽然没有被完全遗弃)目前还在使用,充满生锈和奇异的世界末日气氛。高频发射机和天线阵列在80年代,这个地方有一个足球场大小的功能天线,加上乌拉尔超级计算机加持让
中联重科发布自研碳纤维复合材料新技术e公司讯,11月26日,在中联重科新能源产品及碳纤维复合材料新技术发布会上,我国首款国产化碳纤维臂架泵车亮相。中联重科自主研发了碳纤维复材高强金属混合结构技术。该设计计算制造试验成贼心不死?自5G博弈后美国将遏制中国之手,伸向量子技术领域自美国在5G博弈上败兴而归后,其便结束了长达多年的通信垄断,也正因此,美国展开了一系列的报复手段,打压华为中兴等中国企业,通过各种不入流的小动作以及蹩脚的借口干扰我们的科技发展,然35岁还被字节华为等大厂争夺?大龄程序员的好日子到了?谈及35岁,人人惶恐,好似洪水猛兽,仿佛谁到35岁谁遭殃一样。但总有一部分人,能逆流而上,打破魔咒,成为大家羡慕的小众。最近就有人在网络上,坦言自己虽然已经是35岁大龄程序员,但是什么是Web3。0?很多人并不理解什么是Web3。0。今天来讲下我对于这个问题的理解。Web3。0的范式是用户创造用户所有用户控制协议分配。也就是说,在Web3。0中,用户所创造的数字内容,所有权明确HarmonyOS3。0100W,华为nova10Pro或将支持5G虽然今年华为发布的P50系列以及华为nova9系列都不支持5G网络,但从销量上来看,这几款手机的销量依旧十分可观,尤其是华为P50系列还出现过供不应求的状态,可见品牌影响力。不过非电商对社会贡献度电商实质上对社会没贡献,只是更大的中间商,钱让一个人赚好,还是多个人赚好,当然是多个人,哪么电商有没有其实无所为,真真有了最大危机电商能解决问题吗?从几千公里,几百公里寄点东西?一字节跳动,投了一位前阿里女员工字节跳动又出手了,刚刚投了一家中东物流公司。11月30日消息,据彭博社报道,字节跳动投资了总部位于迪拜的物流公司iMile。公开资料显示,这是iMile的首次重大融资。更多细节流出旧手机怎样改造成网络机顶盒用于电视上?旧手机如何改造成网络机顶盒?以下仅代表个人的意见以及看法首先,如果要将旧手机改成网络机顶盒,用于电视机,那么前提条件就是你的手机以及你所使用的智能电视,支持投屏,或者使用视频转接线现在骁龙870的手机中,哪款综合体验是最好的?要说哪款骁龙870的手机体验最好,那肯定是OPPO的FindX3,毕竟这是O家的顶级旗舰,屏幕和拍照都是双链路十亿色,向自家老大哥X3Pro看齐。但OPPOFINDX3的价格也是所马云十年内将倒闭一半实体店,如今应验了,那未来什么会崛起?实体店未来很难再崛起了,是房地产泡沫经济高度压榨实体店铺,过高的实体店租金,成了压垮实体店最后一根稻草!因为电商崛起了,再加上价格透明化,使高房租金很难从商品中转移出去!医院幼儿园联想科技投入要翻三倍,杨元庆成立个人慈善基金,能扭转局面吗?他后面怎么发展我不关心,我只关心几十亿的国有资产怎么转到他们名下的!翘盼春风早归,该文明的文明,需法治的法治,让民心向暖,人间少寒。小民的命运不被恣意践踏,民生的福祉不落空。来路不