> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/ask/flat/chapter-17-system-administration/di-17.2-jie-bsdconfig.md).

# 17.2 bsdconfig

## bsdconfig System Configuration Tool Overview

`bsdconfig` is a text-based configuration tool for FreeBSD, used for new system installation and configuration of existing systems. Unlike `bsdinstall` (used during installation), `bsdconfig` can be used at any time for configuration management.

The source code for `bsdconfig` is hosted at <https://github.com/freebsd/freebsd-src/tree/main/usr.sbin/bsdconfig>

> **Tip**
>
> `bsdconfig` also supports pure character command-line mode.

## bsdconfig Main Menu Functions and Operations

The `bsdconfig` main menu provides various functional modules for system configuration. If FreeBSD is already installed, you can use this menu to customize the system configuration. You can use the pkg tool to install additional third-party software that is not included in the base system.

Execute the command:

```sh
# bsdconfig
```

The output will be as follows:

```sh
┌--------------------┤Main Menu├-------------------┐
│ If you've already installed FreeBSD, you may use │
│ this menu to customize it somewhat to suit your  │
│ particular configuration.  Most importantly, you │
│ can use the Packages utility to load extra '3rd  │
│ party' software not provided in the base         │
│ distributions.                                   │
│ ┌----------------------------------------------┐ │
│ │         X Exit                               │ │
│ │         1 Usage                              │ │
│ │         2 Documentation installation         │ │
│ │         3 Packages                           │ │
│ │         4 Root Password                      │ │
│ │         5 Disk Management                    │ │
│ │         6 Login/Group Management             │ │
│ │         7 Console                            │ │
│ │         8 Timezone                           │ │
│ │         9 Mouse                              │ │
│ │         A Networking Management              │ │
│ │         B Security                           │ │
│ │         C Startup                            │ │
│ │         D Ttys                               │ │
│ └----------------------------------------------┘ │
├--------------------------------------------------┤
│[      OK      ] [Exit bsdconfig] [     Help     ]│
└--------------------------------------------------┘
```

Shortcut key explanation: The number or letter before the option name indicates that pressing the corresponding key selects that item. For example, pressing `1` selects `1 Usage`, and pressing uppercase `A` selects `A Networking Management`.

| Option                       | Description                       |
| ---------------------------- | --------------------------------- |
| X Exit                       | Exit                              |
| 1 Usage                      | `bsdconfig` usage instructions    |
| 2 Documentation installation | Install documentation             |
| 3 Packages                   | Packages                          |
| 4 Root Password              | Root password                     |
| 5 Disk Management            | Disk management                   |
| 6 Login/Group Management     | Login management/group management |
| 7 Console                    | Console                           |
| 8 Timezone                   | Timezone                          |
| 9 Mouse                      | Mouse                             |
| A Networking Management      | Network management                |
| B Security                   | Security                          |
| C Startup                    | Startup items                     |
| D Ttys                       | TTY                               |
| OK                           | Confirm                           |
| Exit bsdconfig               | Exit                              |
| Help                         | Help                              |

## 1 Usage Instructions

Selecting this item will pop up a window displaying detailed usage instructions, with the following content:

**How to Use This System**

\======================

\[After reading the contents of this screen, press PageDown to proceed to the next screen]

During this installation process, most dialog boxes support the following key operations:

| Key         | Action                                                          |
| ----------- | --------------------------------------------------------------- |
| Spacebar    | Select or toggle the current item.                              |
| Enter       | Complete the operation for a menu or item.                      |
| Up arrow    | Move to the previous item (or scroll up in a text display box). |
| Down arrow  | Move to the next item (or scroll down in a text display box).   |
| Tab         | Move to the next item or group.                                 |
| Right arrow | Move to the next item or group (same as Tab).                   |
| SHIFT + Tab | Move to the previous item or group.                             |
| Left arrow  | Move to the previous item or group (same as SHIFT + Tab).       |
| PAGE UP     | Scroll up one page in a text display box.                       |
| PAGE DOWN   | Scroll down one page in a text display box.                     |
| F1          | Display related help text.                                      |

If you see small `^(-)` or `v(+)` symbols at the edge of a menu, it indicates that there are more items above/below the current view due to insufficient screen space. In a text display box, the amount of text above the current position is displayed as a percentage in the lower right corner. Use the **Up/Down arrow keys** to scroll line by line, and **PageUp/PageDown** keys to scroll by page.

Selecting **OK** in a menu confirms the operation it controls. Selecting **Cancel** cancels the operation, typically returning to the previous menu. Use **Tab** to move the cursor and select buttons.

Most interfaces have a **Help** button. It is recommended to make full use of this feature, as it usually provides useful contextual hints; if you are unsure about an operation in a configuration menu, select **Help**.

**Special Features**

\======================

If the first letter of a menu item name is unique, typing that letter will select the menu item. Typically, it is the item's number.

The console driver includes a scrollback buffer for viewing content that has scrolled off the screen. To use the scrollback feature, press the **Scroll Lock** key on the keyboard, then use the arrow keys or **Page Up/Page Down** keys to scroll through the saved text. To exit scrollback mode, press the **Scroll Lock** key again. This feature is useful for viewing boot messages and is also applicable when working with sub-shells or other "expert modes" that do not use menus and whose output often scrolls to the top of the screen.

FreeBSD also supports multiple "virtual consoles," which can be used for multiple simultaneous sessions. Use **ALT + F** to switch screens, where `F<number>` is the function key corresponding to the screen you wish to view. By default, the system enables 8 virtual consoles (ttyv0 through ttyv7); you can enable more virtual consoles by editing the **/etc/ttys** file, changing the "off" field of the relevant vty entries to "on" (enabling the 9th and above also requires manually adding new entries). The default kernel supports up to 12 virtual terminals (which can be increased to a maximum of 16 by rebuilding the kernel with the `VT_MAXWINDOWS` kernel option).

## 2 Documentation Installation

FreeBSD documentation can be installed via `bsdconfig`.

```sh
┌---------------┤FreeBSD Documentation Installation├---------------┐
│ This menu allows you to install the whole documentation set from │
│ the FreeBSD Documentation Project: Handbook, FAQ, and articles.  │
│                                                                  │
│ Please select the language versions you wish to install. At      │
│ minimum, you should install the English version, the original    │
│ version of the documentation.                                    │
│ ┌--------------------------------------------------------------┐ │
│ │         [ ] bn    Bengali Documentation                      │ │
│ │         [ ] da    Danish Documentation                       │ │
│ │         [ ] de    German Documentation                       │ │
│ │         [ ] el    Greek Documentation                        │ │
│ │         [X] en    English Documentation (recommended)        │ │
│ │         [ ] es    Spanish Documentation                      │ │
│ │         [ ] fr    French Documentation                       │ │
│ │         [ ] hu    Hungarian Documentation                    │ │
│ │         [ ] id    Indonesian Documentation                   │ │
│ │         [ ] it    Italian Documentation                      │ │
│ │         [ ] ja    Japanese Documentation                     │ │
│ │         [ ] ko    Korean Documentation                       │ │
│ │         [ ] mn    Mongolian Documentation                    │ │
│ │         [ ] nl    Dutch Documentation                        │ │
│ │         [ ] pl    Polish Documentation                       │ │
│ │         [ ] pt    Portuguese Documentation                   │ │
│ │         [ ] ru    Russian Documentation                      │ │
│ │         [ ] tr    Turkish Documentation                      │ │
│ └-↓↓↓----------------------------------------------------- 90%-┘ │
├------------------------------------------------------------------┤
│                       [  OK  ]     [Cancel]                      │
└----------------- Use arrows, SPACE, TAB or ENTER ----------------┘
```

Select and install the documentation for the desired languages.

> **Note**
>
> It is not recommended to install Chinese documentation (whether Simplified or Traditional), as its content updates lag far behind the English documentation.

## 3 Packages

The `3 Packages` menu is used to configure the installation method for FreeBSD packages.

```sh

┌-----------------------┤Choose Installation Media├-----------------------┐
│ FreeBSD can be installed from a variety of different installation       │
│ media, ranging from floppies to an Internet FTP server.  If you're      │
│ installing FreeBSD from a supported CD/DVD drive then this is generally │
│ the best media to use if you have no overriding reason for using other  │
│ media.                                                                  │
│ ┌---------------------------------------------------------------------┐ │
│ │   1 CD/DVD      Install from a FreeBSD CD/DVD                       │ │
│ │   2 HTTP Proxy  Install from an FTP server through an HTTP proxy    │ │
│ │   3 HTTP Direct Install from an HTTP server                         │ │
│ │   4 Directory   Install from the existing filesystem                │ │
│ │   5 NFS         Install over NFS                                    │ │
│ │   6 DOS         Install from a DOS partition                        │ │
│ │   7 UFS         Install from a UFS partition                        │ │
│ │   8 USB         Install from a USB drive                            │ │
│ │   X Options     View/Set various media options                      │ │
│ └---------------------------------------------------------------------┘ │
├-------------------------------------------------------------------------┤
│                   [  OK  ]     [Cancel]     [ Help ]                    │
└------ Choose Help for more information on the various media types ------┘

```

| Option      | Description                                      |
| ----------- | ------------------------------------------------ |
| CD/DVD      | Install from FreeBSD CD/DVD                      |
| HTTP Proxy  | Install from an FTP server through an HTTP proxy |
| HTTP Direct | Install directly from an HTTP server             |
| Directory   | Install from an existing filesystem              |
| NFS         | Install over NFS                                 |
| DOS         | Install from a DOS partition                     |
| UFS         | Install from a UFS partition                     |
| USB         | Install from a USB device                        |
| Options     | View/set various media options                   |

### 3 HTTP Direct

Select the most suitable site, or select "other" to specify a different site. "Main Site" directs users to the nearest official mirror via GeoDNS (carrying the full range of distributions and supporting both IPv4 and IPv6). Other sites are known as "Community Mirrors"; not every site carries more than the base distribution kits. Select a site.

```sh
┌-------------┤Please select a FreeBSD HTTP distribution site├-------------┐
│ Please select the best suitable site for you or "other" if you want to   │
│ specify a different choice. The "Main Site" directs users to the nearest │
│ project managed mirror via GeoDNS (they carry the full range of possible │
│ distributions and support both IPv4 and IPv6). All other sites are known │
│ as "Community Mirrors"; not every site listed here carries more than the │
│ base distribution kits. Select a site!                                   │
│ ┌----------------------------------------------------------------------┐ │
│ │      pkg Main Site (GeoDNS) pkg.freebsd.org                          │ │
│ │      URL                    Specify some other http site by URL      │ │
│ └----------------------------------------------------------------------┘ │
├--------------------------------------------------------------------------┤
│                           [  OK  ]     [Cancel]                          │
└----------------------------- Select a site! ------------------------------
```

If you select "pkg Main Site (GeoDNS) pkg.freebsd.org", you will be directed to the FreeBSD official mirror site;

If you select "URL Specify some other http site by URL":

```sh
┌------------------┤Package Selection├------------------┐
│ Please specify the URL of a FreeBSD distribution on a │
│ remote http site.                                     │
│ A URL looks like this: http://<hostname>/<path>       │
│ ┌---------------------------------------------------┐ │
│ │                                                   │ │
│ └---------------------------------------------------┘ │
├-------------------------------------------------------┤
│                 [  OK  ]     [Cancel]                 │
└-------------------------------------------------------┘
```

Specifying a domestic mirror site may not work.

### Options

```sh
----------┤Options Editor├-----------┐
│ ┌---------------------------------┐ │
│ │  NFS Secure      NO             │ │
│ │  NFS Slow        NO             │ │
│ │  NFS TCP         NO             │ │
│ │  NFS version 3   YES            │ │
│ │  Debugging       NO             │ │
│ │  Yes to All      NO             │ │
│ │  DHCP            NO             │ │
│ │  IPv6            NO             │ │
│ │  Editor          /usr/bin/ee    │ │
│ │  Release Name    15.0-CURRENT   │ │
│ │  Media Type      <not yet set>  │ │
│ │  Media Timeout   300            │ │
│ │  Package Temp    /var/tmp       │ │
│ │  Re-scan Devices <*>            │ │
│ │  Use Defaults    [RESET!]       │ │
│ └---------------------------------┘ │
├-------------------------------------┤
│   [  OK  ]   [ Done ]   [ Help ]    │
└---- Press arrows, TAB or ENTER -----┘
```

| Option          | Description                   |
| --------------- | ----------------------------- |
| NFS Secure      | NFS secure                    |
| NFS Slow        | NFS Slow                      |
| NFS TCP         | NFS TCP                       |
| NFS version 3   | NFS version 3                 |
| Debugging       | Debugging                     |
| Yes to All      | Yes to all                    |
| DHCP            | DHCP                          |
| IPv6            | IPv6                          |
| Editor          | Editor                        |
| Release Name    | RELEASE version               |
| Media Type      | Media type                    |
| Media Timeout   | Media timeout                 |
| Package Temp    | Package cache                 |
| Re-scan Devices | Re-scan devices               |
| Use Defaults    | Restore default configuration |

## 4 Root Password

This menu is used to change the root user password. The entered password is displayed as `***` on the screen.

```sh
┌--------------------┤Root Password├-------------------┐
│ Enter New Password                                   │
│ ┌--------------------------------------------------┐ │
│ │                                                  │ │
│ └--------------------------------------------------┘ │
├------------------------------------------------------┤
│                 [  OK  ]     [Cancel]                │
└---- Use alpha-numeric, punctuation, TAB or ENTER ----┘
```

## 5 Disk Management

```sh
┌--------------------┤Partition Editor├---------------┐
│ Create partitions for FreeBSD, F1 for help.         │
│ No changes will be made until you select Finish.    │
│                                                     │
│                                                     │
├-----------------------------------------------------┤
│  mmcsd0          116 GB    GPT                      │
│    mmcsd0p1      260 MB    efi                      │
│    mmcsd0p2      116 GB    freebsd-zfs              │
│  mmcsd0boot0     4.0 MB                             │
│  mmcsd0boot1     4.0 MB                             │
│  nda0            466 GB    GPT                      │
│    nda0p1        277 MB    efi                      │
│    nda0p2        200 GB    ms-basic-data            │
│    nda0p3        148 GB    ms-basic-data            │
│    nda0p4        85 GB     ms-basic-data            │
├---vvv----------------------------------------83%----┤
├-----------------------------------------------------┤
│[Create] [Delete] [Modify] [Revert] [ Auto ] [Finish]│
```

This interface is the same as the partition management interface in `bsdinstall`, and the operation method is also identical.

## 6 Login/Group Management

```sh
┌------┤Login/Group Management├------┐
│ ┌--------------------------------┐ │
│ │        X Exit                  │ │
│ │        1 Add Login             │ │
│ │        2 Edit/View Login       │ │
│ │        3 Delete Login          │ │
│ │        - -                     │ │
│ │        4 Add Group             │ │
│ │        5 Edit/View Group       │ │
│ │        6 Delete Group          │ │
│ └--------------------------------┘ │
├------------------------------------┤
│   [  OK  ]   [Cancel]   [ Help ]   │
└---- Press arrows, TAB or ENTER ----┘
```

| Operation       | Description          |
| --------------- | -------------------- |
| X Exit          | Exit                 |
| Add Login       | Add login            |
| Edit/View Login | Edit/view login user |
| Delete Login    | Delete login user    |
| - -             | Separator            |
| Add Group       | Add group            |
| Edit/View Group | Edit/view group      |
| Delete Group    | Delete group         |

### "Edit/View Login" Edit Login User

Using the created user account ykla as an example:

```sh
┌----------┤Edit/View User: ykla├-----------┐
│ Choose Save/Exit when finished or Cancel. │
│ ┌---------------------------------------┐ │
│ │     X Save/Exit                       │ │
│ │     1 Login: ykla                     │ │
│ │     2 Full Name: User &               │ │
│ │     3 Password: -----                 │ │
│ │     4 UID: 1001                       │ │
│ │     5 Group ID: 1001 (ykla)           │ │
│ │     6 Member of Groups: wheel         │ │
│ │     7 Login Class:                    │ │
│ │     8 Password Expires on:            │ │
│ │     9 Account Expires on:             │ │
│ │     A Home Directory: /home/ykla      │ │
│ │     B Shell: /bin/sh                  │ │
│ │     - Create Home Directory: N/A      │ │
│ │     D Create Dotfiles: No             │ │
│ └---------------------------------------┘ │
├-------------------------------------------┤
│           [  OK  ]     [Cancel]           │
└------- Press arrows, TAB or ENTER --------┘
```

The following information for ykla can be modified:

| Item                       | Description                      |
| -------------------------- | -------------------------------- |
| X Save/Exit                | Save and exit                    |
| Login: ykla                | Login name: ykla                 |
| Full Name: User &          | Full name: User &                |
| Password: -----            | Password: -----, can be modified |
| UID: 1001                  | User ID: 1001                    |
| Group ID: 1001 (ykla)      | Group ID: 1001 (ykla)            |
| Member of Groups: wheel    | Member of groups: wheel          |
| Login Class:               | Login class:                     |
| Password Expires on:       | Password expiration date:        |
| Account Expires on:        | Account expiration date:         |
| Home Directory: /home/ykla | Home directory: /home/ykla       |
| Shell: /bin/sh             | Shell: /bin/sh                   |
| Create Home Directory: N/A | Create home directory: N/A       |
| Create Dotfiles: No        | Create dotfiles: No              |

### "Edit/View Group" Edit/View Group

Using the ykla group of the created user account ykla as an example:

```sh
┌----------┤Edit/View Group: ykla├----------┐
│ Choose Save/Exit when finished or Cancel. │
│ ┌---------------------------------------┐ │
│ │           X Save/Exit                 │ │
│ │           1 Group: ykla               │ │
│ │           2 Password: -----           │ │
│ │           3 Group ID: 1001            │ │
│ │           4 Group Members:            │ │
│ └---------------------------------------┘ │
├-------------------------------------------┤
│           [  OK  ]     [Cancel]           │
└------- Press arrows, TAB or ENTER --------┘
```

| Item            | Content         |
| --------------- | --------------- |
| X Save/Exit     | Save and exit   |
| Group: ykla     | Group: ykla     |
| Password: ----- | Password: ----- |
| Group ID: 1001  | Group ID: 1001  |
| Group Members:  | Group members:  |

## 7 Console

```sh
┌-------------------┤System Console Configuration├--------------------┐
│ The system console driver for FreeBSD has a number of configuration │
│ options which may be set according to your preference.              │
│                                                                     │
│ When you are done setting configuration options, select Cancel.     │
│ ┌-----------------------------------------------------------------┐ │
│ │          X Exit      Exit this menu                             │ │
│ │          2 Font      Choose an alternate screen font            │ │
│ │          3 Keymap    Choose an alternate keyboard map           │ │
│ │          4 Repeat    Set the rate at which keys repeat          │ │
│ │          5 Saver     Configure the screen saver                 │ │
│ │          6 Screenmap Choose an alternate screenmap              │ │
│ │          7 Ttys      Choose console terminal type               │ │
│ └-----------------------------------------------------------------┘ │
├---------------------------------------------------------------------┤
│                        [  OK  ]     [Cancel]                        │
└-------------- Configure your system console settings ---------------┘
```

| Menu        | Description                         |
| ----------- | ----------------------------------- |
| X Exit      | Exit this menu                      |
| 2 Font      | Choose an alternate screen font     |
| 3 Keymap    | Choose an alternate keyboard layout |
| 4 Repeat    | Set key repeat rate                 |
| 5 Saver     | Configure screen saver              |
| 6 Screenmap | Choose an alternate screen map      |
| 7 Ttys      | Choose console terminal type        |

* "2 Font" is primarily for Western European character set configuration.
* "5 Saver" screen saver configuration is covered in other chapters.
* "6 Screenmap" is primarily for Western European character set configuration.
* "7 Ttys" is primarily for Western European or Russian regional configuration.

## 8 Timezone

The configuration is the same as `bsdinstall` and will not be repeated here.

## 9 Mouse

You can run the mouse daemon to cut and paste in the text console. You need to specify the port and mouse protocol type before enabling the daemon. If you do not want this feature, select 6 to disable the daemon.

After enabling the mouse daemon, you can set **/dev/sysmouse** as the mouse device and select `SysMouse` or `MouseSystems` as the mouse protocol when running the X configuration tool (see the Configuration menu).

```sh
┌----------------------┤Please configure your mouse├---------------------┐
│ You can cut and paste text in the text console by running the mouse    │
│ daemon.  Specify a port and a protocol type of your mouse and enable   │
│ the mouse daemon.  If you don't want this feature, select 6 to disable │
│ the daemon.                                                            │
│ Once you've enabled the mouse daemon, you can specify "/dev/sysmouse"  │
│ as your mouse device and "SysMouse" or "MouseSystems" as mouse         │
│ protocol when running the X configuration utility (see Configuration   │
│ menu).                                                                 │
│ ┌--------------------------------------------------------------------┐ │
│ │               X Exit    Exit this menu                             │ │
│ │               2 Enable  Test and run the mouse daemon              │ │
│ │               3 Type    Select mouse protocol type                 │ │
│ │               4 Port    Select mouse port                          │ │
│ │               5 Flags   Set additional flags                       │ │
│ │               6 Disable Disable the mouse daemon                   │ │
│ └--------------------------------------------------------------------┘ │
├------------------------------------------------------------------------┤
│                          [  OK  ]     [Cancel]                         │
└------------------------------------------------------------------------┘
```

| Menu      | Description                   |
| --------- | ----------------------------- |
| X Exit    | Exit this menu                |
| 2 Enable  | Test and run the mouse daemon |
| 3 Type    | Select mouse protocol type    |
| 4 Port    | Select mouse port             |
| 5 Flags   | Set additional flags          |
| 6 Disable | Disable the mouse daemon      |

### 2 Enable Test and Run the Mouse Daemon

```sh
┌------------┤User Confirmation Requested├-----------┐
│ Now move the mouse and see if it works.            │
│ (Note that buttons don't have any effect for now.) │
│                                                    │
│          Is the mouse cursor moving?               │
│                                                    │
├----------------------------------------------------┤
│                [ Yes  ]     [  No  ]               │
└------------ Press arrows, TAB or ENTER ------------┘


Now move the mouse and verify if it works.
(Note that the mouse buttons have no effect at this time.)
Is the mouse cursor moving?
```

### 3 Type Select Mouse Protocol Type

If the mouse is connected to the PS/2 mouse port or the bus mouse port, you should always choose "Auto", regardless of the model and brand of the mouse. All other protocol types are for serial mice and should not be used with PS/2 port mice or bus mice. If you have a serial mouse and are not sure about its protocol, you should also try "Auto". It may not work for the serial mouse if the mouse does not support the PnP standard, but it won't cause any harm. Many 2-button (left and right) serial mice are compatible with "Microsoft" or "MouseMan". 3-button serial mice (left, right, and middle buttons) may be compatible with "MouseSystems" or "MouseMan". If the serial mouse has a scroll wheel, it may be compatible with "IntelliMouse".

```sh
┌------------------┤Select a protocol type for your mouse├------------------┐
│ If your mouse is attached to the PS/2 mouse port or the bus mouse port,   │
│ you should always choose "Auto", regardless of the model and the brand    │
│ of the mouse.  All other protocol types are for serial mice and should    │
│ not be used with the PS/2 port mouse or the bus mouse.  If you have       │
│ a serial mouse and are not sure about its protocol, you should also try   │
│ "Auto".  It may not work for the serial mouse if the mouse does not       │
│ support the PnP standard.  But, it won't hurt.  Many 2-button serial mice │
│ are compatible with "Microsoft" or "MouseMan". 3-button serial mice       │
│ may be compatible with "MouseSystems" or "MouseMan".  If the serial       │
│ mouse has a wheel, it may be compatible with "IntelliMouse".              │
│ ┌-----------------------------------------------------------------------┐ │
│ │    1 Auto          Bus mouse, PS/2 style mouse or PnP serial mouse    │ │
│ │    2 GlidePoint    ALPS GlidePoint pad (serial)                       │ │
│ │    3 Hitachi       Hitachi tablet (serial)                            │ │
│ │    4 IntelliMouse  Microsoft IntelliMouse (serial)                    │ │
│ │    5 Logitech      Logitech protocol (old models) (serial)            │ │
│ │    6 Microsoft     Microsoft protocol (serial)                        │ │
│ │    7 MM Series     MM Series protocol (serial)                        │ │
│ │    8 MouseMan      Logitech MouseMan/TrackMan models (serial)         │ │
│ │    9 MouseSystems  MouseSystems protocol (serial)                     │ │
│ │    A ThinkingMouse Kensington ThinkingMouse (serial)                  │ │
│ └-----------------------------------------------------------------------┘ │
├---------------------------------------------------------------------------┤
│                           [  OK  ]     [Cancel]                           │
└---------------------------------------------------------------------------┘
```

| Menu            | Description                                   |
| --------------- | --------------------------------------------- |
| 1 Auto          | Bus mouse, PS/2 style mouse, PnP serial mouse |
| 2 GlidePoint    | ALPS GlidePoint touchpad (serial)             |
| 3 Hitachi       | Hitachi tablet (serial)                       |
| 4 IntelliMouse  | Microsoft IntelliMouse (serial)               |
| 5 Logitech      | Logitech protocol (old models) (serial)       |
| 6 Microsoft     | Microsoft protocol (serial)                   |
| 7 MM Series     | MM Series protocol (serial)                   |
| 8 MouseMan      | Logitech MouseMan/TrackMan (serial)           |
| 9 MouseSystems  | MouseSystems protocol (serial)                |
| A ThinkingMouse | Kensington ThinkingMouse (serial)             |

## A Networking Management

```sh

┌--------┤Network Management├--------┐
│ ┌--------------------------------┐ │
│ │    X Exit                      │ │
│ │    1 Hostname/Domain           │ │
│ │    2 Network Interfaces        │ │
│ │    3 Wireless Networks         │ │
│ │    4 Default Router/Gateway    │ │
│ │    5 DNS nameservers           │ │
│ └--------------------------------┘ │
├------------------------------------┤
│        [  OK  ]     [Cancel]       │
└---- Press arrows, TAB or ENTER ----┘
```

> **Note**
>
> Due to the inability to input passwords, this interface cannot connect to Wi-Fi. This issue has been reported as a bug, see [Cannot select any wifi or input password in bsdconfig](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229883).

| Menu                     | Description            |
| ------------------------ | ---------------------- |
| X Exit                   | Exit                   |
| 1 Hostname/Domain        | Hostname/domain        |
| 2 Network Interfaces     | Network interfaces     |
| 3 Wireless Networks      | Wireless networks      |
| 4 Default Router/Gateway | Default router/gateway |
| 5 DNS nameservers        | DNS name servers       |

## B Security

This menu is used to configure the operating system security policy. Before modifying settings, you should carefully read the system documentation to avoid service disruption caused by improper operations. Most settings will only take effect after a system reboot.

```sh
┌-----------------------┤System Security Options Menu├-----------------------┐
│ This menu allows you to configure aspects of the operating system security │
│ policy.  Please read the system documentation carefully before modifying   │
│ these settings, as they may cause service disruption if used improperly.   │
│                                                                            │
│ Most settings will take effect only following a system reboot.             │
│ ┌------------------------------------------------------------------------┐ │
│ │    X Exit            Exit this menu                                    │ │
│ │    2 [ ] Securelevel Configure securelevels for the system             │ │
│ │    3 [X] NFS port    Require that the NFS clients use reserved ports   │ │
│ └------------------------------------------------------------------------┘ │
├----------------------------------------------------------------------------┤
│                            [  OK  ]     [Cancel]                           │
└------------------------ Press arrows, TAB or ENTER ------------------------┘
```

| Menu               | Description                               |
| ------------------ | ----------------------------------------- |
| X Exit             | Exit this menu                            |
| 2 \[ ] Securelevel | Configure system securelevels             |
| 3 \[X] NFS port    | Require NFS clients to use reserved ports |

### `2 [ ] Securelevel` Configure System Securelevels

This menu allows you to select the securelevel at which the system runs.

When operating at a securelevel, certain root privileges are disabled, which may increase resistance to exploits and protect system integrity.

```sh
┌---------------------┤Securelevel Configuration Menu├---------------------┐
│ This menu allows you to select the securelevel your system runs with.    │
│ When operating at a securelevel, certain root privileges are disabled,   │
│ which may increase resistance to exploits and protect system integrity.  │
│ In secure mode system flags may not be overridden by the root user,      │
│ access to direct kernel memory is limited, and kernel modules may not    │
│ be changed.  In highly secure mode, mounted file systems may not be      │
│ modified on-disk, tampering with the system clock is prohibited.  In     │
│ network secure mode configuration changes to firewalling are prohibited. │
│                                                                          │
│ ┌----------------------------------------------------------------------┐ │
│ │                  Disabled       Disable securelevels                 │ │
│ │                  Secure         Secure mode                          │ │
│ │                  Highly Secure  Highly secure mode                   │ │
│ │                  Network Secure Network secure mode                  │ │
│ └----------------------------------------------------------------------┘ │
├--------------------------------------------------------------------------┤
│                    [  OK  ]     [Cancel]     [ Help ]                    │
└------------------- Select a securelevel to operate at -------------------┘
```

Secure mode descriptions:

* In Secure mode, the root user cannot override system flags (parameters or configurations), access to kernel memory is restricted, and kernel modules cannot be changed.
* In Highly Secure mode, mounted filesystems cannot be modified directly on disk, and the system clock cannot be changed.
* In Network Secure mode, modifications to firewall configurations are not allowed.

## C Startup

```sh
┌----------------┤Startup├---------------┐
│ ┌------------------------------------┐ │
│ │  X Exit                            │ │
│ │  1 Toggle Startup Services         │ │
│ │  2 View/Edit Startup Configuration │ │
│ │  3 Miscellaneous Startup Services  │ │
│ └------------------------------------┘ │
├----------------------------------------┤
│          [  OK  ]     [Cancel]         │
└------ Press arrows, TAB or ENTER ------┘
```

| Menu                              | Description                       |
| --------------------------------- | --------------------------------- |
| X Exit                            | X Exit                            |
| 1 Toggle Startup Services         | 1 Toggle startup services         |
| 2 View/Edit Startup Configuration | 2 View/edit startup configuration |
| 3 Miscellaneous Startup Services  | 3 Miscellaneous startup services  |

### 1 Toggle Startup Services

```sh
┌------------------------------┤Toggle Startup Services├------------------------------┐
│ ┌---------------------------------------------------------------------------------┐ │
│ │ X Exit                     Exit this menu                                       │ │
│ │ accounting_enable          [ ] /etc/rc.d/accounting; Default: NO                │ │
│ │  apm_enable                [ ] /etc/rc.d/apm; Default: NO                       │ │
│ │  auditd_enable             [ ] /etc/rc.d/auditd; Default: NO                    │ │
│ │  auditdistd_enable         [ ] /etc/rc.d/auditdistd; Default: NO                │ │
│ │  autofs_enable             [ ] /etc/rc.d/automount; Default: NO                 │ │
│ │  autofs_enable             [ ] /etc/rc.d/automountd; Default: NO                │ │
│ │  autofs_enable             [ ] /etc/rc.d/autounmountd; Default: NO              │ │
│ │  avahi_daemon_enable       [ ] /usr/local/etc/rc.d/avahi-daemon; Default: NO    │ │
│ │  avahi_dnsconfd_enable     [ ] /usr/local/etc/rc.d/avahi-dnsconfd; Default: NO  │ │
│ │ background_fsck            [X] /etc/rc.d/bgfsck; Default: YES                   │ │
│ │  blacklistd_enable         [ ] /etc/rc.d/blacklistd; Default: NO                │ │
│ │  bootparamd_enable         [ ] /etc/rc.d/bootparams; Default: NO                │ │
│ │  bsnmpd_enable             [ ] /etc/rc.d/bsnmpd; Default: NO                    │ │
│ │  bthidd_enable             [ ] /etc/rc.d/bthidd; Default: NO                    │ │
│ │ cfumass_enable             [ ] /etc/rc.d/cfumass; Default: NO                   │ │
│ │  cleanvar_enable           [X] /etc/rc.d/cleanvar; Default: YES                 │ │
│ │  cron_enable               [X] /etc/rc.d/cron; Default: YES                     │ │
│ │  ctld_enable               [ ] /etc/rc.d/ctld; Default: NO                      │ │
│ │  cupsd_enable              [ ] /usr/local/etc/rc.d/cupsd; Default: NO           │ │
│ │ dbus_enable                [X] /usr/local/etc/rc.d/dbus; Default: YES           │ │
│ │  ddb_enable                [ ] /etc/rc.d/ddb; Default: NO                       │ │
│ │  devd_enable               [X] /etc/rc.d/devd; Default: YES                     │ │
│ │  devmatch_enable           [X] /etc/rc.d/devmatch; Default: YES                 │ │
│ └-↓↓↓------------------------------------------------------------------------ 17%-┘ │
├-------------------------------------------------------------------------------------┤
│                                [  OK  ]     [Cancel]                                │
└---------------------------- Press arrows, TAB or ENTER -----------------------------┘
```

You can enable or disable all currently available system startup items.

### 2 View/Edit Startup Configuration

```sh
┌---------┤View/Edit Startup Configuration├--------┐
│ ┌----------------------------------------------┐ │
│ │  X Exit              Return to previous menu │ │
│ │  > Add New           Add new directive       │ │
│ │  > Delete            Delete directive(s)     │ │
│ │  blanktime           300                     │ │
│ │  dbus_enable         YES                     │ │
│ │   dumpdev            AUTO                    │ │
│ │  firewall_enable     NO                      │ │
│ │  gateway_enable      YES                     │ │
│ │  hostname            ykla                    │ │
│ │  ifconfig_igc0       DHCP                    │ │
│ │   ifconfig_igc0_ipv6 inet6 accept_rtadv      │ │
│ │  kld_list            i915kms fusefs          │ │
│ │  lightdm_enable      YES                     │ │
│ │  moused_enable       YES                     │ │
│ │  ntpd_enable         YES                     │ │
│ │   ntpd_sync_on_start YES                     │ │
│ │  powerd_enable       YES                     │ │
│ │  resolv_enable       NO                      │ │
│ │  saver               beastie                 │ │
│ │   sshd_enable        YES                     │ │
│ │  xrdp_enable         YES                     │ │
│ │   xrdp_sesman_enable YES                     │ │
│ │  zfs_enable          YES                     │ │
│ └----------------------------------------------┘ │
├--------------------------------------------------┤
│       [  OK   ]     [Cancel ]     [Details]      │
└----------- Press arrows, TAB or ENTER -----------┘
```

| Menu                           | Description                  |
| ------------------------------ | ---------------------------- |
| X Exit Return to previous menu | Exit Return to previous menu |
| > Add New Add new directive    | Add New directive            |
| > Delete Delete directive(s)   | Delete Delete directive(s)   |

View the configuration of currently active startup items.

#### Details

```sh
┌--------------------------┤Choose View Details├-------------------------┐
│ ┌--------------------------------------------------------------------┐ │
│ │  R Reset                  Reset to default view settings           │ │
│ │  D [X] Description        Toggle display of system description     │ │
│ │  1 (*) Show Value         Show configured startup value (fast)     │ │
│ │  2 ( ) Show Default/Value Show default/configured values (slow)    │ │
│ │  3 ( ) Show Configured    Calculate rc.conf(5) locations (slowest) │ │
│ └--------------------------------------------------------------------┘ │
├------------------------------------------------------------------------┤
│                          [  OK  ]     [Cancel]                         │
└---------------------- Press arrows, TAB or ENTER ----------------------┘
```

| Menu                                                           | Description                                                               |
| -------------------------------------------------------------- | ------------------------------------------------------------------------- |
| R Reset Reset to default view settings                         | R Reset Restore default view settings                                     |
| D \[X] Description Toggle display of system description        | D \[X] Description Toggle display of system description                   |
| 1 (\*) Show Value Show configured startup value (fast)         | 1 (\*) Show Value Display configured startup value (fast loading)         |
| 2 ( ) Show Default/Value Show default/configured values (slow) | 2 ( ) Show Default/Value Display default/configured values (slow loading) |
| 3 ( ) Show Configured Calculate rc.conf(5) locations (slowest) | 3 ( ) Show Configured Calculate rc.conf(5) locations (slowest loading)    |

### 3 Miscellaneous Startup Services

This menu is used to configure various aspects of the system startup configuration.

```sh
┌----------------------┤Miscellaneous Startup Services├----------------------┐
│ This menu allows you to configure various aspects of your system's         │
│ startup configuration.  Use [SPACE] or [ENTER] to select items, and        │
│ [TAB] to move to the buttons.  Select Exit to leave this menu.             │
│ ┌------------------------------------------------------------------------┐ │
│ │  X Exit               Exit this menu                                   │ │
│ │                        --                                              │ │
│ │  1 [X] Startup dirs   Set the list of dirs to look for startup scripts │ │
│ │  2 [ ] named          Run a local name server on this host             │ │
│ │  3 [ ] named flags    Set default flags to named (if enabled)          │ │
│ │  4 [ ] NIS client     This host wishes to be an NIS client.            │ │
│ │  5 [ ] NIS domainname Set NIS domainname (if enabled)                  │ │
│ │  6 [ ] NIS Server     This host wishes to be an NIS server.            │ │
│ │                        --                                              │ │
│ │  7 [ ] Accounting     This host wishes to run process accounting.      │ │
│ │  8 [ ] lpd            This host has a printer and wants to run lpd.    │ │
│ └------------------------------------------------------------------------┘ │
├----------------------------------------------------------------------------┤
│                            [  OK  ]     [Cancel]                           │
└------------------------ Press arrows, TAB or ENTER ------------------------┘
```

Use \[Spacebar] or \[Enter] to select items, and \[Tab] to move to buttons. Select Exit to leave this menu.

| Menu                                                                 | Description                                                                   |
| -------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| X Exit Exit this menu                                                | X Exit Exit this menu                                                         |
| --                                                                   | --                                                                            |
| 1 \[X] Startup dirs Set the list of dirs to look for startup scripts | 1 \[X] Startup dirs Set the list of directories to search for startup scripts |
| 2 \[ ] named Run a local name server on this host                    | 2 \[ ] named Run a local name server on this host                             |
| 3 \[ ] named flags Set default flags to named (if enabled)           | 3 \[ ] named flags Set default flags for named (if enabled)                   |
| 4 \[ ] NIS client This host will be an NIS client                    | 4 \[ ] NIS client This host will be an NIS client                             |
| 5 \[ ] NIS domainname Set NIS domainname (if enabled)                | 5 \[ ] NIS domainname Set NIS domainname (if enabled)                         |
| 6 \[ ] NIS Server This host will be an NIS server                    | 6 \[ ] NIS Server This host will be an NIS server                             |
| --                                                                   | Separator                                                                     |
| 7 \[ ] Accounting This host will run process accounting              | 7 \[ ] Accounting This host will run process accounting                       |
| 8 \[ ] lpd This host has a printer and will run lpd                  | 8 \[ ] lpd This host has a printer and will run lpd                           |

## D Ttys TTY

```sh
┌-------------------┤User Confirmation Requested├-------------------┐
│ Configuration of system TTYs requires editing the /etc/ttys file. │
│ Typical configuration activities might include enabling getty(8)  │
│ on the first serial port to allow login via serial console after  │
│ reboot, or to enable xdm.  The default ttys file enables normal   │
│ virtual consoles, and most sites will not need to perform manual  │
│ configuration.                                                    │
│                                                                   │
│ To load /etc/ttys in the editor, select [Yes], otherwise, [No].   │
├-------------------------------------------------------------------┤
│                       [ Yes  ]     [  No  ]                       │
└------------------- Press arrows, TAB or ENTER --------------------┘


System TTY configuration requires editing the /etc/ttys file. Typical configuration activities might include enabling getty(8) on the first serial port to allow login via serial console after reboot, or enabling xdm. The default ttys file enables normal virtual consoles, and most sites do not need to perform manual configuration.

To load the /etc/ttys file in the editor, select [Yes], otherwise select [No].
```

If you select `[Yes]`, the **/etc/ttys** file will be opened in a text editor.

## References

* FreeBSD Project. bsdconfig(8)\[EB/OL]. \[2026-04-17]. <https://man.freebsd.org/cgi/man.cgi?query=bsdconfig&sektion=8>. FreeBSD system configuration tool manual page.

## Exercises

1. Add a custom sysctl configuration through bsdconfig's "View/Edit Startup Configuration", and trace how the configuration is written to `rc.conf` and ultimately takes effect through startup scripts.
2. Use bsdconfig's command-line mode to configure a network interface, and compare the operational path differences between the graphical interface and command-line approaches.
3. Compare the differences between bsdconfig and traditional manual rc.conf editing in terms of configuration efficiency and ease of use.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.bsdcn.org/ask/flat/chapter-17-system-administration/di-17.2-jie-bsdconfig.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
