Sign inSign up

raiuka/ubuntu-lede

By raiuka

•Updated almost 7 years ago

Build for Openwrt Compiling

Image
1

130

raiuka/ubuntu-lede repository overview

为群友做的方便编译openwrt所使用Ubuntu容器编译环境:

⁠软件版本

Ubuntu 14.04

Ubuntu 19.10

⁠使用方法:

14.04版:

docker run \
 -it -d \
 --restart=always \
 --name=ubuntu-host \
 --hostname=ubuntu \
 -p 2022:22 \
 raiuka/ubuntu-lede:14.04 /etc/run.sh 

19.10版:

docker run \
 -it -d \
 --restart=always \
 --name=ubuntu-host \
 --hostname=ubuntu \
 -p 2022:22 \
 raiuka/ubuntu-lede:19.10 /etc/run.sh 

容器建立好以后,可以直接ssh [email protected] -p 2022登录到容器内,默认用户user/123456,root用户root/654321。

注意:

由于openwrt的编译需要50G+的空间,请确认你的docker数据所在的盘空间是否足够,如果有需要可以使用-v <YOUR_OPENWRT_DIR>:/home/user/lede参数来映射你的目录。

补充说明: 如果想在宿主机系统和容器中同时对两个文件夹进行操作,则需要对宿主机的用户进行映射,方法如下:

  1. 首先确定宿主机用户的uid和gid,并记下这两个值:
[rayyu@Server ~]$id
uid=1000(rayyu) gid=1000(rayyu) 

2.登陆到容器中,切换到root用户修改user用户的uid和gid:

user@ubuntu:~$ su -
Password:
root@ubuntu:~#
root@ubuntu:~# usermod -u 1000 user                            #这条命令执行后需要耐心等待一段时间,1000对应上一个id命令中输出的uid
root@ubuntu:~# groupmod -g 1000 user                         #1000对应上一个id命令中输出的gid
  1. 退出容器登陆,重新登陆后上述修改生效。
⁠dockerfile
FROM ubuntu:14.04                                                                  #可以更换14.04版本到任意版本

#Build for Openwrt Compiling

LABEL maintainer "[email protected]"
LABEL Version "1.0 beta"

ENV DEBIAN_FRONTEND=noninteractive

RUN echo "==> Install toolchain..."       \
    && apt-get update                                \
    && apt-get install -y tzdata openssh-client openssh-server     \
    && ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime    \
    && apt-get install -y build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint wget tree net-tools screen iputils-ping      \
    && rm -rf /var/lib/apt/lists/* \
    && echo "==> Setup SSH and login parameters"     \
    && mkdir /run/sshd                               \
    && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config     \
    && useradd -m user -s /bin/bash                  \                                #如果需要从宿主机映射目录到容器,可添加-u <PID>参数,PID对应宿主机用户的pid
    && echo "root:654321" | chpasswd                 \
    && echo "user:123456" | chpasswd             \
    && echo '#!/bin/bash' > /etc/run.sh             \
    && echo '/etc/init.d/ssh start' >> /etc/run.sh  \
    && echo 'tail -f /dev/null' >> /etc/run.sh      \
    && chmod +x /etc/run.sh

CMD ["/usr/sbin/sshd","-D"]

USER  user
WORKDIR /home/user

RUN echo "==> Download openwrt..."        \
    && git clone https://github.com/coolsnowwolf/lede \
    && /home/user/lede/scripts/feeds update -a       \
    && /home/user/lede/scripts/feeds install -a      \
    && echo '#!/bin/bash' > /home/user/lede/update.sh    \
    && echo 'rm -rf tmp && make clean > /dev/null' >> /home/user/lede/update.sh    \
    && echo 'git pull && ./scripts/feeds update -a && ./scripts/feeds install -a' >> /home/user/lede/update.sh    \
    && echo 'echo -e "\033[37;31;5mAll files were updated...\033[39;49;0m"' >> /home/user/lede/update.sh   \
    && chmod +x /home/user/lede/update.sh

EXPOSE 22
⁠说明:

  1. Openwrt源码在/home/user/lede下。
  2. 写了一个简单的shell脚本,在每次编译前执行一下./update.sh,就可以自动清除tmp文件,之前编译的固件,以及自动git pull和feeds update/install。
  3. 你需要做的仅仅是make menuconfig选中你需要的功能,然后make V=s,即可:
⁠例如:
user@ubuntu:~/lede$./update.sh
Collecting target info: doneremote: Enumerating objects: 93, done.
remote: Counting objects: 100% (93/93), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 53 (delta 28), reused 49 (delta 26), pack-reused 0
Unpacking objects: 100% (53/53), done.
From https://github.com/coolsnowwolf/lede
   d24f2401..6ab6f0c6  master     -> origin/master
Updating d24f2401..6ab6f0c6
Fast-forward
 include/image-commands.mk                                                 |  14 ++++++
 package/firmware/ipq-wifi/Makefile                                        |   3 +-
 package/firmware/ipq-wifi/board-p2w_r619ac.qca4019                        | Bin 0 -> 24300 bytes
 package/network/services/wireguard/Makefile                               |   4 +-
 package/network/services/wireguard/files/wireguard.sh                     | 333 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------
 scripts/mkits-qsdk-ipq-image.sh                                           |  59 ++++++++++++++++++++++++
 target/linux/ipq40xx/base-files/etc/board.d/02_network                    |   1 +
 target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata  |   2 +
 target/linux/ipq40xx/base-files/lib/upgrade/platform.sh                   |   1 +
 target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-r619ac.dts | 327 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-r619ac.dts | 327 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 target/linux/ipq40xx/image/Makefile                                       |  15 +++++++
 target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch        |   5 ++-
 target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch        |   4 +-
 14 files changed, 916 insertions(+), 179 deletions(-)
 create mode 100644 package/firmware/ipq-wifi/board-p2w_r619ac.qca4019
 create mode 100755 scripts/mkits-qsdk-ipq-image.sh
 create mode 100644 target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-r619ac.dts
 create mode 100644 target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-r619ac.dts
Updating feed 'luci' from 'https://github.com/coolsnowwolf/luci' ...
Already up to date.
Create index file './feeds/luci.index'
Updating feed 'packages' from 'https://github.com/coolsnowwolf/packages' ...
Already up to date.
Create index file './feeds/packages.index'
Updating feed 'routing' from 'https://git.openwrt.org/feed/routing.git;openwrt-18.06' ...
Already up to date.
Create index file './feeds/routing.index'
Installing all packages from feed luci.
Installing all packages from feed packages.
Installing all packages from feed routing.
All files were updated...

Enjoy~

Tag summary

Content type

Image

Digest

Size

868.5 MB

Last updated

almost 7 years ago

docker pull raiuka/ubuntu-lede:19.10