web-archive/AlpineLinux/Raspi with alpine pt1.html

585 lines
95 KiB
HTML
Raw Permalink Normal View History

2023-09-01 08:20:19 +02:00
<!DOCTYPE html> <html class="client-js vector-animations-ready" dir=ltr style lang=en><!--
Page saved with SingleFile
url: https://wiki.alpinelinux.org/wiki/Raspberry_Pi
saved date: Fri Mar 03 2023 14:30:39 GMT+0100 (Central European Standard Time)
--><meta charset=utf-8>
<title>Raspberry Pi - Alpine Linux</title>
<style>:root{--sf-img-11: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwEAYAAAAHkiXEAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAwAAAAMADO7oxXAAAM8klEQVR42u1ba0wUVxt+ZnZm57IXdikC3eWysAILKyJFUgSCSqHaGrVNK1oiqcZoa2MvGo3aNrFpaqKJvWli0jS9pemfGiomLT9qTGxLL6hV2qZVe/ESUNJaDQX2AnuZ78eb8w0spQsqLE15/kzOmTNnZ573nPd6FpjGNKYxjWlMYxoJAZfoFxgr3ngDAERRlgHg5Zepd80aTQMAQeB5APjoo1AIADZuXLcOAPr6Ev3e8SAk+gXGCiL+zTdnzMjNzc1taPB46uvr6xWF43ie54Hffjt+/PjxFSuuXj179uzZO++kp+65J9HvHQ98ol8gHt56CwBKSkTRZDKZGhq83qVLly5VFJ/v008//RTo7T1y5MgRIC+vrq6uzmiUJKvVaq2oeOcdAKivT/T7x8OUF4AgAMDrr3s8tbW1tbIcDH733XffAQMDFy9evAiEQlevXr0KBALffvvtt0BBQXV1dbWqGgwAsH8/qShuyqraKSsAWvnV1YqSkpKSUl6ekuJ2u90c19//9ddffz1yvM938uTJk4DNlpGRkQFYLGlpaWmZmbQTHnoo0d8zGqasAIxGADhwwOOpqampURSfj4jXtIGBgYGR4zUtFAqFAJ+vvb29HcjLq6ioqDCZaCe89toLLwBsP00lTDkBvPsuACxZYrE4HA5HXl5SksPhcHCc308qhkEQKisrKwFRXLBgwQK9PxD44YcffgBMpqSkpCQgOdnpdDpttpwcACDfaCphyuhGWqE8n5sLAD//XFa2atWqVW43x507d+4c4Pd3dHR00BieB8zmjz/++GOA500mkwno7a2vJ5M7ODg4CMhyfn5+PsDzxcXFxcDJk83Nzc03bigKAGRkNDQAQCCQ6O+eMjvA5QKARx6x210ulys93WymFez3f//999/r44zGZcuWLQMEgRHsdDqdgCQ1NjY26uOCwV9++eUXQJJIYOnpubm5ubJMlG/enOjvZUi4AFiARX7Kvn15eTU1NTUmU1/fZ5999hkARKPRKAAIgiAAsvz0008/PXIeWd64ceNGgONUVVUBQNM0DfD5vvnmm2+A7OyysrIyVQU4juN27vzgAwCw2xP9/QkXAJnFDRtSUz0ej8dqZSs2GCTVwyBJK1euXAnwfGZmZibRyHH6ledTUlJSAFleu3btWv25wcHOzs5OwGAIBAIBICMjPz8/XxDCYQB4/vlEf3/CBEArX1UFgeM47qWXZs6sqqqqUtX+frbyCRwny7IMyPITTzzxhE54LFi/LG/YsGEDwPM2m82m3/f5Tpw4cQLIzCwpKSmRZY4zGAyGxx9//30AYJHz5CNhApAkANiyxeksLi4uliSDwe/3+/UAi8FobGpqagJ4Pj09PX3kPLEC4Xmr1WrVBcEQDv/xxx9/AJr2559//glkZXk8Ho8oUqC2Z0+ieJh0ATDdy/MGg8GwfbvLNW/evHmK0tf3+eeffz6UWLPZbAYU5bHHHnts5DyxxMe2ZXnNmjVrAJ5PTU1N1fv9/tOnT58GnE6v1+sVRZ4XRVFcsYICtry8yeZj0gXAdG9m5pw5c+aIIsfRigyFrly5cmUogevWrVsHcJzdPtRUxiP+/x/GkzFW1aeeeuopvT8S6enp6QHCYbINLpfX6/UajRSwvfLKZPMxaXGArmtFURR//bWqav369etVtbf30KFDh4Bw+Nq1a9d0wpOSjh8/flzfCYzo1tbW1tZWoLOTCGTIysrKysoClixZsmTJkiEfyIXD4TBw48bChQsXApEIPccEZLEsXrx4MXDiRGtra6vfHwoFg8FgTc2aNQAwNPSbGEzyDti9Oze3vLy8XBQjkcuXL1/WiWeQZVI5scQzHDlC2c+9e/fu3btXv7a0tLS0tAwlnj0niqIIqOqWLVu26PejUbI5oRDZHLfb6/V6ZZmeOXBgshiZcAFQasHt5nlZluVVq5zO0tLSUlHs7//yyy+/HEpYWlpaGiBJZHRHUzUmE0W+sTCb/15gDIry4IMPPggIQkFBQYHeHwj8+OOPPwJ33OF0Op08L8tms9lcUvL22wBQW/uvFwBVqvbtc7srKioqjMbBwfPnz5/XdbFO0KZNmzYBPK8olC4YTnws0bEYrV9/nqUwtm3btk2/r2mUuhgYoMg5J6ewsLBQVSk+OXBgotPZEyYAvZBiNpvN996bnl5UVFRkMMSmk3medLcsU6A1GvEMFovFYrHE7x9tB8nyokWLFgGiWFpaWqrfZwKw2ymgUxSbzWbLzp7odPaECYAVUvLyKisrKxUlGKScTjTq8/l8+jhFYakFSjXEC7RGW+lMNY1GvN5PV6t1586dO/VxmkbGmkXgbrfH4/GwdParr05UOvu2C4AVUmTZbrfby8tnzJg5c+ZMjvP7T506dUofZzBQMk2Sli9fvjw+8QzxVFAs4aMJxGisqqqqAozG6urqav3+wAA5ByYTeUlJSSkpKSl2O6WzyTea0gIQRQDYv7+ggAIslsePRoPBYFAfpyibN2/eDFBKID7x8YzwWFVQbNtq3bFjxw7WA7DkH9sJLld+fn4++8U9ez78kN5+ygmAdOXixaqampqamp9vt2dmZmZyHIs8GQShpKSkBJAk0sVjJZ7hZlXQaG1JKisrKwNkmeIBBlZrlmUan5ycnp6erqq0iP4uH5sgATAvgbyd/fvz8ysrKytNpv5+SgOzUiGDqm7dunUro2LsRMUTQGz/eAWRlLR9+/btAPOWGIJB8tqys91ut1tRolGO47hnn6VkYlLSrfJnuNUJsrMBYOXK5OSMjIyM1auzs2fNmjXLaOzrO3r06FESkaYBolhRUVExMiAaK1HsKghkrCVJkiQJKC8vLy8vBxYsoNKkzTY8CxpvPn3eGTNmzAAikUuXLl0CQqGffvrpJz1gkyTKKUUiHMdxmjYw0NfX1ydJFPzRl94Mbtq/ZV4BGafLl+fObWhoaHA4NI28ndh8flJSc3NzMyAId911113jX6GsrWkk0DNnzpw5c0a/X1ZGqiSe8Y33OyxV0d1NNWcWJxgMlGUVRa/X6wVOn25vb28PBDguGo1G3e6mJgDo7h4vjzetgliROyUlNzc312ZTVVqRbMsyiGJtbW0tIIrDCRov8Qw7dpDRXL6cvCd23bVr165du26eeH0nUFxiNq9evXr1UMH09vb2AhzX19fXBzgcTqfTydzS3btvlsdx7wDmBQQCHMdxXV13393Y2NiYnBwKUYA1MHDhwoULANOldvsnn3zyCWAwFBYWFt488axdUECpBJ9veDzBvKDz52kBjJf42HYk8vvvv/8OXLlCKk7TqKLGkniSNHv27NnAmTOnTp06FQiEw+FwOFxcTI7qb7+Nlc9x7wDmBTgcHo/HoyiiSEZWJ55gNN5///333z7iGZgAYuF2u91u960TzyAIVACyWocXdphNiEavX79+HXA6HQ6HQxTJcL/66nj5HPMOYFZflnme5zs7KyubmpqaLJZA4NixY8eAwcGurq4ugOPISNpsZIQNhpycnJxbJ4S1u7u7u7u7gYMHDx48eFC3CRs3UlGepaVvl8A17a+//voL6Oyk1EU0ylQRqVxZpp1w+nRHR0dHIBCNhkKhUFXVo48CwFAr9fcYsxf08MMA8OKLmZnFxcXFVVU2m6qqqiCwWiuDLK9YsWKFfr1dxDNYrWQMa2vJttTV1dXV1Y3d+xlvmyUHNS0SiUSAYPCLL774AgCoTRU1QFGsVqvVYOjp6enp6Zk16/BhgEVH/4Q4KojnN20CgJwcnhcEQXjySZdr7ty5cyWpv/+rr776auhYo9FoBFT1mWeeeeb2E3+rxvVW57Xb6VCAIAwvcbJKXnKy3W6387wgSJIklZa+9x4ALFx4kwKg0/iA3V5UBAC7dmVlFRYWFgpCNErFbVbkZhCEOXPmzAEMhuHF83878Xo/GV
<meta name=generator content="MediaWiki 1.39.2">
<meta name=format-detection content="telephone=no">
<meta name=viewport content="width=1000">
<link rel=search type=application/opensearchdescription+xml href=https://wiki.alpinelinux.org/w/opensearch_desc.php title="Alpine Linux (en)">
<link rel=EditURI type=application/rsd+xml href="https://wiki.alpinelinux.org/w/api.php?action=rsd">
<link rel=license href=https://wiki.alpinelinux.org/wiki/MediaWiki:Copyright>
<link rel=alternate type=application/atom+xml title="Alpine Linux Atom feed" href="https://wiki.alpinelinux.org/w/index.php?title=Special:RecentChanges&amp;feed=atom">
<link rel=icon href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAATJQTFRF////AICAC1qADVmAFGJ2DVmADVl/EFiADVmADlmADVmAAAAADVmADVl+DVl/Dlp/F110DVl/DVmADVmADVl/DliADFd8DliADVl+DVuADVl/CVh7DVmADFuADVh/DVqADVmADVmADFmADVl/FVWAC1h+Dlh+AFVVDFiADVl/DluADFl9DVl/DViADVh7DFqADVmADVmADVh/DVl/DVl+AECADlp/DVmADlmADVl/DFmADVmADFeAGk2ADlmADlqADlqADVh/DVqAAFVxDVl/DVeADlp+DlqADlqADll/AFWAAGCADFp/DFl/AGZmDVl/Dld9DV55DVmADVmADVl/DVh/DVl/DVmADFmADVl/DVl/DVt9Dll/DVmADViADll/DlmADFl9DVmADFiADVl/////pwlF4gAAAGR0Uk5TAAIwZA3ohyD4qjwBzF/nlwvlKIybgimWc0z5HfYqoHdQ+qbpDENLA1T7OCvDTjlY/P7HwU0Eqopc/aTqLAqESqiFYAmjJkeAXoEGCLmPBfc1E8jktdvRxrjzyzuphmLPzj/wQC8LztMAAAABYktHRACIBR1IAAAACXBIWXMAAABIAAAASABGyWs+AAABW0lEQVQ4y72TZ1vCMBCAD9lTUBEFVEAUwQlO6kBxFVcVcLFc9/9/g9c0lTYtX70PbXLv+7SXXALwb+EYE8IhCE4UwmnmLrcouF0mwYOW8Bi512cVfF6D4Eeb8A95AG0joPNgyF4IBbkQ1jORcbMR1ng0pq9sAibV95RecizKhLjOp2mSQJyB2SRPxVWeSnM+x+qZX6BnJqvl0ima5LTxIvH8EjVluUDJlaKWzQGUOF8lvlbMABTWN8jY3GLpcgkqfzy6jZjdAdjd2yfjoMpABST1dXgEcCyd0ChZI+P0jIw6MyRWo8rPLy7rrAVX9JfcNRlyVauygZi4gdu7+wcmoEKVPqbJeGoiNtR9atEn2s+0zhfexnazjPj69o7YYjsl48iQtV51RvEO71Z3lNDV+92z573hiVPsuGI4c307oW84k/mIlUfyxmM9sAoD8837EPmncPe+voX44eAXvM/afnTm3m8AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTQtMTItMTBUMTE6Mjc6MzEtMDU6MDCD+78IAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTEyLTEwVDExOjI3OjI3LTA1OjAwXdwyEAAAAABJRU5ErkJggg=="><style>.sf-hidden{display:none!important}</style><link rel=canonical href=https://wiki.alpinelinux.org/wiki/Raspberry_Pi><meta http-equiv=content-security-policy content="default-src 'none'; font-src 'self' data:; img-src 'self' data:; style-src 'unsafe-inline'; media-src 'self' data:; script-src 'unsafe-inline' data:; object-src 'self' data:; frame-src 'self' data:;"><style>img[src="data:,"],source[src="data:,"]{display:none!important}</style></head>
<body class="skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Raspberry_Pi rootpage-Raspberry_Pi skin-vector-2022 action-view vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-language-alert-in-sidebar-disabled vector-feature-sticky-header-disabled vector-feature-sticky-header-edit-disabled vector-feature-table-of-contents-disabled vector-feature-visual-enhancement-next-disabled uls-dialog-sticky-hide vector-toc-not-collapsed"><div class=mw-page-container>
<span id=top-page></span>
<a class=mw-jump-link href=#content>Jump to content</a>
<div class=mw-page-container-inner>
<input type=checkbox id=mw-sidebar-checkbox class="mw-checkbox-hack-checkbox sf-hidden">
<header class=mw-header>
<div class=mw-header-aside>
<label id=mw-sidebar-button class="mw-checkbox-hack-button mw-ui-icon mw-ui-button mw-ui-quiet mw-ui-icon-element" for=mw-sidebar-checkbox role=button aria-controls=mw-panel data-event-name=ui.sidebar tabindex=0 title="Main menu" aria-expanded=false>
<span>Toggle sidebar</span>
</label>
<a href=https://wiki.alpinelinux.org/wiki/Main_Page class=mw-logo>
<span class=mw-logo-container>
<strong class=mw-logo-wordmark>Alpine Linux</strong>
</span>
</a>
</div>
<div class=mw-header-content>
<div id=p-search role=search class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box">
<a href=https://wiki.alpinelinux.org/wiki/Special:Search title="Search Alpine Linux [⌃⌥f]" accesskey=f class="mw-ui-button mw-ui-quiet mw-ui-icon mw-ui-icon-element mw-ui-icon-wikimedia-search search-toggle sf-hidden">
</a>
<div>
<form action=/w/index.php id=searchform class=vector-search-box-form>
<div id=simpleSearch class=vector-search-box-inner data-search-loc=header-moved>
<input class=vector-search-box-input type=search name=search placeholder="Search Alpine Linux" aria-label="Search Alpine Linux" autocapitalize=sentences title="Search Alpine Linux [⌃⌥f]" accesskey=f id=searchInput autocomplete=off value>
<input id=mw-searchButton class="searchButton mw-fallbackSearchButton" type=submit name=fulltext title="Search the pages for this text" value=Search>
<input id=searchButton class=searchButton type=submit name=go title="Go to a page with this exact name if it exists" value=Go>
</div>
</form>
</div>
</div>
<nav class=vector-user-links aria-label="Personal tools" role=navigation>
<div id=p-vector-user-menu-overflow class="vector-menu mw-portlet mw-portlet-vector-user-menu-overflow vector-user-menu-overflow">
<div class=vector-menu-content>
<ul class=vector-menu-content-list><li id=pt-createaccount-2 class="user-links-collapsible-item mw-list-item"><a href="https://wiki.alpinelinux.org/w/index.php?title=Special:CreateAccount&amp;returnto=Raspberry+Pi" title="You are encouraged to create an account and log in; however, it is not mandatory"><span>Create account</span></a></ul>
</div>
</div>
<div id=p-personal class="vector-menu mw-portlet mw-portlet-personal vector-user-menu vector-user-menu-logged-out vector-menu-dropdown" title="More options">
<input type=checkbox id=p-personal-checkbox role=button aria-haspopup=true data-event-name=ui.dropdown-p-personal class=vector-menu-checkbox>
<label id=p-personal-label for=p-personal-checkbox class="vector-menu-heading mw-ui-button mw-ui-quiet mw-ui-icon mw-ui-icon-element mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis">
<span class=vector-menu-heading-label>Personal tools</span>
</label>
<div class=vector-menu-content>
<div class=vector-user-menu-create-account><a href="https://wiki.alpinelinux.org/w/index.php?title=Special:CreateAccount&amp;returnto=Raspberry+Pi" class="vector-menu-content-item user-links-collapsible-item sf-hidden" title="You are encouraged to create an account and log in; however, it is not mandatory"> </a></div>
<div class=vector-user-menu-login><a href="https://wiki.alpinelinux.org/w/index.php?title=Special:UserLogin&amp;returnto=Raspberry+Pi" class="vector-menu-content-item vector-menu-content-item-login" title="You are encouraged to log in; however, it is not mandatory [⌃⌥o]" accesskey=o><span class="mw-ui-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></div>
<ul class=vector-menu-content-list></ul>
</div>
</div>
</nav>
</div>
</header>
<div class=vector-sidebar-container>
<div id=mw-navigation>
<nav id=mw-panel class="mw-sidebar sf-hidden" aria-label=Site role=navigation>
</nav>
</div>
</div>
<div class=vector-sitenotice-container>
<div id=siteNotice></div>
</div>
<input type=checkbox id=vector-toc-collapsed-checkbox class="mw-checkbox-hack-checkbox sf-hidden">
<div class=mw-table-of-contents-container>
<div class="vector-sticky-toc-container mw-sticky-header-element">
<nav id=mw-panel-toc class=sidebar-toc role=navigation aria-labelledby=sidebar-toc-label data-event-name=ui.sidebar-toc>
<div id=sidebar-toc-label class=sidebar-toc-header>
<p class=sidebar-toc-title>
Contents
<button class="vector-toc-uncollapse-button sf-hidden">move to sidebar</button>
<button class=vector-toc-collapse-button>hide</button>
</p>
</div>
<ul class=sidebar-toc-contents id=mw-panel-toc-list>
<li id=toc-mw-content-text class="sidebar-toc-list-item sidebar-toc-level-1 sidebar-toc-list-item-active">
<a href=#top-page class=sidebar-toc-link>
<div class=sidebar-toc-text>Beginning</div>
</a>
</li>
<li id=toc-Preparation class="sidebar-toc-list-item sidebar-toc-level-1 sidebar-toc-list-item-expanded">
<a class=sidebar-toc-link href=#Preparation>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">1</span>Preparation</div>
</a>
<ul id=toc-Preparation-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-Installation class="sidebar-toc-list-item sidebar-toc-level-1 sidebar-toc-list-item-expanded">
<a class=sidebar-toc-link href=#Installation>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">2</span>Installation</div>
</a>
<ul id=toc-Installation-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-Post_Installation class="sidebar-toc-list-item sidebar-toc-level-1 sidebar-toc-list-item-expanded">
<a class=sidebar-toc-link href=#Post_Installation>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">3</span>Post Installation</div>
</a>
<button aria-controls=toc-Post_Installation-sublist class="mw-ui-icon mw-ui-icon-wikimedia-expand mw-ui-icon-small sidebar-toc-toggle" aria-expanded=true>
Toggle Post Installation subsection
</button>
<ul id=toc-Post_Installation-sublist class=sidebar-toc-list>
<li id=toc-Update_the_System class="sidebar-toc-list-item sidebar-toc-level-2">
<a class=sidebar-toc-link href=#Update_the_System>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">3.1</span>Update the System</div>
</a>
<ul id=toc-Update_the_System-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-Clock-related_error_messages class="sidebar-toc-list-item sidebar-toc-level-2">
<a class=sidebar-toc-link href=#Clock-related_error_messages>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">3.2</span>Clock-related error messages</div>
</a>
<ul id=toc-Clock-related_error_messages-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-WiFi_on_boot class="sidebar-toc-list-item sidebar-toc-level-2">
<a class=sidebar-toc-link href=#WiFi_on_boot>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">3.3</span>WiFi on boot</div>
</a>
<ul id=toc-WiFi_on_boot-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-Enable_Graphics class="sidebar-toc-list-item sidebar-toc-level-2">
<a class=sidebar-toc-link href=#Enable_Graphics>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">3.4</span>Enable Graphics</div>
</a>
<ul id=toc-Enable_Graphics-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-WiFi_drivers class="sidebar-toc-list-item sidebar-toc-level-2">
<a class=sidebar-toc-link href=#WiFi_drivers>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">3.5</span>WiFi drivers</div>
</a>
<ul id=toc-WiFi_drivers-sublist class=sidebar-toc-list>
</ul>
</li>
</ul>
</li>
<li id=toc-Persistent_storage class="sidebar-toc-list-item sidebar-toc-level-1 sidebar-toc-list-item-expanded">
<a class=sidebar-toc-link href=#Persistent_storage>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">4</span>Persistent storage</div>
</a>
<button aria-controls=toc-Persistent_storage-sublist class="mw-ui-icon mw-ui-icon-wikimedia-expand mw-ui-icon-small sidebar-toc-toggle" aria-expanded=true>
Toggle Persistent storage subsection
</button>
<ul id=toc-Persistent_storage-sublist class=sidebar-toc-list>
<li id=toc-Loopback_image_with_overlayfs class="sidebar-toc-list-item sidebar-toc-level-2">
<a class=sidebar-toc-link href=#Loopback_image_with_overlayfs>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">4.1</span>Loopback image with overlayfs</div>
</a>
<ul id=toc-Loopback_image_with_overlayfs-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-Traditional_disk-based_(sys)_installation class="sidebar-toc-list-item sidebar-toc-level-2">
<a class=sidebar-toc-link href=#Traditional_disk-based_(sys)_installation>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">4.2</span>Traditional disk-based (sys) installation</div>
</a>
<ul id=toc-Traditional_disk-based_(sys)_installation-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-Persistent_Installation_on_Raspberry_Pi_3 class="sidebar-toc-list-item sidebar-toc-level-2">
<a class=sidebar-toc-link href=#Persistent_Installation_on_Raspberry_Pi_3>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">4.3</span>Persistent Installation on Raspberry Pi 3</div>
</a>
<ul id=toc-Persistent_Installation_on_Raspberry_Pi_3-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-Persistent_Installation_on_Raspberry_Pi_4 class="sidebar-toc-list-item sidebar-toc-level-2">
<a class=sidebar-toc-link href=#Persistent_Installation_on_Raspberry_Pi_4>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">4.4</span>Persistent Installation on Raspberry Pi 4</div>
</a>
<ul id=toc-Persistent_Installation_on_Raspberry_Pi_4-sublist class=sidebar-toc-list>
</ul>
</li>
</ul>
</li>
<li id=toc-Troubleshooting class="sidebar-toc-list-item sidebar-toc-level-1 sidebar-toc-list-item-expanded">
<a class=sidebar-toc-link href=#Troubleshooting>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">5</span>Troubleshooting</div>
</a>
<button aria-controls=toc-Troubleshooting-sublist class="mw-ui-icon mw-ui-icon-wikimedia-expand mw-ui-icon-small sidebar-toc-toggle" aria-expanded=true>
Toggle Troubleshooting subsection
</button>
<ul id=toc-Troubleshooting-sublist class=sidebar-toc-list>
<li id=toc-Long_boot_time_when_running_headless class="sidebar-toc-list-item sidebar-toc-level-2">
<a class=sidebar-toc-link href=#Long_boot_time_when_running_headless>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">5.1</span>Long boot time when running headless</div>
</a>
<ul id=toc-Long_boot_time_when_running_headless-sublist class=sidebar-toc-list>
</ul>
</li>
<li id="toc-apk_indicating_'No_space_left_on_device'" class="sidebar-toc-list-item sidebar-toc-level-2">
<a class=sidebar-toc-link href="#apk_indicating_'No_space_left_on_device'">
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">5.2</span>apk indicating 'No space left on device'</div>
</a>
<ul id="toc-apk_indicating_'No_space_left_on_device'-sublist" class=sidebar-toc-list>
</ul>
</li>
<li id=toc-Wireless_support_with_older_Alpine_images class="sidebar-toc-list-item sidebar-toc-level-2">
<a class=sidebar-toc-link href=#Wireless_support_with_older_Alpine_images>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">5.3</span>Wireless support with older Alpine images</div>
</a>
<ul id=toc-Wireless_support_with_older_Alpine_images-sublist class=sidebar-toc-list>
</ul>
</li>
</ul>
</li>
<li id=toc-See_Also class="sidebar-toc-list-item sidebar-toc-level-1 sidebar-toc-list-item-expanded">
<a class=sidebar-toc-link href=#See_Also>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">6</span>See Also</div>
</a>
<ul id=toc-See_Also-sublist class=sidebar-toc-list>
</ul>
</li>
</ul>
</nav>
</div>
</div>
<div class=mw-content-container>
<main id=content class=mw-body role=main>
<a id=top></a>
<header class=mw-body-header>
<label id=vector-toc-collapsed-button class="mw-ui-button mw-ui-quiet mw-ui-icon mw-ui-icon-element mw-ui-icon-wikimedia-listBullet mw-checkbox-hack-button sf-hidden" for=vector-toc-collapsed-checkbox role=button aria-controls=toc-toggle-list data-event-name=vector.toc-toggle-list tabindex=0 title="Table of Contents" aria-expanded=false>
Toggle the table of contents
</label>
<h1 id=firstHeading class="firstHeading mw-first-heading"><span class=mw-page-title-main>Raspberry Pi</span></h1>
</header>
<nav class=vector-article-toolbar aria-label=Tools role=navigation>
<div class=mw-article-toolbar-container>
<div id=left-navigation>
<div id=p-associated-pages class="vector-menu mw-portlet mw-portlet-associated-pages vector-menu-tabs">
<div class=vector-menu-content>
<ul class=vector-menu-content-list><li id=ca-nstab-main class="selected mw-list-item"><a href=https://wiki.alpinelinux.org/wiki/Raspberry_Pi title="View the content page [⌃⌥c]" accesskey=c><span>Page</span></a><li id=ca-talk class=mw-list-item><a href=https://wiki.alpinelinux.org/wiki/Talk:Raspberry_Pi rel=discussion title="Discussion about the content page [⌃⌥t]" accesskey=t><span>Discussion</span></a></ul>
</div>
</div>
<div id=p-variants class="vector-menu mw-portlet mw-portlet-variants emptyPortlet vector-menu-dropdown sf-hidden">
</div>
</div>
<div id=right-navigation class=vector-collapsible>
<div id=p-views class="vector-menu mw-portlet mw-portlet-views vector-menu-tabs">
<div class=vector-menu-content>
<ul class=vector-menu-content-list><li id=ca-view class="selected mw-list-item"><a href=https://wiki.alpinelinux.org/wiki/Raspberry_Pi><span>Read</span></a><li id=ca-viewsource class=mw-list-item><a href="https://wiki.alpinelinux.org/w/index.php?title=Raspberry_Pi&amp;action=edit" title="This page is protected.
You can view its source [⌃⌥e]" accesskey=e><span>View source</span></a><li id=ca-history class=mw-list-item><a href="https://wiki.alpinelinux.org/w/index.php?title=Raspberry_Pi&amp;action=history" title="Past revisions of this page [⌃⌥h]" accesskey=h><span>View history</span></a></ul>
</div>
</div>
<div id=p-cactions class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-menu-dropdown vector-has-collapsible-items sf-hidden" title="More options">
</div>
</div>
</div>
</nav>
<div id=bodyContent class=vector-body data-mw-ve-target-container>
<div class=mw-body-subheader>
<div class=mw-indicators>
</div>
<div id=siteSub class="noprint sf-hidden">From Alpine Linux</div>
</div>
<div id=mw-content-text class="mw-body-content mw-content-ltr" dir=ltr lang=en><div class=mw-parser-output><div class=floatleft><img alt=Tango-dialog-warning.png src='data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48"><rect fill-opacity="0"/></svg>' decoding=async style="background-blend-mode:normal!important;background-clip:content-box!important;background-position:50% 50%!important;background-color:rgba(0,0,0,0)!important;background-image:var(--sf-img-11)!important;background-size:100% 100%!important;background-origin:content-box!important;background-repeat:no-repeat!important" width=48 height=48></div><div style="padding:0.25em;margin:0.50em 0;background-color:#FFDDDD;border:2px solid #FFBBBB"><strong> Warning: </strong> 11 Feb 2021 - There is currently a known bug upstream <br><a rel=nofollow class="external text" href=https://github.com/raspberrypi/firmware/issues/1529>kernel/initramfs cannot be loaded from subdirectory with same name as volume label</a> </div><p><br>
<table style="clear:right;margin-bottom:.5em;float:right;padding:.5em 0 .8em 1.4em;background:none;width:auto" cellspacing=0 cellpadding=0>
<tbody><tr>
<td><mw:tocplace></mw:tocplace>
</table>
<p>This tutorial explains how to install Alpine Linux on a Raspberry Pi. Alpine Linux will be installed in <a href=https://wiki.alpinelinux.org/wiki/Installation#Diskless_Mode title=Installation>diskless mode</a>, hence, <a href=https://wiki.alpinelinux.org/wiki/Alpine_local_backup title="Alpine local backup">Alpine Local Backup (lbu)</a> is required to save modifications between reboots.
<p>For scenarios where there is not expected to be significant changes to disk after setup (like running a static HTTP server), this is likely preferable, as running the entire system from memory will improve performance (by avoiding the slow SD card) and improve the SD card life (by reducing the writes to the card, as all logging will happen in RAM). Diskless installations still allow you to install packages, save local files, and tune the system to your needs.
<p>If any of the following apply, then installation in <a href=https://wiki.alpinelinux.org/wiki/Classic_install_or_sys_mode_on_Raspberry_Pi title="Classic install or sys mode on Raspberry Pi">sys-mode installation</a> is likely more appropriate.
</p>
<ul><li>There will be constant changes to the disk after initial setup (for example, if you expect people to login and save files to their home directories)</li>
<li>Logs should persists across reboots</li>
<li>Plan to install packages which consume more space than can be loaded into RAM</li>
<li>Plan to install kernel modules (such as ZFS or Wireguard)</ul>
<h2><span class=mw-headline id=Preparation>Preparation</span></h2>
<ol><li><a rel=nofollow class="external text" href=http://alpinelinux.org/downloads/>Download</a> the Alpine for Raspberry Pi tarball. You should be safe using the <b>armhf</b> build on all versions of Raspberry Pi (including Pi Zero and Compute Modules); but it may perform less optimally on recent versions of Raspberry Pi. The <b>armv7</b> build is compatible with Raspberry Pi 2 Model B. The <b>aarch64</b> build should be compatible with Raspberry Pi 2 Model v1.2, Raspberry Pi 3 and Compute Module 3, and Raspberry Pi 4 model B.</li>
<li><a href=https://wiki.alpinelinux.org/wiki/Create_a_Bootable_Device#Manually_copying_Alpine_files title="Create a Bootable Device">Create a bootable FAT32 partition on your SD card.</a> The partitioning and formatting part of the instructions on the linked page could be done using a graphical partitioning tool such as <a rel=nofollow class="external text" href=https://en.wikipedia.org/wiki/GNOME_Disks>gnome-disks</a>, just make sure the partition type is <code>W95 FAT32 (LBA)</code>. (The current type can be found in the "Type" column in the output of <code>fdisk -l</code>.)</li>
<li>Extract the tarball to the root of the bootable FAT32 partition.</ol>
<p>To setup a headless system, a bootstrapping configuration overlay file <a rel=nofollow class="external text" href=https://github.com/macmpi/alpine-linux-headless-bootstrap>headless.apkovl.tar.gz</a> may be added to enable basic networking, so that following configuration steps can be performed under <code>ssh</code>. Pi Zero may be configured with simple USB ethernet-gadget networking with another computer sharing its internet connection.
<p>Optionally create a <b>usercfg.txt</b> file on the partition to configure low-level system settings. Specifications can be found <a rel=nofollow class="external text" href=https://www.raspberrypi.org/documentation/configuration/config-txt>here</a>. However, note some settings can only be set directly in <b>config.txt</b>, which may be overwritten after updates. In particular, <code>gpu_mem</code> will have no effect when specified in <b>usercfg.txt</b> (<a rel=nofollow class="external text" href=https://github.com/raspberrypi/firmware/issues/1332>source</a>). Some interesting values include:
</p>
<ul><li>To enable the UART console: <code>enable_uart=1</code></li>
<li>To enable audio: <code>dtparam=audio=on</code></li>
<li>If you see black edges around your screen after booting the Pi, you can add <code>disable_overscan=1</code></li>
<li>If you plan to install on a Pi Compute Module 4 with I/O board, you may need to add: <code>otg_mode=1</code></ul>
<p>Recent versions include Broadcom firmware files. If you're using an older Alpine version, see <a href=#Wireless_support_with_older_Alpine_images>section below</a>.
</p>
<h2><span class=mw-headline id=Installation>Installation</span></h2>
<p>Follow these steps to install Alpine Linux in Diskless Mode:
</p>
<ol><li>Insert the SD card into the Raspberry Pi and power it on</li>
<li>Login into the Alpine system as root. Leave the password empty.</li>
<li>Type <code>setup-alpine</code></li>
<li>Once the installation is complete, commit the changes by typing <code>lbu commit -d</code></ol>
<p>Type <code>reboot</code> to verify that the installation was indeed successful.
</p>
<h2><span class=mw-headline id=Post_Installation>Post Installation</span></h2>
<h3><span class=mw-headline id=Update_the_System>Update the System</span></h3>
<p>After installation, make sure your system is up-to-date:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">apk update
apk upgrade</p>
<p>Don't forget to save the changes:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">lbu commit -d</p>
<p>Note: this does not upgrade the kernel. In order to upgrade the kernel, a full upgrade of the Alpine Linux version must be performed as described in <a href=https://wiki.alpinelinux.org/wiki/Upgrading_Alpine#Upgrading_Alpine_Linux_on_other_removable_media_(such_as_CF/USB) title="Upgrading Alpine">upgrading Alpine Linux for removable media</a>.
</p>
<h3><span class=mw-headline id=Clock-related_error_messages>Clock-related error messages</span></h3>
<p>During the booting time, you might notice errors related to the hardware clock. The Raspberry Pi does not have
a hardware clock, thus you need to disable the hwclock daemon and enable swclock:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">rc-update add swclock boot # enable the software clock
rc-update del hwclock boot # disable the hardware clock</p>
<p>Since the Raspberry Pi does not have a clock, Alpine Linux needs to know what the time is by using a
<a rel=nofollow class="external text" href=https://en.wikipedia.org/wiki/Network_Time_Protocol>Network Time Protocol (NTP)</a> daemon. Make sure you have a
NTP daemon installed and running. If you are not sure, you can install an NTP client by running the following
command:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">setup-ntp</p>
<p>The Busybox NTP client might be the most lightweight solution. Save the changes and reboot, once the NTP software is
installed and running:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">lbu commit -d
reboot</p>
<p>After reboot, make sure the <code>date</code> command outputs the correct date and time.
</p>
<h3><span class=mw-headline id=WiFi_on_boot>WiFi on boot</span></h3>
<p>If you have already <a href=https://wiki.alpinelinux.org/wiki/Connecting_to_a_wireless_access_point class=mw-redirect title="Connecting to a wireless access point">configured WiFi</a> during the setup, the connection will not return on reboot.
You will need to start up a service to automatically connect to the wireless access point.
</p>
<ol><li>Run <code>rc-update add wpa_supplicant boot</code> to connect to the wireless access point during bootup.</li>
<li>Run it manually with <code>/etc/init.d/wpa_supplicant start</code>.</ol>
<h3><span class=mw-headline id=Enable_Graphics>Enable Graphics</span></h3>
<p>Remount the boot partition writeable (i.e. <code>/media/mmcblk0p1</code>):
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">mount /media/mmcblk0p1 -o rw,remount</p>
<p>Add the following lines to <code>/media/mmcblk0p1/config.txt</code>:
</p>
<pre>dtoverlay=vc4-kms-v3d
</pre>
<p>If you are experiencing graphical issues, you can also try:
</p>
<pre>dtoverlay=vc4-fkms-v3d
</pre>
<p>And perhaps also raising the default <code>gpu_mem</code>:
</p>
<pre>gpu_mem=128
</pre>
<p>Note that raising the gpu memory is not likely to <a rel=nofollow class="external text" href=https://www.raspberrypi.com/documentation/computers/config_txt.html#gpu_mem>actually improve performance on the Pi4</a>
<p>Install the Mesa drivers:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">apk add mesa-dri-gallium</p>
<p>Then reboot:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">lbu_commit -d; reboot</p>
<h3><span class=mw-headline id=WiFi_drivers>WiFi drivers</span></h3>
<p>As of Alpine 3.14, the WiFi drivers for the Raspberry Pi were moved from <code>linux-firmware-brcm</code> to the <code>linux-firmware-cypress</code> package (source?). Since the images seem to be an outdated version of the former, Wi-Fi will work during installation, but after the first update it will break.
Use the ethernet interface to download the required packages:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">apk add linux-firmware-cypress</p>
<p>And reboot.
</p>
<h2><span class=mw-headline id=Persistent_storage>Persistent storage</span></h2>
<h3><span class=mw-headline id=Loopback_image_with_overlayfs>Loopback image with overlayfs</span></h3>
<p>When you install Alpine in diskless mode, the entire system is loaded into memory at boot. If you want additional storage (for example, if you need more space than offered by your RAM) we need to create loop-back storage onto the SD card mounted with overlayfs.
<p>First, make the SD card writable again and change fstab to always do so:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">mount /media/mmcblk0p1 -o rw,remount
sed -i 's/vfat\ ro,/vfat\ rw,/' /etc/fstab</p>
<p>Create the loop-back file, this example is 1 GB:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">dd if=/dev/zero of=/media/mmcblk0p1/persist.img bs=1024 count=0 seek=1048576</p>
<p>Install the ext utilities:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">apk add e2fsprogs</p>
<p>Format the loop-back file:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">mkfs.ext4 /media/mmcblk0p1/persist.img</p>
<p>Mount the storage:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">echo "/media/mmcblk0p1/persist.img /media/persist ext4 rw,relatime,errors=remount-ro 0 0" &gt;&gt; /etc/fstab
mkdir /media/persist
mount -a</p>
<p>Make the overlay folders, we are using the /usr directory here, but you can use /home or anything else.
</p>
<div class=floatleft><img alt=Tango-dialog-warning.png src='data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48"><rect fill-opacity="0"/></svg>' decoding=async style="background-blend-mode:normal!important;background-clip:content-box!important;background-position:50% 50%!important;background-color:rgba(0,0,0,0)!important;background-image:var(--sf-img-11)!important;background-size:100% 100%!important;background-origin:content-box!important;background-repeat:no-repeat!important" width=48 height=48></div><div style="padding:0.25em;margin:0.50em 0;background-color:#FFDDDD;border:2px solid #FFBBBB"><strong> Warning: </strong>Overlay workdir needs to be an empty directory on the same filesystem mount as the upper directory. So each overlay must use its own workdir.</div><p><br>
<p><br>
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">mkdir /media/persist/usr
mkdir /media/persist/.work_usr
echo "overlay /usr overlay lowerdir=/usr,upperdir=/media/persist/usr,workdir=/media/persist/.work_usr 0 0" &gt;&gt; /etc/fstab
mount -a</p>
<p>Your /etc/fstab should look something like this:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">/dev/cdrom /media/cdrom iso9660 noauto,ro 0 0
/dev/usbdisk /media/usb vfat noauto,ro 0 0
/dev/mmcblk0p1 /media/mmcblk0p1 vfat rw,relatime,fmask=0022,dmask=0022,errors=remount-ro 0 0
/media/mmcblk0p1/persist.img /media/persist ext4 rw,relatime,errors=remount-ro 0 0
overlay /usr overlay lowerdir=/usr,upperdir=/media/persist/usr,workdir=/media/persist/.work_usr 0 0</p>
<p>Now commit the changes: (optionally remove the e2fsprogs, but it does contain repair tools)
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">lbu_commit -d</p>
<p>Remember, with this setup if you install things and you have done this overlay for /usr, you must not commit the 'apk add', otherwise, while it boots it will try and install it to memory, not to the persistent storage.
<p>If you do want to install something small at boot, you can use `apk add` and `lbu commit -d`.
<p>If it is something a bit bigger, then you can use `apk add` but then not commit it. It will be persistent (in /user), but be sure to check everything you need is in that directory and not in folders you have not made persistent.
</p>
<h3><span id=Traditional_disk-based_.28sys.29_installation></span><span class=mw-headline id=Traditional_disk-based_(sys)_installation>Traditional disk-based (sys) installation</span></h3>
<center>
<table style="width:48em;padding:2px;margin:0;margin-bottom:10px;background-color:#f6f6f6;border:1px solid #aaa;-moz-border-radius-bottomright:0.5em;-moz-border-radius-bottomleft:1em;border-radius-bottomright:0.5em;border-radius-bottomleft:1em;-webkit-border-bottom-right-radius:0.5em;-webkit-border-bottom-left-radius:1em">
<tbody><tr>
<td><div style=font-size:1.5em;font-weight:bold;text-align:center> <div class=floatleft><img alt=Tango-two-arrows.png src=data:image/png;base64,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
(<a href=https://wiki.alpinelinux.org/wiki/Talk:Raspberry_Pi title="Talk:Raspberry Pi">Discuss</a>)</p>
</table></center>
<p>It is also possible to switch to a fully disk-based installation. This is not yet formally supported, but can be done somewhat manually. This frees all the memory otherwise needed for the root filesystem, allowing more installed packages.
<p>Split your SD card into two partitions: the FAT32 boot partition described above (in this example it'll be <code>mmcblk0p1</code>) , and a second partition to hold the root filesystem (here it'll be <code>mmcblk0p2</code>). Boot and configure your diskless system as above, then create a root filesystem:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">apk add e2fsprogs
mkfs.ext4 /dev/mmcblk0p2</p>
<p>Now do a disk install via a mountpoint. The <code>setup-disk</code> script will give some errors about syslinux/extlinux, but you can ignore them.
The Raspberry Pi doesn't need them to boot.
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">mkdir /stage
mount /dev/mmcblk0p2 /stage
setup-disk -o /media/mmcblk0p1/MYHOSTNAME.apkovl.tar.gz /stage
# (ignore errors about syslinux/extlinux)</p>
<p>Add a line to <code>/stage/etc/fstab</code> to mount the Pi's boot partition again:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">/dev/mmcblk0p1 /media/mmcblk0p1 vfat defaults 0 0</p>
<p>Now add a <code>root=/dev/mmcblk0p2</code> parameter to the Pi's boot command line, either <code>cmdline-rpi2.txt</code> or <code>cmdline-rpi.txt</code> depending on model:
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">mount -o remount,rw /media/mmcblk0p1
sed -i '$ s/$/ root=\/dev\/mmcblk0p2/' /media/mmcblk0p1/cmdline-rpi2.txt</p>
<p>You might also consider <code>overlaytmpfs=yes</code> here, which will cause the underlying SD card root filesystem to be mounted read-only, with an overlayed tmpfs for modifications which will be discarded at shutdown.
<p>N.B. <b>the contents of /boot will be ignored when the Pi boots</b>. It will use the kernel, initramfs, and modloop images from the FAT32 boot partition. To update the kernel, initfs or modules, you will need to manually (generate and) copy these to the boot partition or you could use bind mount, in which case,
copying the files to boot partition manually, is not needed.
</p>
<p style="background-color:#eeeeee;border:1px dashed #bbbbbb;line-height:1.1em;padding:1em;font-family:monospace,Courier;font-size:10pt;white-space:pre;overflow:auto">echo /media/mmcblk0p1/boot /boot none defaults,bind 0 0 &gt;&gt; /etc/fstab</p>
<h3><span class=mw-headline id=Persistent_Installation_on_Raspberry_Pi_3>Persistent Installation on Raspberry Pi 3</span></h3>
<p>See <a href=https://wiki.alpinelinux.org/wiki/Classic_install_or_sys_mode_on_Raspberry_Pi title="Classic install or sys mode on Raspberry Pi">Classic install or sys mode on Raspberry Pi</a> and <a rel=nofollow class="external free" href=https://web.archive.org/web/20171125115835/https://forum.alpinelinux.org/comment/1084#comment-1084>https://web.archive.org/web/20171125115835/https://forum.alpinelinux.org/comment/1084#comment-1084</a>
</p>
<h3><span class=mw-headline id=Persistent_Installation_on_Raspberry_Pi_4>Persistent Installation on Raspberry Pi 4</span></h3>
<p>As of 3.14, setup-alpine should ask you if you want to create a sys mode partition on your Raspberry Pi 4.
</p>
<h2><span class=mw-headline id=Troubleshooting>Troubleshooting</span></h2>
<h3><span class=mw-headline id=Long_boot_time_when_running_headless>Long boot time when running headless</span></h3>
<p>If no peripherals are connected, the system might hang for an exceptionally long period of time while it attempts to accumulate entropy.
<p>If this is the case, simply plugging in any USB device should work around this issue.
<p><b>Alternatively</b>, installing haveged, the random numbers generator, would speed up the process:
</p>
<pre> apk update
apk add haveged
rc-update add haveged boot
lbu commit -d
service haveged start
</pre>
<p>(Tested on a raspberry pi zero W in headless mode, no USB connected, Alpine 3.10.3)
</p>
<h3><span id=apk_indicating_.27No_space_left_on_device.27></span><span class=mw-headline id="apk_indicating_'No_space_left_on_device'">apk indicating 'No space left on device'</span></h3>
<p>Note some models of the Raspberry Pi such as the 3A+ only have 512M of RAM, which on fresh Alpine deployment will only leave around 200M for tmpfs root. It's important to keep this limitation in mind when using these boards.
</p>
<h3><span class=mw-headline id=Wireless_support_with_older_Alpine_images>Wireless support with older Alpine images</span></h3>
<p>If you need Wi-Fi, you'll need to <a rel=nofollow class="external text" href=https://github.com/RPi-Distro/firmware-nonfree/tree/master/brcm>download</a> the latest Broadcom drivers to your SD card.
(Replace /mnt/sdcard with the correct mount point.)
</p>
<pre> git clone --depth 1 <a rel=nofollow class="external free" href=https://github.com/RPi-Distro/firmware-nonfree.git>https://github.com/RPi-Distro/firmware-nonfree.git</a>
cp firmware-nonfree/brcm/* /mnt/sdcard/firmware/brcm
</pre>
<h2><span class=mw-headline id=See_Also>See Also</span></h2>
<ul><li><a href=https://wiki.alpinelinux.org/wiki/Classic_install_or_sys_mode_on_Raspberry_Pi title="Classic install or sys mode on Raspberry Pi">Classic install or sys mode on Raspberry Pi</a> - a variant.</li>
<li><a href=https://wiki.alpinelinux.org/wiki/Raspberry_Pi_3_-_Setting_Up_Bluetooth title="Raspberry Pi 3 - Setting Up Bluetooth">Raspberry Pi 3 - Setting Up Bluetooth</a></li>
<li><a href=https://wiki.alpinelinux.org/wiki/Raspberry_Pi_3_-_Configuring_it_as_wireless_access_point_-AP_Mode title="Raspberry Pi 3 - Configuring it as wireless access point -AP Mode">Raspberry Pi 3 - Configuring it as wireless access point -AP Mode</a></li>
<li><a href=https://wiki.alpinelinux.org/wiki/Raspberry_Pi_3_-_Browser_Client title="Raspberry Pi 3 - Browser Client">Raspberry Pi 3 - Browser Client</a></li>
<li><a href=https://wiki.alpinelinux.org/wiki/Linux_Router_with_VPN_on_a_Raspberry_Pi title="Linux Router with VPN on a Raspberry Pi">Linux Router with VPN on a Raspberry Pi</a></li>
<li><a href=https://wiki.alpinelinux.org/wiki/Create_a_bootable_SDHC_from_a_Mac title="Create a bootable SDHC from a Mac">Create a bootable SDHC from a Mac</a></li>
<li>Build custom Raspberry Pi images based on Alpine via <a rel=nofollow class="external text" href=https://github.com/tolstoyevsky/pieman>Pieman</a></li>
<li><a href=https://wiki.alpinelinux.org/wiki/Tutorials_and_Howtos#Raspberry_Pi title="Tutorials and Howtos">Tutorials and Howtos#Raspberry Pi</a></ul>
</div>
<div class="printfooter sf-hidden" data-nosnippet>Retrieved from ""</div></div>
<div id=catlinks class=catlinks data-mw=interface><div id=mw-normal-catlinks class=mw-normal-catlinks><a href=https://wiki.alpinelinux.org/wiki/Special:Categories title=Special:Categories>Categories</a>: <ul><li><a href=https://wiki.alpinelinux.org/wiki/Category:Installation title=Category:Installation>Installation</a><li><a href=https://wiki.alpinelinux.org/wiki/Category:Raspberry title=Category:Raspberry>Raspberry</a></ul></div></div>
</div>
</main>
</div>
<div class=mw-footer-container>
<footer id=footer class=mw-footer role=contentinfo>
<ul id=footer-info>
<li id=footer-info-lastmod> This page was last edited on 8 January 2023, at 13:19.</li>
<li id=footer-info-copyright><div align=right><div id=footer-inner>
<p><a href=https://wiki.alpinelinux.org/wiki/Privacy_Policy#Copyright>© Copyright 2008-2021 Alpine Linux Development Team</a>
all rights reserved </p></div></div></li>
</ul>
<ul id=footer-places>
<li id=footer-places-privacy><a href=https://wiki.alpinelinux.org/wiki/Alpine_Linux:Privacy_policy>Privacy policy</a></li>
<li id=footer-places-about><a href=https://wiki.alpinelinux.org/wiki/Alpine_Linux:About>About</a></li>
<li id=footer-places-disclaimer><a href=https://wiki.alpinelinux.org/wiki/Alpine_Linux:General_disclaimer>Disclaimers</a></li>
</ul>
<ul id=footer-icons class=noprint>
<li id=footer-poweredbyico><a href=https://www.mediawiki.org/><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAAA+CAYAAACLDZH2AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAjzElEQVR42u2deXxU1dnHv/femckkE7IHEhJICBCWgIBAWQUX1gghERBUAhW3Yqu2tFZea1G0UqyvC75FKSKgWEqpiuybLIIsCshiUCAECCH7RpLJJJOZe8/7x2RuMkkQEqJWzfP53E9yz73nbud3nvOc3/M8ZyQakEOHDrUBZhoMhmmqqnaWJEnIslxJi3xvIoT4Ob++7HQ6zZIkVcmyfNDpdL7n7++/Oi4urqruiVLtnTVr1ijR0dFzgd8HBwcrwcHB5latWiHLcguiWgD+vYvD4aCkpITc3FxreXm5VdO0hwYPHryxQQAfOnTIT5blDRaLpW/Hjh0tXl5eLY3bIv81UlJSwpkzZ2yqqr42ZMiQZzwAvHv3boPFYtkTGBjYLyYmxkuSpJYv1iL/dWK320lJSSm32+1/GTp06AIAGcDb2/t5b2/v3i3g/fGOOD+HzWQyERcXZ5Ek6c979uwZBGDYu3dvuKqqT3Tq1MnnpwjeFnPipyVeXl7ExMR4nzt37m0hRE9ZluVZoaGhBpPJ9MP3Mk2DI0sRlw402zVb5KcnISEhkiRJUTt37uxnAO4NCQkxfS93djrAYLzqYenrDXB2F9KlAwi/SPBv9y2q1QmSoaU1f4YjjiRJtG7d2iszM3Oi7HA4ov38/L6fG6/4M9K2d8BWUv9g3jk4+gGoQGUl0sGFoDoamI6eRfpqAVL6v1tsxZ/xiOPv728EhhoURbFLkuTznb989kWk7AzIz0D65iBi5HRE91vc0EI++B44VVCquZEr2XBmE6LbBNcpqh3p9PtIOXtAEVBZgIi6t0Xl/oxtYaCtQZIk9fvoudLFb0DDpWErKpA2/wMunULccT/SpROQneYCr4dJsR4RPQyEE/nwq1Ce4TpHANZsqMgF7zYtrfkzNCdkWUbTNB/D9/aSl867wFsboCmfQVkhCAc4G2T+kE6tRco7AfZCqG3ySiDZMhBNBHDLBO/HL5qm0SCAv4vGlQryGgSplHYCijMgsqMnwCXAoSIdWgqhMS7w1jkuyrIQQS1A/K5k3759mM1m+vfv3+Bxm83GwYMHad++PZ07d/5BRhhDcxr/0sYNSJfTEQH+EB6OiO0KYREgSWAtrzEhaoO0vAypIA/hFwp1J5MlGUi2XERgB+qEbbiq2woRAJoDqfQs2C4gVWYBlYjWdyB845r0HocOHSIhIcGjzNfXlx49epCcnMzkyZN/FubEPffcQ0REBIcOHWrweEZGBmPGjOGJJ57g5Zdf/t7fRwiBQdO05rtqfiHSoc+RFFy2qgLCvxWi/yCw2Ro2E+xOV3leJvjUArCmIhXmujSvwwGSyRP4EmArQD71Dyj4Akmq0u+JAUTIbU1uXIfDQXFxMT179mTMmDEIIcjKymLr1q1s2bKFvXv38sYbb7So6B+4Q+oauLl6rggIACdIQrgmWgK4Uoq0exvShdMQ5I8IC685BiBkcAoovYJwqoAMAiS7ex+EU3IxD7XBXXYeqfQyIiDC1VEM1FxXgDAG3fDI0q9fP1588UV9v6ioiKFDh7J48WJmzpxJ7969W5D0A9vAcnPyiqJtWzRkl5mg4jIZ3GaDYoL0i0iXLtQcVwGDt0sDVwmkisqacltltcb2cqlUZ3W5U0XKPgWlBQjZUnO+s9Y1hQFhCmn2DxYUFMTMmTN1+7C2nDt3jp07d3L48GGczpqhRlVVLly4QHFxcb3rff311/XKhRBcvHixXnl6ejo7d+4kNTUVVfWcDRcVFZGdnQ1AcXEx27dvJz093aOhjx8/zqeffkpWVtZV2zotLY3Nmzdz9OhRNE3T2/9a+HD/737G9PR0vcxqtXL+/HlKSkoarH/x4kXy8vKazHs3a6CvFBuLKimoKPVB1SoYHEB2DlJubs1xowUUF4iFWgv8TuE63yvIA/BSbhpUlIMwgtGvfkdRAUsMyKYbGprq7rs3o9GoA1MIwdmzZxk8eDDdu3dn7NixDBkyhOjoaD788EOEEEiSxO23386wYcM8rnPs2DF69+7NjBkzPMo/+ugjYmNj2bVrF0II8vLyuPPOO+ncuTPjxo0jLi6OuLg4jh49qtf529/+Rvfu3Tly5AjdunVj3LhxzJ8/HyEEhw4domfPnvziF79gzJgxREdHM27cOIqKivR3rKqqYubMmXTr1o3ExEQGDRrE6NGjqaqquq5vZrPZmDZtGrGxsYwdO5bY2FieeOIJNE2jrKyMm266iQkTJtSrt3nzZmJjY1m/fn2T20qu25uvp3Gvuvn7oUVFoSKjujVxNYiFxR/Mfi5QZlwCh6aDToREgVBcoKsGoVB8ACPCP6IGmOWlUFIIVYA5DFS5fkdRQbN0+U48WU6nk3//+9+6eVFaWkp8fDznz59n9erVXL58mf379xMZGcm0adP47LPPkCSJCRMmcObMGc6dO6df66OPPkJRFHbv3k1JSY1ncuPGjfj4+DB69GhUVSUpKYmjR4+yYcMGrFYraWlphIeHk5iYiNVq1euVl5eTnJzM3XffzVtvvcX06dO5dOkS48ePx8/Pj5MnT2Kz2di1axcnTpxg1qxZet1nnnmGf/7zn8yaNYv09HTS09O57bbbPJ7r22T58uW0b9+ec+fOcfz4cW699VYWL17M2rVrCQsLY/LkyRw4cIBjx4551Fu8eDHBwcHce++9TTch3ENFc7kppWG3VANYcYG4lmYU7TuBZIRKJ1wpqQGeJRCtf7zLVHADMbAdImYAYKzRvkX51VrbD2GJ8DRFaoFYtBncLCNKZmYmu3btYseOHSxZsoRhw4Zx5MgR4uPjGTJkCKtWreLSpUs8++yzJCUlERoaSr9+/Xj//fd1zQiQlJQEwJYtW/Rrr127lilTpuBwOPRyVVXZunUrI0eOxGKxsG3bNg4fPsyf//xnRo0ahSzLREZG8sYbb5Cbm8uGDRs8nnfChAksXLiQmTNnMnjwYN544w1KSkpYtmwZXbp0AWDIkCE8+eSTrFu3jry8PMrLy3n77bfp1q0br776Km3atKFNmzbMmTOH1q1bX5cJcffdd/Piiy8SERFB165dWbJkCYqi8PbbbyOE4De/+Q0AixYt0uudP3+eHTt2cP/992M2mxutaNzkww05MhyXsrEfP4WWnqGbBpLDjnzqNMJogGA/CApAcc/YDF6ITnFIl1KRyisQ/oHVHJU/6sPPIpUUIh3eAa380QaPQ0pPQdnyZg3zUFkJ3qGIkBgQUg0lpzmRyvPBcQXh64989GUwKOAdgLCEQWAXNP8eYApq1Ptt376d7du36/uBgYH84Q9/4E9/+hNCCPbv3w/AuHHjPDp4TEwM3bp149ChQwghGDx4MKGhoWzevJnf/OY3fP3115w9e5YlS5aQlpbGunXrmDJlCocOHaKwsJDExESP6+/Zs4eUlBQPuxogNTXV47733Xefx/7+/fvx8vKqx5hkZGQghCA1NZVWrVphs9mIj4+nqeG0bqC7pV27dkRHR+sjTp8+fRg6dCj/+c9/WLBgAcHBwbzzzjvIsswjjzxyYzxwU2g0IQTZz7+FMy0dl8WroaBhQENBhjbhOFLPIhUWgVlB6hyD3MrHBUKTNyK2J9qgwYigYCS1Cm3QbQiLH8LiBxMerrlPlwEgy0iXv0H4ByOd/Qy5LMul1d3zJGs+UtlFkJ3gZYSAGKTyIhedVpmPVJoKefuQDRJq+7vQwhOu+z3Hjx/P//zP/+gTuPbt23vkB165cgWAgICAenUDAgL4+uuv0TQNRVFISEhg5cqVlJWVsXbtWiIiIhgwYABJSUm88MILVFRUsGnTJkwmE/Hx8bpZ4O4QwcHBHtf/y1/+wu233+5RZjB4RueVl5fj4+NDhw4dPMo7
</ul>
</footer>
</div>
</div>
</div>
<div id=p-namespaces style=display:none></div>