diff --git a/.buildbot/openwrt/Dockerfile b/.buildbot/openwrt/Dockerfile index 843a6e0..5b374be 100644 --- a/.buildbot/openwrt/Dockerfile +++ b/.buildbot/openwrt/Dockerfile @@ -1,6 +1,9 @@ FROM ubuntu:focal 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 @@ -13,8 +16,12 @@ RUN DEBIAN_FRONTEND=noninteractive TZ=UTC \ 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" + "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 \ - "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 \ - "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 . . diff --git a/.buildbot/openwrt/build.sh b/.buildbot/openwrt/build.sh index 5bbcda7..c7766d8 100755 --- a/.buildbot/openwrt/build.sh +++ b/.buildbot/openwrt/build.sh @@ -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,22 +9,53 @@ 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-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 + +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 + 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 image \ PROFILE=rpi-4 \ - PACKAGES="kmod-rtc-ds1307 \ - kmod-usb-net-rtl8152 \ - pciutils usbutils \ + PACKAGES="kmod-nf-nathelper-extra kmod-rtc-ds1307 \ + kmod-usb-audio kmod-usb-net-rtl8152 \ + alsa-lib 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-app-sms asterisk-pjsip asterisk-bridge-simple \ + asterisk-codec-alaw asterisk-codec-ulaw \ + asterisk-res-rtp-asterisk \ + asterisk-chan-quectel" +ls -lah packages -mkdir -p ../../out -mv build_dir/target-aarch64_cortex-a72_musl/linux-bcm27xx_bcm2711/tmp/*.gz ../../out +out=../../out + +mkdir -p ${out} +mv bin/targets/bcm27xx/bcm2711/*.gz ${out} +mv packages ${out} diff --git a/feed/asterisk-chan-quectel/Makefile b/feed/asterisk-chan-quectel/Makefile new file mode 100644 index 0000000..771c616 --- /dev/null +++ b/feed/asterisk-chan-quectel/Makefile @@ -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 +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))) diff --git a/feeds.conf b/feeds.conf new file mode 100644 index 0000000..dc06164 --- /dev/null +++ b/feeds.conf @@ -0,0 +1,2 @@ + +src-link quectel ../feed