Building full image that's supposed to contain asterisk-chan-quectel #2

Merged
PeterSurda merged 6 commits from lee.miller/openwrt:quectel into main 2023-01-17 23:27:23 +01:00
4 changed files with 125 additions and 13 deletions

View File

@ -1,6 +1,9 @@
FROM ubuntu:focal FROM ubuntu:focal
ENV OPENWRT_VERSION=22.03.2 ENV OPENWRT_VERSION=22.03.2
ENV OPENWRT_TARGET=bcm27xx
ENV OPENWRT_DEVICE=bcm2711
ENV OPENWRT_CC=gcc-11.2.0_musl
RUN apt -y update RUN apt -y update
@ -13,8 +16,12 @@ RUN DEBIAN_FRONTEND=noninteractive TZ=UTC \
RUN mkdir /Downloads RUN mkdir /Downloads
RUN wget -qP /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" "https://downloads.openwrt.org/releases/${OPENWRT_VERSION}/targets/bcm27xx/bcm2711/openwrt-imagebuilder-${OPENWRT_VERSION}-${OPENWRT_TARGET}-${OPENWRT_DEVICE}.Linux-x86_64.tar.xz"
RUN wget -qP /Downloads \ 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" "https://downloads.openwrt.org/releases/${OPENWRT_VERSION}/targets/bcm27xx/bcm2711/openwrt-sdk-${OPENWRT_VERSION}-${OPENWRT_TARGET}-${OPENWRT_DEVICE}_${OPENWRT_CC}.Linux-x86_64.tar.xz"
RUN wget -qP /Downloads \ 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" "https://downloads.openwrt.org/releases/${OPENWRT_VERSION}/targets/bcm27xx/bcm2711/openwrt-toolchain-${OPENWRT_VERSION}-${OPENWRT_TARGET}-${OPENWRT_DEVICE}_${OPENWRT_CC}.Linux-x86_64.tar.xz"
ADD . .

View File

@ -1,7 +1,5 @@
#!/bin/bash #!/bin/bash
ls -lah /Downloads
# use the SDK to build the module: # use the SDK to build the module:
# https://github.com/IchthysMaranatha/asterisk-chan-quectel # https://github.com/IchthysMaranatha/asterisk-chan-quectel
# The module is for two vendors, the Quectel-EC* and Simcom SIM7600. In # The module is for two vendors, the Quectel-EC* and Simcom SIM7600. In
@ -11,22 +9,53 @@ ls -lah /Downloads
# now I noticed there is actually a Makefile for openwrt in the repo already: # now I noticed there is actually a Makefile for openwrt in the repo already:
# https://github.com/IchthysMaranatha/asterisk-chan-quectel/tree/master/openwrt # https://github.com/IchthysMaranatha/asterisk-chan-quectel/tree/master/openwrt
tar -xJf /Downloads/openwrt-sdk-${OPENWRT_VERSION}-*.tar.xz
cp -r feed openwrt-sdk-*/
pwd=$(pwd)
cd openwrt-sdk-*/
cp feeds.conf.default feeds.conf
cat ${pwd}/feeds.conf >> feeds.conf
./scripts/feeds update -a
./scripts/feeds install -a
Review

I think lines 23 and 25 should be skipped, no? That would just recompile unnecessarily. The documentation doesn't mention these steps, only feeds update and then feeds install packagename.

I think lines 23 and 25 should be skipped, no? That would just recompile unnecessarily. The [documentation](https://openwrt.org/docs/guide-developer/obtain.firmware.sdk#obtain_definitions) doesn't mention these steps, only `feeds update` and then `feeds install packagename`.
Review

See also from the documentation:

The output of make might contain WARNING: your configuration is out of sync. Please run make menuconfig, oldconfig or defconfig!. That warning is misleading and wrong in the SDK case. Since everything is precompiled you cannot run oldconfig (see Why is the SDK configuration out of sync?).

See also from the documentation: > The output of `make` might contain `WARNING: your configuration is out of sync. Please run make menuconfig, oldconfig or defconfig!`. That warning is misleading and wrong in the SDK case. Since everything is precompiled you cannot run oldconfig (see Why is the SDK configuration out of sync?).
Review

It seems trying to run make menuconfig if I remove make defconfig, see at line 2043.

It seems trying to run `make menuconfig` if I remove `make defconfig`, [see](https://buildbot.bitmessage.org/#/builders/33/builds/15409/steps/3/logs/stdio) at line 2043.
Review

It's not working also without feeds install, see line 1979.

It's [not working](https://buildbot.bitmessage.org/#/builders/33/builds/15410/steps/3/logs/stdio) also without feeds install, see line 1979.
Review

I'll check the build logs.

I'll check the build logs.
Review

Ok I don't know how to fix it either, at least it doesn't look like it's compiling everything, only some dependencies, so it's fine. I tried a full build previously and it takes several hours: https://buildbot.bitmessage.org/#/builders/33/builds/14862

I will rarely build this so it's not a big deal if I have to wait an hour.

Ok I don't know how to fix it either, at least it doesn't look like it's compiling everything, only some dependencies, so it's fine. I tried a full build previously and it takes several hours: https://buildbot.bitmessage.org/#/builders/33/builds/14862 I will rarely build this so it's not a big deal if I have to wait an hour.
make defconfig
make package/asterisk-chan-quectel/compile
# no signing key
make package/index
sdkdir=$(pwd)
cd ${pwd}
tar -xJf /Downloads/openwrt-imagebuilder-${OPENWRT_VERSION}-*.tar.xz tar -xJf /Downloads/openwrt-imagebuilder-${OPENWRT_VERSION}-*.tar.xz
cd openwrt-imagebuilder-*/ cd openwrt-imagebuilder-*/
cp ${sdkdir}/bin/targets/bcm27xx/bcm2711/packages/*.ipk packages/
cp ${sdkdir}/bin/packages/aarch64_cortex-a72/telephony/*.ipk packages/
cp ${sdkdir}/bin/packages/aarch64_cortex-a72/quectel/*.ipk packages/
make info make info
make image \ make image \
PROFILE=rpi-4 \ PROFILE=rpi-4 \
PACKAGES="kmod-rtc-ds1307 \ PACKAGES="kmod-nf-nathelper-extra kmod-rtc-ds1307 \
kmod-usb-net-rtl8152 \ kmod-usb-audio kmod-usb-net-rtl8152 \
pciutils usbutils \ alsa-lib pciutils usbutils \
kmod-usb-net-qmi-wwan libqmi qmi-utils uqmi luci-proto-qmi \ kmod-usb-net-qmi-wwan libqmi qmi-utils uqmi luci-proto-qmi \
asterisk \ asterisk \
asterisk-pjsip asterisk-bridge-simple \ asterisk-app-sms asterisk-pjsip asterisk-bridge-simple \
asterisk-codec-alaw asterisk-codec-ulaw \ asterisk-codec-alaw asterisk-codec-ulaw \
asterisk-res-rtp-asterisk kmod-nf-nathelper-extra" asterisk-res-rtp-asterisk \
asterisk-chan-quectel"
ls -lah packages
mkdir -p ../../out out=../../out
mv build_dir/target-aarch64_cortex-a72_musl/linux-bcm27xx_bcm2711/tmp/*.gz ../../out
mkdir -p ${out}
mv bin/targets/bcm27xx/bcm2711/*.gz ${out}
mv packages ${out}

View File

@ -0,0 +1,74 @@
#
# Copyright (C) 2017 - 2023 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=asterisk-chan-quectel
PKG_VERSION:=3.6
PKG_RELEASE:=3.6
PKG_SOURCE:=master.zip
PKG_SOURCE_URL:=https://github.com/IchthysMaranatha/asterisk-chan-quectel/archive/refs/heads/
PKG_CAT:=unzip
PKG_HASH:=skip
PKG_FIXUP:=autoreconf
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-master
PKG_MAINTAINER:=Lee Miller <lee.miller@tutanota.com>
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYRIGHT.txt LICENSE.txt
MODULES_DIR:=/usr/lib/asterisk/modules
include $(INCLUDE_DIR)/package.mk
# asterisk-chan-quectel needs iconv
include $(INCLUDE_DIR)/nls.mk
define Package/$(PKG_NAME)
SUBMENU:=Telephony
SECTION:=net
CATEGORY:=Network
URL:=https://github.com/IchthysMaranatha/asterisk-chan-quectel
DEPENDS:=asterisk $(ICONV_DEPENDS) +kmod-usb-acm +kmod-usb-serial +kmod-usb-serial-option +libusb-1.0 +alsa-lib
TITLE:=Asterisk Mobile Telephony Module
endef
define Package/$(PKG_NAME)/description
Asterisk channel driver for mobile telephony.
endef
CONFIGURE_ARGS+= \
--with-asterisk=$(STAGING_DIR)/usr/include \
--with-astversion=20 \
--with-iconv=$(ICONV_PREFIX)/include
TARGET_CFLAGS+= \
-I$(CHAN_quectel_AST_HEADERS)
MAKE_FLAGS+=LD="$(TARGET_CC)"
CONFIGURE_VARS += \
DESTDIR="$(MODULES_DIR)" \
ac_cv_type_size_t=yes \
ac_cv_type_ssize_t=yes
define Package/$(PKG_NAME)/conffiles
/etc/asterisk/quectel.conf
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/quectel.conf $(1)/etc/asterisk
$(INSTALL_DIR) $(1)$(MODULES_DIR)
$(INSTALL_BIN) $(PKG_BUILD_DIR)/chan_quectel.so $(1)$(MODULES_DIR)
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

2
feeds.conf Normal file
View File

@ -0,0 +1,2 @@
src-link quectel ../feed