Linux第60步_“buildroot”构建根文件系统第2步_配置“buildroot下的busybox”并测试“buildroot”生成的根文件系统

1、查看“buildroot下的busybox”安装路径

打开终端

输入“ls回车

输入“cd linux回车/”,切换到到“linux”目录

输入“ls回车”,查看“linux”目录下的文件和文件夹

输入“cd buildroot/回车”,切换到到“buildroot”目录

输入“ls回车”,查看“buildroot”目录下的文件和文件夹

输入“cd buildroot-2020.02.6/回车”,切换到到“buildroot-2020.02.6/”目录

输入“ls回车”,查看“buildroot-2020.02.6”目录下的文件和文件夹

输入“cd dl回车”,切换到到“dl”目录

输入“ls回车”,查看“dl”目录下的文件和文件夹

输入“cd busybox/回车”,切换到到“busybox”目录

输入“ls回车”,查看“busybox”目录下的文件和文件夹

在安装时,buildroot会对“busybox-1.31.1.tar.bz2”进行解压,解压缩后的所有软件保存在“buildroot-2020.02.6/output/build/”目录中

2、查看“buildroot下的busybox”支持中文修改路径

1)、输入“cd ../../回车”,返回两层,切换到“buildroot-2020.02.6”目录

输入“ls回车”,查看“buildroot-2020.02.6”目录下的文件和文件夹

输入“cd output/回车”,切换到“output”目录

输入“ls回车”,查看“output”目录下的文件和文件夹

输入“cd build/回车”,切换到“build”目录

输入“ls回车”,查看“build”目录下的文件和文件夹

输入“cd busybox-1.31.1/回车”,切换到“busybox-1.31.1”目录

若要修改支持中文,就要到“busybox-1.31.1”目录下去修改。

3、打开“buildroot下的busybox”图形化配置界面

在“buildroot-2020.02.6”目录下,输入“make busybox-menuconfig”,就可以打开“buildroot下的busybox”图形化配置界面。若不能执行,就反复重启虚拟机,总会可以打开的。

注意:记住不要输入“sudo”,原因不清楚。

输入“cd ../../../”,返回上三层目录到“buildroot-2020.02.6”目录

输入“ls回车”,查看“buildroot-2020.02.6”目录下的文件和文件夹

输入“make busybox-menuconfig”,打开“buildroot下的busybox”图形化配置界面

4、使用“图形化配置界面”设置“个性化配置”

1)、移动“向下光标键”,找到“Settings”,按下“回车

移动“向下光标键”,找到“Build static binary

2)、按“N”,设置为“动态编译”

3)、移动“向下光标键”,找到“vi-style line editing commands

4)、按“Y”,见下图:

按两次“ESC键”,移动“向下光标键”至“Linux Module Utilities

5)、按“回车键”,移动“向下光标键”至“depmod”,按“Y”,见下图:

6)、移动“向下光标键”至“Simplified modutils”,按“N”,见下图:

7)、按两次“ESC键”,移动“向下光标键”至“Linux System Utilities”,见下图:

8)、按“回车键”,然后移动光标键至“mdev (17 kb)”,然后按“Y”将“mdev (17 kb)”至“Support daemon mode”全部选中,见下图:

9)、按两次“ESC键”,移动光标键至“Settings”,见下图:

10)、按“回车键”,移动光标键至“Support Unicode”,按“Y”,

移动光标键至“Check $LC_ALL, $LC_CTYPE and $LANG environment variables”,按“Y”,

见下图:

11)、按“ESC键”,直至出现下面的界面

12)、按“Y”保存

5、通过“修改程序”配置busybox支持中文字符

1)、进入busybox程序所在的路径

打开终端

输入“ls回车

输入“cd linux回车/”,切换到到“linux”目录

输入“ls回车”,查看“linux”目录下的文件和文件夹

输入“cd buildroot/回车”,切换到到“buildroot”目录

输入“ls回车”,查看“buildroot”目录下的文件和文件夹

输入“cd buildroot-2020.02.6/回车”,切换到到“buildroot-2020.02.6/”目录

输入“ls回车”,查看“buildroot-2020.02.6”目录下的文件和文件夹

输入“cd output/回车”,切换到到“output”目录

输入“cd build/回车”,切换到到“build”目录

输入“cd busybox-1.31.1/回车”,切换到到“busybox-1.31.1”目录

2)、修改“busybox-1.32.0/libbb/printable_string.c”

输入“vi libbb/printable_string.c回车”,修改“printable_string.c”

修改如下:

按“ESC键”,输入“:wq”保存文件。

3)、输入“vi libbb/unicode.c回车”,修改“libbb/unicode.c”

打开“unicode.c”,输入“/unicode_conv_to_printable2”查找

修改如下:

按“ESC键”,输入“:wq”保存文件。

6、编译“buildroot下的busybox”

1)、输入“cd ../../../回车”,返回到“/linux/buildroot/buildroot-2020.02.6”目录

输入“make show-targets回车”,查看buildroot配置的目标软件包,其中含有busybox,见下图:

2)、输入“make busybox回车”,单独编译并安装“busybox”

输入“make回车”,重新编译“buildroot”

输入“cd output/images/回车

输入“ls rootfs.tar -l回车”,查看rootfs.tar的生成时间

至此,“buildroot”中busybox编译完成。

配置“buildroot第三方软件和库”

7、使能 VSFTPD服务

1)、打开终端

输入“ls回车

输入“cd linux回车/”,切换到到“linux”目录

输入“ls回车”,查看“linux”目录下的文件和文件夹

输入“cd buildroot/回车”,切换到到“buildroot”目录

输入“ls回车”,查看“buildroot”目录下的文件和文件夹

输入“cd buildroot-2020.02.6/回车”,切换到到“buildroot-2020.02.6/”目录

输入“ls回车”,查看“buildroot-2020.02.6”目录下的文件和文件夹

输入“make menuconfig回车”,打开“buildroot”的图形化配置界面

2)、移动向下光标键至“Target packages”

3)、按“回车键”,移动向下光标键至“Networking applications

4)、按“回车键”,移动向下光标键至“vsftpd”,按“Y”,配置使用vsftpd服务,见下图:

5)、移动光标键至“openssh”,按“Y”,配置使用“ssh”,见下图:

使用SSH服务,可通过网络远程登录开发板。OpenSSH是SSH的开源免费版本。直接使能 buildroot中的OpenSSH 即可。

6)、按“ESC键”,直至出现下面的界面:

7)、按“Y”,保存

8、备份“buildroot配置”

文件路径“/zgq/linux/buildroot/buildroot-2020.02.6/configs/stm32mp1_atk_defconfig

1)、再次输入“make menuconfig回车

2)、移动“向右光标键”至“Save”,按“回车键”,得到下图:

3)、将“/zgq/linux/buildroot/buildroot-2020.02.6/.config”修改为

./configs/stm32mp1_atk_defconfig”,见下图:

4)、移动“向下光标键”至“Ok”,按“O”保存;

按“ESC键”退出

9、编译buildroot

1)、输入“make -j8”,编译“buildroot”,-j8表示采用8线程编译

2)、打开第2个终端

输入“ls

输入“cd linux/”,切换到“linux”目录

输入“ls

输入“cd nfs/”,切换到“nfs”目录

输入“ls回车

输入“cd rootfs回车”,切换到“rootfs”目录

输入“ls回车

3)、回到第1个打开的终端

输入“cd output/images/回车”,切换到“images”目录

输入“ls回车

输入“cp rootfs.tar /home/zgq/linux/nfs/rootfs回车”

将“/home/zgq/linux/buildroot/buildroot-2020.02.6/output/images”目录下的“rootfs.tar”拷贝到“/home/zgq/linux/nfs/rootfs”目录中

4)、回到第2个打开的终端

输入“ls回车

输入“tar -vxf rootfs.tar”,解压

10、打开MobaXterm,给开发板上电,准备测试buildroot”生成的根文件系统。

输入“root回车

11、测试depmod

输入“depmod回车”,报告“depmod: can't change directory to 'lib/modules/5.4.31': No such file or directory

输入“mkdir /lib/modules/5.4.31 -p回车

输入“depmod回车

输入“cd /lib/modules/5.4.31回车

输入“ls回车

测试结果:

12、使用vsftpd搭建FTP服务器

1)、输入“vi /etc/vsftpd.conf回车

按“ESC键”,输入“/local_enable=回车”,搜索字符串“local_enable=

将“#local_enable=YES”修改为“local_enable=YES

按“ESC键”,输入“/write_enable=回车”,搜索字符串“write_enable=

将“#write_enable=YES”修改为“write_enable=YES

2)、按“ESC键”,输入“:wq回车”,保存退出。

13、测试使用SSH服务通过网络远程登录开发板

1)、输入“ls /etc/vsftpd.conf -l回车

报告“-rw-r--r--    1 sshd     sshd          4591 Feb 17  2024 /etc/vsftpd.conf”,表示该文件所属用户为“sshd”;

输入“chown root:root /etc/vsftpd.conf回车”,将/etc/vsftpd.conf修改为“root”用户。

输入“ls /etc/vsftpd.conf -l回车

报告“-rw-r--r--    1 root     root          4591 Feb 17  2024 /etc/vsftpd.conf”,表示该文件所属用户为“root”;

2)、输入“adduser Zhanggong回车”,使用adduser命令创建开发板用户名为Zhanggong

输入密码“123456

输入密码“123456

输入“cd /home/回车

输入“ls回车

3)、打开“FileZilla”

4)、点击“文件”,再点击“站点管理器

5)、点击“新站点”,修改为“MP157开发板

6)、输入“ifconfig”,查询卡发板的IP地址

7)、设置开发板的IP地址,用户名和密码

8)、在串口终端输入“reboot”,重启开发板。

9)、点击“连接

10)、在串口终端输入“ps回车

PID   USER     COMMAND

    1 root     init

    2 root     [kthreadd]

    3 root     [rcu_gp]

    4 root     [rcu_par_gp]

    5 root     [kworker/0:0-pm]

    6 root     [kworker/0:0H-kb]

    7 root     [kworker/u4:0-rp]

    8 root     [mm_percpu_wq]

    9 root     [ksoftirqd/0]

   10 root     [rcu_preempt]

   11 root     [migration/0]

   12 root     [cpuhp/0]

   13 root     [cpuhp/1]

   14 root     [migration/1]

   15 root     [ksoftirqd/1]

   16 root     [kworker/1:0-mm_]

   17 root     [kworker/1:0H]

   18 root     [kdevtmpfs]

   19 root     [netns]

   20 root     [rcu_tasks_kthre]

   21 root     [kworker/0:1-mm_]

   22 root     [kworker/1:1-eve]

   23 root     [oom_reaper]

   24 root     [writeback]

   25 root     [kcompactd0]

   27 root     [kworker/u4:1-rp]

   65 root     [kblockd]

   66 root     [blkcg_punt_bio]

   67 root     [ata_sff]

   68 root     [edac-poller]

   69 root     [devfreq_wq]

   70 root     [watchdogd]

   71 root     [rpciod]

   72 root     [kworker/u5:0-xp]

   73 root     [xprtiod]

   74 root     [kswapd0]

   75 root     [nfsiod]

   77 root     [kstrp]

   79 root     [kworker/0:2-eve]

   81 root     [hwrng]

   82 root     [irq/40-stm_ther]

   87 root     [irq/41-54002000]

   88 root     [54002000.hash-e]

  105 root     [stmmac_wq]

  107 root     [irq/49-5c004000]

  108 root     [kworker/0:3-eve]

  109 root     [irq/50-4c001000]

  110 root     [kworker/0:4]

  111 root     [irq/51-4c001000]

  112 root     [mmc_complete]

  113 root     [kworker/1:2-mm_]

  114 root     [kworker/0:1H-kb]

  115 root     [mmc_complete]

  116 root     [kworker/1:3-eve]

  117 root     [irq/47-40010000]

  118 root     [kworker/u5:1-xp]

  119 root     [kworker/u4:2-rp]

  120 root     [kworker/u4:3-rp]

  121 root     [kworker/u4:4-rp]

  122 root     [kworker/u4:5-rp]

  123 root     [kworker/u4:6-rp]

  124 root     [kworker/u5:2-xp]

  139 root     /sbin/syslogd -n

  143 root     /sbin/klogd -n

  155 root     /sbin/mdev -df

  182 root     [kworker/u4:7-rp]

  189 root     vsftpd

  190 root     -sh

  192 root     vsftpd

  193 nobody   vsftpd

  194 root     ps

# capability: warning: `vsftpd' uses 32-bit capabilities (legacy support in use)

11)、输入“chown root:root /var/empty回车”,将“/var/empty”修改为“root”用户。

输入“reboot回车”,重启开发板

12)、在串口终端输入“ps回车

PID   USER     COMMAND

    1 root     init

    2 root     [kthreadd]

    3 root     [rcu_gp]

    4 root     [rcu_par_gp]

    5 root     [kworker/0:0-pm]

    6 root     [kworker/0:0H-kb]

    7 root     [kworker/u4:0-rp]

    8 root     [mm_percpu_wq]

    9 root     [ksoftirqd/0]

   10 root     [rcu_preempt]

   11 root     [migration/0]

   12 root     [cpuhp/0]

   13 root     [cpuhp/1]

   14 root     [migration/1]

   15 root     [ksoftirqd/1]

   16 root     [kworker/1:0-mm_]

   17 root     [kworker/1:0H]

   18 root     [kdevtmpfs]

   19 root     [netns]

   20 root     [rcu_tasks_kthre]

   21 root     [kworker/0:1-mm_]

   22 root     [kworker/1:1-nfs]

   23 root     [oom_reaper]

   24 root     [writeback]

   25 root     [kcompactd0]

   27 root     [kworker/u4:1-rp]

   65 root     [kblockd]

   66 root     [blkcg_punt_bio]

   67 root     [ata_sff]

   68 root     [edac-poller]

   69 root     [devfreq_wq]

   70 root     [watchdogd]

   71 root     [rpciod]

   72 root     [kworker/u5:0-xp]

   73 root     [xprtiod]

   74 root     [kswapd0]

   75 root     [nfsiod]

   77 root     [kstrp]

   79 root     [kworker/0:2-eve]

   81 root     [hwrng]

   82 root     [irq/40-stm_ther]

   87 root     [irq/41-54002000]

   88 root     [54002000.hash-e]

  105 root     [stmmac_wq]

  107 root     [irq/49-5c004000]

  108 root     [kworker/0:3-pm]

  109 root     [irq/50-4c001000]

  110 root     [kworker/0:4]

  111 root     [irq/51-4c001000]

  112 root     [mmc_complete]

  113 root     [kworker/1:2-eve]

  114 root     [kworker/0:1H-kb]

  115 root     [mmc_complete]

  116 root     [irq/47-40010000]

  117 root     [kworker/u5:1-xp]

  118 root     [kworker/u4:2-rp]

  119 root     [kworker/u4:3-rp]

  120 root     [kworker/u4:4-rp]

  121 root     [kworker/u4:5-rp]

  122 root     [kworker/u5:2-xp]

  123 root     [kworker/u4:6-rp]

  138 root     /sbin/syslogd -n

  142 root     /sbin/klogd -n

  154 root     /sbin/mdev -df

  181 root     [kworker/u4:7-rp]

  184 root     /usr/sbin/sshd

  190 root     vsftpd

  191 root     -sh

  193 root     ps

#

13)、点击“sesson”,点击“SSH”,然后按照下图设置开发板:

14)、输入密码“123456

输入“cd /回车”,切换至根目录

输入“ls回车

至此,我们完成了SSH测试。

14、创建自启动文件

输入“cd /etc/init.d/”,切换到“init.d”目录

输入“ls

输入“touch Sautorun”,创建Sautorun文件

输入“ls

输入“chmod 777 Sautorun”,给“Sautorun”赋可执行权限

输入“ls

输入“vi  Sautorun回车

输入内容:

#!/bin/sh

cd /

按“ESC键”,输入“:wq回车

15、设置开发板要显示路径

输入“vi /etc/profile回车

按“ESC键”,输入“:q!回车”,不保存退出。

输入“cd /etc/profile.d回车

输入“ls回车

输入“touch myprofile.sh”,创建脚本文件“myprofile.sh”

输入“ls回车

输入“chmod 777 myprofile.sh”,给myprofile.sh赋可执行权限

输入“ls回车

输入“vi myprofile.sh”,打开myprofile.sh文件

输入内容如下

#!/bin/sh

PS1='[\u@\h]:\w$ '  #\u表示用户名,\h表示主机名,\w表示显示当前工作目录的路径

export PS1

按“ESC键”,输入“:wq回车”,保存退出。

输入“reboot”重启开发板

可以看到工作路径了。

16、使能“sysfs debug”目录

输入“cd /sys/kernel/debug/

输入“ls回车

在“Sautorun”文件中,添加“mount -t debugfs none /sys/kernel/debug

输入“vi  /etc/init.d/Sautorun

输入内容如下:

#!/bin/sh

mount -t debugfs none /sys/kernel/debug

按“ESC键”,输入“:wq回车”,保存退出。

输入“reboot”重启开发板

输入“root回车

输入“ls

输入“ls /sys/kernel/debug/

至此,根文件系统测试完成了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/393958.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ClickHouse迎战十亿行数据的挑战

本文字数:6782;估计阅读时间:17 分钟 作者:Dale McDiarmid 审校:庄晓东(魏庄) 本文在公众号【ClickHouseInc】首发 本月初,Decodable 公司的 Gunnar Morling 提出了一项为期一月挑战…

接口测试怎么进行,如何做好接口测试

一、什么是接口? 接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。 二、 常用接口采用方式&#x…

API自动化测试你以为很难?看完这篇文章直接打开你的任督二脉

API测试已成为日常的测试任务之一,为了提高测试效率,减少重复的手工操作,API自动化测试也逐渐变得愈加重要,本文是自己在API自动化测试方面的一些经验积累和心得、汇总成文,以飨读者 我相信自动化技能已经成为高级测试…

单调栈题目总结

单调栈 496. 下一个更大元素 I 503. 下一个更大元素 II 739. 每日温度 6227. 下一个更大元素 IV 模版归纳 「单调栈」顾名思义就是具有单调性的栈结构,一般常用于找到下一个更大的元素,即当前元素右侧第一个更大的元素 看下面一个例子&#xff1a…

消毒柜行业分析:市场渗透率不足20%

目前消毒柜仍然属于“小众”品类,疫情前期市场渗透率也不足20%。有业内人士表示,多年来消毒柜零售量规模基本在400万台左右徘徊,这个角度看,消毒柜是具有自身的产品消费人群的,其市场相对稳定,而且消毒柜的…

DoRA(权重分解低秩适应):一种新颖的模型微调方法

来自:小互 DoRA(权重分解低秩适应):一种新颖的模型微调方法 DoRA在LoRA的基础上进一步发展,通过将预训练权重分解为“幅度”和“方向”两个部分进行微调。 这种权重分解方法允许DoRA更精细地控制模型的学习过程&…

error: ‘QWidget‘ file not found

说明你没有加载 widgets模块 缺少widgets,就报错

mysql 2-17

UNION关键字和UNION ALL 自然连接 USING使用 函数 单行函数 基本函数 三角函数 指数和对数 进制间的转换 字符串函数 时间和日期函数 计算日期和时间的函数 日期的格式化和解析 流程控制函数

这样用TVS管

对于工程师来说,浪涌保护不仅仅是选择合适的电源板或者拔下几根电缆,主要涉及在 PCB 布局中放置瞬态保护组件并应用明确的接地策略。 TVS 二极管是用于保护PCB布局中组件的常用组件,这些组件放置在数据线上,一旦电路中接收到ESD脉…

激活函数30年回顾总结,全paper第一份详尽研究来了!

B站:啥都会一点的研究生公众号:啥都会一点的研究生 新年好,离退休又近了一年 假期躺平未更新,但该保存的素材及热点还是拿小本本记了下来,如这篇今年2月14号arXiv上发表的长达100页神经网络中激活函数大总结文章就进…

综合练习

目录 查询每个员工的编号、姓名、职位、基本工资、部门名称、部门位置 确定要使用的数据表 确定已知的关联字段 查询每个员工的编号、姓名、职位、基本工资、工资等级 确定要使用的数据表 确定已知的关联字段 查询每个员工的编号、姓名、职位、基本工资、部门名称、工资…

string的用法

概念 可代替字符数组来存储字符串 访问 string name[i];//下标访问 string::iterator it;//迭代器访问常用函数 1.begin():获得字符串首地址 2.end():获得字符串末地址 3.:字符串的加法,可将两个字符串拼接起来 4.比较符:,>…

GET与 POST

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) GET 和 POST 有什么区别? 根据 REC 规范,GET的语义是从服务器获取指定的资源,这个资源可以是静态的文本、页面、图片视频等。GET请求的参数位置一般是写在 URL 中,UR…

Python Selenium实现自动化测试及Chrome驱动使用!

本文将介绍如何使用Python Selenium库实现自动化测试,并详细记录了Chrome驱动的使用方法。 通过本文的指导,读者将能够快速上手使用Python Selenium进行自动化测试。 并了解如何配置和使用Chrome驱动来实现更高效的自动化测试。 一、Python Selenium简…

ClickHouse监控及备份

第1章 ClickHouse监控概述 第2章 Prometheus&Grafana的安装 第3章 ClickHouse配置 第4章 Grafana集成Prometheus 第5章 备份及恢复

2024 前端面试题(GPT回答 + 示例代码 + 解释)No.114 - No.121

本文题目来源于全网收集,答案来源于 ChatGPT 和 博主(的小部分……) 格式:题目 h3 回答 text 参考大佬博客补充 text 示例代码 code 解释 quote 补充 quote 上一篇链接:2024 前端面试题(GPT回答 示例…

Linux系统:iptables 防火墙

目录 一、安全技术与防火墙 1、安全技术概念 2、防火墙 2.1 防火墙概念 2.2 防火墙分类 2.3 linux的防火墙Netfilter 2.4 防火墙工具介绍 2.5 netfilter 和 iptables 的关系 二、iptables 1、概念 2、五表五链 2.1 五个table表 2.2 五个chain链 2.3 内核中数据包…

全网最详细的从0到1的turbo pnpm monorepo的前端工程化项目[搭建篇]

全网最详细的从0到1的turbo pnpm monorepo的前端工程化项目[搭建篇] 引言相关环境技术栈初始化工程安装turbo配置pnpm-workspace安装husky安装lint-staged安装eslint安装prettier配置 .editorconfig配置 .gitignore初步项目结构结语 引言 最近各种原因,生活上的&am…

PHP支持的伪协议

php.ini参数设置 在php.ini里有两个重要的参数allow_url_fopen、allow_url_include。 allow_url_fopen:默认值是ON。允许url里的封装协议访问文件; allow_url_include:默认值是OFF。不允许包含url里的封装协议包含文件; 各协议的利用条件和方法 php:/…

机器人内部传感器-位置传感器-电位器式位置传感器

位置传感器 位置感觉是机器人最基本的感觉要求,可以通过多种传感器来实现。位置传感器包括位置和角度检测传感器。常用的机器人位置传感器有电位器式、光电式、电感式、电容式、霍尔元件式、磁栅式及机械式位置传感器等。机器人各关节和连杆的运动定位精度要求、重…