Home Forums Software discussion Steven's Setup and Kernel Modules

This topic contains 2 replies, has 3 voices, and was last updated by  armbian 1 year, 1 month ago.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
  • #579


    I got my espressobin board, mod-ed a case for it, got it working as planned. I would like to share my setup and configurations, in the hope that it could help to save some time for people to look for a similar setup.
    1. Setup
    The espressobin board is mounted inside a re-purposed HP dc7900 case. It has a sata SSD drive attached, with plan to install a port multiplier and a 3.5” spindle hard drive later on.
    2. Kernel and its modules
    When playing with the board, I found out that the iptables is not compiled-in in the Globalscale kernel, and soon realized that quite a few other functions not turned on as well. So I re-configured the kernel options, ended up with something close to what a typical Ubuntu kernel would provide, in areas like networking support, fs types, security options, crypto API’s, etc. The “.config” file could be found here (full url: https://www.dropbox.com/s/10k4vobsby4zhtu/espressobin-kernel-config-full-20170624.tar.gz).
    The build setup and process follow what’s in the wikis on this site, plus the module build. Below is a list of commands to build the kernel and the modules.

    make -j4
    make modules_install INSTALL_MOD_PATH=pwd/kmod3720
    (Note: the pwd command above is enclosed in backticks, as command substitution)

    The built modules are located in kmod3720 directory (“kmod3720/lib/modules/4.4.8-armada-17.02.2-g8148be99814b/”, to be exact); and they need to be copied to the /lib/modules/4.4.8-armada-17.02.2-g8148be99814b/ directory on the espressobin target system. To make the transfer faster, they could be compressed to a tarball, with the command shown below.

    tar -czf ../kmod3720.tar.gz -C kmod3720/lib/modules/ .

    After the tarball is copied over to the espressobin, it could be decompressed with the commands shown below.

    #cd /lib/modules/
    #tar -xzf /where/it/is/copied/to/kmod3720.tar.gz

    3. Power Consumption
    The setup (espressobin with a SSD drive) runs at 4 watts most of the time, according to my Kill A Watt meter. When it is in u-boot, it’s 5 watts. When it’s doing tarball compression/extraction, it could hit 6 watts. When nothing is running, it could show 3 watts. The default ondemand scaling governor runs in one of the four frequencies: 166666, 250000, 500000, 1000000.
    4. Ethernet Port and Speed
    The wan port is a gigabit port, and it is capable of running saturated with netcat; and that suggests there’s not bottleneck in the path. The scp rate is around 35MB/s, likely due to the overhead of ssh encryption/decryption; this could be alleviated with the availability of the driver to the on-chip Security Engine, hopefully.



    edit: to anyone who finds this, espressobin actually includes how to solve this issue at the beginning of their ubuntu networking docs (I managed to miss it, because I was tired). check it out right at the beginning here

    howdy steven,

    excellent guide, thank you for taking the time to put this together. I ran into the same issue, and have built your additional modules and copied them over to the espressobin. However, upon attempting to load the ip_tables module, I get a whole bunch of unknown symbol errors. I have included them below.

    This should probably be child’s play for someone messing with an espressobin but it’s been probably five years since I’ve built a kernel and I’m rusty 🙂

    [ 2421.667277] ip_tables: Unknown symbol xt_compat_unlock (err 0)
    [ 2421.667339] ip_tables: Unknown symbol xt_free_table_info (err 0)
    [ 2421.667384] ip_tables: Unknown symbol xt_alloc_table_info (err 0)
    [ 2421.667432] ip_tables: Unknown symbol nf_register_sockopt (err 0)
    [ 2421.667481] ip_tables: Unknown symbol xt_check_match (err 0)
    [ 2421.667526] ip_tables: Unknown symbol nf_skb_duplicated (err 0)
    [ 2421.667558] ip_tables: Unknown symbol xt_compat_match_from_user (err 0)
    [ 2421.667601] ip_tables: Unknown symbol xt_request_find_target (err 0)
    [ 2421.667645] ip_tables: Unknown symbol xt_unregister_matches (err 0)
    [ 2421.667701] ip_tables: Unknown symbol xt_request_find_match (err 0)
    [ 2421.667732] ip_tables: Unknown symbol xt_tee_enabled (err 0)
    [ 2421.667764] ip_tables: Unknown symbol nf_unregister_sockopt (err 0)
    [ 2421.667817] ip_tables: Unknown symbol xt_compat_add_offset (err 0)
    [ 2421.667860] ip_tables: Unknown symbol xt_compat_init_offsets (err 0)
    [ 2421.667892] ip_tables: Unknown symbol xt_unregister_targets (err 0)
    [ 2421.667922] ip_tables: Unknown symbol xt_recseq (err 0)
    [ 2421.667959] ip_tables: Unknown symbol xt_compat_calc_jump (err 0)
    [ 2421.667991] ip_tables: Unknown symbol xt_compat_flush_offsets (err 0)
    [ 2421.668038] ip_tables: Unknown symbol nf_log_trace (err 0)
    [ 2421.668078] ip_tables: Unknown symbol xt_compat_target_from_user (err 0)
    [ 2421.668110] ip_tables: Unknown symbol xt_register_targets (err 0)
    [ 2421.668151] ip_tables: Unknown symbol xt_compat_check_entry_offsets (err 0)
    [ 2421.668240] ip_tables: Unknown symbol xt_compat_match_to_user (err 0)
    [ 2421.668278] ip_tables: Unknown symbol xt_register_table (err 0)
    [ 2421.668310] ip_tables: Unknown symbol xt_proto_init (err 0)
    [ 2421.668375] ip_tables: Unknown symbol xt_replace_table (err 0)
    [ 2421.668406] ip_tables: Unknown symbol xt_find_table_lock (err 0)
    [ 2421.668447] ip_tables: Unknown symbol xt_compat_target_offset (err 0)
    [ 2421.668500] ip_tables: Unknown symbol xt_table_unlock (err 0)
    [ 2421.668531] ip_tables: Unknown symbol xt_proto_fini (err 0)
    [ 2421.668572] ip_tables: Unknown symbol xt_check_entry_offsets (err 0)
    [ 2421.668604] ip_tables: Unknown symbol xt_compat_target_to_user (err 0)
    [ 2421.668636] ip_tables: Unknown symbol xt_compat_match_offset (err 0)
    [ 2421.668667] ip_tables: Unknown symbol xt_register_matches (err 0)
    [ 2421.668698] ip_tables: Unknown symbol xt_check_target (err 0)
    [ 2421.668745] ip_tables: Unknown symbol xt_find_revision (err 0)
    [ 2421.668776] ip_tables: Unknown symbol xt_compat_lock (err 0)
    [ 2421.668807] ip_tables: Unknown symbol xt_copy_counters_from_user (err 0)
    [ 2421.668838] ip_tables: Unknown symbol xt_unregister_table (err 0)

    Any guidance would be much appreciated.



    but it’s been probably five years since I’ve built a kernel and I’m rusty

    That’s why I started this project: https://github.com/armbian/build

    Building a kernel and image for Espressobin (any many other boards) is super easy. We support improved stock kernel + two alternatives.

Viewing 3 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.

Signup to our newsletter

Technical specification tables can not be displayed on mobile. Please view on desktop