i.MX6ULL - Buildroot根文件系统构建步骤

i.MX6ULL - Buildroot根文件系统构建步骤



1、源码获取

buildroot下载地址:https://buildroot.org/download.html

下载长期支持版,也就是这个:


2、配置

解压并进入:

tar xvf buildroot-2022.02.5.tar.gz
cd buildroot-2022.02.5

启动图形化配置:

make menuconfig

1、目标属性:Target options —>

2、工具链配置:Toolchain —>

主要配置以下几项:

自定义的工具链:Toolchain (Custom toolchain) —>

交叉编译工具链来源:Toolchain origin (Pre-installed toolchain) —>

指定你的交叉编译工具链的存放位置:(/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf) Toolchain path

工具链的前缀:($(ARCH)-linux-gnueabihf) Toolchain prefix

你的交叉编译工具链的版本:External toolchain gcc version (7.x) —>

External toolchain kernel headers series (4.10.x) —>:编译你交叉编译工具链的linux内核版本,如果不知道那就先随便写一个,等编译的时候会报错误,根据报错提示就可以知道版本号,例如我一开始随便设置的是5.4.x,但是编译的时候就报错了:

Incorrect selection of kernel headers: expected 5.4.x, got 4.10.x
package/pkg-generic.mk:273: recipe for target '/opt/yijie/buildroot-2022.02.5/output/build/toolchain-external-custom/.stamp_configured' failed

提示我应该是4.10.x,而不是5.4.x。

选中C库:External toolchain C library (glibc/eglibc) —>

使能这几项支持:
[*] Toolchain has SSP support?
[*] Toolchain has SSP strong support?
[*] Toolchain has RPC support?
[*] Toolchain has C++ support?
[*] Enable MMU support

配置为如下图:

3、系统设置:System configuration —>

主机名称:随便设置: (yjimx6ull) System hostname

欢迎语,随便设置:(Welcome to YiJie i.MX6ULL Board !) System banner

初始系统使用BusyBox:Init system (BusyBox) —>

挂载方式使用动态挂载加mdev形式:/dev management (Dynamic using devtmpfs + mdev) —>

使能登陆密码:[*] Enable root login with password

登陆密码为root:(root) Root password

配置完如下:

4、 Kernel —>

取消掉内核编译:

5、Bootloaders —>

取消掉uboot编译:

6、Filesystem images —>

7、Target packages

这个选项下是第三方库,目前暂时用不到,先不配置,用到的时候在勾选进行编译。


3、编译

sudo make

编译前注意一下几点:

  • 一定要加sudo,并且不能使用make -jN来指定多核编译
  • 编译异常漫长,估计几个小时
  • buildroot编译的时候会先从网上下载所需的软件源码,务必保持网络通畅,有些软件源码可能下载不下来,或者下载的很慢,此时建议换源,方法我这里就不赘述了,直接百度搜索:ubuntu换源。
  • 编译会用到git下载东西,最好是能科学上网

编译完成之后会在output/images下:


4、NFS挂载测试

现在就可以使用NFS挂载文件系统测试了。

创建buildroot文件系统目录,并将编译出的文件系统压缩包解压到该目录下:

mkdir /buildroot-rootfs
tar xvf ./output/images/rootfs.tar -C /buildroot-rootfs

设置uboot挂载参数(别忘了在/etc/exports将NFS挂载目录换成/buildroot-rootfs):

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.28.254:/buildroot-rootfs ip=192.168.28.234:192.168.28.254:192.168.28.1:255.255.255.0::eth0:off'

如果你是用的飞凌的okmx6ull的uboot和内核,uboot设置的挂载参数为:

setenv mmcargs setenv bootargs console=ttymxc0,115200 cma=320M root=/dev/nfs rw ip=192.168.1.234:192.168.1.254:192.168.1.1:255.255.255.0::eth0:off nfsroot=192.168.1.254:/buildroot-rootfs,v3,tcp

成功挂载:


ends…

<think>好的,我现在需要帮助用户在Buildroot环境下为i.MX6ULL处理器配置和启用SSH服务。首先,我需要回忆一下Buildroot的基本配置流程。根据引用[^1],用户使用“make menuconfig”命令进入图形化配置界面,所以配置SSH应该也是在这里进行的。 SSH服务通常涉及到选择适当的软件包,比如OpenSSH或者Dropbear。Buildroot中可能需要在“Target packages”里找到相关选项。用户可能需要安装OpenSSH的服务端和客户端,或者Dropbear作为轻量级替代。我要检查引用中的信息是否有提到相关配置步骤,但现有的引用主要涉及根文件系统构建、登录信息和交叉编译工具链的设置,没有直接提到SSH。不过,根据Buildroot的一般知识,配置步骤应该是在menuconfig中选择相应的包。 接下来,用户可能需要在文件系统中生成SSH密钥,这可能需要修改post-build脚本或者在配置中启用相关选项。例如,Buildroot的配置里可能有生成host密钥的选项,或者需要手动添加。另外,引用[^4]提到了Makefile中使用交叉编译工具链,这可能和编译SSH服务有关,确保工具链正确配置很重要。 用户登录部分引用[^2]提到用户名和密码的设置,启用SSH后可能需要确保root用户可以远程登录,这涉及到SSH服务的配置,比如允许root登录,可能需要修改sshd_config文件。这可能在Buildroot生成文件系统后,通过覆盖默认配置文件实现,或者通过post-build脚本替换。 另外,网络配置也很重要,确保系统启动后网络接口正确配置,SSH服务自动启动。可能需要检查inittab或者systemd服务文件,确保sshd守护进程在启动时运行。引用中没有提到这些细节,可能需要用户手动添加启动脚本。 最后,测试部分需要确保编译后的镜像正确包含SSH服务,并且能够通过网络连接。可能需要使用交叉编译后的工具链进行调试,如引用[^3]中提到的配置qmake和gcc编译器,确保编译的SSH服务与目标架构兼容。 总结步骤应该是:通过menuconfig启用SSH软件包,配置生成密钥,处理启动脚本,覆盖配置文件允许root登录,编译并部署到i.MX6ULL,然后测试连接。同时需要注意交叉编译工具链的正确性,如引用[^4]中使用的arm-buildroot-linux-gnueabihf-前缀的命令。</think>在Buildroot中为i.MX6ULL配置SSH服务需要以下步骤: ### 1. **启用SSH软件包** 进入Buildroot配置界面: ```bash make menuconfig ``` 导航到路径: `Target packages` → `Networking applications` → **勾选`openssh`或`dropbear`** - **OpenSSH**(推荐):功能完整,包含服务端(`sshd`)和客户端 - **Dropbear**:轻量级替代方案,适合资源受限设备 选择后保存配置[^1]。 ### 2. **配置SSH服务参数(以OpenSSH为例)** 在`Target packages` → `Networking applications` → `openssh`子菜单中: - **启用`Install server`** - **设置`Permit root login`为`yes`**(允许root远程登录) - 按需调整`Port`或`Host key settings`[^2]。 ### 3. **生成SSH主机密钥** 在`System configuration` → **勾选`Enable host key generation`** 或通过**post-build脚本**手动生成密钥(路径:`${TARGET_DIR}/etc/ssh`) ```bash # 示例post-build脚本片段 ssh-keygen -A -f ${TARGET_DIR} ``` ### 4. **覆盖默认配置文件(可选)** 在`board/<your_company>/imx6ull/overlay/etc/ssh/`目录中放置自定义的`sshd_config`文件,内容需包含: ```conf PermitRootLogin yes PasswordAuthentication yes ``` ### 5. **编译并部署系统** ```bash make clean && make ``` 生成的镜像文件(如`sdcard.img`)烧录到i.MX6ULL后,系统启动时会自动运行SSH服务。 ### 6. **验证SSH连接** 在开发主机上执行: ```bash ssh root@<板载IP地址> # 输入密码123456(与引用一致) ``` 若连接成功,表明配置生效。 ### 调试技巧 - **查看服务状态**:`ps aux | grep sshd` - **日志分析**:`tail -f /var/log/messages` - **网络检查**:`ifconfig eth0`确认IP地址正确 - **防火墙设置**:确保未屏蔽22端口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

觉皇嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值