CORE-POS / IS4C

Cooperative Operational Retail Environment
http://www.core-pos.com
GNU General Public License v2.0
64 stars 43 forks source link

Ubuntu 14.04 on lanes #733

Closed flathat closed 8 years ago

flathat commented 8 years ago

I've just upgraded a lane to Ubuntu 14.04.4 LTS and am having some troubles at least with the out-of-the-box version.

  1. General performance seems sluggish compared to a 12.04 lane.
  2. compiz using 200% or more cpu. It is apparently something that helps the Unity window system and is intended to use a dedicated or at least additional cpu. It is possible to reduce the usage, but not, in my experience so far, reduce it to a neglible, with compizconfig-settings-manager which is described here and whose window can be launched from the command line as $ ccsm. After making the recommended change compiz seems to use a minimum 10% cpu but frequently jumps into the 200% range but doesn't stay there are long as it did before. General performance is not dramatically better. There may be other issues in play.
  3. I've not experimented with different flavours of Linux desktops or different window managers (I'm not very certain of even the categories or terminology) but it sounds like Unity, which was the default in 14.04 is now intended for more demanding window-work than CORE-POS needs and is not looking back. Is there a less-demanding (and less capable of course) platform that we could use? Any that anyone is using? Googling does not seem to suggest trying to turn compiz off is the way to go. Or is it less aggravation in the end to just upgrade the computers?
  4. In Firefox I've not been able to get the regular Browser Console (for e.g. JS debugging) to run. It appears to simply die; it is listed in the left-side icon as available but can't be opened. I've enabled the Browser Toolbox:
about:config
devtools.chrome.enabled: true
devtools.debugger.remote-enabled: true

which includes something much like the regular Browser Console. It seems to crash/stop-working quite easily on pos2.php, both under Ubuntu 14.04 and 12.04.

gohanman commented 8 years ago

I don't have too much experience with a linux lane, but on the general tech:

Compiz is a 3D accelerated window manager. It's expecting to utilize an OpenGL capable GPU, not a regular CPU. Excessive CPU use could be indicative of driver problems with your GPU (video) hardware. There's a bit of a double-edged sword here. With everything configured correctly a 3D accelerated desktop is more efficient since the CPU can offload a lot of work on a GPU that's often mostly idle anyway. But if the CPU can't offload to the GPU and has to fall back to doing the same calculations itself performance will be terrible - CPUs are not particularly good at GPU-oriented tasks.

Unity is a plugin for Compiz so you're correct that turning off the latter isn't much of an option. From what I can tell Compiz has been around since 7.10 and Unity has been the default desktop environment since 11.04. Maybe something went awry with an in-place upgrade and re-installing from scratch would help? Or maybe you were running something other than the default in 12.04? XCFE is usually the choice for old/slow hardware.

The Firefox issue is probably better addressed to Ubuntu's package maintainers.

flathat commented 8 years ago

The compiz/14.04 issue seems pretty well recognized.

It doesn't seem necessary to have a specialized graphics processor to run CORE-POS, which is why I was wondering about using something other than Compiz+Unity under Unbuntu going forward.

gohanman commented 8 years ago

CORE-POS doesn't require a specialized graphics processor, but if your computer supports any kind of monitor and was made in the last 10-15 years it almost certainly has a specialized graphics processor. The linked bug thread seems to be about properly detecting GPU features which to me suggests drivers (Ubuntu forums would of course be substantially more knowledgeable than me on the subject).

From a CORE standpoint the desktop environment shouldn't matter at all. Whether to use Unity or Gnome or KDE or XFCE or LXDE or MATE or Cinnamon or Fluxbox or whatever is just personal preference so long as it can run a reasonably modern browser.

joelbrock commented 8 years ago

My 2¢: In recent years as Ubuntu has gotten more and more user-friendly (read: resource intensive to run) i've tended to favor the XFCE desktop manager. So Xubuntu, or debian + XFCE. Especially on lane hardware that is pretty bare-bones.
I cant think of any case where i have ever installed a lane with a discrete GPU. But i agree with andy's assessment, IF you had a dedicated GPU available, AND it was fully supported with linux drivers, then that would be a boon to lane performance.

gohanman commented 8 years ago

Even without a discrete CPU onboard graphics have gotten pretty decent. Post Pentium 4 as CPUs started adding cores rather than adding mhz/ghz there was more spare silicon for graphics. The 2nd generation Intel GMA stuff was pretty capable (Core2 / 2006) and the HD stuff that followed much more so (Sandy Bridge / 2011).

Considering OSX has had a 3D accelerated desktop forever (Aqua) and Windows has since Vista (Aero) I think it's pretty difficult to find a modern PC that doesn't have enough GPU horsepower to handle this sort of thing. That's why I think it's a software issue. Although I don't think it's worth sinking time into solving the issue if XFCE gives acceptable performance. When you're running one browser window full screen it doesn't particularly matter what's behind it.

flathat commented 8 years ago

What I've been using since Feb 2014 is ITX Intel Atom D2550 5689 Mini-ITX Embedded POS Fanless System CPU 1.86 GHz, 2GB RAM, which according to the specs in that link has two cores and is capable of "Integrated Processor Graphics" but:

This feature may not be available on all computing systems. Please check with the system vendor to determine if your system delivers this feature, or reference the system specifications (motherboard, processor, chipset, power supply, HDD, graphics controller, memory, BIOS, drivers, virtual machine monitor-VMM, platform software, and/or operating system) for feature compatibility. Functionality, performance, and other benefits of this feature may vary depending on system configuration.

and I don't know whether my instance "delivers this feature" or not.

Those specs also say "64-bit instruction set", possibly subject to the same caveat, but:

$ arch
i686
# not x86_64

So, in May 2016, is that?

lane hardware that is pretty bare-bones

gohanman commented 8 years ago

None of that says what your motherboard, chipset, or integrated graphics actually are. Most ITX motherboards with that CPU are an NM10 chipset with GMA 3150 graphics. If so, that's the lower end of modern graphics. On the other hand I have several such machines that run Windows 7 and 10's 3D desktop without issue.

jonkeim commented 8 years ago

Per Wikipedia , the Atom D2550 is a Cedarview-class (if "class" is the appropriate term?) System-On-A-Chip, with a "PowerVR-based Intel GMA 3600/GMA 3650 GPU". (PowerVR, as opposed to something sensible like "nVidia" or even "Intel".) It sounds like you may've had bad luck with the particular flavor of Atom you ended up with.

Googling "ubuntu 14.04 atom cedarview" turns up an ominous-sounding thread. The graphics driver is old, closed-source, and incompatible with the versions of the kernel and/or X that ship with anything newer than Ubuntu 12.04.1.

Finding drivers was still considered impossible in April of 2014, when a duplicate of the previous question was asked. I haven't looked around for any potential developments (hacks by the community or what have you) that may've happened since then. But finding PowerVR graphics drivers certainly seems like the obstacle that you'll need to overcome.

gohanman commented 8 years ago

I still think XFCE is probably the easiest answer, but vaguely on topic this has remained my preferred lane build for a few years now:

I have a few variants with an ASRock N3150B instead. It's a similar motherboard with a Celeron N3150 - also a quad core processor and with Broadwell era Intel HD graphics. The N3150 is a mobile part instead of a desktop part so it's a little slower but a little more energy efficient. I haven't noticed much practical difference between the two.

SSD and RAM are probably the best bang-for-your-buck upgrades although the whole build is pretty cheap. This remains one of the few areas where built it yourself has significant savings since the Dell and HP sized players aren't making anything in quite this format - although losing the parallel port would open up a lot more options.

flathat commented 8 years ago

Another user is reporting good performance running

Ubuntu 14.04
xfce4
Windows manager: xfwm4

with lanes like:

$ sudo lshw -short
H/W path         Device     Class       Description
===================================================
                            system      XS36V4 (To be filled by O.E.M.)
/0                          bus         FS36V4
/0/0                        memory      64KiB BIOS
/0/28                       memory      4GiB System Memory
/0/28/0                     memory      4GiB DIMM DDR3 1600 MHz (0.6 ns)
/0/28/1                     memory      DIMM [empty]
/0/32                       memory      224KiB L1 cache
/0/33                       memory      2MiB L2 cache
/0/34                       processor   Intel(R) Celeron(R) CPU  J1900  @ 1.99GHz
/0/100                      bridge      Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register
/0/100/2                    display     Atom Processor Z36xxx/Z37xxx Series Graphics & Display
/0/100/13                   storage     Atom Processor E3800 Series SATA AHCI Controller
/0/100/14                   bus         Atom Processor Z36xxx/Z37xxx Series USB xHCI
/0/100/1a                   generic     Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine
/0/100/1b                   multimedia  Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller
/0/100/1c                   bridge      Atom Processor E3800 Series PCI Express Root Port 1
/0/100/1c/0      wlan0      network     RTL8188EE Wireless Network Adapter
/0/100/1c.1                 bridge      Atom Processor E3800 Series PCI Express Root Port 2
/0/100/1c.1/0               generic     RTL8411 PCI Express Card Reader
/0/100/1c.1/0.2  eth0       network     RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/1c.2                 bridge      Atom Processor E3800 Series PCI Express Root Port 3
/0/100/1c.3                 bridge      Atom Processor E3800 Series PCI Express Root Port 4
/0/100/1f                   bridge      Atom Processor Z36xxx/Z37xxx Series Power Control Unit
/0/100/1f.3                 bus         Atom Processor E3800 Series SMBus Controller
/0/1             scsi0      storage
/0/1/0.0.0       /dev/sda   disk        80GB INTEL SSDSC2BW08
/0/1/0.0.0/1     /dev/sda1  volume      511MiB Windows FAT volume
/0/1/0.0.0/2     /dev/sda2  volume      70GiB EXT4 volume
/0/1/0.0.0/3     /dev/sda3  volume      3936MiB Linux swap volume

Mine, by comparison are:

$ sudo lshw -short
H/W path        Device     Class       Description
==================================================
                           system      ()
/0                         bus         D2550MUD2
/0/0                       processor   Intel(R) Atom(TM) CPU D2550   @ 1.86GHz
/0/0/1                     memory      512KiB L2 cache
/0/0/3                     memory      24KiB L1 cache
/0/0/2.1                   processor   Logical CPU
/0/0/2.2                   processor   Logical CPU
/0/0/2.3                   processor   Logical CPU
/0/0/2.4                   processor   Logical CPU
/0/2                       memory      32KiB L1 cache
/0/4                       memory      64KiB BIOS
/0/15                      memory      2GiB System Memory
/0/15/0                    memory      DIMM Synchronous [empty]
/0/15/1                    memory      2GiB DIMM DDR3 Synchronous 1066 MHz (0.9 ns)
/0/100                     bridge      Atom Processor D2xxx/N2xxx DRAM Controller
/0/100/2                   display     Atom Processor D2xxx/N2xxx Integrated Graphics Controller
/0/100/1b                  multimedia  NM10/ICH7 Family High Definition Audio Controller
/0/100/1c                  bridge      NM10/ICH7 Family PCI Express Port 1
/0/100/1c/0     eth2       network     82574L Gigabit Network Connection
/0/100/1d                  bus         NM10/ICH7 Family USB UHCI Controller #1
/0/100/1d.1                bus         NM10/ICH7 Family USB UHCI Controller #2
/0/100/1d.2                bus         NM10/ICH7 Family USB UHCI Controller #3
/0/100/1d.3                bus         NM10/ICH7 Family USB UHCI Controller #4
/0/100/1d.7                bus         NM10/ICH7 Family USB2 EHCI Controller
/0/100/1e                  bridge      82801 Mobile PCI Bridge
/0/100/1f                  bridge      NM10 Family LPC Controller
/0/100/1f.2                storage     NM10/ICH7 Family SATA Controller [IDE mode]
/0/100/1f.3                bus         NM10/ICH7 Family SMBus Controller
/0/1            scsi0      storage
/0/1/0.0.0      /dev/sda   disk        500GB TOSHIBA MQ01ABD0
/0/1/0.0.0/1    /dev/sda1  volume      463GiB EXT4 volume
/0/1/0.0.0/2    /dev/sda2  volume      2029MiB Extended partition
/0/1/0.0.0/2/5  /dev/sda5  volume      2029MiB Linux swap / Solaris partition
gohanman commented 8 years ago

That's more or less exactly what I suggested above, just a little light on RAM for my taste.

Your system has a slower CPU with fewer cores, half the RAM, and a substantially slower hard drive. I think it's rather unsurprising that the other system performs better.

jonkeim commented 8 years ago

The other guy's build has an Intel HD Graphics chip, though. Andy, does XFCE work well without any graphics acceleration? Unity and Gnome 3 want 3d acceleration for their flashy effects, but it's been my experience that no desktop is usably responsive without basic 2d acceleration. I've never tried XFCE under these particular circumstances, though, so I don't know for sure.

Eric, you might even want to try Lubuntu, which uses the LXDE desktop. LXDE's hardware requirements are even lower than XFCE's, and Lubuntu still ships with Firefox and has access to the full Ubuntu repos.

gohanman commented 8 years ago

The other guy's build has an Intel HD Graphics chip, though. Andy

Granted, sure, but when you're comparing two systems where one is more powerful in every possible respect it's rather hard to distinguish which component is most responsible for observed differences.