Debian GNU/Linux Installation Guide

This manual is free software; you may redistribute it and/or modify it under the terms of the GNU General Public License. Please refer to the license in Appendix F, GNU General Public License.

Build version of this manual: 20230508+deb12u1.

Abstract

This document contains installation instructions for the Debian GNU/Linux 12 system (codename bookworm), for the 32-bit hard-float ARMv7 (armhf) architecture. It also contains pointers to more information and information on how to make the most of your new Debian system.


Table of Contents

Installing Debian GNU/Linux 12 for armhf
1. Welcome to Debian
1.1. What is Debian?
1.2. What is GNU/Linux?
1.3. What is Debian GNU/Linux?
1.4. What is the Debian Installer?
1.5. Getting Debian
1.6. Getting the Newest Version of This Document
1.7. Organization of This Document
1.8. About Copyrights and Software Licenses
2. System Requirements
2.1. Supported Hardware
2.1.1. Supported Architectures
2.1.2. Three different ARM ports
2.1.3. Variations in ARM CPU designs and support complexity
2.1.4. Platforms supported by Debian/armhf
2.1.5. Multiple Processors
2.1.6. Graphics Hardware Support
2.1.7. Network Connectivity Hardware
2.1.8. Peripherals and Other Hardware
2.2. Devices Requiring Firmware
2.3. Purchasing Hardware Specifically for GNU/Linux
2.3.1. Avoid Proprietary or Closed Hardware
2.4. Installation Media
2.4.1. CD-ROM/DVD-ROM/BD-ROM
2.4.2. Network
2.4.3. Hard Disk
2.4.4. Un*x or GNU system
2.4.5. Supported Storage Systems
2.5. Memory and Disk Space Requirements
3. Before Installing Debian GNU/Linux
3.1. Overview of the Installation Process
3.2. Back Up Your Existing Data!
3.3. Information You Will Need
3.3.1. Documentation
3.3.2. Finding Sources of Hardware Information
3.3.3. Hardware Compatibility
3.3.4. Network Settings
3.4. Meeting Minimum Hardware Requirements
3.5. Pre-Partitioning for Multi-Boot Systems
3.6. Pre-Installation Hardware and Operating System Setup
3.6.1. ARM firmware
3.6.2. Debian-provided U-Boot (system firmware) images
3.6.3. Setting the ethernet MAC address in U-Boot
3.6.4. Kernel/Initrd/Device-Tree relocation issues in U-Boot
4. Obtaining System Installation Media
4.1. Official Debian GNU/Linux installation images
4.2. Downloading Files from Debian Mirrors
4.2.1. Where to Find Installation Files
4.3. Preparing Files for TFTP Net Booting
4.3.1. Setting up RARP server
4.3.2. Setting up a DHCP server
4.3.3. Setting up a BOOTP server
4.3.4. Enabling the TFTP Server
4.3.5. Move TFTP Images Into Place
4.4. Automatic Installation
4.4.1. Automatic Installation Using the Debian Installer
4.5. Verifying the integrity of installation files
5. Booting the Installation System
5.1. Booting the Installer on 32-bit hard-float ARMv7
5.1.1. Boot image formats
5.1.2. Console configuration
5.1.3. Booting by TFTP
5.1.4. Booting from a USB stick in U-Boot
5.1.5. Using pre-built SD-card images with the installer
5.2. Accessibility
5.2.1. Installer front-end
5.2.2. Board Devices
5.2.3. High-Contrast Theme
5.2.4. Zoom
5.2.5. Expert install, rescue mode, automated install
5.2.6. Accessibility of the installed system
5.3. Boot Parameters
5.3.1. Boot console
5.3.2. Debian Installer Parameters
5.3.3. Using boot parameters to answer questions
5.3.4. Passing parameters to kernel modules
5.3.5. Blacklisting kernel modules
5.4. Troubleshooting the Installation Process
5.4.1. Reliability of optical media
5.4.2. Boot Configuration
5.4.3. Interpreting the Kernel Startup Messages
5.4.4. Reporting Installation Problems
5.4.5. Submitting Installation Reports
6. Using the Debian Installer
6.1. How the Installer Works
6.2. Components Introduction
6.3. Using Individual Components
6.3.1. Setting up Debian Installer and Hardware Configuration
6.3.2. Setting Up Users And Passwords
6.3.3. Configuring the Clock and Time Zone
6.3.4. Partitioning and Mount Point Selection
6.3.5. Installing the Base System
6.3.6. Installing Additional Software
6.3.7. Making Your System Bootable
6.3.8. Finishing the Installation
6.3.9. Troubleshooting
6.3.10. Installation over network-console
6.4. Loading Missing Firmware
6.4.1. Preparing a medium
6.4.2. Firmware and the Installed System
6.4.3. Completing the Installed System
6.5. Customization
6.5.1. Installing an alternative init system
7. Booting Into Your New Debian System
7.1. The Moment of Truth
7.2. Mounting encrypted volumes
7.2.1. Troubleshooting
7.3. Log In
8. Next Steps and Where to Go From Here
8.1. Shutting down the system
8.2. Orienting Yourself to Debian
8.2.1. Debian Packaging System
8.2.2. Additional Software Available for Debian
8.2.3. Application Version Management
8.2.4. Cron Job Management
8.3. Further Reading and Information
8.4. Setting Up Your System To Use E-Mail
8.4.1. Default E-Mail Configuration
8.4.2. Sending E-Mails Outside The System
8.4.3. Configuring the Exim4 Mail Transport Agent
8.5. Compiling a New Kernel
8.6. Recovering a Broken System
A. Installation Howto
A.1. Preliminaries
A.2. Booting the installer
A.2.1. Optical disc
A.2.2. Booting from network
A.2.3. Booting from hard disk
A.3. Installation
A.4. Send us an installation report
A.5. And finally…
B. Automating the installation using preseeding
B.1. Introduction
B.1.1. Preseeding methods
B.1.2. Limitations
B.2. Using preseeding
B.2.1. Loading the preconfiguration file
B.2.2. Using boot parameters to preseed questions
B.2.3. Auto mode
B.2.4. Aliases useful with preseeding
B.2.5. Examples of boot prompt preseeding
B.2.6. Using a DHCP server to specify preconfiguration files
B.3. Creating a preconfiguration file
B.4. Contents of the preconfiguration file (for bookworm)
B.4.1. Localization
B.4.2. Network configuration
B.4.3. Network console
B.4.4. Mirror settings
B.4.5. Account setup
B.4.6. Clock and time zone setup
B.4.7. Partitioning
B.4.8. Base system installation
B.4.9. Apt setup
B.4.10. Package selection
B.4.11. Finishing up the installation
B.4.12. Preseeding other packages
B.5. Advanced options
B.5.1. Running custom commands during the installation
B.5.2. Using preseeding to change default values
B.5.3. Chainloading preconfiguration files
C. Partitioning for Debian
C.1. Deciding on Debian Partitions and Sizes
C.2. The Directory Tree
C.3. Recommended Partitioning Scheme
C.4. Device Names in Linux
C.5. Debian Partitioning Programs
D. Random Bits
D.1. Linux Devices
D.1.1. Setting Up Your Mouse
D.2. Disk Space Needed for Tasks
D.3. Installing Debian GNU/Linux from a Unix/Linux System
D.3.1. Getting Started
D.3.2. Install debootstrap
D.3.3. Run debootstrap
D.3.4. Configure The Base System
D.3.5. Install a Kernel
D.3.6. Set up the Boot Loader
D.3.7. Remote access: Installing SSH and setting up access
D.3.8. Finishing touches
D.4. Installing Debian GNU/Linux using PPP over Ethernet (PPPoE)
E. Administrivia
E.1. About This Document
E.2. Contributing to This Document
E.3. Major Contributions
E.4. Trademark Acknowledgement
F. GNU General Public License

List of Tables

3.1. Hardware Information Helpful for an Install
3.2. Recommended Minimum System Requirements