wsl2下开发imx6ull 嵌入式Linux记录
wsl2在Windows下与Ubuntu的文件是互通的,可以省去麻烦的文件传输工作。在wsl2下不能识别usb设备,编译好的裸机或者boot的bin文件,可以通过修改正点原子的imxdownload,生成imx和img文件。最后直接在Windows下使用sd卡烧写工具下载。
·
sd卡下载问题:
wsl2在Windows下与Ubuntu的文件是互通的,可以省去麻烦的文件传输工作。
在wsl2下不能识别usb设备,编译好的裸机或者boot的bin文件,可以通过修改正点原子的imxdownload,生成imx和img文件。最后直接在Windows下使用sd卡烧写工具下载。
wsl2与Linux开发板互ping的问题:
Hyper-V外部虚拟网卡+wsl2的.config文件配置为桥接模式。
note:在实操时,改完.config文件为桥接模式,打开wsl2提示:桥接模式已弃用,有点小麻。别管它,硬着头皮在Ubuntu下配置网络,改为静态IP。
wsl2与开发板同网段下互ping,通啦!哈哈。终于可以睡觉啦。
AI好啊,遇到很多问题直接丢给AI了,下面是求助AI的过程:
xxx@DESKTOP-VN8KA4N:/mnt/c/Users/xxx/Desktop$ sudo su root@DESKTOP-VN8KA4N:/mnt/c/Users/xxx/Desktop# chmod 644 /etc/network/interfaces chmod: cannot access '/etc/network/interfaces': No such file or directory Avatar 在 WSL2 中,/etc/network/interfaces 文件可能不存在,因为 WSL2 使用的是 Netplan 来管理网络配置,而不是传统的 /etc/network/interfaces 文件。Netplan 的配置文件通常位于 /etc/netplan/ 目录下。 解决方法 1. 检查 Netplan 配置文件 在 WSL2 中,网络配置文件通常位于 /etc/netplan/ 目录下。你可以通过以下命令查看当前的 Netplan 配置文件: bash 复制 ls /etc/netplan/ 常见的配置文件名可能是 00-wsl.conf 或 50-cloud-init.yaml。 2. 编辑 Netplan 配置文件 使用文本编辑器(如 nano 或 vim)编辑 Netplan 配置文件。例如: bash 复制 sudo nano /etc/netplan/00-wsl.conf 或者: bash 复制 sudo nano /etc/netplan/50-cloud-init.yaml 3. 配置静态 IP 地址 在 Netplan 配置文件中,添加或修改以下内容,设置静态 IP 地址: yaml 复制 network: version: 2 ethernets: eth0: dhcp4: no addresses: - 192.168.1.122/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 1.1.1.1 addresses:设置静态 IP 地址和子网掩码。 gateway4:设置默认网关。 nameservers:设置 DNS 服务器地址。 4. 应用配置 保存并关闭文件后,运行以下命令应用配置: bash 复制 sudo netplan apply 5. 验证 IP 地址 使用以下命令验证静态 IP 地址是否生效: bash 复制 ip addr show eth0 或者: bash 复制 ifconfig eth0 你应该看到配置的静态 IP 地址。 配置开发板的网络 确保开发板的网络配置正确,IP 地址、子网掩码和网关设置正确。 在开发板上: 查看网络配置: bash 复制 ifconfig 或者: bash 复制 ip addr 设置开发板的静态 IP 地址(如果需要): 编辑网络配置文件(例如 /etc/network/interfaces 或 /etc/netplan/ 配置文件)。 以 /etc/network/interfaces 为例,添加以下内容: plaintext 复制 auto eth0 iface eth0 inet static address 192.168.1.120 netmask 255.255.255.0 gateway 192.168.1.1 重启网络服务: bash 复制 sudo systemctl restart networking 测试网络连通性 确保 WSL2 和开发板能够互相通信。 在 WSL2 中: bash 复制 ping 192.168.1.120 在开发板上: bash 复制 ping 192.168.1.122 注意事项 确保 WSL2 和开发板在同一网段:WSL2 和开发板的 IP 地址应该在同一网段(例如 192.168.1.x)。 检查物理连接:确保开发板和电脑通过网线正确连接。 检查防火墙设置:确保 WSL2 和开发板的防火墙允许 ping 操作。 通过以上步骤,你应该能够成功配置 WSL2 与 Linux 开发板的网络通信。如果仍有问题,请提供更多详细信息以便进一步分析。 复制 分享 root@DESKTOP-VN8KA4N:/mnt/c/Users/xxx/Desktop# ls /etc/netplan/ root@DESKTOP-VN8KA4N:/mnt/c/Users/xxx/Desktop# 从你提供的输出来看,/etc/netplan/ 目录下没有任何文件。这表明 WSL2 的网络配置文件可能不存在,或者你的系统没有使用 Netplan 来管理网络配置。 在这种情况下,你可以手动创建一个 Netplan 配置文件来设置静态 IP 地址。以下是详细步骤: 1. 创建 Netplan 配置文件 在 /etc/netplan/ 目录下创建一个新的配置文件,例如 01-netcfg.yaml。 bash 复制 sudo nano /etc/netplan/01-netcfg.yaml 2. 编辑配置文件 在打开的编辑器中,添加以下内容来配置静态 IP 地址: yaml 复制 network: version: 2 ethernets: eth0: dhcp4: no addresses: - 192.168.1.122/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 1.1.1.1 addresses:设置静态 IP 地址和子网掩码。 gateway4:设置默认网关。 nameservers:设置 DNS 服务器地址。 3. 应用配置 保存并关闭文件后,运行以下命令应用配置: bash 复制 sudo netplan apply 4. 验证 IP 地址 使用以下命令验证静态 IP 地址是否生效: bash 复制 ip addr show eth0 或者: bash 复制 ifconfig eth0 你应该看到配置的静态 IP 地址。 5. 配置开发板的网络 确保开发板的网络配置正确,IP 地址、子网掩码和网关设置正确。 在开发板上: 查看网络配置: bash 复制 ifconfig 或者: bash 复制 ip addr 设置开发板的静态 IP 地址(如果需要): 编辑网络配置文件(例如 /etc/network/interfaces 或 /etc/netplan/ 配置文件)。 以 /etc/network/interfaces 为例,添加以下内容: plaintext 复制 auto eth0 iface eth0 inet static address 192.168.1.120 netmask 255.255.255.0 gateway 192.168.1.1 重启网络服务: bash 复制 sudo systemctl restart networking 6. 测试网络连通性 确保 WSL2 和开发板能够互相通信。 在 WSL2 中: bash 复制 ping 192.168.1.120 在开发板上: bash 复制 ping 192.168.1.122 注意事项 确保 WSL2 和开发板在同一网段:WSL2 和开发板的 IP 地址应该在同一网段(例如 192.168.1.x)。 检查物理连接:确保开发板和电脑通过网线正确连接。 检查防火墙设置:确保 WSL2 和开发板的防火墙允许 ping 操作。 通过以上步骤,你应该能够成功配置 WSL2 与 Linux 开发板的网络通信。如果仍有问题,请提供更多详细信息以便进一步分析。 复制 分享 root@DESKTOP-VN8KA4N:/mnt/c/Users/xxx/Desktop# sudo netplan apply ** (generate:4935): WARNING **: 21:28:06.384: Permissions for /etc/netplan/01-netcfg.yaml are too open. Netplan configuration should NOT be accessible by others. ** (generate:4935): WARNING **: 21:28:06.384: `gateway4` has been deprecated, use default routes instead. See the 'Default routes' section of the documentation for more details. WARNING:root:Cannot call Open vSwitch: ovsdb-server.service is not running. ** (process:4933): WARNING **: 21:28:06.581: Permissions for /etc/netplan/01-netcfg.yaml are too open. Netplan configuration should NOT be accessible by others. ** (process:4933): WARNING **: 21:28:06.581: `gateway4` has been deprecated, use default routes instead. See the 'Default routes' section of the documentation for more details. ** (process:4933): WARNING **: 21:28:06.680: Permissions for /etc/netplan/01-netcfg.yaml are too open. Netplan configuration should NOT be accessible by others. ** (process:4933): WARNING **: 21:28:06.680: `gateway4` has been deprecated, use default routes instead. See the 'Default routes' section of the documentation for more details. ** (process:4933): WARNING **: 21:28:06.681: Permissions for /etc/netplan/01-netcfg.yaml are too open. Netplan configuration should NOT be accessible by others. ** (process:4933): WARNING **: 21:28:06.681: `gateway4` has been deprecated, use default routes instead. See the 'Default routes' section of the documentation for more details. WARNING: systemd-networkd is not running, output will be incomplete. Failed to reload network settings: No such file or directory WARNING:root:Falling back to a hard restart of systemd-networkd.service 复制 Avatar 从你提供的输出来看,存在几个问题需要解决: 文件权限问题:Netplan 配置文件的权限设置过于宽松。 gateway4 已弃用:Netplan 已经不再推荐使用 gateway4,而是建议使用默认路由。 Open vSwitch 服务未运行:ovsdb-server.service 未运行,这可能是因为你的系统中没有安装或配置 Open vSwitch。 systemd-networkd 未运行:Netplan 需要 systemd-networkd 来应用网络配置,但你的系统中可能没有运行该服务。 解决步骤 1. 修复文件权限 Netplan 配置文件的权限应该更严格,以防止其他用户访问。运行以下命令来修复权限: bash 复制 sudo chmod 600 /etc/netplan/01-netcfg.yaml 2. 更新配置文件 由于 gateway4 已被弃用,建议使用默认路由来替代。编辑 /etc/netplan/01-netcfg.yaml 文件,更新配置如下: yaml 复制 network: version: 2 ethernets: eth0: dhcp4: no addresses: - 192.168.1.122/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 1.1.1.1 3. 确保 systemd-networkd 服务运行 Netplan 使用 systemd-networkd 来应用网络配置。确保该服务已启用并运行: bash 复制 sudo systemctl enable systemd-networkd sudo systemctl start systemd-networkd 4. 重新应用 Netplan 配置 再次运行 netplan apply 来应用新的配置: bash 复制 sudo netplan apply 5. 验证网络配置 检查网络配置是否生效: bash 复制 ip addr show eth0 或者: bash 复制 ifconfig eth0 确保 IP 地址和网关设置正确。 验证网络连通性 确保 WSL2 和开发板能够互相通信。 在 WSL2 中: bash 复制 ping 192.168.1.120 在开发板上: bash 复制 ping 192.168.1.122 注意事项 确保 WSL2 和开发板在同一网段:WSL2 和开发板的 IP 地址应该在同一网段(例如 192.168.1.x)。 检查物理连接:确保开发板和电脑通过网线正确连接。 检查防火墙设置:确保 WSL2 和开发板的防火墙允许 ping 操作。 通过以上步骤,你应该能够成功配置 WSL2 与 Linux 开发板的网络通信。如果仍有问题,请提供更多详细信息以便进一步分析。 复制 分享 root@DESKTOP-VN8KA4N:/mnt/c/Users/xxx/Desktop# sudo netplan apply ** (generate:5707): WARNING **: 21:31:02.400: `gateway4` has been deprecated, use default routes instead. See the 'Default routes' section of the documentation for more details. WARNING:root:Cannot call Open vSwitch: ovsdb-server.service is not running. ** (process:5705): WARNING **: 21:31:02.537: `gateway4` has been deprecated, use default routes instead. See the 'Default routes' section of the documentation for more details. ** (process:5705): WARNING **: 21:31:02.630: `gateway4` has been deprecated, use default routes instead. See the 'Default routes' section of the documentation for more details. ** (process:5705): WARNING **: 21:31:02.630: `gateway4` has been deprecated, use default routes instead. See the 'Default routes' section of the documentation for more details. 复制 Avatar 从你提供的输出来看,netplan apply 命令仍然报告 gateway4 已弃用,并且 Open vSwitch 服务未运行。虽然这些警告不会阻止网络配置的生效,但为了确保配置的正确性和避免潜在问题,我们可以进一步优化配置。 1. 更新 Netplan 配置文件 确保你的 Netplan 配置文件中不再使用 gateway4,而是使用默认路由。以下是更新后的配置文件示例: yaml 复制 network: version: 2 ethernets: eth0: dhcp4: no addresses: - 192.168.1.122/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 1.1.1.1 2. 确保 Open vSwitch 服务未运行 Open vSwitch 服务的警告可能是因为你的系统中没有安装或配置 Open vSwitch。如果你不需要 Open vSwitch,可以忽略这个警告。如果你确实需要 Open vSwitch,可以安装并启动它: bash 复制 sudo apt-get update sudo apt-get install openvswitch-switch sudo systemctl start ovsdb-server sudo systemctl enable ovsdb-server 3. 重新应用 Netplan 配置 再次运行 netplan apply 来应用新的配置: bash 复制 sudo netplan apply 4. 验证网络配置 检查网络配置是否生效: bash 复制 ip addr show eth0 或者: bash 复制 ifconfig eth0 确保 IP 地址和网关设置正确。 5. 测试网络连通性 确保 WSL2 和开发板能够互相通信。 在 WSL2 中: bash 复制 ping 192.168.1.120 在开发板上: bash 复制 ping 192.168.1.122 6. 检查其他潜在问题 如果仍然存在问题,可以尝试以下步骤: 检查 systemd-networkd 服务 确保 systemd-networkd 服务已启用并运行: bash 复制 sudo systemctl enable systemd-networkd sudo systemctl start systemd-networkd 检查文件权限 确保 Netplan 配置文件的权限正确: bash 复制 sudo chmod 600 /etc/netplan/01-netcfg.yaml 检查网络接口名称 确保网络接口名称(如 eth0)正确。你可以使用以下命令查看当前的网络接口名称: bash 复制 ip link 如果接口名称不是 eth0,请在 Netplan 配置文件中更新为正确的接口名称。 7. 完整示例 以下是一个完整的示例,展示如何配置 WSL2 与开发板的网络通信: 创建或修改 Netplan 配置文件: bash 复制 sudo nano /etc/netplan/01-netcfg.yaml 编辑配置文件: yaml 复制 network: version: 2 ethernets: eth0: dhcp4: no addresses: - 192.168.1.122/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 1.1.1.1 应用配置: bash 复制 sudo netplan apply 验证配置: bash 复制 ip addr show eth0 测试网络连通性: bash 复制 ping 192.168.1.120 通过以上步骤,你应该能够成功配置 WSL2 与 Linux 开发板的网络通信。如果仍有问题,请提供更多详细信息以便进一步分析。 复制 分享 root@DESKTOP-VN8KA4N:/mnt/c/Users/xxx/Desktop# ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 5e:bb:f6:9e:ee:fa brd ff:ff:ff:ff:ff:ff inet 192.168.1.122/24 brd 192.168.1.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::5cbb:f6ff:fe9e:eefa/64 scope link valid_lft forever preferred_lft forever 复制 Avatar 从你提供的输出来看,WSL2 的 eth0 网络接口已经成功配置了静态 IP 地址 192.168.1.122,并且网络接口处于活动状态。这表明网络配置已经生效。 下一步:确保开发板的网络配置正确 为了确保 WSL2 和开发板能够互相通信,你需要确保开发板的网络配置也正确无误。以下是开发板的网络配置步骤: 1. 配置开发板的网络 确保开发板的 IP 地址与 WSL2 在同一网段。例如,你可以将开发板的 IP 地址设置为 192.168.1.120。 在开发板上: 查看当前网络配置: bash 复制 ifconfig 或者: bash 复制 ip addr 编辑网络配置文件: 如果开发板使用的是 Debian/Ubuntu 系统,编辑 /etc/network/interfaces 文件: bash 复制 sudo nano /etc/network/interfaces 添加以下内容: plaintext 复制 auto eth0 iface eth0 inet static address 192.168.1.120 netmask 255.255.255.0 gateway 192.168.1.1 如果开发板使用的是较新的系统(如 Ubuntu 18.04 及以上),可能使用 Netplan 配置文件。编辑 /etc/netplan/ 下的配置文件(例如 50-cloud-init.yaml): bash 复制 sudo nano /etc/netplan/50-cloud-init.yaml 添加以下内容: yaml 复制 network: version: 2 ethernets: eth0: dhcp4: no addresses: - 192.168.1.120/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 1.1.1.1 应用网络配置: 对于 /etc/network/interfaces 文件: bash 复制 sudo systemctl restart networking 对于 Netplan 配置文件: bash 复制 sudo netplan apply 验证开发板的网络配置: bash 复制 ip addr show eth0 2. 测试网络连通性 确保 WSL2 和开发板能够互相通信。 在 WSL2 中: bash 复制 ping 192.168.1.120 在开发板上: bash 复制 ping 192.168.1.122 3. 检查防火墙设置 确保 WSL2 和开发板的防火墙允许 ping 操作。 在 WSL2 中: bash 复制 sudo ufw allow ping 在开发板上: bash 复制 sudo ufw allow ping 4. 检查物理连接 确保开发板和电脑通过网线正确连接。 5. 检查 Windows 防火墙设置 确保 Windows 防火墙没有阻止 WSL2 的网络通信。 在 Windows 中: 打开“控制面板” > “系统和安全” > “Windows 防火墙”。 选择“高级设置” > “入站规则”。 确保没有规则阻止 ICMP(ping)请求。 6. 检查 WSL2 的网络模式 确保 WSL2 使用的是桥接模式,并且虚拟交换机配置正确。 在 .wslconfig 文件中: ini 复制 [wsl2] networkingMode=bridged vmSwitch=WSL-Bridge ipv6=true 7. 验证网络配置 确保 WSL2 和开发板的网络配置正确无误。 在 WSL2 中: bash 复制 ip addr show eth0 在开发板上: bash 复制 ip addr show eth0 总结 通过以上步骤,你应该能够成功配置 WSL2 与 Linux 开发板的网络通信。如果仍有问题,请提供更多详细信息以便进一步分析。
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐
所有评论(0)