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/

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatisPlus 整合 SpringBoot 遇见的问题

【异常】:Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘udf1’ in ‘field list’… SQL: SELECT id,oper_id,btch_id,udf1, FROM scan_cyber Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘udf1’ in ‘field list’; ,"messag…

【Web】CTFSHOW java反序列化刷题记录(部分)

目录 web846 web847 web848 web849 web850 web856 web857 web858 web846 直接拿URLDNS链子打就行 import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectOutput; import java.io.ObjectOutputStream; import java.lang.reflect.F…

Eclipse - Switch Workspace

Eclipse - Switch Workspace References Switch Workspace References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

用GPT-4开启“人类宝藏”

“GPT-4开启人类宝藏”意味着下面几个层面的含义: 知识与信息的访问:GPT-4作为一款强大的语言模型,通过学习海量的数据和信息资源,可以近乎实时地提供人类历史积累的知识、经验与智慧。用户可以通过询问或交互方式获取这些信息&am…

数据库所在服务器磁盘满了怎么办?

大家好,我是G探险者。 给大家拜个晚年哈,节后上班第一天,打开电脑,发现数据库服务器连不上了。 幸亏,节后第一天上班的人不太多,领导还没来,我一番鼓捣解决了这个问题。 所以做个总结&#xff0…

Linux网络----防火墙

一、安全技术和防火墙 1、安全技术 入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安…

unity学习(19)——客户端与服务器合力完成注册功能(1)入门准备

逆向服务器用了三天的时间,但此时觉得一切都值,又可以继续学习了。 服务器中登录请求和注册请求由command变量进行区分,上一层的type变量都是login。 public void process(Session session, SocketModel model) {switch (model.Command){ca…

Cannot resolve symbol ‘IWXAPI‘

问题 Android 集成 微信登录报错 Cannot resolve symbol IWXAPI详细问题 笔者在App的build.gradle中已添加相关依赖,并完成Sync gradle操作。 笔者Project的build.gradle核心代码 buildscript {repositories {jcenter() // 原有 jCenter 引用可继续保留…

通过MetricsAPI监控pod资源使用情况(k8s资源监控,java)

1. 目的:简单监控pod 我想使用java监控k8s pod的资源的简单使用情况,但是k8s内部并没有采集资源的实现。 但是k8s提供了一套k8s的对接标准,只要适配这套标准,就可以通过kubelet采集资源数据,并且通过k8s api服务器输出…

Java集合篇之深度解析Queue,单端队列、双端队列、优先级队列、阻塞队列

写在开头 队列是Java中的一个集合接口,之前的文章已经讲解了List和Set,那么今天就来唠一唠它吧。队列的特点:存储的元素是有序的、可重复的。 队列的两大接口Queue vs Deque Queue 是单端队列,只能从一端插入元素,另…

使用CompletableFuture在主线程捕获子线程异常

场景:我们使用线程池的时候,假如说某个线程出现了异常此时我们需要将异常捕获打印出相应的异常日志 这个时候就可以用到CompletableFuture的exceptionally方法,其作用是返回一个新的CompletableFuture,如果原CompletableFuture以…

电路设计(20)——数字电子钟的multism仿真

1.设计要求 使用数字芯片,设计一个电子钟,用数码管显示,可以显示星期,时、分、秒,可以有按键校准时间。有整点报警功能。 2.设计电路 设计好的multism电路图如下所示 3.芯片介绍 时基脉冲使用555芯片产生。在仿真里面…

UE5中的DataTable说明

创建DataTable 在编辑器中创建 在文件夹空白处右击,选择Miscellaneous/DataTable,如图: 使用代码创建 // 创建DataTable实例 UDataTable* MyDataTable NewObject(); // 创建一个行结构体 UStruct* RowStruct UStruct::CreateEmpty(); // 添…

[Flink01] 了解Flink

Flink入门系列文章主要是为了给想学习Flink的你建立一个大体上的框架,助力快速上手Flink。学习Flink最有效的方式是先入门了解框架和概念,然后边写代码边实践,然后再把官网看一遍。 Flink入门分为四篇,第一篇是《了解Flink》&…

【HarmonyOS】鸿蒙开发之Button组件——第3.4章

按钮类型 Capsule(默认值):胶囊类型 Button("默认样式").height(40)//高度.width(90)//宽度.backgroundColor(#aabbcc)//背景颜色运行结果: Normal:矩形按钮,无圆角 Button({type:ButtonType.Normal}){Te…

kali无线渗透之蓝牙原理与探测与侦听

“传统蓝牙”规范在2.4GHz的ISM波段上定义了79个信道,每个信道有1MHz的带宽。设备在这些信道中以每秒1600次的频率进行跳转,换句话说,就是每微秒625次跳转。这项信道跳转技术被称为“跳频扩频”(Frequency HoppingSpread Spectrum&#xff0c…

FPGA转行ISP的探索之二:技术路线和概念

ISP领域的概念 1 相机方面的概念 1)DENOISE,图像去噪 图像噪声按噪声与信号的关系可分为加性噪声和乘性噪声;按照产生原因可分为外部噪声和内部噪声;按照统计特性可分为平稳噪声和非平稳噪声;平稳噪声基于统计后的概…

JAVA面试框架篇

1. Spring refresh 流程 要求 掌握 refresh 的 12 个步骤 Spring refresh 概述 refresh 是 AbstractApplicationContext 中的一个方法,负责初始化 ApplicationContext 容器,容器必须调用 refresh 才能正常工作。它的内部主要会调用 12 个方法&#x…

单主模式和多主模式切换

1 组复制模式切换注意点 组复制有两种运行模式,一种是单主模式,一种是多主模式。这个模式是在整个组中设置的,由 group_replication_single_primary_mode 这个系统变量指定,而且在所有成员上必须保持一致。ON 表示单主模式&#…

禁止电子邮箱地址登录WordPress后台的插件No Login by Email Address

WordPress 4.5及之后的版本增加了使用注册用户的电子邮件地址代替用户名登录的功能,但是大多数个人站长的管理员邮箱地址都是固定,而且到其他站点进行评论留言也是同一个邮箱地址,很容易给一些别有用心的可乘之机,所以禁止WordPre…