Move toolchain installation into Dockerfile:

break the big make step into several ones. Make also a factory world.
Extra packages are made in the build.sh.
This commit is contained in:
Lee Miller 2023-01-08 21:26:29 +02:00
parent 9e905faff0
commit fb3dae6197
Signed by untrusted user: lee.miller
GPG Key ID: 4F97A5EA88F4AB63
3 changed files with 61 additions and 39 deletions

View File

@ -10,14 +10,25 @@ RUN DEBIAN_FRONTEND=noninteractive TZ=UTC \
libncurses5-dev unzip gawk zlib1g-dev libncursesw5-dev zlib1g-dev \
gettext xsltproc wget unzip python python3-distutils rxvt-unicode
RUN mkdir /Downloads
RUN wget -qP /Downloads \
"https://downloads.openwrt.org/releases/${OPENWRT_VERSION}/targets/bcm27xx/bcm2711/openwrt-imagebuilder-${OPENWRT_VERSION}-bcm27xx-bcm2711.Linux-x86_64.tar.xz"
RUN wget -qP /Downloads \
"https://downloads.openwrt.org/releases/${OPENWRT_VERSION}/targets/bcm27xx/bcm2711/openwrt-sdk-${OPENWRT_VERSION}-bcm27xx-bcm2711_gcc-11.2.0_musl.Linux-x86_64.tar.xz"
RUN wget -qP /Downloads \
"https://downloads.openwrt.org/releases/${OPENWRT_VERSION}/targets/bcm27xx/bcm2711/openwrt-toolchain-${OPENWRT_VERSION}-bcm27xx-bcm2711_gcc-11.2.0_musl.Linux-x86_64.tar.xz"
RUN git clone https://git.openwrt.org/openwrt/openwrt.git
RUN cd openwrt && git checkout v${OPENWRT_VERSION}
RUN wget -qP /openwrt \
"https://downloads.openwrt.org/releases/${OPENWRT_VERSION}/targets/bcm27xx/bcm2711/config.buildinfo"
RUN cd /openwrt && cp config.buildinfo .config && make defconfig
ENV FORCE_UNSAFE_CONFIGURE=1
RUN cd /openwrt && make tools/install
RUN cd /openwrt && make toolchain/install
RUN cd /openwrt && make download
RUN cd /openwrt && make world
RUN useradd -m -U -u 999 buildbot
RUN chown -R buildbot.buildbot /openwrt
USER buildbot
ADD . .

View File

@ -1,7 +1,5 @@
#!/bin/bash
ls -lah /Downloads
# use the SDK to build the module:
# https://github.com/IchthysMaranatha/asterisk-chan-quectel
# The module is for two vendors, the Quectel-EC* and Simcom SIM7600. In
@ -11,47 +9,45 @@ ls -lah /Downloads
# now I noticed there is actually a Makefile for openwrt in the repo already:
# https://github.com/IchthysMaranatha/asterisk-chan-quectel/tree/master/openwrt
tar -xJf /Downloads/openwrt-imagebuilder-${OPENWRT_VERSION}-*.tar.xz
cp -r feed /openwrt/
cp feeds.conf /openwrt/
cd openwrt
pwd=$(pwd)
cd /openwrt
git checkout v${OPENWRT_VERSION}
cp ../feeds.conf .
cp ../config.buildinfo .config
./scripts/feeds update -a
./scripts/feeds install -a
export FORCE_UNSAFE_CONFIGURE=1
cp config.buildinfo /openwrt/.config
cat ${pwd}/config.extra >> /openwrt/.config
make defconfig
make tools/install
make toolchain/install
opkg info asterisk-chan-quectel
make -j1 V=s world
make package/asterisk-chan-quectel/compile
make package/index
# The full distribution
ls -lah bin/targets/bcm27xx/bcm2711
mv bin/*.ipk ../openwrt-imagebuilder-*/packages/
# tar -xJf bin/targets/bcm27xx/bcm2711/openwrt-imagebuilder-${OPENWRT_VERSION}-*.tar.xz
# cp bin/targets/bcm27xx/bcm2711/packages/asterisk*.ipk openwrt-imagebuilder-*/packages/
cd ../openwrt-imagebuilder-*/
cd ${pwd}
make info
# make info
make image \
PROFILE=rpi-4 \
PACKAGES="kmod-rtc-ds1307 \
kmod-usb-net-rtl8152 \
pciutils usbutils \
kmod-usb-net-qmi-wwan libqmi qmi-utils uqmi luci-proto-qmi \
asterisk \
asterisk-pjsip asterisk-bridge-simple \
asterisk-codec-alaw asterisk-codec-ulaw \
asterisk-res-rtp-asterisk kmod-nf-nathelper-extra \
asterisk-chan-quectel"
# make image \
# PROFILE=rpi-4 \
# PACKAGES="kmod-rtc-ds1307 \
# kmod-usb-net-rtl8152 \
# pciutils usbutils \
# kmod-usb-net-qmi-wwan libqmi qmi-utils uqmi luci-proto-qmi \
# asterisk \
# asterisk-pjsip asterisk-bridge-simple \
# asterisk-codec-alaw asterisk-codec-ulaw \
# asterisk-res-rtp-asterisk kmod-nf-nathelper-extra \
# asterisk-chan-quectel"
out=../../out
mkdir -p ../../out
mv build_dir/target-aarch64_cortex-a72_musl/linux-bcm27xx_bcm2711/tmp/*.gz ../../out
mkdir -p ${out}
mv /openwrt/bin/targets/bcm27xx/bcm2711/*.gz ${out}
mv /openwrt/bin/targets/bcm27xx/bcm2711/packages ${out}

15
config.extra Normal file
View File

@ -0,0 +1,15 @@
CONFIG_PACKAGE_asterisk=y
# Feeds
CONFIG_PER_FEED_REPO=y
CONFIG_FEED_packages=y
CONFIG_FEED_luci=y
CONFIG_FEED_telephony=y
CONFIG_FEED_quectel=y
CONFIG_PACKAGE_asterisk-pjsip=m
CONFIG_PACKAGE_asterisk-bridge-simple=m
CONFIG_PACKAGE_asterisk-codec-alaw=m
CONFIG_PACKAGE_asterisk-codec-ulaw=m
CONFIG_PACKAGE_asterisk-res-rtp-asterisk=m
CONFIG_PACKAGE_asterisk-chan-quectel=m
CONFIG_PACKAGE_kmod-nf-nathelper-extra=m
CONFIG_PACKAGE_kmod-rtc-ds1307=m