Comments (6)
Please find the packages for Debian 11 in the repo here: https://packages.microsoft.com/repos/microsoft-debian-bullseye-prod/pool/main/d/deviceupdate-agent/
and Ubuntu 22.04 Debian packages here: https://packages.microsoft.com/repos/microsoft-ubuntu-jammy-prod/pool/main/d/deviceupdate-agent/
We are tracking support for Debian 12 in our backlog for future release and will track Ubuntu 24.04 as well
from iot-hub-device-update.
Hi @stefanb2,
DU agent is available for Ubuntu 20.4, Deb 10 for various archs as debian packages (Link). Debian 11(arm32, arm64 and x64) and Ubuntu 22.04 packages are in work and should be published in next few weeks. I will update this issue as soon as those are available.
While our aim is to ensure alignment with other services like IoT Edge, we are an independent service and need to have bandwidth for adding support to new OS, Archs.
The build instructions are if there are code modifications that users would want to build for or if you want to port to other OS and arch where out of box support is not available. Also please feel free to create a new issue for any specific bugs/ issues you are hitting with the build and install-deps script.
We do not have a timeline for Raspberry Pi 5 and Debian 12 yet. But please free to upvote this discussion item that allows us to prioritize the ask.
from iot-hub-device-update.
@eshashah-msft snippets that show how I attempted the build.
Docker image based on debian:bullseye-slim
for the platform linux/aarch64
with additional packages installed:
# Debian package installation
# NOTE: build scripts assume that they can run apt-get install
RUN \
mkdir -p /build /out && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ca-certificates \
curl \
patch \
&& \
/bin/true
Build script inside the Docker container:
#!/bin/bash -xe
set -xe
# constants
_package_name="iot-hub-device-update"
_release_base_url="https://github.com/Azure/${_package_name}/archive/refs/tags/"
_release_suffix=".tar.gz"
_release_version="1.0.2"
# Fetch release source tarball
_file="${_package_name}-${_release_version}${_release_suffix}"
curl \
--fail-early --location \
--output "${_file}" --remote-name-all \
"${_release_base_url}${_release_version}${_release_suffix}"
... <REMOVED NOT IMPORTANT STUFF> ...
# install dependencies
# NOTE: DO 1.1.0 required for Debian 11 support
DEBIAN_FRONTEND=noninteractive \
./scripts/install-deps.sh \
--install-aduc-deps --install-packages \
--install-do --do-ref v1.1.0 \
# build debian package
./scripts/build.sh --build-packages --type Release
For the build to proceed to the last step I needed to apply the following patch to the source tree:
diff -up iot-hub-device-update-1.0.2/scripts/install-deps.sh.ORIG iot-hub-device-update-1.0.2/scripts/install-deps.sh
--- iot-hub-device-update-1.0.2/scripts/install-deps.sh.ORIG 2023-02-09 01:03:44.000000000 +0200
+++ iot-hub-device-update-1.0.2/scripts/install-deps.sh 2023-09-15 15:34:08.607778247 +0300
@@ -79,7 +79,9 @@ do_ref=$default_do_ref
# Dependencies packages
aduc_packages=('git' 'make' 'build-essential' 'cmake' 'ninja-build' 'libcurl4-openssl-dev' 'libssl-dev' 'uuid-dev' 'python2.7' 'lsb-release' 'curl' 'wget' 'pkg-config')
static_analysis_packages=('clang' 'clang-tidy' 'cppcheck')
-compiler_packages=("gcc-[68]")
+# NOTE: already handled by build-essentials dependencies
+#compiler_packages=("gcc-[68]")
+compiler_packages=()
# Distro and arch info
OS=""
@@ -167,7 +169,9 @@ do_install_aduc_packages() {
if [[ $OS == "debian" && $VER == "9" ]]; then
$SUDO apt-get install --yes gcc-6 g++-6 || return
else
- $SUDO apt-get install --yes gcc-8 g++-8 || return
+# NOTE: already handled by build-essentials dependencies
+# $SUDO apt-get install --yes gcc-8 g++-8 || return
+ /bin/true
fi
echo "Installing packages required for static analysis..."
@@ -405,7 +409,8 @@ do_install_do_release_tarball() {
popd || return
fi
- return 0
+ echo -e "No libdeliveryoptimization release tarball available for this OS, falling back to build from source.\n"
+ return 1
}
do_install_do() {
The final step failed with a compilation error. I stopped there, because reaching this point had already taken too much time.
from iot-hub-device-update.
It would be great if you could provide an updated view on when you expect (to the extent that it can be estimated anyway) Ubuntu 22 support might be ready. The last info on the subject is two months old now and at this point clearly outdated.
from iot-hub-device-update.
... and 24.04 is going to be released in 5 months, so I hope somebody is already looking at that...
from iot-hub-device-update.
Argh.
So, it turns out RPi 5 doesn't (natively) support Ubuntu 22.04 (only 23+), and RPi OS uses Deb12.
That's going to make my life more interesting.
from iot-hub-device-update.
Related Issues (20)
- Cannot Install device update agent 1.0.3 beta version for Debian11 Arm64 on Debian 11.8 running on Raspberry Pi 4 HOT 1
- Configuration file deviceupdate-agent.service is marked executable HOT 7
- Yocto Rpi3 Device is restarting again and again in a loop HOT 2
- Failed parse of JSON file in Rpi4 device HOT 6
- /usr/bin/adu-swupdate.sh never runs (swupdate:2 never used even when registered?) HOT 7
- The packages deployed through device update are not reflecting in the device hosted on ubuntu 22.04 HOT 2
- Ignore duplicate deployment workflow not working as expected HOT 4
- Device reporting new Contract Name & ContractId after device update and stays inProgress in ADU HOT 9
- A/B Update Erases ADU Configuration on Yocto Kirkstone Raspberry Pi 4 - 64 bit Example HOT 2
- A/B Update Fails on Yocto Kirkstone Raspberry Pi 4 - 64 bit Example do to invalid update image HOT 2
- Device update agent on bullseye 11 raspberry zero HOT 4
- pthread_mutex_unlock doesn't check whether arguments is NULL for windows, this may cause dos HOT 3
- DeviceManagementClient.GetDeviceModuleAsync does not return the ExtendedResultCode HOT 3
- Update status changes to "In Progress" sometime after "Succeeded". HOT 10
- AducIotAgent cannot find custom step handler HOT 5
- ADUC_Result_Install_RequiredReboot stills reboots immediately after HOT 4
- Seeking Documentation on Retry Behavior HOT 1
- Is_Installed Step runs multiple times in swupdatev2 handler HOT 3
- Registering extensions fails on arm32 due to bug in STRING_construct_sprintf() invocation
- Unable to use additional compatibility information HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from iot-hub-device-update.