新唐NUC980使用记录(5.10.y内核):访问以太网(LAN8720A) & 启用SSH

本文详细介绍了如何在新唐NUC980开发板上修改5.10.y内核和设备树以访问LAN8720A以太网PHY芯片,以及如何制作根文件系统并启用SSH服务。通过编译内核、设备树,设置网络配置和SSH相关参数,实现了开发板的网络功能和远程访问能力。
摘要由CSDN通过智能技术生成

目的

这篇文章主要测试新唐NUC980(5.10.y内核)访问以太网(PHY为LAN8720A)以及启用SSH。

这篇文章中内容均在下面的开发板上进行测试:
《新唐NUC980使用记录:自制开发板(基于NUC980DK61YC)》
开发板上NUC980 RMII0接口通过LAN8720A(ADDR=0)访问网络。LAN8720A是SMSC公司的以太网PHY芯片。

这篇文章是在下面文章基础上进行的:
新唐NUC980使用记录(5.10.y内核):u-boot & linux & rootfs 编译与烧录测试(基于SD1位置SD卡)

修改内核和设备树以访问以太网

修改内核以支持 LAN8720A :

# cd ~/nuc980-sdk/NUC980-linux-5.10.y/
make menuconfig

在这里插入图片描述

修改设备树以支持 ETH0 :

# cd ~/nuc980-sdk/NUC980-linux-5.10.y/
gedit arch/arm/boot/dts/nuc980-dev-v1.0.dts

设备树文件注意需要调整的是将 emac0 节点设置为 okay :

/ {
	ahb {
		emac0@b0012000 {
			status = "okay";
		};
	};
};

编译内核和设备树:

# 设置编译工具链
# export ARCH=arm; export CROSS_COMPILE=arm-buildroot-linux-gnueabi-
# export PATH=$PATH:/home/nx/nuc980-sdk/buildroot-2023.02/output/host/bin

# 编译生成内核镜像
make uImage
# 可以根据电脑配置使用make -jx等加快编译速度

# 编译生成设备树文件
make dtbs

测试以太网功能:
将生成的内核和设备树文件拷贝到电脑上,再拷贝到SD卡boot分区:

# 拷贝至Windows电脑上
# sudo cp arch/arm/boot/uImage /media/sf_common/
# sudo cp arch/arm/boot/dts/nuc980-dev-v1.0.dtb /media/sf_common/

拷贝完成后将SD开插回开发板,上电测试:
在这里插入图片描述

使用 ifconfig -a 显示所有网卡;使用 udhcpc -i eth0 开启网卡并获取IP地址;使用 ifconfig 显示当前启用的网卡。

制作根文件系统并启用SSH

设置启用SSH相关功能:

# cd ~/nuc980-sdk/buildroot-2023.02/
make menuconfig

在这里插入图片描述
haveged 用于加速系统启动时 random 功能初始化速度( ssh 功能依赖 random )。

在这里插入图片描述

在这里插入图片描述
设置密码。底下一行的设置用于设置系统启动后 eth0 自动获取IP地址(不过这个版本中不知道为何不起作用,下面会手动处理该问题)。

配置完成后进行编译:

make

将SD卡插到Ubuntu中,拷贝新的rootfs内容到SD卡:

sudo rm -rf /media/nx/rootfs/*
sudo tar -xf output/images/rootfs.tar -C /media/nx/rootfs/

修改rootfs中部分内容:
修改sshd配置:

sudo gedit /media/nx/rootfs/etc/ssh/sshd_config

需要修改内容如下:

# 32行 允许root用户进行ssh访问
PermitRootLogin yes

# 57行 允许使用密码进行ssh访问
PasswordAuthentication yes

修改网络设置以支持启动时eth0自动获取IP地址:

sudo gedit /media/nx/rootfs/etc/network/interfaces 

在文件结尾增加下面内容:

auto eth0
iface eth0 inet dhcp
#  pre-up /etc/network/nfs_check
#  wait-delay 15
#  hostname $(hostname)

测试SSH功能:
将SD开插回开发板,上电测试:
在这里插入图片描述

如果是初次启动的话会生成SSH相关密钥,会花一些时间。

SSH除了可以远程访问,还可以使用SFTP和SCP功能,可以通过网络直接访问文件系统或是拷贝文件(甚至可以直接通过网络更新内核和设备树),对开发使用来说非常方便:
在这里插入图片描述

总结

对于Linux来说网络和SSH是非常重要的功能,可以极大的提升开发和使用的便利性,越早开启越好。经过上面的操作就可以在NUC980上实现基本的网络功能了。

引用:为了修改使用的设备树文件 nuc980-dev-v1.0.dts,您可以使用以下步骤: 1. 进入 nuc980-sdk/NUC980-linux-5.10.y/ 目录 2. 打开 nuc980-dev-v1.0.dts 文件,您可以使用 gedit 或其他文本编辑器进行编辑 引用[2]:修改完成后,您需要进行编译和拷贝操作: 1. 设置编译工具链,可以使用以下命令设置环境变量: ``` export ARCH=arm export CROSS_COMPILE=arm-buildroot-linux-gnueabi- export PATH=$PATH:/home/nx/nuc980-sdk/buildroot-2023.02/output/host/bin ``` 2. 编译生成设备树文件,可以使用以下命令: ``` make dtbs ``` 3. 编译完成后,将生成的设备树文件拷贝到电脑上,再拷贝到 SD 卡中。例如,可以使用以下命令将设备树文件拷贝到共享文件夹: ``` sudo cp arch/arm/boot/dts/nuc980-dev-v1.0.dtb /media/sf_common/ ``` 4. 如果您的开发环境和开发板在同一局域网中,您可以直接通过网络将设备树文件拷贝到开发板上。具体操作可以参考以下步骤: - 在开发板中挂载 boot 分区: ``` mount /dev/mmcblk0p1 /mnt/ ``` - 在 Ubuntu 中使用 scp 命令拷贝设备树文件到开发板上。假设开发板的 IP 地址是 192.168.31.142,可以使用以下命令: ``` scp arch/arm/boot/dts/nuc980-dev-v1.0.dtb root@192.168.31.142:/mnt/ ``` 5. 拷贝完成后,重新启动开发板进行测试: ``` reboot ``` 引用:这篇文章是在以下文章的基础上进行的:《新唐NUC980使用记录5.10.y内核):访问以太网LAN8720A) & 启用SSH 使用参考与演示 使用参考》。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Naisu Xu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值