% ---------------------------- \section{Update Concepts} \subsection{Introduction} % ---------------------------- \begin{frame}{General} \begin{itemize} \item Why are updates necessary? \begin{itemize} \item Functionality (new features) \item Up-to-date (problem fixes, configuration) \item Root-of-trust (Certificates et.al.) \end{itemize} \item Common Issues with Updates: \begin{itemize} \item Reduced Resources \item Unreliable Communication \item Failed or Incomplete Updates \item Integrity of Updates \item No "One-size-fits-all"-Solution \end{itemize} \item Update concepts are mandatory for Embedded Systems! \end{itemize} \end{frame} % ---------------------------- \begin{frame}{General Requirements} \begin{itemize} \item Security \begin{itemize} \item Ensure Update Integrity \item Prevent Malicious Code Injection \item Usage of Encryption Standards \end{itemize} \item Reliability \begin{itemize} \item Handle failed or incomplete Updates \end{itemize} \item Flexibility \begin{itemize} \item Adaptable to changing Needs \item Adaptable to Target Requirements \item Adaptable to System Environment \end{itemize} \item Scalability \begin{itemize} \item Number of Targets \item Target Size \item Target Connectivity \end{itemize} \end{itemize} \end{frame} % ---------------------------- \subsection{Redundant System} % ---------------------------- \begin{frame}{Overview} \begin{center} \includegraphics[height=0.7\textheight]{images/update_redundant_overview.png} \end{center} \end{frame} % ---------------------------- \begin{frame}{Process Update} \begin{center} \includegraphics[width=5cm]{images/update_redundant_upd_process.png} \end{center} \end{frame} % ---------------------------- \begin{frame}{Confirm Update} \begin{center} \includegraphics[width=5cm]{images/update_redundant_upd_confirm.png} \end{center} \end{frame} % ---------------------------- \begin{frame}{Features} \begin{itemize} \item Always working (and updateable) System \item Single Root-Filesystem Layout \item Single Reboot per Update \item Pros: \begin{itemize} \item Fallback: Production Environment \item only one Reboot per Update required \item better Integration with Application \end{itemize} \item Cons: \begin{itemize} \item Space Requirements \end{itemize} \end{itemize} \end{frame} % ---------------------------- \subsection{Rescue System} % ---------------------------- \begin{frame}{Overview} \begin{center} \includegraphics[height=0.7\textheight]{images/update_rescue_overview.png} \end{center} \end{frame} % ---------------------------- \begin{frame}{Prepare Update} \begin{center} \includegraphics[width=5cm]{images/update_rescue_upd_prepare.png} \end{center} \end{frame} % ---------------------------- \begin{frame}{Process Update} \begin{center} \includegraphics[width=5cm]{images/update_rescue_upd_process.png} \end{center} \end{frame} % ---------------------------- \begin{frame}{Confirm Update} \begin{center} \includegraphics[width=5cm]{images/update_rescue_upd_confirm.png} \end{center} \end{frame} % ---------------------------- \begin{frame}{Features} \begin{itemize} \item Always updateable System \item Separate Root-Filesystem Layout \item Full Linux functionality (NAND, USB, WiFi, etc) for Rescue \item Pros: \begin{itemize} \item Space Requirements \item Restricted HW Access in (connected) Production System \item Full HW Access in (disconnected) Rescue System \end{itemize} \item Cons.: \begin{itemize} \item two Reboots per Update \item no/reduced Application Support during Update \item no Fallback to working System \end{itemize} \end{itemize} \end{frame}