Some Tech Bits – USB 3.0 Working on XU4!

Today was spent doing some tech tidy-up and exploring a few other bits of Tech Stuff. The very short form: On the Odroid XU4, after an update to the latest (Armbian uplifted to Devuan) the USB 3.0 is working! A direct install of Devuan 2.0 hung up on no working network without some added work…

More Detail:

I started the day with the designed for XU4 direct install of Devuan 2.0 “Ascii”. It boots. It works. Oh Joy! In prior times they had an XU 3/4 build that was supposed to work on both, but didn’t work on the 4. Now it works. the downside? It shows up without Ethernet working. What’s wrong? I don’t know. It could just be that it needs some configuring, or it could be more. I edited /etc/network/interfaces and did what ought to be a usable config, but no joy. Perhaps just some other config stuff, or perhaps something bigger. I’ll be setting up a WiFi dongle in the next few days and trying again to get one or the other going.

Instead of flogging that horse some more, I booted my working Armbian / Devuan uplift uSD chip. Did an “apt-get update; apt-get upgrade”. There were some messages that looked to me like kernel and kernel modules not being upgraded (no surprise as it likely needs an “apt-get dist-upgrade” or a manual kernel swap for that). In any case, it worked and rebooted nicely.

After the reboot I decided to try the USB 3.0 interfaces again. Why? Too many hours spent copying disks in the last few weeks. Plugged in a 1 TB disk with an xfs file system on it and proceeded to dump some wads of stuff onto it. It Worked!. Watching syslog showed no error messages showing up. (tail -f /var/log/syslog).

So at the moment I’m busy moving one disk worth of “stuff” onto that disk and then I’d do a cmp compare on it to make sure things didn’t change in the moving ;-) After that, I’ll be ready to try moving some system directories (/tmp and /usr ) and then some speed tests.

I’ll also be doing similar testing on other file system types, just to be sure ;-) The xfs file system was designed by Silicon Graphics for very large and high performance file systems on supercomputer class machines (of that era…) and it might be that matters… Besides, once something “had issues”, it’s good to be cautious when it finally gets working.

It also seems like the screen “jitter” on dragging a screen is reduced (still there a bit on very busy screens with lots of windows open, but “livable” now).

So, with all of that, I’m going to spend the rest of tonight and likely some of tomorrow settling in on the XU4 as my “Daily Driver” with a USB 3.0 disk for home directory and more. Hopefully it’s just some config omission on the Devuan 2.0 purpose built build and I can get off of the Armbian / Devuan conversion hybrid approach.

So, in conclusion, finally it looks like my Odroid XU4 has reached the point where it’s usable as a much faster version of the R. Pi and without too many quirks. I do really like the speed it’s got. IF the next couple of days continue as a success, well, I’ll be quite happy to buy a second one! ;-)

Subscribe to feed

Advertisements

About E.M.Smith

A technical managerial sort interested in things from Stonehenge to computer science. My present "hot buttons' are the mythology of Climate Change and ancient metrology; but things change...
This entry was posted in Tech Bits and tagged , , , . Bookmark the permalink.

12 Responses to Some Tech Bits – USB 3.0 Working on XU4!

  1. E.M.Smith says:

    I’ve moved a copy of my home directory onto a USB 3.0 ext3 file system, plus copied the few hundred GB of data from the xfs file system to an ext3 partition (both on USB 3.0). Then I put /tmp and the /var and /usr file systems on USB 3.0 disks / partitions.

    It is all working Just Fine(!)…. and I’ve noticed a significant speed improvement. The copy disk to disk was MUCH faster than from USB 2.0 to USB 3.0.

    The whole system seems snappier. No timing information yet, just experiential observations. I also put a 2 GB swap partition on the USB 3.0 disk. With swap, /tmp and /var all next to each other, a large many I/Os can happen with very little head seek. Then it also avoids the ‘write a big block’ problem with SD cards. (To write one byte, a large block of data is read, the byte changed, then the whole block written back. It’s on the order of 100,000 chars as I understand it – but I’d expect that to vary with maker and size of card.)

    I launched a Youtube – CPU was only about 1/2 used ;-) I’ll try full screen HD after I move it back to the TV / HDMI monitor and off the “adapter to DVI” that doesn’t “do” sound…

    Basically, it is almost like a real computer now ;-)

    While I’m OK on the Armbian / Devuan uplift, I expect some of the petty annoyances to be gone in a straight Devuan 2.0 build; so hope it isn’t too hard to get networking working so I can complete the software download and configuration steps. Once that is done, I will at long last have the Odroid XU4 working as I wanted. It is darned close now, but still has issues with the launch of x-windows not showing a cursor until I click on something (which is a challenge when you can’t see it to put it ON something to click…) and then the jitter on window moves indicates the GPU isn’t doing the re-compositing – I’m hoping that’s fixed in the direct Devuan – the embedded folks who created Armbian are not big on fancy video ;-)

    Well, I consider that pretty good for one night.

  2. CoRev says:

    E.M have you tried the HC1/2?

  3. E.M.Smith says:

    @CoRev:

    At $1500, um, no:
    https://www.waspbarcode.com/mobile-computers/hc1-mobile-computer

    Unless there’s some other HC1/2…

  4. E.M.Smith says:

    Looks like the networking kernel modules are missing. Doing a “modprobe R8152” works on this release and gives a FAIL on module missing on the Devuan 2.0 release.

    (I’m using the same WiFi adapter in each case and the builtin Ethernet is constant too).

    I need to find out what models are needed for the regular Ethernet and get them onto the chip, then loaded into the kernel. It is a crapshoot if I can just copy over the modules from this older version of the kernel, or not…

    This is pretty sloppy Q.A. (IMHO) by Devuan. It means they didn’t even do a basic test of Ethernet connectivity. I probably need to find out how to report bugs to them, since web searches make it look like I’m one of almost none trying to run Devuan on the Odroid XU4… i.e. not a lot of other folks posting “how to” fix things.

  5. E.M.Smith says:

    Some bits of info for “later” of for anyone it might help.

    I did an “lsmod” to list the modules loaded under both the Armbian and Devuan versions. The Armbian is at kernel 4.14.69 while the Devuan 2.0 is still on 4.14.48. While they are only minor numbers, it’s 21 minor revisions… so then I took the lsmod output and used that to make a script that looked up each module and told me about it on the Armbian. I then used that same list on the Devuan (since whatever is missing on it is present in Armbian) and figured I’d just look at “what was missing”.

    Here’s the script:

    root@odroidxu4:/SG2/ext# cat ModStuff 
    echo; modinfo Module
    echo; modinfo cfg80211         
    echo; modinfo bnep            
    echo; modinfo bluetooth      
    echo; modinfo ecdh_generic  
    echo; modinfo rfkill       
    echo; modinfo cpufreq_conservative
    echo; modinfo cpufreq_powersave  
    echo; modinfo cpufreq_userspace 
    echo; modinfo nfsd             
    echo; modinfo ipv6            
    echo; modinfo fuse           
    echo; modinfo ads7846       
    echo; modinfo spidev       
    echo; modinfo joydev      
    echo; modinfo 8188eu     
    echo; modinfo spi_s3c64xx      
    echo; modinfo w1_gpio         
    echo; modinfo wire           
    echo; modinfo uio_pdrv_genirq 
    echo; modinfo uio            
    echo; modinfo exynos_gpiomem
    echo; modinfo btrfs        
    echo; modinfo xor         
    echo; modinfo xor_neon   
    echo; modinfo zstd_decompress
    echo; modinfo zstd_compress 
    echo; modinfo xxhash       
    echo; modinfo lzo_compress
    echo; modinfo zlib_deflate 
    echo; modinfo raid6_pq    
    echo; modinfo uas    
    

    Here/s the output on the Armbian build:

    root@odroidxu4:/SG2/ext# cat ModListOut 
    
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/net/wireless/cfg80211.ko
    alias:          net-pf-16-proto-16-family-nl80211
    description:    wireless configuration support
    license:        GPL
    author:         Johannes Berg
    depends:        rfkill
    intree:         Y
    name:           cfg80211
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    parm:           bss_entries_limit:limit to number of scan BSS entries (per wiphy, default 1000) (int)
    parm:           ieee80211_regdom:IEEE 802.11 regulatory domain code (charp)
    parm:           cfg80211_disable_40mhz_24ghz:Disable 40MHz support in the 2.4GHz band (bool)
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/net/bluetooth/bnep/bnep.ko
    alias:          bt-proto-4
    license:        GPL
    version:        1.3
    description:    Bluetooth BNEP ver 1.3
    author:         Marcel Holtmann 
    srcversion:     01FF37D75409C610D7A1618
    depends:        bluetooth
    intree:         Y
    name:           bnep
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    parm:           compress_src:Compress sources headers (bool)
    parm:           compress_dst:Compress destination headers (bool)
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/net/bluetooth/bluetooth.ko
    alias:          net-pf-31
    license:        GPL
    version:        2.22
    description:    Bluetooth Core ver 2.22
    author:         Marcel Holtmann 
    srcversion:     98CE2454F5ECD20F48A3404
    depends:        rfkill,ecdh_generic
    intree:         Y
    name:           bluetooth
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    parm:           disable_esco:Disable eSCO connection creation (bool)
    parm:           disable_ertm:Disable enhanced retransmission mode (bool)
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/crypto/ecdh_generic.ko
    description:    ECDH generic algorithm
    license:        GPL
    alias:          crypto-ecdh
    alias:          ecdh
    depends:        
    intree:         Y
    name:           ecdh_generic
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/net/rfkill/rfkill.ko
    license:        GPL
    description:    RF switch support
    author:         Johannes Berg 
    author:         Ivo van Doorn 
    depends:        
    intree:         Y
    name:           rfkill
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    parm:           master_switch_mode:SW_RFKILL_ALL ON should: 0=do nothing (only unlock); 1=restore; 2=unblock all (uint)
    parm:           default_state:Default initial state for all radio types, 0 = radio off (uint)
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/cpufreq/cpufreq_conservative.ko
    license:        GPL
    description:    'cpufreq_conservative' - A dynamic cpufreq governor for Low Latency Frequency Transition capable processors optimised for use in a battery environment
    author:         Alexander Clouter 
    depends:        
    intree:         Y
    name:           cpufreq_conservative
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/cpufreq/cpufreq_powersave.ko
    license:        GPL
    description:    CPUfreq policy governor 'powersave'
    author:         Dominik Brodowski 
    depends:        
    intree:         Y
    name:           cpufreq_powersave
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/cpufreq/cpufreq_userspace.ko
    license:        GPL
    description:    CPUfreq policy governor 'userspace'
    author:         Dominik Brodowski , Russell King 
    depends:        
    intree:         Y
    name:           cpufreq_userspace
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/fs/nfsd/nfsd.ko
    license:        GPL
    author:         Olaf Kirch 
    alias:          fs-nfsd
    depends:        
    intree:         Y
    name:           nfsd
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    parm:           cltrack_prog:Path to the nfsdcltrack upcall program (string)
    parm:           cltrack_legacy_disable:Disable legacy recoverydir conversion. Default: false (bool)
    parm:           nfs4_disable_idmapping:Turn off server's NFSv4 idmapping when using 'sec=sys' (bool)
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/net/ipv6/ipv6.ko
    alias:          net-pf-10
    license:        GPL
    description:    IPv6 protocol stack for Linux
    author:         Cast of dozens
    depends:        
    intree:         Y
    name:           ipv6
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    parm:           disable:Disable IPv6 module such that it is non-functional (int)
    parm:           disable_ipv6:Disable IPv6 on all interfaces (int)
    parm:           autoconf:Enable IPv6 address autoconfiguration on all interfaces (int)
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/fs/fuse/fuse.ko
    alias:          devname:fuse
    alias:          char-major-10-229
    alias:          fs-fuseblk
    alias:          fs-fuse
    license:        GPL
    description:    Filesystem in Userspace
    author:         Miklos Szeredi 
    alias:          fs-fusectl
    depends:        
    intree:         Y
    name:           fuse
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    parm:           max_user_bgreq:Global limit for the maximum number of backgrounded requests an unprivileged user can set (uint)
    parm:           max_user_congthresh:Global limit for the maximum congestion threshold an unprivileged user can set (uint)
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/input/touchscreen/ads7846.ko
    alias:          spi:ads7846
    license:        GPL
    description:    ADS7846 TouchScreen Driver
    alias:          of:N*T*Cti,ads7873C*
    alias:          of:N*T*Cti,ads7873
    alias:          of:N*T*Cti,ads7846C*
    alias:          of:N*T*Cti,ads7846
    alias:          of:N*T*Cti,ads7845C*
    alias:          of:N*T*Cti,ads7845
    alias:          of:N*T*Cti,ads7843C*
    alias:          of:N*T*Cti,ads7843
    alias:          of:N*T*Cti,tsc2046C*
    alias:          of:N*T*Cti,tsc2046
    depends:        
    intree:         Y
    name:           ads7846
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/spi/spidev.ko
    alias:          spi:spidev
    license:        GPL
    description:    User mode SPI device interface
    author:         Andrea Paterniani, 
    alias:          of:N*T*CspidevC*
    alias:          of:N*T*Cspidev
    alias:          of:N*T*Csemtech,sx1301C*
    alias:          of:N*T*Csemtech,sx1301
    alias:          of:N*T*Cge,achcC*
    alias:          of:N*T*Cge,achc
    alias:          of:N*T*Clineartechnology,ltc2488C*
    alias:          of:N*T*Clineartechnology,ltc2488
    alias:          of:N*T*Crohm,dh2228fvC*
    alias:          of:N*T*Crohm,dh2228fv
    depends:        
    intree:         Y
    name:           spidev
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    parm:           bufsiz:data bytes in biggest supported SPI message (uint)
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/input/joydev.ko
    license:        GPL
    description:    Joystick device interfaces
    author:         Vojtech Pavlik 
    alias:          input:b*v*p*e*-e*1,*k*2C0,*r*a*m*l*s*f*w*
    alias:          input:b*v*p*e*-e*1,*k*130,*r*a*m*l*s*f*w*
    alias:          input:b*v*p*e*-e*1,*k*120,*r*a*m*l*s*f*w*
    alias:          input:b*v*p*e*-e*3,*k*r*a*6,*m*l*s*f*w*
    alias:          input:b*v*p*e*-e*3,*k*r*a*8,*m*l*s*f*w*
    alias:          input:b*v*p*e*-e*3,*k*r*a*2,*m*l*s*f*w*
    alias:          input:b*v*p*e*-e*3,*k*r*a*0,*m*l*s*f*w*
    depends:        
    intree:         Y
    name:           joydev
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/net/wireless/rtl8188eu/8188eu.ko
    version:        v4.1.4_6773.20130222
    author:         Realtek Semiconductor Corp.
    description:    Realtek Wireless Lan Driver
    license:        GPL
    srcversion:     8E67309FF5930DAED6C040B
    alias:          usb:v2357p010Cd*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v056Ep4008d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v2001p3311d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v2001p3310d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v2001p330Fd*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0DF6p0076d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v07B8p8179d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0BDAp0179d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0BDAp8179d*dc*dsc*dp*ic*isc*ip*in*
    depends:        
    intree:         Y
    name:           8188eu
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    parm:           rtw_ips_mode:The default IPS mode (int)
    parm:           ifname:The default name to allocate for first interface (charp)
    parm:           if2name:The default name to allocate for second interface (charp)
    parm:           rtw_initmac:charp
    parm:           rtw_channel_plan:int
    parm:           rtw_chip_version:int
    parm:           rtw_rfintfs:int
    parm:           rtw_lbkmode:int
    parm:           rtw_network_mode:int
    parm:           rtw_channel:int
    parm:           rtw_mp_mode:int
    parm:           rtw_wmm_enable:int
    parm:           rtw_vrtl_carrier_sense:int
    parm:           rtw_vcs_type:int
    parm:           rtw_busy_thresh:int
    parm:           rtw_ht_enable:int
    parm:           rtw_cbw40_enable:int
    parm:           rtw_ampdu_enable:int
    parm:           rtw_rx_stbc:int
    parm:           rtw_ampdu_amsdu:int
    parm:           rtw_lowrate_two_xmit:int
    parm:           rtw_rf_config:int
    parm:           rtw_power_mgnt:int
    parm:           rtw_smart_ps:int
    parm:           rtw_low_power:int
    parm:           rtw_wifi_spec:int
    parm:           rtw_antdiv_cfg:int
    parm:           rtw_antdiv_type:int
    parm:           rtw_enusbss:int
    parm:           rtw_hwpdn_mode:int
    parm:           rtw_hwpwrp_detect:int
    parm:           rtw_hw_wps_pbc:int
    parm:           rtw_max_roaming_times:The max roaming times to try (uint)
    parm:           rtw_fw_iol:FW IOL (int)
    parm:           rtw_mc2u_disable:int
    parm:           rtw_80211d:Enable 802.11d mechanism (int)
    parm:           rtw_notch_filter:0:Disable, 1:Enable, 2:Enable only for P2P (uint)
    parm:           debug:Set debug level (1-9) (default 1) (int)
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/spi/spi-s3c64xx.ko
    license:        GPL
    description:    S3C64XX SPI Controller Driver
    author:         Jaswinder Singh 
    alias:          platform:s3c64xx-spi
    alias:          of:N*T*Csamsung,exynos5433-spiC*
    alias:          of:N*T*Csamsung,exynos5433-spi
    alias:          of:N*T*Csamsung,exynos7-spiC*
    alias:          of:N*T*Csamsung,exynos7-spi
    alias:          of:N*T*Csamsung,exynos5440-spiC*
    alias:          of:N*T*Csamsung,exynos5440-spi
    alias:          of:N*T*Csamsung,exynos4210-spiC*
    alias:          of:N*T*Csamsung,exynos4210-spi
    alias:          of:N*T*Csamsung,s5pv210-spiC*
    alias:          of:N*T*Csamsung,s5pv210-spi
    alias:          of:N*T*Csamsung,s3c6410-spiC*
    alias:          of:N*T*Csamsung,s3c6410-spi
    alias:          of:N*T*Csamsung,s3c2443-spiC*
    alias:          of:N*T*Csamsung,s3c2443-spi
    depends:        
    intree:         Y
    name:           spi_s3c64xx
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    parm:           force32b:force 32bits fb data (uint)
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/w1/masters/w1-gpio.ko
    license:        GPL
    author:         Ville Syrjala 
    description:    GPIO w1 bus master driver
    alias:          of:N*T*Cw1-gpioC*
    alias:          of:N*T*Cw1-gpio
    depends:        wire
    intree:         Y
    name:           w1_gpio
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/w1/wire.ko
    license:        GPL
    description:    Driver for 1-wire Dallas network protocol.
    author:         Evgeniy Polyakov 
    depends:        
    intree:         Y
    name:           wire
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    parm:           delay_coef:int
    parm:           disable_irqs:int
    parm:           search_count:int
    parm:           enable_pullup:int
    parm:           timeout:time in seconds between automatic slave searches (int)
    parm:           timeout_us:time in microseconds between automatic slave searches (int)
    parm:           max_slave_count:maximum number of slaves detected in a search (int)
    parm:           slave_ttl:Number of searches not seeing a slave before it will be removed (int)
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/uio/uio_pdrv_genirq.ko
    alias:          platform:uio_pdrv_genirq
    license:        GPL v2
    description:    Userspace I/O platform driver with generic IRQ handling
    author:         Magnus Damm
    alias:          of:N*T*C*
    alias:          of:N*T*
    depends:        uio
    intree:         Y
    name:           uio_pdrv_genirq
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    parm:           of_id:Openfirmware id of the device to be handled by uio (string)
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/uio/uio.ko
    license:        GPL v2
    depends:        
    intree:         Y
    name:           uio
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/char/exynos-gpiomem.ko
    license:        GPL
    author:         Brian Kim 
    description:    EXYNOS gpiomem driver for accessing GPIO from userspace
    alias:          platform:gpiomem-exynos
    alias:          of:N*T*Csamsung,exynos-gpiomemC*
    alias:          of:N*T*Csamsung,exynos-gpiomem
    depends:        
    intree:         Y
    name:           exynos_gpiomem
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/fs/btrfs/btrfs.ko
    license:        GPL
    alias:          devname:btrfs-control
    alias:          char-major-10-234
    alias:          fs-btrfs
    depends:        zstd_compress,zstd_decompress,raid6_pq,xor,zlib_deflate,lzo_compress
    intree:         Y
    name:           btrfs
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/crypto/xor.ko
    license:        GPL
    depends:        xor-neon
    intree:         Y
    name:           xor
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/arch/arm/lib/xor-neon.ko
    license:        GPL
    depends:        
    intree:         Y
    name:           xor_neon
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/lib/zstd/zstd_decompress.ko
    description:    Zstd Decompressor
    license:        Dual BSD/GPL
    depends:        xxhash
    intree:         Y
    name:           zstd_decompress
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/lib/zstd/zstd_compress.ko
    description:    Zstd Compressor
    license:        Dual BSD/GPL
    depends:        xxhash
    intree:         Y
    name:           zstd_compress
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/lib/xxhash.ko
    description:    xxHash
    license:        Dual BSD/GPL
    depends:        
    intree:         Y
    name:           xxhash
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/lib/lzo/lzo_compress.ko
    description:    LZO1X-1 Compressor
    license:        GPL
    depends:        
    intree:         Y
    name:           lzo_compress
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/lib/zlib_deflate/zlib_deflate.ko
    license:        GPL
    depends:        
    intree:         Y
    name:           zlib_deflate
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/lib/raid6/raid6_pq.ko
    description:    RAID6 Q-syndrome calculations
    license:        GPL
    depends:        
    intree:         Y
    name:           raid6_pq
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    
    filename:       /lib/modules/4.14.69-odroidxu4/kernel/drivers/usb/storage/uas.ko
    author:         Hans de Goede , Matthew Wilcox and Sarah Sharp
    license:        GPL
    alias:          usb:v*p*d*dc*dsc*dp*ic08isc06ip62in*
    alias:          usb:v*p*d*dc*dsc*dp*ic08isc06ip50in*
    alias:          usb:v4971p8024d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v4971p8017d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v4971p1012d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v357Dp7788d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v2537p1068d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v2109p0711d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v152Dp0578d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v152Dp0567d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v152Dp0539d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v13FDp3940d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0BC2pAB2Ad*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0BC2pAB21d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0BC2pAB20d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0BC2pA0A4d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0BC2pA013d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0BC2pA003d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0BC2p3320d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0BC2p331Ad*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0BC2p3312d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0BC2p2312d*dc*dsc*dp*ic*isc*ip*in*
    alias:          usb:v0984p0301d0128dc*dsc*dp*ic*isc*ip*in*
    depends:        
    intree:         Y
    name:           uas
    vermagic:       4.14.69-odroidxu4 SMP preempt mod_unload ARMv7 thumb2 p2v8 
    

    Then the output from doing it on the Devuan 2.0 build. Note that I did it with 2>> redirecting std err output into the same file to capture the module missing complaints:

    root@odroidxu4:/SG2/ext# cat D2_ModList 
    
    
    
    filename:       /lib/modules/4.14.48/kernel/net/bluetooth/bnep/bnep.ko
    alias:          bt-proto-4
    license:        GPL
    version:        1.3
    description:    Bluetooth BNEP ver 1.3
    author:         Marcel Holtmann 
    srcversion:     01FF37D75409C610D7A1618
    depends:        bluetooth
    intree:         Y
    name:           bnep
    vermagic:       4.14.48 SMP preempt mod_unload ARMv7 p2v8 
    parm:           compress_src:Compress sources headers (bool)
    parm:           compress_dst:Compress destination headers (bool)
    
    filename:       /lib/modules/4.14.48/kernel/net/bluetooth/bluetooth.ko
    alias:          net-pf-31
    license:        GPL
    version:        2.22
    description:    Bluetooth Core ver 2.22
    author:         Marcel Holtmann 
    srcversion:     4D8E43C4B3BD9DB894A1695
    depends:        
    intree:         Y
    name:           bluetooth
    vermagic:       4.14.48 SMP preempt mod_unload ARMv7 p2v8 
    parm:           disable_esco:Disable eSCO connection creation (bool)
    parm:           disable_ertm:Disable enhanced retransmission mode (bool)
    
    
    
    filename:       /lib/modules/4.14.48/kernel/drivers/cpufreq/cpufreq_conservative.ko
    license:        GPL
    description:    'cpufreq_conservative' - A dynamic cpufreq governor for Low Latency Frequency Transition capable processors optimised for use in a battery environment
    author:         Alexander Clouter 
    depends:        
    intree:         Y
    name:           cpufreq_conservative
    vermagic:       4.14.48 SMP preempt mod_unload ARMv7 p2v8 
    
    filename:       /lib/modules/4.14.48/kernel/drivers/cpufreq/cpufreq_powersave.ko
    license:        GPL
    description:    CPUfreq policy governor 'powersave'
    author:         Dominik Brodowski 
    depends:        
    intree:         Y
    name:           cpufreq_powersave
    vermagic:       4.14.48 SMP preempt mod_unload ARMv7 p2v8 
    
    filename:       /lib/modules/4.14.48/kernel/drivers/cpufreq/cpufreq_userspace.ko
    license:        GPL
    description:    CPUfreq policy governor 'userspace'
    author:         Dominik Brodowski , Russell King 
    depends:        
    intree:         Y
    name:           cpufreq_userspace
    vermagic:       4.14.48 SMP preempt mod_unload ARMv7 p2v8 
    
    
    
    filename:       /lib/modules/4.14.48/kernel/fs/fuse/fuse.ko
    alias:          devname:fuse
    alias:          char-major-10-229
    alias:          fs-fuseblk
    alias:          fs-fuse
    license:        GPL
    description:    Filesystem in Userspace
    author:         Miklos Szeredi 
    alias:          fs-fusectl
    depends:        
    intree:         Y
    name:           fuse
    vermagic:       4.14.48 SMP preempt mod_unload ARMv7 p2v8 
    parm:           max_user_bgreq:Global limit for the maximum number of backgrounded requests an unprivileged user can set (uint)
    parm:           max_user_congthresh:Global limit for the maximum congestion threshold an unprivileged user can set (uint)
    
    ule ads7846 not found.
    modinfo: ERROR: Module spidev not found.
    modinfo: ERROR: Module joydev not found.
    modinfo: ERROR: Module 8188eu not found.
    modinfo: ERROR: Module spi_s3c64xx not found.
    modinfo: ERROR: Module w1_gpio not found.
    modinfo: ERROR: Module wire not found.
    modinfo: ERROR: Module uio_pdrv_genirq not found.
    modinfo: ERROR: Module uio not found.
    modinfo: ERROR: Module exynos_gpiomem not found.
    modinfo: ERROR: Module btrfs not found.
    modinfo: ERROR: Module xor not found.
    modinfo: ERROR: Module xor_neon not found.
    modinfo: ERROR: Module zstd_decompress not found.
    modinfo: ERROR: Module zstd_compress not found.
    modinfo: ERROR: Module xxhash not found.
    modinfo: ERROR: Module lzo_compress not found.
    modinfo: ERROR: Module zlib_deflate not found.
    modinfo: ERROR: Module raid6_pq not found.
    modinfo: ERROR: Module uas not found.
    

    Clearly there’s a whole lot of modules not there. Many of these, like btrfs, are not there as I’ve not been able to install the btrfs file system code due to no ethernet…

    As I’m not sure what module is supporting (or supposed ot support…) the on-board ethernet, I chose the 8188eu module for my WiFi dongle as my attempt to get a module loaded.

    Taking the stupid-and-hope approach, I just copied all the stuff in /lib/modules/4.14.69-odroidxu4/kernel/drivers/net/wireless/ from Armbian to Devuan. Hey, it was worth a shot. The driver is clearly in there… but it is from a different kernel level…

    Well, it didn’t work. Modprobe still didn’t find it, even with a reboot.

    So now I have a few chioces.

    1) Live on the Armbian / Devuan “uplift” until Devaun gets a round tuit and adds the drivers.
    2) Learn the right way to build and install the modules
    3) Try grafting the Devuan UserLand on top of the Armbian kernel – modules and all.

    Folks saw me do that grafting of userland onto a different kernel back with the Devuan 64 bit kernel and 32 bit UserLand (when 64 bit UserLand was having issues like FireFox not well…). The difference here is that it’s different kernel levels, so if any fundamental calls changed, or libraries are incompatible, well… but it ought to work ;-)

    I’m most likely to just do #1 for a while. Well, by definition I’ll be doing it anyway until something gets fixed one way or another… but the key point is that I won’t be doing much of #2 or #3 to get away from #1. I’m not really interested in becoming a Kernel Systems Programmer… Even just at the making kernel modules level. I might though… if it becomes necessary.

    Before that, it is modesly likely I’ll try grafting Devuan 2.0 UserLand onto an Armbian (uplifted) kernel & modules. It ought to be fairly quick so if it fails, not much time wasted. But not soon. I’ve sunk about as much time into Devuan 2.0 native on this board as is reasonable for now. I have a working version, and lots of higher priority stuff to do… But “someday” when the urge hits, I’ll give it a go – unless Devuan fixes it first.

    So, OK, on to “other stuff”… for “a while”…

  6. CoRev says:

    E.M. I meant the Odroid HC1/2 https://www.hardkernel.com/shop/odroid-hc2-home-cloud-two/ $54 and includes a SATA-3 connection for the HDD. AFAIK the difference between the HC1 & 2 is the 2 can fit either a 2.5 or 3.5 inch HDD.

  7. E.M.Smith says:

    Ah, yes, their “Home Cloud” thing. I looked at them but didn’t do anything with it since I didn’t have the XU4 working well yet. It’s basically an XU4 with a huge heat sink and SATA attachment point.

    At $49 that HC-1 is a pretty good deal. I’ve got some old dinky disks harvested from various laptops that died over the years… Hmmm….. ;-)

  8. E.M.Smith says:

    Oh Yeah… now I remember why I gave it a pass… No video out.

    All less-necessary features for this use case have been removed from the original ODROID-XU4 primarily including the HDMI and eMMC connectors, external USB3.0 ports (now utilized internally for SATA and Gigabit Ethernet), power button, and boot selector switch. The specifications for ODROID-HC1 kit are listed below.

    As I have about 28 TB of USB 3.0 and almost no SATA drives (just some old few GB ones from laptops being recycled.) Then that zero video possible… I’ve used video a lot when trying to debug or configure a “headless” server… I’m willing to pay the extra $12 or so for those two features…

    Now were I building a large disk server farm, it might be worth it…

  9. Ossqss says:

    Ethernet connection? You don’t hear that much anymore ;-)

    One wonders if you could more easily incorporate a wireless adapter.

  10. Power Grab says:

    I prefer Ethernet. It’s way faster than WIFI. More stable and secure, too.

    I don’t stream much, but when I do, I don’t want it spacing out all the time.

  11. Larry Ledwick says:

    I also have all my stuff hard wired with CAT 7 Ethernet cable. Minor hassle to set up but once put in place it is trouble free, and you don’t have to worry about someone hacking your wifi system.

    It is getting a bit difficult to find modems which are hard wire only though as the general market thinks wifi is the only way to connect computers now days.

  12. E.M.Smith says:

    As an aside on DietPi:

    I have just sunk this morning into trying DietPi on the XU4. Why? Why not? (Really it was just to see if that light weight distro would be an easy path to a network appliance or to a web browsing desktop without the drama of of an Armbian -> Devuan uplift or Devuan-no-network fixing.)

    Well, it had drama…

    First off, the download was quick and the “dd” onto the chip was very fast. WooHoo! Put it in and power up and blinky lights… and blinky lights… and blinky lights… (Some searching and web searching later and nothing clarifying…) I had an “insight moment”: Wait, I’m using the DVI Monitor with HDMI Adapter… but the XU4 works with it fine… but it’s different software… but… Swapping to the TV, it boots to a viable screen…

    OK, I then re-flashed the uSD card (since who knows what state the first boot was crashed into via powerfail). Reboot… Now I get the various screens it starts with to config. Ncurses based (big blocks of blue with embedded menus): UN-fortunately the “color” is basicallly light grey text on a lighter sort of white background embedded in a light grey panel background… Getting close, and low, and squinting I can read it… so I go ahead. ( I think this is an artifact of the TV having different contrast behaviours from the typical monitor settings)

    The Diet Pi has a menu driven network based software selection and installation process. It MUST be used. (You might be able to bypass it, but then it’s all manual all the time if you can figure out where they do things). So this isn’t a “stick in the image with LXDE and boot”. It’s “boot to a login and run the configure script / program that pulls stuff down via the internet”. OK, I chose a bunch of stuff, installed it, and LXDE was one of them. It reboots 3 times during this whole process. One to update / upgrade the base set. One to install some stuff. One to configure it more.

    On final boot as a login, it failed with a “X can not find screen”. OK… So “something” in the X-Windows conifig is messed up. No LXDE for me.

    As I’m VERY un-fond of X-windows configuring and debugging (having done way to much of it in my life) unless there is some VERY compelling reason to use a given system / OS / whatever; that is just a deal killer for me. Especially when it’s supposedly a user friendly hand-holdy release. Look, just put up a Desktop Image WITH some desktop (preferably LXDE or XFCE) already working. Let it be a simple “download and boot”. Please.

    OK, it was all of about 3 hours wasted (or “learning experience”…) so not a huge thing. It was “waiting for coffee to hit” time mostly, so even less of a loss of productive time. Since it REQUIRED the TV, I was not able to watch news and get double duty out of that time for about 1/2 of it. (My normal habit is to have some news / financial show / info feed running on the TV so ‘lost time’ and ‘waiting for command to finish’ is not wasted completely.)

    My conclusion:? Like a lot of other software releases, the support for the XU4 “has issues”. Folks pretend it’s 100% compatible with the XU3 and it just is not. NO hardware that is different in even minor ways is 100% compatible. Some can be close enough, but this isn’t. Furthermore, like most folks, they have “cheaped it” on making sound & video work well. I know, it’s hard. Leaving it for your end consumers to cope with is still a bad idea.

    Thus ends my XU4/DietPi exploration.

    One other side bar note:

    Having watched the HTOP display of system usage, the Octo-Core is not nearly as important as 4 fast cores. THE major benefit is the notion that it shifts to 4 low power cores when load is light. This matters a lot in a battery powered tablet or phone, not at all in a desktop SBC. It is most likely that a simple Quad-core higher end SBC would be as high performance or better – and have far fewer issues with software support. On the DietPi website, it shows some comparative performance graphs for various boards that seems to indicate the same. FWIW, a YouTube video comparing a bunch of boards found the Rock64 and RockPro64 were about the same or beat it. I’ll post that video (if I can find it again) in a future posting. So while I do love the XU4 for the speed and experience, it is likely that a fast quad core would be better and cheaper.

    I have a Rockchip based board on my Christmas List so I might end up evaluating one of them next year ;-)

    @Ossqss:

    Well, that depends…

    Yes, you don’t hear about it much anymore – that’s largely because it just ALWAYS is expected to work 100% without any issues. And mostly it does. What’s to talk about?

    Of the systems on my desktop, one is occasionally WiFi based connectivity. 7 are only Ethernet. That one that is WiFi is also Ethernet connected as needed / desired. In the bedroom, the Chromebox is an Ethernet connected media box that can do WiFi is needed but mostly not.

    What’s WiFi?

    The Macbook Air (has no Ethernet port) and cell phones, along with the Rokus.

    I’m going looking for a wired Roku…

    Why?

    As pointed out by Power Grab and Larry: It is SAFE and SECURE and FAST and TROUBLE FREE.

    I’d also note that with the insomnia issues we had with WiFi at default (hi) power settings, we’ve cut the WiFi power way back and shut off 5 GHz and things are much better. This makes me very concerned about ubiquitous 24 x 7 WiFi / 5G. We now shut off the WiFi when sleeping. (Thus the desire for wired Roku so I can watch TV when the spouse goes to bed early ;-)

    So “going forward” my direction is to reduce WiFi use as much as possible with a goal of “only turn it one when needed for an hour or two / day” for devices that are not wired Ethernet capable. Had I a wired Ethernet Roku in the office I’d have WiFi off for an additional 10 hours / day…

    Setting up WiFi dongles is one Big PITA. It still has too much “black art” in it and not all devices work with all software choices. There’s a degree of arcania in choosing your settings and it just isn’t a “plug and go” thing for most folks. It is one of my “cringe jobs” on any new platform. Here in Silly-Con Valley, there’s so much use that I have to audit the current usage and try to find a non-crowded channel. Most folks don’t bother and then you get 4 houses all watching TV over the same channel and throughput suffers. (My neighbor’s WiFi is now a stronger signal inside my house than is my own WiFi… I get “full bars” off at least 6 sources… while I’ve cut mine down to 2 bars in the living room).

    So that’s why you hear a lot about WiFi and nobody bothers talking about Ethernet. What’s to say? I plugged my computer in and it worked….

    @Larry L:

    It is usually possible to shut off the WiFi. (Though it isn’t always clear if that actually shuts off the hardware transmitter… so checking the signal can matter).

    I’ve built WiFi routers out of a R.Pi and it wasn’t hard. Unless I need one from the Telco due to some requirement of theirs, I now build my own internal use WiFi routers via the Pi or similar boards. An 8 port switch is pretty cheap these days ($40? something like that) and plug that into a SBC with a WiFi dongle to get a router. (some assembly and configuration required ;-) Using something without an on-board WiFi means you can “pull the dongle” when you want to KNOW WiFi is dead…

    Since most WiFi is well under 100 Mbit, the typical 100 Mbit Ethernet is fine for the uplink to the WiFi router. (I.e. you do not need a GigE port SBC)

    Frankly, it takes me less time to set one up than it takes to buy one – either from driving to the local Fry’s or sinking time into reading specs and stuff on Amazon / Web Searches and deciding what’s going to work. Once you have some WiFi dongles in a drawer and a couple of SBCs that are not dedicated to constant use, it’s really fast to cobble one together. When AT&T killed my ADSL service, I tossed together a R.Pi with ethernet to my internal network and WiFi to a hotspot (T-Mobile) and used it as my router; all in about an hour. Use it for about a week until AT&T fixed things… It’s a good skill to have ;-)

Anything to say?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.