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

789 lines
92 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/Alpine_setup_scripts#setup-bootable
saved date: Fri Mar 03 2023 14:30:45 GMT+0100 (Central European Standard Time)
--><meta charset=utf-8>
<title>Alpine setup scripts - Alpine Linux</title>
<style>.mw-ui-button{border:1px solid #a2a9b1;cursor:pointer;font-family:inherit;text-align:center;-webkit-appearance:none}.mw-ui-button:not(.mw-ui-icon-element){min-height:32px;min-width:4em;max-width:28.75em;padding:5px 12px}.mw-ui-button:not(:disabled){transition-property:background-color,color,border-color,box-shadow;transition-duration:100ms}.mw-ui-button:not(:disabled):visited{color:#202122}.mw-ui-button:not(:disabled):hover{background-color:#ffffff;color:#404244;border-color:#a2a9b1}.mw-ui-button:not(:disabled):focus{color:#202122;border-color:#3366cc;box-shadow:inset 0 0 0 1px #3366cc,inset 0 0 0 2px #ffffff;outline-width:0}.mw-ui-button:not(:disabled):focus::-moz-focus-inner{border-color:transparent;padding:0}.mw-ui-button:not(:disabled):active,.mw-ui-button:not(:disabled).is-on{background-color:#c8ccd1;color:#000000;border-color:#72777d;box-shadow:none}.mw-ui-button:disabled{background-color:#c8ccd1;color:#ffffff;border-color:#c8ccd1;cursor:default}.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop){color:transparent!important}.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop) span{display:block;position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden}@media all and (max-width:1000px){.mw-ui-button.mw-ui-icon-element span{display:block;position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden}}.mw-ui-button.mw-ui-quiet{background-color:transparent;color:#202122;border-color:transparent;font-weight:bold}.mw-ui-button.mw-ui-quiet:not(.mw-ui-icon-element),.mw-ui-button.mw-ui-quiet.mw-ui-progressive:not(.mw-ui-icon-element),.mw-ui-button.mw-ui-quiet.mw-ui-destructive:not(.mw-ui-icon-element){min-height:32px}input[type="checkbox"]:hover+.mw-ui-button.mw-ui-quiet,input[type="checkbox"]:hover+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type="checkbox"]:hover+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:hover,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:hover,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:hover{background-color:rgba(0,24,73,0.02745098);color:#202122;border-color:transparent}input[type="checkbox"]:focus+.mw-ui-button.mw-ui-quiet,input[type="checkbox"]:focus+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type="checkbox"]:focus+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:focus,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:focus,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:focus{color:#202122;border-color:#3366cc;box-shadow:inset 0 0 0 1px #3366cc,inset 0 0 0 2px #ffffff}input[type="checkbox"]:active+.mw-ui-button.mw-ui-quiet,input[type="checkbox"]:active+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type="checkbox"]:active+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:active,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:active,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:active{background-color:rgba(0,36,73,0.08235294);color:#000000;border-color:#72777d;box-shadow:none}.mw-ui-button.mw-ui-quiet:disabled,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled,.mw-ui-button.mw-ui-quiet:disabled:hover,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:hover,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:hover,.mw-ui-button.mw-ui-quiet:disabled:active,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:active,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:active{background-color:transparent;color:#72777d;border-color:transparent}.mw-ui-icon{font-size:initial;position:relative;display:inline-block;box-sizing:content-box!important;width:1.25em;height:1.25em;min-width:1.25em;min-height:1.25em;flex-basis:1.25em;vertical-align:middle;line-height:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-appearance:none;-webkit-appearance:none;background-color:transparent;margin:0;padding:0}.mw-ui-icon:not(.mw-ui-button){border:0}.mw-ui-icon:before{content:"";display:block;width:100%;height:100%;min-width
<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/Alpine_setup_scripts#setup-bootable><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-Alpine_setup_scripts rootpage-Alpine_setup_scripts 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=Alpine+setup+scripts" 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=Alpine+setup+scripts" 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=Alpine+setup+scripts" 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">
<a href=#top-page class=sidebar-toc-link>
<div class=sidebar-toc-text>Beginning</div>
</a>
</li>
<li id=toc-setup-alpine class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#setup-alpine>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">1</span>setup-alpine</div>
</a>
<ul id=toc-setup-alpine-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-setup-hostname class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#setup-hostname>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">2</span>setup-hostname</div>
</a>
<ul id=toc-setup-hostname-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-setup-interfaces class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#setup-interfaces>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">3</span>setup-interfaces</div>
</a>
<ul id=toc-setup-interfaces-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-setup-dns class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#setup-dns>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">4</span>setup-dns</div>
</a>
<ul id=toc-setup-dns-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-setup-timezone class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#setup-timezone>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">5</span>setup-timezone</div>
</a>
<ul id=toc-setup-timezone-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-setup-proxy class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#setup-proxy>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">6</span>setup-proxy</div>
</a>
<ul id=toc-setup-proxy-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-setup-apkrepos class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#setup-apkrepos>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">7</span>setup-apkrepos</div>
</a>
<ul id=toc-setup-apkrepos-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-setup-sshd class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#setup-sshd>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">8</span>setup-sshd</div>
</a>
<ul id=toc-setup-sshd-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-setup-ntp class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#setup-ntp>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">9</span>setup-ntp</div>
</a>
<ul id=toc-setup-ntp-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-setup-disk class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#setup-disk>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">10</span>setup-disk</div>
</a>
<button aria-controls=toc-setup-disk-sublist class="mw-ui-icon mw-ui-icon-wikimedia-expand mw-ui-icon-small sidebar-toc-toggle" aria-expanded=false>
Toggle setup-disk subsection
</button>
<ul id=toc-setup-disk-sublist class=sidebar-toc-list>
<li id=toc-Partitioning class="sidebar-toc-list-item sidebar-toc-level-2 sf-hidden">
</li>
</ul>
</li>
<li id=toc-setup-lbu class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#setup-lbu>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">11</span>setup-lbu</div>
</a>
<ul id=toc-setup-lbu-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-setup-apkcache class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#setup-apkcache>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">12</span>setup-apkcache</div>
</a>
<ul id=toc-setup-apkcache-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-setup-bootable class="sidebar-toc-list-item sidebar-toc-level-1 sidebar-toc-list-item-active">
<a class=sidebar-toc-link href=#setup-bootable>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">13</span>setup-bootable</div>
</a>
<ul id=toc-setup-bootable-sublist class=sidebar-toc-list>
</ul>
</li>
<li id=toc-setup-xorg-base class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#setup-xorg-base>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">14</span>setup-xorg-base</div>
</a>
<button aria-controls=toc-setup-xorg-base-sublist class="mw-ui-icon mw-ui-icon-wikimedia-expand mw-ui-icon-small sidebar-toc-toggle" aria-expanded=false>
Toggle setup-xorg-base subsection
</button>
<ul id=toc-setup-xorg-base-sublist class=sidebar-toc-list>
<li id=toc-Video_packages_(optional) class="sidebar-toc-list-item sidebar-toc-level-2 sf-hidden">
</li>
<li id=toc-Input_packages class="sidebar-toc-list-item sidebar-toc-level-2 sf-hidden">
</li>
<li id=toc-Configure_xorg-server_(optional) class="sidebar-toc-list-item sidebar-toc-level-2 sf-hidden">
</li>
<li id=toc-Keyboard_Layout_(optional) class="sidebar-toc-list-item sidebar-toc-level-2 sf-hidden">
</li>
</ul>
</li>
<li id=toc-Documentation_needed class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#Documentation_needed>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">15</span>Documentation needed</div>
</a>
<button aria-controls=toc-Documentation_needed-sublist class="mw-ui-icon mw-ui-icon-wikimedia-expand mw-ui-icon-small sidebar-toc-toggle" aria-expanded=false>
Toggle Documentation needed subsection
</button>
<ul id=toc-Documentation_needed-sublist class=sidebar-toc-list>
<li id=toc-setup-xen-dom0 class="sidebar-toc-list-item sidebar-toc-level-2 sf-hidden">
</li>
<li id=toc-setup-mta class="sidebar-toc-list-item sidebar-toc-level-2 sf-hidden">
</li>
<li id=toc-setup-acf class="sidebar-toc-list-item sidebar-toc-level-2 sf-hidden">
</li>
</ul>
</li>
<li id=toc-See_also class="sidebar-toc-list-item sidebar-toc-level-1">
<a class=sidebar-toc-link href=#See_also>
<div class=sidebar-toc-text>
<span class="sidebar-toc-numb sf-hidden">16</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>Alpine setup scripts</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/Alpine_setup_scripts 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:Alpine_setup_scripts 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/Alpine_setup_scripts><span>Read</span></a><li id=ca-viewsource class=mw-list-item><a href="https://wiki.alpinelinux.org/w/index.php?title=Alpine_setup_scripts&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=Alpine_setup_scripts&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><p>Feature descriptions for available Alpine Linux setup scripts (<span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/sbin/setup-*</span>).
<p>These scripts can be installed by using <code>apk</code> to install the <code>alpine-conf</code> package.
<p>If you don't have an Alpine Linux install, you can find and examine the scripts in their <a rel=nofollow class="external text" href=https://github.com/alpinelinux/alpine-conf>git repository</a>.
</p>
<mw:tocplace></mw:tocplace>
<h2><span class=mw-headline id=setup-alpine>setup-alpine</span></h2>
<p>This is the main Alpine configuration and installation script.
<p>The script interactively walks the user through executing several auxiliary <code>setup-*</code> scripts, in the order shown below.
<p>The bracketed options represent example configuration choices, formatted as they may be supplied when manually calling the auxiliary setup scripts, or using a <code>setup-alpine</code> "answerfile" (see below).
<p><br>
</p>
<ol><li><code>setup-keymap</code> [us us]</li>
<li><a href=#setup-hostname>setup-hostname</a> [-n alpine-test]</li>
<li><a href=#setup-interfaces>setup-interfaces</a> [-i &lt; interfaces-file]</li>
<li><code>/etc/init.d/networking --quiet start &amp;</code></li>
<li>if none of the networking interfaces were configured using dhcp, then: <code><a href=#setup-dns>setup-dns</a></code> [-d example.com -n "192.168.0.1 [...]"]</li>
<li>set the root password</li>
<li>if not in quick mode, then: <code><a href=#setup-timezone>setup-timezone</a></code> [-z UTC | -z America/New_York | -p EST+5]</li>
<li>enable the new hostname (<code>/etc/init.d/hostname --quiet restart</code>)</li>
<li>add <code>networking</code> and <code>seedrng</code> (also referred to as <code>urandom</code> in versions prior to OpenRC 0.45) to the <b>boot</b> rc level, and <code>acpid</code> and <code>crond</code> to the <b>default</b> rc level, and start the <b>boot</b> and <b>default</b> rc services</li>
<li>extract the fully-qualified domain name and hostname from <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/etc/resolv.conf</span> and <code>hostname</code>, and update <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/etc/hosts</span></li>
<li><code><a href=#setup-proxy>setup-proxy</a></code> [-q "http://webproxy:8080"], and activate proxy if it was configured</li>
<li><code>setup-apkrepos</code> [-r (to select a mirror randomly)]</li>
<li>if not in quick mode, then: <code><a href=#setup-sshd>setup-sshd</a></code> [-c openssh | dropbear | none]</li>
<li>if not in quick mode, then: <code>setup-ntp</code> [-c chrony | openntpd | busybox | none]</li>
<li>if not in quick mode, then: <code>DEFAULT_DISK=none</code> <code><a href=#setup-disk>setup-disk</a></code> <code>-q</code> [-m data /dev/sda] (see <a href=https://wiki.alpinelinux.org/wiki/Installation#Installation_Overview title=Installation>Installation#Installation_Overview</a> about the disk modes)</li>
<li>if installation mode selected during setup-disk was "data" instead of "sys", then: <code>setup-lbu</code> [/media/sdb1]</li>
<li>if installation mode selected during setup-disk was "data" instead of "sys", then: <code>setup-apkcache</code> [/media/sdb1/cache | none]</ol>
<p><br>
<code>setup-alpine</code> itself accepts the following command-line switches:
<p><span id=-h>
</span></p>
<dl><dt>-h</dt>
<dd>Shows the up-to-date usage help message.</dl>
<p class="mw-empty-elt sf-hidden">
<p><span id=-a>
</span></p>
<dl><dt>-a</dt>
<dd>Create an overlay file: this creates a temporary directory and saves its location in ROOT; however, the script doesn't export this variable so I think this feature isn't currently functional.</dl>
<p class="mw-empty-elt sf-hidden">
</p>
<dl><dt>-c <var>answerfile</var></dt>
<dd>Create a new answerfile with default choices. You can edit the file and then invoke <code>setup-alpine -f <var>answerfile</var></code>.</dd>
<dt>-f <var>answerfile</var></dt>
<dd>Use an existing answerfile, which may override some or all of the interactive prompts. You can also specify a HTTP(S) or FTP URL for <code>setup-alpine</code> to <a rel=nofollow class="external text" href=https://gitlab.alpinelinux.org/alpine/alpine-conf/-/merge_requests/22>download</a> an answerfile from. Doing so will spin up a temporary networking config if one is not already active.</dl>
<p><span id=-q>
</span></p>
<dl><dt>-q</dt>
<dd>Run in "quick mode".</dl>
<p class="mw-empty-elt sf-hidden">
<p><br>
</p>
<h2><span class=mw-headline id=setup-hostname>setup-hostname</span></h2>
<dl><dd><code>setup-hostname</code> [-h] [-n hostname]</dl>
<p>Options:
<p><b>-h</b> <var>Show help</var>
<p><b>-n</b> <var>Specify hostname</var>
<p>This script allows quick and easy setup of the system hostname by writing it to <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/etc/hostname</span>. The script prevents you from writing an invalid hostname (such as one that used invalid characters or starts with a '-' or is too long).
The script can be invoked manually or is called as part of the <code>setup-alpine</code> script.
<p><br>
</p>
<h2><span class=mw-headline id=setup-interfaces>setup-interfaces</span></h2>
<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-interfaces [-i &lt; <var>interfaces-file</var>]</p>
<p>Note that the contents of <var>interfaces-file</var> has to be supplied as stdin, rather than naming the file as an additional argument. The contents should have the format of <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/etc/network/interfaces</span>, such as:
</p>
<pre>auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
hostname alpine-test
</pre>
<p><br>
</p>
<h2><span class=mw-headline id=setup-dns>setup-dns</span></h2>
<dl><dd><code>setup-dns</code> [-h] [-d domain name] [-n name server]</dl>
<p>Options:
<p><b>-h</b> <var>Show help</var>
<p><b>-d</b> <var>specify search domain name</var>
<p><b>-n</b> <var>name server IP</var>
<p>The setup-dns script is stored in <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/sbin/setup-dns</span> and allows quick and simple setup of DNS servers (and a DNS search domain if required). Simply running <code>setup-dns</code> will allow interactive use of the script, or the options can be specified.
<p>The information fed to this script is written to <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/etc/resolv.conf</span>
<p>
Example usage (with 192.168.0.1 being the local router/dns-forwarder): <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-dns -d example.org -n 192.168.0.1</p>
<p>Example <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/etc/resolv.conf</span>:
</p>
<pre>search example.org
nameserver 192.168.0.1
</pre>
<p>It can be run manually but is also invoked in the <code>setup-alpine</code> script unless interfaces are configured for DHCP.
<p><br>
</p>
<h2><span class=mw-headline id=setup-timezone>setup-timezone</span></h2>
<dl><dd><code>setup-timezone</code> [-z UTC | -z America/New_York | -p EST+5]</dl>
<p>Can pre-select the timezone using either of these switches:
<p><b>-z</b> <var>subfolder of</var> <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/usr/share/zoneinfo</span>
<p><b>-p</b> <var>POSIX TZ format</var>
<p><br>
</p>
<h2><span class=mw-headline id=setup-proxy>setup-proxy</span></h2>
<dl><dd><code>setup-proxy</code> [-hq] [PROXYURL]</dl>
<p>Options:
<p><b>-h</b> <var>Show help</var>
<p><b>-q</b> <var>Quiet mode</var> prevents changes from taking effect until after reboot
<p>This script requests the system proxy to use in the form <code>http://&lt;proxyurl&gt;:&lt;port&gt;</code> for example:
<code>http://10.0.0.1:8080</code>
<p>To set no system proxy use <code>none</code>.
This script exports the following environmental variables:
<p><code>http_proxy=$proxyurl</code>
<p><code>https_proxy=$proxyurl</code>
<p><code>ftp_proxy=$proxyurl</code>
<p>where <code>$proxyurl</code> is the value input.
If <code>none</code> was chosen then the value it is set to a blank value (and so no proxy is used).
<p><br>
</p>
<h2><span class=mw-headline id=setup-apkrepos>setup-apkrepos</span></h2>
<dl><dd><code>setup-apkrepos</code> [-fhr] [REPO...]</dl>
<p>Setup <code>apk</code> repositories.
<p>options:
<p><b>-f</b> <var>Detect and add fastest mirror</var>
<p><b>-r</b> <var>Add a random mirror and do not prompt</var>
<p><b>-1</b> <var>Add first mirror on the list (normally a CDN)</var>
<p>This is run as part of the <code>setup-alpine</code> script.
<p><br>
</p>
<h2><span class=mw-headline id=setup-sshd>setup-sshd</span></h2>
<dl><dd><code>setup-sshd</code> [-h] [-c choice of SSH daemon]</dl>
<p>Options:
<p><b>-h</b> <var>Show help</var>
<p><b>-c</b> <var>SSH daemon</var> where SSH daemon can be one of the following:
<p><code>openssh</code> install the <span class=plainlinks style=font-family:monospace,Courier;font-size:10pt><a rel=nofollow class="external text" href="https://pkgs.alpinelinux.org/packages?name=openSSH&amp;branch=edge&amp;repo=&amp;arch=x86_64&amp;maintainer=">openSSH</a></span> daemon
<p><code>dropbear</code> install the <span class=plainlinks style=font-family:monospace,Courier;font-size:10pt><a rel=nofollow class="external text" href="https://pkgs.alpinelinux.org/packages?name=dropbear&amp;branch=edge&amp;repo=&amp;arch=x86_64&amp;maintainer=">dropbear</a></span> daemon
<p><code>none</code> Do not install an SSH daemon
<p>
Example usage: <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-sshd -c dropbear</p>
<p>The setup-sshd script is stored in <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/sbin/setup-sshd</span> and allows quick and simple setup of either the OpenSSH or Dropbear SSH daemon &amp; client.
It can be run manually but is also invoked in the <code>setup-alpine</code> script.
<p><br>
</p>
<h2><span class=mw-headline id=setup-ntp>setup-ntp</span></h2>
<p><i>From <a rel=nofollow class="external text" href=https://en.wikipedia.org/wiki/Network_Time_Protocol>Wikipedia</a></i>:
<p>The <b>Network Time Protocol (NTP)</b> is a networking protocol for clock synchronization between computer systems over packet-switched, variable-latency data networks.
<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">usage: setup-ntp [-h] [busybox|openntpd|chrony|none]
Setup NTP time synchronization
options:
-h Show this help
User is prompted if no NTP daemon is specified</p>
<p><code>setup-ntp</code> script is stored in <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/sbin/setup-ntp</span> and allows quick and simple setup of the NTP client,
It can be run manually but is also invoked in the <code>setup-alpine</code> script.
<p><br>
</p>
<h2><span class=mw-headline id=setup-disk>setup-disk</span></h2>
<dl><dd><code>DEFAULT_DISK=none setup-disk -q</code> [-m data | sys] [<var>mountpoint directory</var> | /dev/sda ...]</dl>
<p>In "sys" mode, it's an installer, it permanently installs Alpine on the disk, in "data" mode, it provides a larger and persistent /var volume.
<p>This script accepts the following command-line switches:
</p>
<dl><dt>-k <var>kernel flavor</var></dt>
<dt>-o <var>apkovl file</var></dt>
<dd>Restore system from <var>apkovl file</var></dd>
<dt>-m data | sys</dt>
<dd>Don't prompt for installation mode. With <b>-m data</b>, the supplied devices are formatted to use as a <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/var</span> volume.</dl>
<p><span id=-r>
</span></p>
<dl><dt>-r</dt>
<dd>Use RAID1 with a single disk (degraded mode)</dl>
<p>
<span id=-L>
</span></p>
<dl><dt>-L</dt>
<dd>Create and use volumes in a LVM group</dl>
<p class="mw-empty-elt sf-hidden">
</p>
<dl><dt>-s <var>swap size in MB</var></dt>
<dd>Use 0 to disable swap</dl>
<p><span id=-q>
</span></p>
<dl><dt>-q</dt>
<dd>Exit quietly if no disks are found</dl>
<p>
<span id=-v>
</span></p>
<dl><dt>-v</dt>
<dd>Verbose mode</dl>
<p class="mw-empty-elt sf-hidden">
<p>The script also honors the following environment variables:
<p><code>BOOT_SIZE</code>
</p>
<dl><dd>Size of the boot partition in MB; defaults to 100. Only used if <b>-m sys</b> is specified or interactively selected.</dl>
<p><code>SWAP_SIZE</code>
</p>
<dl><dd>Size of the swap volume in MB; set to 0 to disable swap. If not specified, will default to twice RAM, up to 4096, but won't be more than 1/3 the size of the smallest disk, and if less than 64 will just be 0. Only used if <b>-m sys</b> is specified or interactively selected.</dl>
<p><code>ROOTFS</code>
</p>
<dl><dd>Filesystem to use for the / volume; defaults to ext4. Only used if <b>-m sys</b> is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 <a href=https://wiki.alpinelinux.org/wiki/Btrfs title=Btrfs>btrfs</a> xfs.</dl>
<p><code>BOOTFS</code>
</p>
<dl><dd>Filesystem to use for the /boot volume; defaults to ext4. Only used if <b>-m sys</b> is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 <a href=https://wiki.alpinelinux.org/wiki/Btrfs title=Btrfs>btrfs</a> xfs.</dl>
<p><code>VARFS</code>
</p>
<dl><dd>Filesystem to use for the /var volume; defaults to ext4. Only used if <b>-m data</b> is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 <a href=https://wiki.alpinelinux.org/wiki/Btrfs title=Btrfs>btrfs</a> xfs.</dl>
<p><code>SYSROOT</code>
</p>
<dl><dd>Mountpoint to use when creating volumes and doing traditional disk install (<b>-m sys</b>). Defaults to <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/mnt</span>.</dl>
<p><code>MBR</code>
</p>
<dl><dd>Path of MBR binary code, defaults to <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/usr/share/syslinux/mbr.bin</span>.</dl>
<p><code>BOOTLOADER</code>
</p>
<dl><dd>Bootloader to use, defaults to syslinux. Supported bootloaders are: grub syslinux zipl.</dl>
<p><code>DISKLABEL</code>
</p>
<dl><dd>Disklabel to use, defaults to dos. Supported disklabels are: dos gpt eckd.</dl>
<p><br>
</p>
<h3><span class=mw-headline id=Partitioning>Partitioning</span></h3>
<p>If you have complex partitioning needs, that go beyond above alpine-disk options, you can partition, format, and mount your volumes manually, and then just supply the root mountpoint to <code>setup-disk</code>. Doing so implicitly behaves as though <b>-m sys</b> had also been specified.
<p>See <a href=https://wiki.alpinelinux.org/wiki/Setting_up_disks_manually title="Setting up disks manually">Setting up disks manually</a> for more information.
<p><br>
</p>
<h4><span class=mw-headline id=RAID>RAID</span></h4>
<p><code>setup-disk</code> will automatically build a RAID array if you supply the <b>-r</b> switch, or if you specify more than one device. The array will always be <a rel=nofollow class="external text" href=https://en.m.wikipedia.org/wiki/Standard_RAID_levels#RAID_1>RAID1</a> (and <a rel=nofollow class="external text" href=https://raid.wiki.kernel.org/index.php/RAID_superblock_formats#The_version-0.90_Superblock_Format>--metadata=0.90</a>) for the /boot volumes, but will be <a rel=nofollow class="external text" href=https://en.m.wikipedia.org/wiki/Standard_RAID_levels#RAID_5>RAID5</a> (and <a rel=nofollow class="external text" href=https://raid.wiki.kernel.org/index.php/RAID_superblock_formats#The_version-1_Superblock_Format>--metadata=1.2</a> for non-boot volumes when 3 or more devices are supplied.
<p>If you instead want to build your RAID array manually, see <a href=https://wiki.alpinelinux.org/wiki/Setting_up_a_software_RAID_array title="Setting up a software RAID array">Setting up a software RAID array</a>. Then format and mount the disks, and supply the root mountpoint to <code>setup-disk</code>.
</p>
<h4><span class=mw-headline id=LVM>LVM</span></h4>
<p><code>setup-disk</code> will automatically build and use volumes in a LVM group if you supply the <b>-L</b> switch. The group and volumes created by the script will have the following names:
</p>
<ul><li>volume group: <b>vg0</b></li>
<li>swap volume: <b>lv_swap</b> (only created when swap size &gt; 0)</li>
<li>root volume: <b>lv_root</b> (only created when <b>-m sys</b> is specified or interactively selected)</li>
<li>var volume: <b>lv_var</b> (only created when <b>-m data</b> is specified or interactively selected)</ul>
<p>The <b>lv_var</b> or <b>lv_root</b> volumes are created to occupy all remaining space in the volume group.
<p>If you need to change any of these settings, you can use <code>vgrename</code>, <code>lvrename</code>, <code>lvreduce</code> or <code>lvresize</code>.
<p>If you instead want to build your LVM system manually, see <a href=https://wiki.alpinelinux.org/wiki/Setting_up_Logical_Volumes_with_LVM title="Setting up Logical Volumes with LVM">Setting up Logical Volumes with LVM</a>. Then format and mount the disks, and supply the root mountpoint to <code>setup-disk</code>.
<p><br>
<br>
</p>
<h2><span class=mw-headline id=setup-lbu>setup-lbu</span></h2>
<p>This script will only be invoked for by <code>setup-alpine</code> when installing <code>data</code> installation types (ramdisk)
<p>It configures where <code>lbu commit</code> will store the .apkovl backup. See <a href=https://wiki.alpinelinux.org/wiki/Alpine_local_backup title="Alpine local backup">Alpine local backup</a> for more information.
<p>When started, <code>setup-lbu</code> will prompt where to store your data. The options it will prompt for will be taken from the directories found in <code>/media</code> (except for <code>cdrom</code>). [not sure how these are mounted: are they automatically mounted by setup-lbu? Does the user have to manually mount using another tty?]
<p><br>
</p>
<h2><span class=mw-headline id=setup-apkcache>setup-apkcache</span></h2>
<p>This script will only be invoked for by <code>setup-alpine</code> when installing <code>data</code> installation types (ramdisk)
<p>It configures where to save the apk package files. The apkcache is where apk stores downloaded packages, such that the system does not need to download them again on each reboot, and doesn't have to depend on the network. See <a href=https://wiki.alpinelinux.org/wiki/Local_APK_cache title="Local APK cache">Local APK cache</a> for a detailed explanation.
<p>You should be able to use a partition that you set up in the previous steps.
<p><br>
</p>
<h2><span class=mw-headline id=setup-bootable>setup-bootable</span></h2>
<p>This is a standalone script; it's not invoked by <code>setup-alpine</code> but must be run manually.
<p>It allows to create boot media that boots the system running from RAM memory (diskless) like the installation images, but using a writable (i.e. not iso9660) filesystem. So that it can also serve to store local customizations (e.g. apkovl files and cached packages).
<p>First, the script copies files from an ISO image (as file on a CD/DVD/USB etc.) onto a USB-Stick/CompactFlash/SDCard etc., or harddisk partition. And then, it installs the syslinux bootloader to make the device bootable.
<p>However, its current syslinux installation seems to fail on non-FAT32 partitions. So in these cases, you may start over with a FAT32 filesystem, or rather with the desired filesystem and using <code>setup-bootable</code> only with the <code>-u</code> option, to skip the syslinux install, and then refer to the <a href=https://wiki.alpinelinux.org/wiki/Create_a_Bootable_Device#Manually_copying_Alpine_files title="Create a Bootable Device">manual method</a> to fix the problem, or use one of the other bootloader options, instead.
</p>
<div style="padding:0.25em;margin:0.50em 0;background-color:#DDFFDD;border:2px solid #BBFFBB"><strong> Tip: </strong> The <a href=https://wiki.alpinelinux.org/wiki/Bootloaders title=Bootloaders>Bootloaders</a> page shows different ways to setup booting, and multi-boot menus!</div>
<p><br>
<p>The setup-bootable script accepts the following arguments and command-line switches (you can run <code>setup-bootable -h</code> to see a usage message).
</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-bootable <var>source</var> [<var>dest</var>]</p>
<p>The argument <var>source</var> can be a directory or an ISO (will be mounted to <code>MNT</code> or <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/mnt</span>) or a URL (will be downloaded with <code>WGET</code> or <code>wget</code>). The argument <var>dest</var> can be a directory mountpoint, or will default to <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>/media/usb</span> if not supplied.
<p><span id=-k>
</span></p>
<dl><dt>-k</dt>
<dd>Keep alpine_dev in <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>syslinux.cfg</span>; otherwise, replace with UUID.</dl>
<p>
<span id=-u>
</span></p>
<dl><dt>-u</dt>
<dd>Upgrade mode: keep existing <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>syslinux.cfg</span> and don't run <code>syslinux</code></dl>
<p>
<span id=-f>
</span></p>
<dl><dt>-f</dt>
<dd>Overwrite <span style=font-family:monospace,Courier;font-size:10pt;color:#000055;white-space:nowrap>syslinux.cfg</span> even if <b>-u</b> was specified.</dl>
<p>
<span id=-s>
</span></p>
<dl><dt>-s</dt>
<dd>Force the running of <code>syslinux</code> even if <b>-u</b> was specified.</dl>
<p>
<span id=-v>
</span></p>
<dl><dt>-v</dt>
<dd>Verbose mode</dl>
<p class="mw-empty-elt sf-hidden">
<p>The script will ensure that <var>source</var> and <var>dest</var> are available; will copy the contents of <var>source</var> to <var>dest</var>, ensuring first that there's enough space; and unless <b>-u</b> was specified, will make <var>dest</var> bootable.
<p>Suppose the target device is /dev/sdXY, then this partition can be prepared for booting with
</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-bootable -v /media/&lt;installation-media-device&gt; /dev/sdXY
</p>
<p>For the manual way to set up boot media see <a href=https://wiki.alpinelinux.org/wiki/Create_a_Bootable_Device#Manually_copying_Alpine_files title="Create a Bootable Device">Manually_copying_Alpine_files</a>.
<p><br>
</p>
<h2><span class=mw-headline id=setup-xorg-base>setup-xorg-base</span></h2>
<p>This is a standalone script; it's not invoked by <code>setup-alpine</code> but must be run manually.
<p>It configures a graphical environment, installing basic Xorg packages and udev (replacing mdev), and is also required for Wayland sessions.
<p>The script installs, among other packages, e.g.: <code>xorg-server xf86-input-libinput xinit udev</code>.
<p>Additional packages to install may be supplied as arguments.
</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-xorg-base [additional package(s) to install]</p>
<p><br>
</p>
<h4><span id=Video_packages_.28optional.29></span><span class=mw-headline id=Video_packages_(optional)>Video packages (optional)</span></h4>
<p>You may install specific xf86 xorg driver packages for your video card's chipset, as they may support specific features, effects and acceleration modes, and avoid error messages during X initialization.
<p>However, the most basic X features should work fine with just using the default kernel video-modesetting drivers.
<p>Info about the particular video cards that are installed in the computer may be found in the list of PCI devices:
</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 pciutils
$ lspci</p>
<p>To see available video driver packages run:
</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 search xf86-video</p>
<p>For example,
</p>
<ul><li>For an Sis video chipset install 'xf86-video-sis'.</ul>
<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 xf86-video-sis</p>
<p>Others:
</p>
<ul><li>For Intel video chipsets install 'xf86-video-intel' and see <a href=https://wiki.alpinelinux.org/wiki/Intel_Video title="Intel Video">Intel Video</a>.</ul>
<div style="padding:0.25em;margin:0.50em 0;background-color:#DDFFDD;border:2px solid #BBFFBB"><strong> Tip: </strong>In some cases, freezes on suspend/resume stop happening when changing the video port the monitor is connected to.</div>
<ul><li>For AMD Radeon Video see <a href=https://wiki.alpinelinux.org/wiki/Radeon_Video title="Radeon Video">Radeon_Video</a></li>
<li>For Alix1D use xf86-video-geode.</li>
<li>In KVM/QEMU guests see <a href=https://wiki.alpinelinux.org/wiki/QEMU#Using_Xorg_inside_Qemu title=QEMU>Xorg within KVM/QEMU</a></li>
<li>In VirtualBox guests use xf86-video-vboxvideo, and install the <a href=https://wiki.alpinelinux.org/wiki/VirtualBox_guest_additions title="VirtualBox guest additions">VirtualBox guest additions</a> as well. They contain important parts for the driver.</li>
<li>In VMware guests use xf86-video-vmware</li>
<li>In Hyper-V guests use xf86-video-fbdev and install the <a href=https://wiki.alpinelinux.org/wiki/Hyper-V_guest_services title="Hyper-V guest services">Hyper-V guest services</a> as well.</ul>
<h4><span class=mw-headline id=Input_packages>Input packages</span></h4>
<p>If the <b>Numlock</b> settings are not working, or getting <b>'setleds not found'</b> errors:
</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 kbd</p>
<p>If some input device is not working at all, the available xf86-input drivers can be listed with:
</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 search xf86-input<p>
You probably at least want <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"> xf86-input-libinput<p> or <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"> xf86-input-evdev</p>
<p>libinput is for Wayland with wrapper for Xorg. evdev is Xorg only.<br><br>
<p>Typical legacy drivers (not packaged. at least as of 2/2022):
</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 xf86-input-mouse xf86-input-keyboard</p>
<p>And for touchpad tapping support on many laptops, also:
</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 xf86-input-synaptics</p>
<h4><span id=Configure_xorg-server_.28optional.29></span><span class=mw-headline id=Configure_xorg-server_(optional)>Configure xorg-server (optional)</span></h4>
<p>On most systems, xorg should be able to autodetect all devices. However you can still configure xorg-server by hand by launching:
</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"># Xorg -configure</p>
<p>This will create a `/root/xorg.conf.new` file. You can modify this file to fit your needs.<br>
(When finished modifying and testing the above configuration file, move it to `/etc/X11/xorg.conf` for normal usage.)
</p>
<h4><span id=Keyboard_Layout_.28optional.29></span><span class=mw-headline id=Keyboard_Layout_(optional)>Keyboard Layout (optional)</span></h4>
<p>If you use a keyboard layout different than "us", and you are using a window manager or desktop environment that does not support to configure the keyboard layout itself, then you need to
</p>
<ul><li><a href=https://wiki.alpinelinux.org/wiki/Repositories#Enabling_the_community_repository title=Repositories>Enable the "community" repository</a></ul>
<p>and install setxkbmap:
</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 setxkbmap</p>
<p>Then try
</p>
<pre># setxkbmap &lt;%a language layout from /usr/share/X11/xkb/rules/xorg.lst%&gt;
</pre>
<p><br>
In order to make it persistent add this section to /etc/X11/xorg.conf:
</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">Section "InputClass"
Identifier "Keyboard Default"
MatchIsKeyboard "yes"
Option "XkbLayout" "&lt;%a language layout from /usr/share/X11/xkb/rules/xorg.lst%&gt;"
EndSection
</p>
<p><br>
Another way to change the keymap when logging into X is to use ~/.xinitrc. The following example loads a British keymap, simply add this line to the beginning of the file:
<code>setxkbmap gb &amp;</code>
<p><br>
If you need to create the ~/.xinitrc file, you may also want to add a second line like <code>exec openbox-session</code> to still start the window manager with <code>startx</code> or <code>xinit</code>.
<p><br>
</p>
<h2><span class=mw-headline id=Documentation_needed>Documentation needed</span></h2>
<h3><span class=mw-headline id=setup-xen-dom0>setup-xen-dom0</span></h3>
<p><br>
</p>
<h3><span class=mw-headline id=setup-mta>setup-mta</span></h3>
<p>Uses ssmtp.
<p>This is a standalone script; it's not invoked by <code>setup-alpine</code> but must be run manually.
<p><br>
</p>
<h3><span class=mw-headline id=setup-acf>setup-acf</span></h3>
<p>This is a standalone script; it's not invoked by <code>setup-alpine</code> but must be run manually.
<p>This script was named <code>setup-webconf</code> before Alpine 1.9 beta 4.
<p>See <a href=https://wiki.alpinelinux.org/wiki/Category:ACF title=Category:ACF>ACF pages</a> for more information.
</p>
<h1><span class=mw-headline id=See_also>See also</span></h1>
<ul><li><a href=https://wiki.alpinelinux.org/wiki/Installation title=Installation>Installation</a></li>
<li><a href=https://wiki.alpinelinux.org/wiki/Installation#Post-Install title=Installation>Post Install</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>Category</a>: <ul><li><a href=https://wiki.alpinelinux.org/wiki/Category:Installation title=Category:Installation>Installation</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 11 January 2023, at 09:53.</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,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
</ul>
</footer>
</div>
</div>
</div>
<div id=p-namespaces style=display:none></div>