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”目录下的文件和文件夹

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

在安装时,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”目录下去修改。

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

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”图形化配置界面

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

见下图:

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

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

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

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”

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

修改如下:

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

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

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

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

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

修改如下:

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

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

6、编译“buildroot下的busybox”

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

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

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

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

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

输入“cd output/images/回车

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

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

至此,“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”的图形化配置界面

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

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

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

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

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

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

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

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

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

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

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

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

7)、按“Y”,保存

8、备份“buildroot配置”

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

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

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

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

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

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

./configs/stm32mp1_atk_defconfig”,见下图:

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

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回车

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

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”目录中

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

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

输入“ls回车

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

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

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回车

测试结果:

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

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

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

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回车

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

3)、打开“FileZilla”

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

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

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

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

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

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

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

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

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

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

9)、点击“连接

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

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

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

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回车”,重启开发板

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

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”,然后按照下图设置开发板:

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

14)、输入密码“123456

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

输入“ls回车

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

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

14、创建自启动文件

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

输入“ls

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

输入“ls

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

输入“ls

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

输入“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

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

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

输入“reboot”重启开发板

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

可以看到工作路径了。

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

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

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

输入“reboot”重启开发板

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

输入“root回车

输入“ls

输入“ls /sys/kernel/debug/

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

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

你可能感兴趣的:(产品研发,linux,服务器,STM32MP157,经验分享,根文件系统)