尝试从一开发F1C100s应用
既然尝试从零构建F1C100s开发环境成功,我们便开始开发这个神奇的芯片吧。
在这之前,我们写了一个hello程序,我们是怎么装进文件系统里的呢?拷贝到根文件系统,与uboot,内核打包在一起,然后烧写。显然,这样子影响flash寿命不说,肯定大大的减少了我们的开发效率。所以我们不得不采取一种高效的措施,将文件传输到我们的目标板中。
废话不多说,随意概括一下,本贴将包含了以下内容:
1、终端传文件给linux
注意,本贴禁止回复"mark"!
注意,本贴禁止回复"mark"!
注意,本贴禁止回复"mark"!
----------------------------------------
1、使用终端传文件给linux
目标板与外界传文件的方法非多,但是其他方法(NFS启动、wifi传输等),对于我们现在从零构建的工程基础,显然,非常不现实。经过多方面的考虑,最终,选择使用已经能够成功控制单板的串口终端来传输文件。
网上有一个工具,lrzsz,我们可以获取其源码,编译到目标板中。
(1)获取资源
①lrzsz源码:https://whycan.cn/files/members/1845/lrzsz-0_12_20_tar.gz
②终端工具:https://whycan.cn/files/members/1845/SecureCRT.zip
(2)编译这个lrzsz
①新建一个目录存放这个包
mkdir /home/book/f1c100s/lrzsz
②自己想办法将下载到的lrzsz-0_12_20_tar.gz上传到/home/book/f1c100s/lrzsz目录下。
③进入该目录并解压lrzsz包
cd /home/book/f1c100s/lrzsz
tar -xzvf lrzsz-0_12_20_tar.gz
④进入解压出来的目录
cd lrzsz-0.12.20/
⑤输入一下命令生成配置文件
./configure --cache=arm-linux
⑥明确自己交叉编译工具链的位置
我们使用buildroot输出的交叉编译工具链,与根文件系统一致。我的编译器的目录位于这个路径:
/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc
⑦使用这个交叉编译工具链,编译它
make CC=/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc
编译出来,生成了两个文件,复制这两个文件到我们的根文件系统bin目录下
sudo cp ./src/lsz /home/book/f1c100s/rootfs/bin/
sudo cp ./src/lrz /home/book/f1c100s/rootfs/bin/
⑧看看我们有没有缺少什么运行库
==>检查第1个文件
/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-readelf -d ./src/lsz
可以看到,这个程序依赖于这样的运行库
标记 类型 名称/值
0x00000001 (NEEDED) 共享库:[libc.so.0]
==>检查第2个文件
/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-readelf -d ./src/lrz
发现依赖库跟第一个一样。
⑨复制依赖库,到根文件系统的lib目录下。
那么问题来了,依赖库放在哪里呢?我们在交叉编译工具链哪里搜索一下:
cd /home/book/f1c100s/buildroot-2017.08/output/host/
find -name "libc.so.0"
结果如下:
./arm-buildroot-linux-uclibcgnueabi/sysroot/lib/libc.so.0
复制这个库文件到根文件目录lib中,
sudo cp /home/book/f1c100s/buildroot-2017.08/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/lib/libc.so.0 /home/book/f1c100s/rootfs/lib/
⑩打包并烧写镜像。
sudo sh /home/book/f1c100s/BuildMyImage.sh
(3)使用这个工具
使用串口CRT工具连接终端,输入命令"lrz",回车,CRT会弹出一个框框,我们可以发送一个文件到目标板
上个图就好了,自己折腾吧。速度有点慢,聊胜于无。(/笑)
最近编辑记录 LinjieGuo (2020-05-01 16:31:15)
离线
串口文件管理器:
https://whycan.cn/t_3327.html
源码:
https://github.com/kekemuyu/gofile
最近编辑记录 kekemuyu (2020-05-01 17:53:28)
离线
很多终端工具都支持X/Z modem,很稳定。开发人员使用起来也算方便。
最近编辑记录 LinjieGuo (2020-05-02 11:45:51)
离线
请问大神,有win10下的开发环境吗
?
离线
很多终端工具都支持X/Z modem,很稳定。开发人员使用起来也算方便。
最好的是通过串口把f1c100s的文件系统挂载到本地电脑,这个有点难搞
离线
既然用了buildroot,为啥不直接打开这个功能编译呢……
(我个人是喜欢用dropbear来ssh连接到电脑的,只需要设置usb gadget网卡就可以了)
离线
ums了解一下
离线
利用uboot的ums,通过usb直接将spi nand挂载到pc
离线
或者利用nfs通过网络挂载
离线
我比较懒,选择了32M的Flash做存储,所以还勉强能装下Qt的库,所以就用Qt来开发应用了。
配置好网络与Qt Creator后,可以直接在Qt Creator中将应用发布到开发板上运行。
离线
开发板上搭一个FTP服务器,如VSFTPD,电脑直接FTP推送
离线
才知道lrzsz和ums......
离线
一直都是用usb,有空试试这方法
离线
请问,编译主线linux时的工具链,跟rootfs有啥区别。为啥混用会有问题?
离线
利用uboot的ums,通过usb直接将spi nand挂载到pc
ums怎么用呀?连上电脑好像啥都没有,就一个usb设备,没见到盘符
离线
这个不能在putty软件用吗,卡住了,没有弹出来
离线
用Scrt,上面留链接了
要许可证,这个要买的吗
离线
要许可证,这个要买的吗
只能用这个才可以用lrz吗
离线
感谢楼楼大力支持啊,但是我觉得是不是adb更好用啊?而且速度也快。
离线
楼主能不能出一个SPI NAND启动教程啊
离线
是的,adb速度比较快!
关于adb功能的启用,在Linux3.14上,楼主有什么好的推荐吗?
我现在打开了usb gadget驱动,usb functionfs驱动,编译好了adbd、adb,但是板子接电脑一直不能识别(一点动静没有)。不明原因啊,痛苦了几天了。
楼主有空帮忙看看,多谢啦。
转 123楼:https://whycan.cn/t_2794.html
麻烦问下,g_ffs.ko 以及adbd都正常生成了。但是启动adbd之后,f1c200s的USB一直没有任何动静,哪位大神能给指点下迷津?
1. lsusb命令,在系统中只能看到一个设备:Bus 001 Device 001: ID 1d6b:0002。下有截图。
2. 系统中没有otg相关节点,所以没办法手动调整USB的host模式。
3. dmesg命令中,有g_ffs musb-hdrc.1.auto: unregistering UDC driver [g_ffs]。下有截图。
4. 已经将PE2改成ACTIVE_LOW了,但是看原理图上PE2 和 USB没有任何联系,不知道为什么要这样改。https://whycan.cn/files/members/1954/none_20200629-2359.jpg
https://whycan.cn/files/members/1954/dmesg信息.jpg
最近编辑记录 willX (2020-07-02 10:39:00)
离线
关于adb功能的启用,在Linux3.14上,楼主有什么好的推荐吗?
我现在打开了usb gadget驱动,usb functionfs驱动,编译好了adbd、adb,但是板子接电脑一直不能识别(一点动静没有)。不明原因啊,痛苦了几天了。
楼主有空帮忙看看,多谢啦。
不好意思,这个版本我也没搞定。
离线
关于adb功能的启用,在Linux3.14上,楼主有什么好的推荐吗?
我现在打开了usb gadget驱动,usb functionfs驱动,编译好了adbd、adb,但是板子接电脑一直不能识别(一点动静没有)。不明原因啊,痛苦了几天了。
楼主有空帮忙看看,多谢啦。
Linux3.4 bsp linux下还没有玩过adb,你现在碰到什么问题呢,把错误信息贴出来或许路过的朋友可以帮到你。
离线
学习了,学习了,学习了,hhh
离线
楼主能不能出一个SPI NAND启动教程啊
同求,128M spi nand
离线
学习了学习了,大佬
离线
把错误信息贴出来或许我可以解决。
把错误信息贴出来或许我可以解决。
离线
你这样水积分可不好喔。
像我这种小白也是没办法说出有营养的话的,都是这种哈哈哈
离线
请问大神,有没有win10下的开发环境?
离线
楼主有没有试过在Mac下进行编译调试?
离线
这个论坛真是人才辈出啊,
新人路过。
从零到一,Mark一下,跟着楼主的教程走一走。~
```
# Here we go
```
离线
楼主,麻烦问下,为什么你编译arm上跑的应用软件时,使用的是:make CC=/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc
为什么不用直接使用编译kernel时的交叉编译器呢? 比如这个:arm-linux-gnueabi-gcc-7.2.1
疑问: 为什么会出现两套交叉编译器呢?
离线
楼主,麻烦问下,为什么你编译arm上跑的应用软件时,使用的是:make CC=/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc
为什么不用直接使用编译kernel时的交叉编译器呢? 比如这个:arm-linux-gnueabi-gcc-7.2.1疑问: 为什么会出现两套交叉编译器呢?
根文件系统是buildroot出来的,buildroot里面自己下载了一个编译器,用来编译根文件系统。
我们的内核是单独编译的,所以有2套编译器。
如果buildroot里包含内核,应该编译器就相同了。
我是这样理解的,根文件系统用什么编译器,应用程序就应该用什么编译器。
最近编辑记录 LinjieGuo (2021-01-12 11:41:34)
离线
我用的 deepin 写的驱动,内核和 nano 不一样,驱动在nano上用不了,怎么办?
离线
你好 linjie
我在编译 的时候出现
l10nflist.c:42:19: fatal error: argz.h: No such file or directory
# include <argz.h>
^
compilation terminated.
make[2]: *** [Makefile:78: l10nflist.o] Error 1
make[2]: Leaving directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20/intl'
make[1]: *** [Makefile:172: all-recursive] Error 1
make[1]: Leaving directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20'
make: *** [Makefile:282: all-recursive-am] Error 2
不知如何处理?
尝试从一开发F1C100s应用
既然尝试从零构建F1C100s开发环境成功,我们便开始开发这个神奇的芯片吧。
在这之前,我们写了一个hello程序,我们是怎么装进文件系统里的呢?拷贝到根文件系统,与uboot,内核打包在一起,然后烧写。显然,这样子影响flash寿命不说,肯定大大的减少了我们的开发效率。所以我们不得不采取一种高效的措施,将文件传输到我们的目标板中。
废话不多说,随意概括一下,本贴将包含了以下内容:
1、终端传文件给linux注意,本贴禁止回复"mark"!
注意,本贴禁止回复"mark"!
注意,本贴禁止回复"mark"!
----------------------------------------
1、使用终端传文件给linux
目标板与外界传文件的方法非多,但是其他方法(NFS启动、wifi传输等),对于我们现在从零构建的工程基础,显然,非常不现实。经过多方面的考虑,最终,选择使用已经能够成功控制单板的串口终端来传输文件。
网上有一个工具,lrzsz,我们可以获取其源码,编译到目标板中。
(1)获取资源
①lrzsz源码:https://whycan.cn/files/members/1845/lrzsz-0_12_20_tar.gz
②终端工具:https://whycan.cn/files/members/1845/SecureCRT.zip
(2)编译这个lrzsz
①新建一个目录存放这个包
mkdir /home/book/f1c100s/lrzsz
②自己想办法将下载到的lrzsz-0_12_20_tar.gz上传到/home/book/f1c100s/lrzsz目录下。
③进入该目录并解压lrzsz包cd /home/book/f1c100s/lrzsz tar -xzvf lrzsz-0_12_20_tar.gz
④进入解压出来的目录
cd lrzsz-0.12.20/
⑤输入一下命令生成配置文件
./configure --cache=arm-linux
⑥明确自己交叉编译工具链的位置
我们使用buildroot输出的交叉编译工具链,与根文件系统一致。我的编译器的目录位于这个路径:
/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc
⑦使用这个交叉编译工具链,编译它make CC=/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc
编译出来,生成了两个文件,复制这两个文件到我们的根文件系统bin目录下
sudo cp ./src/lsz /home/book/f1c100s/rootfs/bin/
sudo cp ./src/lrz /home/book/f1c100s/rootfs/bin/
⑧看看我们有没有缺少什么运行库
==>检查第1个文件/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-readelf -d ./src/lsz
可以看到,这个程序依赖于这样的运行库
标记 类型 名称/值
0x00000001 (NEEDED) 共享库:[libc.so.0]
==>检查第2个文件/home/book/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-readelf -d ./src/lrz
发现依赖库跟第一个一样。
⑨复制依赖库,到根文件系统的lib目录下。
那么问题来了,依赖库放在哪里呢?我们在交叉编译工具链哪里搜索一下:cd /home/book/f1c100s/buildroot-2017.08/output/host/ find -name "libc.so.0"
结果如下:
./arm-buildroot-linux-uclibcgnueabi/sysroot/lib/libc.so.0复制这个库文件到根文件目录lib中,
sudo cp /home/book/f1c100s/buildroot-2017.08/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/lib/libc.so.0 /home/book/f1c100s/rootfs/lib/
⑩打包并烧写镜像。
sudo sh /home/book/f1c100s/BuildMyImage.sh
(3)使用这个工具
使用串口CRT工具连接终端,输入命令"lrz",回车,CRT会弹出一个框框,我们可以发送一个文件到目标板
上个图就好了,自己折腾吧。速度有点慢,聊胜于无。(/笑)
https://whycan.cn/files/members/1845/none_20200501-1622.png
离线
你好 linjie
我在编译 的时候出现
l10nflist.c:42:19: fatal error: argz.h: No such file or directory
# include <argz.h>
^
compilation terminated.
make[2]: *** [Makefile:78: l10nflist.o] Error 1
make[2]: Leaving directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20/intl'
make[1]: *** [Makefile:172: all-recursive] Error 1
make[1]: Leaving directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20'
make: *** [Makefile:282: all-recursive-am] Error 2不知如何处理?
直接进buildroot里,make menuconfig,然后找到lrzsz这个支持包,勾选上,然后编译。就有了,这种编译的过程学习一下就ok了。
离线
你好 linjie
问题依旧,,,,
jonsen@ubuntu:~/f1c100s/lrzsz/lrzsz-0.12.20$ sudo make CC=/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc
make all-recursive
make[1]: Entering directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20'
Making all in lib
make[2]: Entering directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20/lib'
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -c long-options.c
long-options.c: In function ‘parse_long_options’:
long-options.c:65:4: warning: implicit declaration of function ‘exit’ [-Wimplicit-function-declaration]
exit (0);
^~~~
long-options.c:65:4: warning: incompatible implicit declaration of built-in function ‘exit’
long-options.c:65:4: note: include ‘<stdlib.h>’ or provide a declaration of ‘exit’
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -c xstrtol.c
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -c xstrtoul.c
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -c error.c
rm -f libzmodem.a
ar cru libzmodem.a long-options.o xstrtol.o xstrtoul.o error.o
ar: `u' modifier ignored since `D' is the default (see `U')
ranlib libzmodem.a
make[2]: Leaving directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20/lib'
Making all in intl
make[2]: Entering directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20/intl'
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -c -DLOCALEDIR=\"/usr/local/share/locale\" -DGNULOCALEDIR=\"/usr/local/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl -I../lib -g -O2 intl-compat.c
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -c -DLOCALEDIR=\"/usr/local/share/locale\" -DGNULOCALEDIR=\"/usr/local/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl -I../lib -g -O2 bindtextdom.c
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -c -DLOCALEDIR=\"/usr/local/share/locale\" -DGNULOCALEDIR=\"/usr/local/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl -I../lib -g -O2 dcgettext.c
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -c -DLOCALEDIR=\"/usr/local/share/locale\" -DGNULOCALEDIR=\"/usr/local/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl -I../lib -g -O2 dgettext.c
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -c -DLOCALEDIR=\"/usr/local/share/locale\" -DGNULOCALEDIR=\"/usr/local/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl -I../lib -g -O2 gettext.c
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -c -DLOCALEDIR=\"/usr/local/share/locale\" -DGNULOCALEDIR=\"/usr/local/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl -I../lib -g -O2 finddomain.c
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -c -DLOCALEDIR=\"/usr/local/share/locale\" -DGNULOCALEDIR=\"/usr/local/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl -I../lib -g -O2 loadmsgcat.c
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -c -DLOCALEDIR=\"/usr/local/share/locale\" -DGNULOCALEDIR=\"/usr/local/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl -I../lib -g -O2 localealias.c
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -c -DLOCALEDIR=\"/usr/local/share/locale\" -DGNULOCALEDIR=\"/usr/local/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl -I../lib -g -O2 textdomain.c
/home/jonsen/f1c100s/buildroot-2017.08/output/host/bin/arm-linux-gcc -c -DLOCALEDIR=\"/usr/local/share/locale\" -DGNULOCALEDIR=\"/usr/local/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl -I../lib -g -O2 l10nflist.c
l10nflist.c:42:19: fatal error: argz.h: No such file or directory
# include <argz.h>
^
compilation terminated.
make[2]: *** [Makefile:78: l10nflist.o] Error 1
make[2]: Leaving directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20/intl'
make[1]: *** [Makefile:172: all-recursive] Error 1
make[1]: Leaving directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20'
make: *** [Makefile:282: all-recursive-am] Error 2
LinuxGo 说:你好 linjie
我在编译 的时候出现
l10nflist.c:42:19: fatal error: argz.h: No such file or directory
# include <argz.h>
^
compilation terminated.
make[2]: *** [Makefile:78: l10nflist.o] Error 1
make[2]: Leaving directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20/intl'
make[1]: *** [Makefile:172: all-recursive] Error 1
make[1]: Leaving directory '/home/jonsen/f1c100s/lrzsz/lrzsz-0.12.20'
make: *** [Makefile:282: all-recursive-am] Error 2不知如何处理?
直接进buildroot里,make menuconfig,然后找到lrzsz这个支持包,勾选上,然后编译。就有了,这种编译的过程学习一下就ok了。
离线
你好 linjie
那我重新编译 打包 烧录到芯片后
pc下载 SecureCRT.zip 这个工具就能跑了啊
不用自己装了
感谢万能的坑友,我搜索了一下,buildroot中确实有这个功能,可以通过搜索lrzsz,找到了它位于这个目录中:
Target packages --->
Networking applications --->
[v] lrzsz
勾选之后,编译,根文件系统中就有这个工具了。
离线
你好 linjie
那我重新编译 打包 烧录到芯片后
pc下载 SecureCRT.zip 这个工具就能跑了啊
不用自己装了LinjieGuo 说:感谢万能的坑友,我搜索了一下,buildroot中确实有这个功能,可以通过搜索lrzsz,找到了它位于这个目录中:
Target packages --->
Networking applications --->
[v] lrzsz
勾选之后,编译,根文件系统中就有这个工具了。
是的,先运行绿色.bat,输入Y,破解,然后退出,找到SecureCRT.exe执行程序,连接串口就ok了。
离线
我还没法下载,去别的地方下了
LinuxGo 说:你好 linjie
那我重新编译 打包 烧录到芯片后
pc下载 SecureCRT.zip 这个工具就能跑了啊
不用自己装了LinjieGuo 说:感谢万能的坑友,我搜索了一下,buildroot中确实有这个功能,可以通过搜索lrzsz,找到了它位于这个目录中:
Target packages --->
Networking applications --->
[v] lrzsz
勾选之后,编译,根文件系统中就有这个工具了。是的,先运行绿色.bat,输入Y,破解,然后退出,找到SecureCRT.exe执行程序,连接串口就ok了。
离线
你好 linjie
buildroot 里配置了
Search Results ─
│ Symbol: BR2_PACKAGE_LRZSZ [=y] 这里
│ Type : boolean
│ Prompt: lrzsz
│ Location:
│ -> Target packages
│ (1) -> Networking applications
│ Defined at package/lrzsz/Config.in:1
│ Depends on: !BR2_STATIC_LIBS [=n]
编译后 在 output/images/rootfs.tar /bin 里没有找到 lrz命令,,,,
# cd ../
# ls
bin hello lib32 media proc sbin usr
dev hellonano linuxrc mnt root sys var
etc lib main.c opt run tmp
# cd bin
# ls
ash dumpkmap linux64 nice sh
busybox echo ln pidof sleep
cat egrep login ping stty
chattr false ls pipe_progress su
chgrp fdflush lsattr printenv sync
chmod fgrep mkdir ps tar
chown getopt mknod pwd touch
cp grep mktemp rm true
cpio gunzip more rmdir umount
date gzip mount run-parts uname
dd hostname mountpoint sed usleep
df kill mt setarch vi
dmesg link mv setpriv watch
dnsdomainname linux32 netstat setserial zcat
# lrz
/bin/sh: lrz: not found
#
LinuxGo 说:你好 linjie
那我重新编译 打包 烧录到芯片后
pc下载 SecureCRT.zip 这个工具就能跑了啊
不用自己装了LinjieGuo 说:感谢万能的坑友,我搜索了一下,buildroot中确实有这个功能,可以通过搜索lrzsz,找到了它位于这个目录中:
Target packages --->
Networking applications --->
[v] lrzsz
勾选之后,编译,根文件系统中就有这个工具了。是的,先运行绿色.bat,输入Y,破解,然后退出,找到SecureCRT.exe执行程序,连接串口就ok了。
离线
你好 linjie
buildroot 里配置了
Search Results ─
│ Symbol: BR2_PACKAGE_LRZSZ [=y] 这里
│ Type : boolean
│ Prompt: lrzsz
│ Location:
│ -> Target packages
│ (1) -> Networking applications
│ Defined at package/lrzsz/Config.in:1
│ Depends on: !BR2_STATIC_LIBS [=n]
编译后 在 output/images/rootfs.tar /bin 里没有找到 lrz命令,,,,
# cd ../
# ls
bin hello lib32 media proc sbin usr
dev hellonano linuxrc mnt root sys var
etc lib main.c opt run tmp
# cd bin
# ls
ash dumpkmap linux64 nice sh
busybox echo ln pidof sleep
cat egrep login ping stty
chattr false ls pipe_progress su
chgrp fdflush lsattr printenv sync
chmod fgrep mkdir ps tar
chown getopt mknod pwd touch
cp grep mktemp rm true
cpio gunzip more rmdir umount
date gzip mount run-parts uname
dd hostname mountpoint sed usleep
df kill mt setarch vi
dmesg link mv setpriv watch
dnsdomainname linux32 netstat setserial zcat
# lrz
/bin/sh: lrz: not found
#LinjieGuo 说:LinuxGo 说:你好 linjie
那我重新编译 打包 烧录到芯片后
pc下载 SecureCRT.zip 这个工具就能跑了啊
不用自己装了是的,先运行绿色.bat,输入Y,破解,然后退出,找到SecureCRT.exe执行程序,连接串口就ok了。
在buildroot里勾选,是可以的喔,我测试过。我电脑在家里,我得晚上回去看看,现在不方便搞f1c100s,你看看是不是勾选错了,或者直接下载我配置好的虚拟机,
最近编辑记录 LinjieGuo (2021-01-15 15:18:24)
离线
你好 Linjie:
尝试了好几次,make 后 在bin里没看到 lrzsz出来
很奇怪,晚上麻烦看下你那有么有?
LinuxGo 说:你好 linjie
buildroot 里配置了
Search Results ─
│ Symbol: BR2_PACKAGE_LRZSZ [=y] 这里
│ Type : boolean
│ Prompt: lrzsz
│ Location:
│ -> Target packages
│ (1) -> Networking applications
│ Defined at package/lrzsz/Config.in:1
│ Depends on: !BR2_STATIC_LIBS [=n]
编译后 在 output/images/rootfs.tar /bin 里没有找到 lrz命令,,,,
# cd ../
# ls
bin hello lib32 media proc sbin usr
dev hellonano linuxrc mnt root sys var
etc lib main.c opt run tmp
# cd bin
# ls
ash dumpkmap linux64 nice sh
busybox echo ln pidof sleep
cat egrep login ping stty
chattr false ls pipe_progress su
chgrp fdflush lsattr printenv sync
chmod fgrep mkdir ps tar
chown getopt mknod pwd touch
cp grep mktemp rm true
cpio gunzip more rmdir umount
date gzip mount run-parts uname
dd hostname mountpoint sed usleep
df kill mt setarch vi
dmesg link mv setpriv watch
dnsdomainname linux32 netstat setserial zcat
# lrz
/bin/sh: lrz: not found
#LinjieGuo 说:是的,先运行绿色.bat,输入Y,破解,然后退出,找到SecureCRT.exe执行程序,连接串口就ok了。
在buildroot里勾选,是可以的喔,我测试过。我电脑在家里,我得晚上回去看看,现在不方便搞f1c100s,你看看是不是勾选错了,或者直接下载我配置好的虚拟机,
离线
LinuxGo 说:你好 Linjie:
尝试了好几次,make 后 在bin里没看到 lrzsz出来
很奇怪,晚上麻烦看下你那有么有?你是不是没有重新打包。还是勾选错了呢?
没打包,编译出来直接看了output 文件夹下的压缩包。双击打开直接找到bin文件夹里,看了下没有Lrzsz.bin
离线
你好 LinJie :
哈 ,搞定了;首先感谢下楼主的指引,谢谢!
具体情况和1楼帖子里描写的有点出入。分享在这里。给后来人引导一下。
1、通过buildroot 里 make menuconfig 搜索 lrzsz ,确定好目录。把lrzsz 改成Y
2、复制rootfs.tar文件到打包目录,并且打包,bin文件烧录
3、启动会出现 mount: you must be root. can't open /dev/console: Permission denied这种错误。
4、参考这里 https://www.cnblogs.com/Rainingday/p/12483773.html
修改文件权限,sudo chown root * -R
5、重新打包烧录
6、登录后 SecureCRT 工具里 输入 rz PC发送文件到板子,sz板子发送文件到pc
参考这里 https://jingyan.baidu.com/article/91f5db1b7775401c7e05e37b.html
最近编辑记录 LinuxGo (2021-01-16 14:21:53)
离线
我也觉得奇怪,为啥buildroot里面明明有还需要那么折腾,不过让我学到了用buildroot的gcc来编译自己的应用
另外推荐一下开源的windterm串口工具,用熟之后比securecrt要好用,而且是跨平台的
离线
借楼问问,其实除了rz这种,是否有一些更高效的方式来进行开发呢?我现在编译lvgl,每次出来的执行文件都有300多k,传输一次一分钟,有点太慢
离线
一直在考虑如何往目标板上传东西,终于找到了
离线