Skip to content

KNEO Pi Configuration via the Command-Line

This guide provides instructions for configuring various aspects of the KNEO Pi development kit via the command line. The configurations allow users to adjust the system settings, network configurations, and advanced options as per their requirements.


System Configuration

Switch to the 'root' account before performing system-level configurations

If you are logged in remotely as alarm, use the command: su - root


Screen Resolution

Configure the system's screen resolution to match the display requirements.

By default, the KNEO Pi is set to 1280x720 resolution. This setting is balanced for performance to save computing resources, ensuring that the system can run applications smoothly without excessive CPU and memory usage.

Setting the resolution to 1920x1080 will provide higher display quality, but it comes with a trade-off. It will increase the CPU load by approximately 10% and also consume more DDR memory. This may impact overall system performance, especially on resource-intensive tasks.

Refer to the images below to configure the monitor resolution

Then, setResolution with the desired resolution (e.g., 1920x1080 or 1280x720).


Expand SD Card Space

Expand the filesystem to utilize the entire available space on the SD card.

To save time during the SD card programming process, the system image is created with a smaller size than the actual capacity of the SD card, typically less than 16GB. However, if your SD card has a capacity larger than 16GB, the unused space will not be available for use by the system until it is expanded.

Command:

$ cd /mnt/flash/keno_pi
$ bash resize_rootfs_partition.sh

Warning

Expanding the partition will erase data if not done correctly. Ensure to back up important data before proceeding.


Configure Timezone or Date/Time

Set the correct timezone or synchronize system time with an NTP server.

Command to configure timezone:

$ timedatectl set-timezone <Region/City>
Replace <Region/City> with your local timezone (e.g., Asia/Taipei).

Check available zones:

$ timedatectl list-timezones

Command to configure date/time:

# Configure date only
$ timedatectl set-time "2016-11-12"

# Configure time only
$ timedatectl set-time "18:10:40"

# Configure both date and time
$ timedatectl set-time "2016-11-12 18:10:40"

Warning

The KNEO Pi does not have a Real-Time Clock (RTC) module to maintain the system clock when powered off.
Ensure the device has network access to synchronize the time using NTP, or manually configure the clock after each reboot.


Configure Hostname

Change the system's hostname to a custom name.

Command:

$ hostnamectl set-hostname <new_hostname>
Replace <new_hostname> with your desired hostname.

General naming rules

Allowed Characters

  • Lowercase letters (a-z)
  • Digits (0-9)
  • Hyphens (-) as separators (but not at the beginning or end of the hostname)

Invalid Characters

  • Uppercase letters (e.g., MyHost is invalid)
  • Special characters, such as: . _ (underscore) . . (dot, except in fully qualified domain names, like hostname.domain.com) . Spaces

Length Restrictions

  • Between 1 and 63 characters for a single hostname label.
  • The full hostname, including any domain (e.g., hostname.example.com), should not exceed 253 characters.
Changing the hostname may affect network connectivity

See more Resolve kneopi.local with mDNS for further information


Networking Configuration

Networking on your KNEO Pi can be configured for both Ethernet and Wi-Fi. Use the following steps to assign a static IP or enable DHCP for either interface. The KNEO Pi uses NetworkManager as the default networking daemon

Assign Static IP or DHCP

  • View Available Connections To check the status of your current connections or available interfaces:

    $ nmcli con show
    
  • Assign a Static IP To configure a static IP for an interface (e.g., Ethernet or Wi-Fi):

    $ nmcli con mod "<connection-name>" ipv4.addresses <static-ip>/<subnet-mask>
    $ nmcli con mod "<connection-name>" ipv4.gateway <gateway-ip>
    $ nmcli con mod "<connection-name>" ipv4.dns "<dns1>,<dns2>"
    $ nmcli con mod "<connection-name>" ipv4.method manual
    
    Replace <connection_name> with the NAME of your connection, usually eth0 or wlan0
    Replace <static-ip>, <subnet-mask>, <gateway-ip>, <dns> according to your environment

    For example (configure everything together)

    $ nmcli con mod eth0 ipv4.method manual \
      ipv4.addresses "192.168.1.100/24" \
      ipv4.gateway "192.168.1.1" \
      ipv4.dns "8.8.8.8"
    

  • Enable DHCP (Enabled by default)

    $ nmcli con mod <connection_name> ipv4.method auto
    

  • Connect to Wi-Fi (optional)

    If using a USB Wi-Fi adapter, ensure it is recognized by the system, then connect to a Wi-Fi network:

    Verified USB Wi-Fi adapters
    • tp-link Archer T3U Nano, rtl8822bu
    • tp-link Archer T2U Nano, rtl8812au
    $ nmcli device wifi list
    $ nmcli device wifi connect "<SSID>" password "<password>"
    

    Once connected, confirm the assigned IP address using:

    $ nmcli device show wlan0 | grep IP4.ADDRESS  
    

  • Disconnect and reconnect the networks to make the changes effective

    $ nmcli con down "<connection-name>"
    $ nmcli con up "<connection-name>"
    
    Replace <connection_name> with the NAME of your connection, usually eth0 or wlan0


Advanced Configuration

Configure USB2.0/USB 3.0 Port as Device Mode

The USB2.0/USB 3.0 port on the KNEO Pi can be configured to operate in device mode, allowing the KNEO Pi to function as a peripheral device when connected to a host system. Configure the USB2.0/USB 3.0 port to function in device mode

[root@kneo-pi ~]# cd /mnt/flash/kneo_pi

[root@kneo-pi kneo_pi]# sh set_usb_mode.sh
[ 1011.105228] loop0: detected capacity change from 0 to 124805120
[ 1011.113349] FAT-fs (loop0): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Please enter option for USB U2 port(default: 0)
[0] U2 port: HOST mode
[1] U2 port: device (peripheral) mode
1
Please enter option for USB U3 port(default: 0)
[0] U3 port: HOST mode
[1] U3 port: device (peripheral) mode
1
New U2_mode: device
New U3_mode: device
updated config ok, but still need to reboot system to apply new setting for linux kernel

Warning

  • Switching to device mode may interfere with other USB peripherals connected to the system.
  • Reboot is required

Configure MAC Address

Set a custom MAC address for network interfaces permanently.

$ nmcli connection modify eth0 ethernet.cloned-mac-address <new_mac>
Replace <new_mac> with the desired MAC address (e.g., 00:14:22:01:23:45)

Apply the changes:

$ nmcli connection down eth0
$ nmcli connection up eth0

OR reboot:

$ reboot

Warning

  • Changing the MAC address can affect network access if there are network policies based on MAC filtering.
  • Reboot is required

Enable/Disable ZRAM as Swap (enabled by default)

Enable or disable the use of ZRAM for compressed swap space to gain larger memroy space.

Command to enable/disable ZRAM:

$ systemctl enable zram.service

$ systemctl disable zram.service

Warning

  • Enabling ZRAM can help performance on systems with limited RAM but may affect overall system stability if not properly configured.
  • Reboot is required

Enable/Disable Dummy UDC USB Device for Proprietary NPU Core (enabled by default)

Enable or disable the dummy USB device used for the proprietary NPU core.

Command to enable/disable:

$ systemctl enable nnm-usb-loopback.service
$ systemctl disable nnm-usb-loopback.service

Warning

  • This feature is specific to certain hardware configurations. Misuse may cause the NPU to become unresponsive.
  • Reboot is required

Configure USB over Ethernet (disabled by default)

Enable or disable USB over Ethernet functionality.

Command:

$ systemctl enable usb-over-ethernet.service
$ systemctl disable usb-over-ethernet.service

Warning

  • Enabling USB over Ethernet will affect USB network traffic, so ensure this feature is needed for your use case.
  • Set the USB Port you use as Device Mode is required
  • Reboot is required

Restricted Configurations

  • Keyboard Layout (US Layout Only)
  • DDR Reservation for System
  • Disable HDMI Display. Currently, mipi display is not supported in KNEO Pi usage.