nanopc t6 的ubuntu22.04用docker 安装openwrt 23.05.2,基于arm64 (aarch64)架构

这篇具有很好参考价值的文章主要介绍了nanopc t6 的ubuntu22.04用docker 安装openwrt 23.05.2,基于arm64 (aarch64)架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我是用nanopc t6的官方系统,rk3588-XYZ-ubuntu-jammy-x11-desktop-arm64-YYYYMMDD.img.gz,可以从官方的百度网盘下载,根据官方教材刷入nanopc t6中即可。官方网址如下:

NanoPC-T6/zh - FriendlyELEC WiKi

1、首先更改宿主机(nanopc t6)的根系统

毕竟刚刷的系统,先设置root密码

sudo passwd root

默认的账户和密码都是pi,我是自己添加了sudo用户,删除了pi用户,默认不是root,因此执行部分命令前需要加上sudo,添加sudo用户的案例如下,根据自己的需要改名字即可

sudo adduser your_name
sudo usermod -aG sudo your_name

更改根系统的命令需要用root用户执行,更改完后需要重启

su - root -c 'echo "overlayfs=disable" > /.init_wipedata'
sudo reboot

2、宿主机换源

清华源的官方有更换的教程,跟着来就行

ubuntu-ports | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

更换完后记得更新一下

sudo apt update && sudo apt upgrade -y
sudo apt update && sudo apt full-upgrade -y

更新完记得重启

sudo reboot

3、 安装docker

这里是根据官方教程来的,但我习惯用aptitude作为包管理器,因此需要先安装一下,安装完最好重启一下

sudo apt install aptitude
sudo aptitude update && sudo aptitude full-upgrade -y
sudo reboot

运行下列代码安装docker

sudo aptitude install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo aptitude update
sudo aptitude install docker-ce docker-ce-cli containerd.io docker-compose-plugin

可以看下是否成功

sudo docker info

 docker默认的国外源太慢了,最好给docker换国内的源,例如我这里用的是docker中国的官方源,当然第三方源或许更快,例如163或者腾讯以及阿里的源。

这里用vim进行编辑,不会用 vi 或者 vim 的.........推荐学一下

sudo vim /etc/docker/daemon.json

其余的源可以删掉,只保留如下内容

{
 "registry-mirrors": ["https://registry.docker-cn.com"]
}

或许有人想要让docker命令不再需要sudo权限运行,可以如下操作

sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo systemctl restart docker
sudo chmod a+rw /var/run/docker.sock

如果没有运行上述命令,后续使用docker时好像需要在命令前加 sudo 认证。无论如何,docker刚装完,使用前最好重启一下

sudo reboot

4、基于docker安装openwrt

重头戏来了

宿主机(nanopc t6)具有2个网口,看看机器外壳的2个网口应写有编号1和2。

通常这2个网口在系统里的名字是eth0和eth1,不是的话也没关系,可以在系统里确认一下,根据具体名字来。

ifconfig

根据这一命令的结果来看具体的网卡名,我这里是eth0和eth1。

在此,后续的部分需要提前申明,我的eth0是作为连接上层路由(上级路由器或者光猫)的网口,从该口获得网络访问;eth1目前没接下属设备,该网口目前没插网线。

后续设置一定要看清是给eth0设置,还是给eth1设置!!!

4.1、设置网卡模式

sudo vim /etc/rc.local

在exit 0前添加 

ip link set eth0 promisc on > /dev/null 2>&1
ip link set eth1 promisc on > /dev/null 2>&1

设置开机自动配置

sudo chmod a+x /etc/rc.local
sudo systemctl enable rc-local

4.2、设置系统支持转发

sudo vim /etc/sysctl.conf

添加下列内容

net.ipv4.ip_forward = 1

 确认设置

sudo sysctl -p /etc/sysctl.conf

4.3、虚拟网卡设置

eth0连接上层路由器,eth1暂时没连网线

 用eth1闲置的网口创建macvlan作为openwrt的lan口,IP的第三段地址可自己更改,例如我这里设为13,与后续openwrt配置文件中符合即可

docker network create -d macvlan --subnet=192.168.13.0/24 --gateway=192.168.13.1 -o parent=eth1 owrt-lan

需要用联网的eth0再创建一个 macvlan, 此时的 ip 设置需要和上层路由相同(例如我的上层路由器是 192.168.8.1),例如:当使用上述ifconfig命令发现设备的IP地址为192.168.8.112,则需要写为192.168.8.0192.168.8.1,注意网卡名和虚拟名

docker network create -d macvlan --subnet=192.168.8.0/24 --gateway=192.168.8.1 -o parent=eth0 owrt-wan

可以看一下创建的结果

docker network ls

4.4、拉取openwrt镜像,容器创建并启动

可以尝试目前最新的23.05.2

docker import https://mirrors.ustc.edu.cn/openwrt/releases/23.05.2/targets/armsr/armv8/openwrt-23.05.2-armsr-armv8-rootfs.tar.gz openwrt-23.05.2-armv8

可以看一下获取的镜像

docker images

创建、添加网卡并启动

docker create --restart always --name openwrt-23.05.2 --network owrt-lan --privileged -m 8G openwrt-23.05.2-armv8:latest /sbin/init
docker network connect owrt-wan openwrt-23.05.2
docker start openwrt-23.05.2

上述 --restart always 代表无论发生什么,容器都会重启,也可以设置为其它;--name openwrt-23.05.2 是给容器设置名字;--network owrt-lan 是连接之前创建的lan口,后续连接openwrt需要用到;-m 8G 是指该容器最多可使用8G的内存,我的nanopc t6是16G内存版本的;

4.5、openwrt基础设置

需要进入容器内部进行设置,用下列命令进入容器内部,按键盘的 Ctrl 和 d 就可退出,跟连接了一个ssh终端是一样的

docker exec -it openwrt-23.05.2 /bin/sh

进入内部后,进行如下设置

vi /etc/config/network

打开该文件后,可以看到下面的类似的配置文件,每个人可能有所不同,这个无所,只要改其中一行就可以了

例如下面的内容

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'
 
config globals 'globals'
        option ula_prefix 'fd2d:875e:614c::/48'
 
config interface 'lan'
        option type 'bridge'
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.13.22'
        option netmask '255.255.255.0'
        option ip6assign '60'
 
config interface 'wan'
        option ifname 'eth1'
        option proto 'dhcp'
 
config interface 'wan6'
        option ifname 'eth1'
        option proto 'dhcpv6'

只需要更改 option ipaddr '192.168.13.22' 这里就行,更改成跟其它设备不冲突的地址,以后这就是openwrt的连接地址啦,但是要跟步骤4.3中用eth1创建的 owrt-lan 相匹配,例如我这里是192.168.13.22,因为前面设置的第三段是13,最后的22可以自己更改。

更改完后,继续设置其它的,防止提示/dev/crypto无权限

chmod -R 777 /dev/crypto

防止提示配置文件无写入权限

vi /etc/rc.local

在exit 0前加入

mount -o remount rw /

确保命令配置可执行

chmod +x /etc/rc.local

退出容器(Ctrl和d一起按)

重启宿主机

sudo reboot

到此,openwrt基本的安装和配置就已经结束了,重启完后,nanopc t6 的第二个网口可以插入设备,例如一台电脑,这样可以用这台电脑的浏览器,连接配置好的地址192.168.13.22,连接openwrt的luci界面进行设置了。

4.6、openwrt换源

可以给openwrt的软件库换源,默认好像是国外的,挺慢的,可以换中科大的源

先进入容器

docker exec -it openwrt-23.05.2 /bin/sh

进入后先更新一下软件列表,此时应该很慢

opkg update

 先安装libustream-openssl和ca-bundle以及ca-certificates这三个,防止换源后报错

opkg install ca-bundle ca-certificates libustream-openssl

libustream-openssl如果安装时候报错,那就不装了,好像没啥影响

此时可以换源了

sed -i 's/downloads.openwrt.org/mirrors.ustc.edu.cn\/openwrt/g' /etc/opkg/distfeeds.conf

 再更新软件列表看看

opkg update

应该快了不少

5、宿主机与openwrt下挂设备互通

例如此时nanopc t6 的第二个网口插了一台电脑(暂且命名为Q),那宿主机怎么才能访问到该电脑呢?

这种情况下,只需要给宿主机的eth1网卡设置一个192.168.13.0/24网段的 ip 就可以,网关设为openwrt的地址。

这里采用netplan进行设置,以NetworkManager为后端

sudo systemctl enable NetworkManager
sudo systemctl restart NetworkManager
sudo vim /etc/netplan/net_config_01.yaml
network:                                                                                                                                                                                        
  version: 2
  renderer: NetworkManager
  ethernets:
    eth0:
      dhcp6: true
      dhcp4: ture
      nameservers:
        addresses: [8.8.8.8,114.114.114.114]
    eth1:
      dhcp6: true
      dhcp4: false
      addresses:
        - 192.168.13.55/24
      routes:
        - to: default
      nameservers:
        addresses: [8.8.8.8,114.114.114.114]

上述的需要更改的是 - 192.168.13.55/24 这里,例如我这里设置为55,第三段地址的13不能改,可以改第四段的55,只要地址不跟其它设备冲突就行。

sudo netplan apply

到此,最好再重启一下设备

sudo reboot

6、宿主机与openwrt互通 

提前申明,必须要给nanopc t6 的第二个网口eth1插了下挂设备才有效,可以是电脑或者其它,总之第二个网口要有下挂的设备。

只有第二个网口eth1插了设备,才能实现互通。配置虚拟接口,例如192.168.13.122,122可以自己更改。添加openwrt的地址(192.168.13.22)为网关,就可以互通了

sudo ip link add owrt-link link eth1 type macvlan mode bridge
sudo ip addr add 192.168.13.122 dev owrt-link
sudo ip link set owrt-link up
sudo ip route add 192.168.13.22 dev owrt-link

可以测试一下

ping 192.168.13.22 -c 3

但上述配置重启就失效了,需要开机启动时实现自动设置,还是设置下面的文件

sudo vim /etc/rc.local

在exit 0之前,上述步骤4.1配置之后,添加

ip link add owrt-link link eth1 type macvlan mode bridge
ip addr add 192.168.13.122 dev owrt-link
ip link set owrt-link up
ip route add 192.168.13.22 dev owrt-link

确保开机启动

sudo chmod a+x /etc/rc.local
sudo systemctl enable rc-local

这里重启一下试试文章来源地址https://www.toymoban.com/news/detail-797563.html

sudo reboot

到了这里,关于nanopc t6 的ubuntu22.04用docker 安装openwrt 23.05.2,基于arm64 (aarch64)架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu22.04 安装docker教程

    2024年02月06日
    浏览(38)
  • Ubuntu 22.04上安装Docker

    sudo apt install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo “deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”

    2024年02月08日
    浏览(38)
  • Ubuntu 22.04 安装 Docker Engine

    Install Docker Engine on Ubuntu | Docker Docs 比较方便的安装方式为通过 Apt Repo 来安装,需要三大步: 1. 预备仓库信息: 逐行执行一下命令 2. 安装Docker Engine sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 3. 下载 docker image 3. 测试 exit   退出

    2024年02月09日
    浏览(32)
  • [Ubuntu 22.04] Docker安装及使用

    使用脚本自动安装 安装完成后验证 1. 拉取镜像并启动容器 注 :OPTION是参数,TAG是标签(版本号) 以Ubuntu 20.04为例,如下: 2. 创建容器 镜像拉取完成后,可以使用以下命令创建并启动一个基于 Ubuntu 20.04 镜像的容器 这将创建一个交互式的终端会话,可以在 Ubuntu 20.04 容器内

    2024年01月17日
    浏览(34)
  • ubuntu22.04安装Docker两种方式

    以下是在 Ubuntu 上安装 Docker 的步骤: 更新包管理器: 安装 Docker 的依赖包: 添加 Docker GPG 密钥: 添加 Docker apt 仓库: 更新 apt 缓存: 安装 Docker: 启动 Docker 服务: 确认 Docker 已经正确安装: 这个命令会从 Docker Hub 上下载一个测试镜像并运行它。如果 Docker 正确安装,会显

    2024年02月13日
    浏览(37)
  • 【WSL】Ubuntu 22.04 安装配置docker

    WSL就是个坑! WSL就是个坑! WSL就是个坑! 我第一次安装使用 Ubuntu 还是第一台笔记本,装了双系统,版本是18.04 LTS,但是我那个时候只有机械硬盘,因此 Ubuntu 桌面十分的卡。 兜兜转转,大三的时候发现微软的 WSL2 很好用,想装一个学习 Linux,当然选择了那个时候最新的

    2024年02月08日
    浏览(40)
  • Ubuntu 22.04上安装Docker的完整过程

    更新系统软件包: 安装所需的依赖包,以允许APT使用HTTPS: 添加Docker官方的GPG密钥: 添加Docker存储库: 更新软件包索引: 安装Docker引擎: 验证Docker是否成功安装并运行: 以上步骤将安装Docker并运行Hello World容器。接下来,您可以使用Docker运行其他容器和镜像。 例如,如果

    2024年02月06日
    浏览(80)
  • Ubuntu22.04安装nvidia-docker

    参考这篇文章:Ubuntu22.04安装docker - 掘金 参考这篇文章:Ubuntu 22.04 LTS : NVIDIA Container Toolkit : Install : Server World 流程: 进行测试(拉取nvidia cuda11.5镜像并运行nvidia-smi) # pull Cuda 10.2 image and connect to the interactive session, then run [nvidia-smi] 参考文章: Ubuntu22.04安装docker - 掘金 Ubuntu 22

    2024年02月02日
    浏览(39)
  • ubuntu 22.04 安装 Docker Desktop 及docker介绍

    目录 一、Docker Desktop 安装 1、我们先去官网下载安装包  2、Install Docker Desktop on Ubuntu 3、Launch Docker Desktop 二、Docker 介绍 什么是docker 如何使用docker docker是如何工作的 docker build  docker run  docker pull For non-Gnome Desktop environments, gnome-terminal must be installed: Uninstall the tech preview or be

    2024年02月05日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包