Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Call for testing: IIAB pre-installed on ubuntu-mate-22.04-desktop-arm64+raspi #3303

Open
jvonau opened this issue Jul 11, 2022 · 56 comments
Open

Comments

@jvonau
Copy link
Contributor

jvonau commented Jul 11, 2022

2 New images for evaluation based on ubuntu-mate-22.04-desktop-arm64+raspi.img
base
small

Exact same user feel as the stock ubuntu-mate images, geared for Desktop therefore use of a monitor/keyboard/mouse is highly recommended. Tested on RPi-400 without connecting to the internet yet. Feedback welcome under this issue, don't file new issues, keep it here.

The image shipped with /etc/iiab/local_vars.yml renamed to local_vars.yml.builder to encourage a review before using, can/should be copied local_vars.yml. Also present is the chroot build script /etc/iiab/builder.sh employed by mk-image as (mate-)runme.sh

iiab/iiab-factory#231

@holta holta added this to the 8.0 milestone Jul 11, 2022
@jvonau
Copy link
Contributor Author

jvonau commented Jul 11, 2022

First Issue: If the screensaver engages your user password will not unlock the session, hard power cycle. Disable the power management and screensaver before they cut in.

Should somebody boot the stock upstream image please check for this behavior since I never booted a stock version of the ubuntu-mate-22.04-desktop-arm64+raspi.img source image as my build system is automated. This is most likely an upstream issue that was inherited.

@jvonau
Copy link
Contributor Author

jvonau commented Jul 11, 2022

Disable the setting here:
Screenshot at 2022-07-11 11-18-20

Looks like an upstream issue and might be resolved when connected to the internet for updates
Screenshot at 2022-07-11 11-35-21

@jvonau
Copy link
Contributor Author

jvonau commented Jul 12, 2022

Taken after providing internet access via tethered cell phone prior to reboot, seems stable with the screensaver turned off for now. http://sprunge.us/NXQi57

@holta
Copy link
Member

holta commented Jul 12, 2022

I've guessing it might be a bad microSD card (maybe, in any case overnight it froze [still hanging now] while writing to the card, 32% of the way through). So I need to try again flashing the 3GB image in another way.

@holta
Copy link
Member

holta commented Jul 12, 2022

Another microSD card did not work. Hopefully that was just extremely bad luck. I'll try a third one.

@holta
Copy link
Member

holta commented Jul 12, 2022

3rd microSD card worked.

Just FYI Ubuntu Mate had problems sync'ing with the screen (1st minute warnings came up on monitor saying so, 2nd minute the screen worked but was flashing at a very high frequence, 3rd minute it all started to work).

After I set a username/password, Mate appears to be now installing many things (looks like it might take 20-30min; I have to step away but will come back to it later today).

@holta
Copy link
Member

holta commented Jul 12, 2022

MATE completed its many updates and rebooted ✔️

Very unfortunately however http://box and http://box.lan do not work (@georgejhunt very nicely made http://box.lan auto-launch when IIAB is installed on RasPiOS with desktop!)

Background: this shortcoming is problematic, as teachers/students depend on this to get to know IIAB. Long story short IIAB communities and IIAB documentation rely on this heavily, so the onboarding + learning experience is uniformly explainable + tangible across all devices — including IIAB's that happen to have a graphical desktop.

@jvonau
Copy link
Contributor Author

jvonau commented Jul 12, 2022

The P-400 and small RCA hdmi TV worked great for me, what are you using for a monitor? Like a said it's a full pristine setup, at least you don't have the IIAB install to wait through, just rename the builder,yml file to local_vars,yml and reboot as cmdserv needs to have the local_vars,yml file present or the service doesn't start up. The hotspot is disabled to allow client upstream wifi during first boot without potential interruption, given the image was build in a container wifi was not detected nor the alternate firmware installed, just a pass trough admin-console, the wifi hotspot will become active.

@holta
Copy link
Member

holta commented Jul 12, 2022

The P-400 and small RCA hdmi TV worked great for me, what are you using for a monitor?

It's an ancient Dell HDMI monitor, no worries that's it's ugly during the 1st two minutes (screen works in the end!)

@jvonau
Copy link
Contributor Author

jvonau commented Jul 12, 2022

MATE completed its many updates and rebooted heavy_check_mark

Very unfortunately however http://box and http://box.lan do not work (@georgejhunt very nicely made http://box.lan auto-launch when IIAB is installed on RasPiOS with desktop!).

There never was any attempt to port that desktop pop-up to Ubuntu/Mint given the many desktops that could be in play, that is apples to oranges whining. Now the cookie cutter is made with a narrow choice of one desktop George could put the same effort into this desktop if he so chooses.

Background: this shortcoming is problematic, as teachers/students depend on this to get to know IIAB. Long story short IIAB communities and IIAB documentation rely on this heavily, so the onboarding + learning experience is uniformly explainable + tangible across all devices — including IIAB's that happen to have a graphical desktop.

Sorry, I used the 'normal' name for the machine localhost not the hack when I accessed the admin page from the iiab box. Just checked, http://box.lan does currently work, but I'll check right after first login next time I install a fresh image.

@holta
Copy link
Member

holta commented Jul 12, 2022

  1. How hard is it to make Ubuntu Mate friendly (i.e. genuinely approachable) as @georgejhunt has done for RasPiOS with desktop?

    @georgejhunt very nicely made http://box.lan/ auto-launch when IIAB is installed on RasPiOS with desktop!

  2. And/or how else can vital instructions / essential options be made crystal clear + obvious to new users within the image itself?

  3. It's true that gurus can use http://10.10.10.10 and http://localhost, but regular people need http://box and http://box.lan to work across all IIAB's to communicate amongst themselves (mentor each other, follow docs, videos, etc) so regardless let's find a way to fix that!

@jvonau
Copy link
Contributor Author

jvonau commented Jul 12, 2022

  1. How hard is it to make Ubuntu Mate friendly (i.e. genuinely approachable) as @georgejhunt has done for RasPiOS with desktop?
    > @georgejhunt very nicely made http://box.lan/ auto-launch when IIAB is installed on RasPiOS with desktop!

Now there is a target desktop is all I'm saying.

2. And/or how else can vital instructions / essential options be made crystal clear + obvious to new users within the image itself?

Let me know, this was a first cut, beta release

3. It's true that gurus can use http://10.10.10.10 and http://localhost, but regular people need http://box and http://box.lan to work across all IIAB's to communicate amongst themselves (mentor each other, follow docs, videos, etc) so regardless let's find a way to fix that!

Get off the soapbox, with the 127.0.0.1 hack in /etc/hosts out of the box should of worked. If that didn't do some quick checking in /etc/hosts if it's still there or not, firstboot might of wiped the change, didn't notice as explained above. Minor issue, easy worked around, stop being a naysayer the second cut will be done on the P-400 resulting in iiab-hotspot-on having the entries for detected AP support then hotspot might be available on firstboot but I'm a little hesitant to do that until there is a user created that can ssh and I would like to make the 5G band available during firstboot for updates.

For today with a local_vars.yml file in place just run sudo ./iiab-network or ICO in admin-console which should be SOP for any image deployed. After the initial reboot I re-enabled the screensaver locking and the above noted issue hasn't re-appeared, might just be the firstboot environment. I suggest just after the first login, rename the local_vars.yml.builder file back, run iiab-network and reboot then re-evaluate.

Maybe for bonus points when the terminal opens banner "please run cd /opt/iiab/iiab and sudo ./iiab-network" like other the warnings do and have the terminal pop open when logging into the gui session?

@holta
Copy link
Member

holta commented Jul 12, 2022

I'm not being dismissive.

I'm just saying I've been in dozens of schools where http://box and http://box.lan have to work (otherwise there's simply chaos).

@holta
Copy link
Member

holta commented Jul 12, 2022

when the terminal opens banner "please run cd /opt/iiab/iiab and sudo ./iiab-network" like other the warnings do and have the terminal pop open when logging into the gui session?

Many people will open a browser but not a Terminal.

But as a short-term / intermediary solution something like the above (mandatory reminder/nudge in Linux terminal) is definitely pointing in the right direction.

@jvonau
Copy link
Contributor Author

jvonau commented Jul 12, 2022

On a side note with /etc/iiab/install-flags/iiab-complete running sudo iiab did ask to create iiab-admin set password then stopped, that should be enough to create the lessor restricted non-sudo account that could be used with admin-console or alternate GUI account but no sudo access.

@jvonau
Copy link
Contributor Author

jvonau commented Jul 12, 2022

I'm just saying I've been in dozens of schools where http://box and http://box.lan have to work (otherwise there's simply chaos).

Sorry was evaluating every other aspect of the install, so that comes back to checking /etc/hosts prior to running iiab-network which I proceeded to do because that is the right thing to do to update ap0's mac address per installation or there will be mayhem with duplicate mac address in the air waves when more than 1 of the same image are booted close by. This goes for ALL iiab prepared images without exception so that part should already be documented with this 'issue' going away upon reboot.

@holta
Copy link
Member

holta commented Jul 12, 2022

this 'issue' going away upon reboot

Currently a reboot does restore access to http://box and http://box.lan

As you probably well know; but just FYI I tried 3 reboots of this Ubuntu Mate [from 3GB image, on RPi 4] simply to verify that.

(The ideal would be that both names box and box.lan work for newbies exploring the desktop, if it's possible, even prior to the 1st reboot.)

@jvonau
Copy link
Contributor Author

jvonau commented Jul 12, 2022

That is what the confirmation that I asked for is about, I'll check it on the next burn/boot, but I'm short of spare sdcards atm...
This that you testing rpi-imager?

8.239.59.22 - - [12/Jul/2022:08:42:28 -0500] "GET /local_content/uploads/iiab-base-0711-ubuntu-mate-22.04-desktop-arm64+raspi.img.zip HTTP/1.1" 206 90406354 "-" "Mozilla/5.0 rpi-imager/1.7.2"

@holta
Copy link
Member

holta commented Jul 12, 2022

Yes I used rpi-imager

confirmation that I asked for

What confirmation? I'm away most of the rest of the day, but will send if I can.

@jvonau
Copy link
Contributor Author

jvonau commented Jul 12, 2022

If /etc/hosts has the needed entries to resolve box box.lan just after firstboot login, I suspect the file was rewritten from what was originally on the image that I just confirmed is present using mount-image.sh

127.0.0.1     box.lan localhost.localdomain localhost box box box.lan
::1		localhost ip6-localhost ip6-loopback
ff02::1		ip6-allnodes
ff02::2		ip6-allrouters

@holta
Copy link
Member

holta commented Jul 12, 2022

Just FYI:

  1. The jumpy/flashing screen occurs on most subsequent reboots.

  2. After the 4th (but not 5th) reboot:

image

PS About 4 apt updates were manually applied prior to the 4th reboot. So possibly that's related to the Bluetooth complaint.
(The bottom of /var/log/apt/history.log shows these apt updates and more...)

Start-Date: 2022-07-12  10:05:14
Commandline: aptdaemon role='role-commit-packages' sender=':1.42'
Remove: ubuntu-mate-core:arm64 (1.282), oem-config:arm64 (22.04.16), cryptsetup-initramfs:arm64 (2:2.4.3-1ubuntu1), oem-config-gtk:arm64 (22.04.16), ubuntu-mate-desktop:arm64 (1.282)
Purge: ubiquity-casper:arm64 (1.470), ubiquity-frontend-gtk:arm64 (22.04.16), cryptsetup:arm64 (2:2.4.3-1ubuntu1), oem-config-slideshow-ubuntu-mate:arm64 (181.1), ubiquity-ubuntu-artwork:arm64 (22.04.16), ubiquity:arm64 (22.04.16)
End-Date: 2022-07-12  10:07:29

Start-Date: 2022-07-12  11:23:29
Commandline: apt install traceroute
Install: traceroute:arm64 (1:2.1.0-2)
End-Date: 2022-07-12  11:23:34

Start-Date: 2022-07-12  13:41:50
Commandline: apt -y dist-upgrade
Upgrade: xserver-xorg-core:arm64 (2:21.1.3-2ubuntu2, 2:21.1.3-2ubuntu2.1), xserver-xorg-legacy:arm64 (2:21.1.3-2ubuntu2, 2:21.1.3-2ubuntu2.1), xserver-common:arm64 (2:21.1.3-2ubuntu2, 2:21.1.3-2ubuntu2.1), linux-libc-dev:arm64 (5.15.0-40.43, 5.15.0-41.44)
End-Date: 2022-07-12  13:41:58

Start-Date: 2022-07-12  13:42:07
Commandline: apt -y autoremove
Remove: dctrl-tools:arm64 (2.24-3build2), gir1.2-nma-1.0:arm64 (1.8.34-1ubuntu1), libtimezonemap-data:arm64 (0.4.6-2build2), os-prober:arm64 (1.79ubuntu2), gir1.2-timezonemap-1.0:arm64 (0.4.6-2build2), dpkg-repack:arm64 (1.50), libdebian-installer4:arm64 (0.122ubuntu3), libtimezonemap1:arm64 (0.4.6-2build2), python3-icu:arm64 (2.8.1-0ubuntu2), python3-pam:arm64 (0.4.2-13.4build4), grub-common:arm64 (2.06-2ubuntu7), rdate:arm64 (1:1.10.2-1build1), gir1.2-xkl-1.0:arm64 (5.4-4build2)
End-Date: 2022-07-12  13:42:20

Start-Date: 2022-07-12  13:49:38
Commandline: apt install emacs
Install: emacs:arm64 (1:27.1+1-3ubuntu5), libm17n-0:arm64 (1.8.0-4, automatic), emacs-gtk:arm64 (1:27.1+1-3ubuntu5, automatic), m17n-db:arm64 (1.8.0-3, automatic), emacs-el:arm64 (1:27.1+1-3ubuntu5, automatic), libotf1:arm64 (0.9.16-3build1, automatic), emacs-common:arm64 (1:27.1+1-3ubuntu5, automatic), emacs-bin-common:arm64 (1:27.1+1-3ubuntu5, automatic)
End-Date: 2022-07-12  13:49:59

@jvonau
Copy link
Contributor Author

jvonau commented Jul 12, 2022

Just FYI:

1. The jumpy/flashing screen occurs on most subsequent reboots.

2. After the 4th (but not 5th) reboot:

I'm showing 3 packages to update since I lasted updated. no jumpy screen here

apt list --upgradable
Listing... Done
xserver-common/jammy-updates,jammy-security 2:21.1.3-2ubuntu2.1 all [upgradable from: 2:21.1.3-2ubuntu2]
xserver-xorg-core/jammy-updates,jammy-security 2:21.1.3-2ubuntu2.1 arm64 [upgradable from: 2:21.1.3-2ubuntu2]
xserver-xorg-legacy/jammy-updates,jammy-security 2:21.1.3-2ubuntu2.1 arm64 [upgradable from: 2:21.1.3-2ubuntu2]

PS About 4 apt updates were manually applied prior to the 4th reboot. So possibly that's related to the Bluetooth complaint. (The bottom of /var/log/apt/history.log shows these apt updates and more...)

I have a nice blueman-applet in the top right corner.

Start-Date: 2022-07-12  10:05:14
Commandline: aptdaemon role='role-commit-packages' sender=':1.42'
Remove: ubuntu-mate-core:arm64 (1.282), oem-config:arm64 (22.04.16), cryptsetup-initramfs:arm64 (2:2.4.3-1ubuntu1), oem-config-gtk:arm64 (22.04.16), ubuntu-mate-desktop:arm64 (1.282)
Purge: ubiquity-casper:arm64 (1.470), ubiquity-frontend-gtk:arm64 (22.04.16), cryptsetup:arm64 (2:2.4.3-1ubuntu1), oem-config-slideshow-ubuntu-mate:arm64 (181.1), ubiquity-ubuntu-artwork:arm64 (22.04.16), ubiquity:arm64 (22.04.16)
End-Date: 2022-07-12  10:07:29

Start-Date: 2022-07-12  11:23:29
Commandline: apt install traceroute
Install: traceroute:arm64 (1:2.1.0-2)
End-Date: 2022-07-12  11:23:34

Start-Date: 2022-07-12  13:41:50
Commandline: apt -y dist-upgrade
Upgrade: xserver-xorg-core:arm64 (2:21.1.3-2ubuntu2, 2:21.1.3-2ubuntu2.1), xserver-xorg-legacy:arm64 (2:21.1.3-2ubuntu2, 2:21.1.3-2ubuntu2.1), xserver-common:arm64 (2:21.1.3-2ubuntu2, 2:21.1.3-2ubuntu2.1), linux-libc-dev:arm64 (5.15.0-40.43, 5.15.0-41.44)
End-Date: 2022-07-12  13:41:58

Start-Date: 2022-07-12  13:42:07
Commandline: apt -y autoremove
Remove: dctrl-tools:arm64 (2.24-3build2), gir1.2-nma-1.0:arm64 (1.8.34-1ubuntu1), libtimezonemap-data:arm64 (0.4.6-2build2), os-prober:arm64 (1.79ubuntu2), gir1.2-timezonemap-1.0:arm64 (0.4.6-2build2), dpkg-repack:arm64 (1.50), libdebian-installer4:arm64 (0.122ubuntu3), libtimezonemap1:arm64 (0.4.6-2build2), python3-icu:arm64 (2.8.1-0ubuntu2), python3-pam:arm64 (0.4.2-13.4build4), grub-common:arm64 (2.06-2ubuntu7), rdate:arm64 (1:1.10.2-1build1), gir1.2-xkl-1.0:arm64 (5.4-4build2)
End-Date: 2022-07-12  13:42:20

Start-Date: 2022-07-12  13:49:38
Commandline: apt install emacs
Install: emacs:arm64 (1:27.1+1-3ubuntu5), libm17n-0:arm64 (1.8.0-4, automatic), emacs-gtk:arm64 (1:27.1+1-3ubuntu5, automatic), m17n-db:arm64 (1.8.0-3, automatic), emacs-el:arm64 (1:27.1+1-3ubuntu5, automatic), libotf1:arm64 (0.9.16-3build1, automatic), emacs-common:arm64 (1:27.1+1-3ubuntu5, automatic), emacs-bin-common:arm64 (1:27.1+1-3ubuntu5, automatic)
End-Date: 2022-07-12  13:49:59

The top one looks like something the installer did, and emacs would be you, the other 2 are you or the system?

Start-Date: 2022-07-11  10:35:26
Commandline: aptdaemon role='role-commit-packages' sender=':1.43'
Remove: ubuntu-mate-core:arm64 (1.282), oem-config:arm64 (22.04.16), cryptsetup-initramfs:arm64 (2:2.4.3-1ubuntu1), oem-config-gtk:arm64 (22.04.16), ubuntu-mate-desktop:arm64 (1.282)
Purge: ubiquity-casper:arm64 (1.470), ubiquity-frontend-gtk:arm64 (22.04.16), cryptsetup:arm64 (2:2.4.3-1ubuntu1), oem-config-slideshow-ubuntu-mate:arm64 (181.1), ubiquity-ubuntu-artwork:arm64 (22.04.16), ubiquity:arm64 (22.04.16)
End-Date: 2022-07-11  10:37:37

Start-Date: 2022-07-11  23:03:55
Commandline: aptdaemon role='role-commit-packages' sender=':1.147'
Upgrade: linux-libc-dev:arm64 (5.15.0-40.43, 5.15.0-41.44)
End-Date: 2022-07-11  23:03:59

I used the provided gui tools to update the system.

@jvonau
Copy link
Contributor Author

jvonau commented Jul 12, 2022

This is where I ask for iiab-diagnostics

@holta
Copy link
Member

holta commented Jul 12, 2022

I have a nice blueman-applet in the top right corner.

Likewise, it's there now. Not sure if it was there after the 4th boot.

The top one looks like something the installer did, and emacs would be you, the other 2 are you or the system?

The top one happened automatically. The other 4 paragraphs (at the bottom of /var/log/apt/history.log) are from my manual commands.

Sorry I haven't time today (to explore it more deeply) but iiab-diagnostics are here if it helps: http://sprunge.us/ZNeEG9?en

@jvonau
Copy link
Contributor Author

jvonau commented Jul 12, 2022

The image shipped with /etc/iiab/local_vars.yml renamed to local_vars.yml.builder to encourage a review before using, can/should be copied local_vars.yml.

Didn't review the above note, but useful anyway.

177 =IIAB==========================================================================
178 FILE DOES NOT EXIST: /etc/iiab/local_vars.yml
1249 =IIAB==========================================================================
1250 COMMAND: /usr/bin/journalctl -t IIAB-CMDSRV # Admin Console CMDSRV log
1251
1252 Jul 12 10:07:48 181-mate-iiab-3gb IIAB-CMDSRV[44617]: IIAB-CMDSRV : Starting Command Server
1253 Jul 12 10:07:48 181-mate-iiab-3gb IIAB-CMDSRV[44617]: IIAB-CMDSRV : Error in /etc/iiab/local_vars.yml
1254 Jul 12 10:07:48 181-mate-iiab-3gb IIAB-CMDSRV[44617]: IIAB-CMDSRV : Command Server Initialization Failed

In light of the above these would have to be 'True' in default_vars:

31 iiab-apps-to-be-installed :
32 awstats
33 bluetooth
34 captiveportal
35 kalite
36 kiwix
37 openvpn
38 osm_vector_maps
39 remoteit

as you downloaded 'base':

179 =IIAB==========================================================================
180 -rw-r--r-- 1 root root 294 Jul 11 01:26 /etc/iiab/iiab_state.yml
181
182 # DO NOT MANUALLY EDIT THIS, THANKS!
183 # IIAB does NOT currently support uninstalling apps/services.
184
185 sshd_installed: True
186 iiab_admin_installed: True
187 mysql_installed: True
188 nginx_installed: True
189 www_base_installed: True
190 pylibs_installed: True
191 usb_lib_installed: True
192 www_options_installed: True

@jvonau
Copy link
Contributor Author

jvonau commented Jul 12, 2022

I'm just saying I've been in dozens of schools where http://box and http://box.lan have to work (otherwise there's simply chaos).

Sorry was evaluating every other aspect of the install, so that comes back to checking /etc/hosts prior to running iiab-network which I proceeded to do because that is the right thing to do to update ap0's mac address per installation or there will be mayhem with duplicate mac address in the air waves when more than 1 of the same image are booted close by. This goes for ALL iiab prepared images without exception so that part should already be documented with this 'issue' going away upon reboot.

Hum, could tie in 'iiab' instead of exiting at iiab-complete offer to run iiab-network (with new network-complete flag as the final step) after suggesting raspi-config or other related actions (connect to upstream wifi) be completed first. Just ship images with iiab-complete and the in the wild provisioning step would be just sudo iiab Y to run iiab-network. You get the reduced iiab-admin user created at runtime as noted above, the network is adjusted for the current needs and the end user doesn't have to learn any new tricks. Does that sound plausible?

@holta
Copy link
Member

holta commented Jul 12, 2022

I don't understand all the details but Raspberry hotspots should (wherever possible!) start right up (on 1st boot of image, if feasible?)

Running ./iiab-network can and should be heavily promoted...on top of that? Ideally in a targeted or even event-driven way...for those most likely to need it on non-Raspberry HW and USB-smells-like-a-network or Ethernet-link-detected scenarios?

(Not sure if that's at all realistic in 2022, but it's an idea.)

@jvonau
Copy link
Contributor Author

jvonau commented Jul 13, 2022

FWIW: https://ubuntu-mate.org/raspberry-pi/install/ for a preview of the first boot routine
2Gb of ram might be pushing the lower limits of what is usable.

331 =IIAB==========================================================================
332 COMMAND: /usr/bin/free # RAM memory
333
334 total used free shared buff/cache available
335 Mem: 1889064 863784 383520 86944 641760 790056
336 Swap: 1048572 16384 1032188
337
338 =IIAB=======================================================================

I've found good performance with 4Gb with the P-400 when that machine was my daily driver and I was running 20.10 and I build pre-updated images from that base image for 21.04 & 21.10 using mk-image with examples which worked fine. That is how I upgraded without risking the running sdcard. I just didn't push to share those images, now I am.

@holta
Copy link
Member

holta commented Jul 13, 2022

2Gb of ram might be pushing the lower limits of what is usable.

Just FYI RAM usage was right around 800 MB (i.e. 60% free and available, of 2 GB) immediately after logging in.

And about 1.2GB RAM usage after Firefox is launched.

But at other times it's entirely possible (similar to Ubuntu Desktop 22.04 LTS itself) that 4GB would be far preferable — especially for anybody using this as they full-time / regular computer.

@jvonau
Copy link
Contributor Author

jvonau commented Jul 13, 2022

Again I'm just reporting the problem, in case others care:

The 2 problems (screen sync glitches unlike other OS's & repeated "7 flashes of RPi 4's green light", which it's alleged is related to kernel.img failing) would seem to occur together, despite these seeming to be very unrelated things.

I don't the reasons. Again I'm just mentioning the facts, in case others care.

You are mentioning observations without context (what monitor, resolution, sync rate) and presenting your opinion as facts. Have a better SDcard to try? Yours might be a bit worn out given the amount of writing they see, nothing lasts forever. I'd start with that given the 7 flashes, means the kernel didn't load at all.

@jvonau
Copy link
Contributor Author

jvonau commented Jul 13, 2022

side note: Seeing this across different installs:

1639 Jul 12 16:30:18 181-mate-iiab-3gb systemd[1]: proc-sys-fs-binfmt_misc.automount: Got automount request for /proc/sys/fs/binfmt_misc, triggered by 4879 (df)
1640 Jul 12 16:30:18 181-mate-iiab-3gb systemd[1]: Mounting Arbitrary Executable File Formats File System...
1641 Jul 12 16:30:18 181-mate-iiab-3gb systemd[1]: Mounted Arbitrary Executable File Formats File System.

Seems related to using df, which is employed by the admin-console, there maybe a connection or not just noting it.

@holta
Copy link
Member

holta commented Jul 13, 2022

The OS boots about 90% of the time, so the 7 flashes after 5+ minutes of screen sync failing is probably not at all common nor worth worrying about.

Normally (during most boots) the repeated screen sync fails for about 30sec-to-2 min (before the 7 flashes would also kick in) which may be ugly, but so be it, it then boots.

The particularities of which old Dell HDMI screen are not important (presumably brand particularities are buried on the back of the screen somewhere, but I'm going to worry about it). It's a very generic old HDMI screen that works with all other OS's to date, and so be it. I'm just mentioning this in passing, in case others later run into similar.

@jvonau
Copy link
Contributor Author

jvonau commented Jul 13, 2022

Trouble with the boot partition being msdos is editing is really easy from windows, but one has to always remember to 'eject' the card before removing it from the reader or risk damaging the filesystem.

@jvonau
Copy link
Contributor Author

jvonau commented Jul 13, 2022

Can get the terminal to open when logged in, lets see if I can get a banner to display.

jerry@box:~$ cat ~/.config/autostart/mate-terminal.desktop 
[Desktop Entry]
Type=Application
Exec=mate-terminal
Hidden=false
Name[en_CA]=teminal
Name=teminal
Comment[en_CA]=test
Comment=test
X-MATE-Autostart-Delay=2

@jvonau
Copy link
Contributor Author

jvonau commented Jul 14, 2022

Actually I did one better, have the complete solution to the must run iiab-network post deployment but I'm not sure if this would be the right place to share it.

@jvonau jvonau mentioned this issue Jul 14, 2022
@jvonau
Copy link
Contributor Author

jvonau commented Jul 14, 2022

@georgejhunt
Copy link
Contributor

georgejhunt commented Jul 19, 2022 via email

@jvonau
Copy link
Contributor Author

jvonau commented Jul 19, 2022

  1. first run configuration I bet being it is a snap installed app, the second launch should be faster.
  2. I've seen this, drops entries on occasion too, when really loaded up.
  3. Might just be firstboot related, as in not all the memory was recovered after cleanup, What's the impression after rebooting?
  4. You could try the virgin mate install without iiab for comparison.
  5. Now go back and install iiab over top of that image and re-time the test.
  6. As above point 4 then file bugs upstream with mate, nothing video related was altered by myself.

@jvonau
Copy link
Contributor Author

jvonau commented Jul 19, 2022

I'd be interested to see iiab-diagnostics from the install.

@georgejhunt
Copy link
Contributor

georgejhunt commented Jul 20, 2022 via email

@jvonau
Copy link
Contributor Author

jvonau commented Jul 26, 2022

As of today 97 packages can be upgraded from the upstream base image.
build time 49 mins for base on my hardware.
build time 57 mins for min on my hardware.

@jvonau
Copy link
Contributor Author

jvonau commented Jul 27, 2022

Revised images uploaded built with iiab at 4307f65
base
small

Intended to help extend the shelf life of images there is a small utility named iiab-upgrade included that could update the install to the latest IIAB code base and runs apt upgrade for you. Basically there is a self-update for the script itself, git pull on the iiab repo, selective roles can be removed from iiab_state.yml, iiab-configure is run and optionally git pull with a re-install of admin-console. The small recent change #3321 after the production of the images is a perfect test example for how this all works needing just sudo iiab-upgrade to pull the this latest change into the image. The roles to be reinstalled would be the contents of upgrade_roles, with notes in upgrade_roles.txt for the reasons why.

@tim-moody
Copy link
Contributor

interesting idea. how are upgrade_roles and upgrade_roles.txt maintained and by whom. Are upgrades cumulative; if I am one image back do I get the roles I need to upgrade? In the example at hand, the pylibs role should have been included. so will require a second upgrade.

To take it further why not compute the roles that have changed by a diff on the last commit on iiab against the commit of the image. For example

git diff f374d05ea26e6c4e71c3d8d7eb47c77978ecc0c4 914285037a0393e04fa6ea35469d8c2013f8c701 --name-only |grep roles/

@jvonau
Copy link
Contributor Author

jvonau commented Jul 27, 2022

interesting idea. how are upgrade_roles and upgrade_roles.txt maintained and by whom.

Initially I can, and for the most part this would be adding roles the would require re-installs that are safe to be added to upgrade_roles and the corresponding note in upgrade_roles.txt. Some role's updates originate when the version is bumped in "defaults" in iiab while others come from outside as when one of the apt installed roles that use 'latest' releases a later version. Ideally long term the person with the best situational awareness of all the moving pieces.

Are upgrades cumulative; if I am one image back do I get the roles I need to upgrade? In the example at hand, the pylibs role should have been included. so will require a second upgrade.

Cumulative, and one could just list both roles within upgrade_roles and would be picked up when iiab-configure runs however because pylibs is not optional the new files are installed with no need to explicitly list that role. Now iiab-configure has used by Adam in the past to move from small -> medium -> large while testing with great success.

To take it further why not compute the roles that have changed by a diff on the last commit on iiab against the commit of the image. For example

git diff f374d05ea26e6c4e71c3d8d7eb47c77978ecc0c4 914285037a0393e04fa6ea35469d8c2013f8c701 --name-only |grep roles/

Results in:

roles/0-init/defaults/main.yml
roles/0-init/tasks/create_iiab_ini.yml
roles/0-init/tasks/hostname.yml
roles/0-init/tasks/main.yml
roles/0-init/tasks/network.yml
roles/0-init/tasks/validate_vars.yml
roles/1-prep/tasks/hardware.yml
roles/1-prep/tasks/main.yml
roles/2-common/tasks/fl.yml
roles/2-common/tasks/main.yml
roles/2-common/tasks/packages.yml
roles/4-server-options/tasks/main.yml
roles/6-generic-apps/tasks/main.yml
roles/awstats/tasks/main.yml
roles/awstats/templates/awstats.schoolserver.conf.j2
roles/azuracast/README.rst
roles/calibre-web/tasks/enable-or-disable.yml
roles/calibre-web/tasks/install.yml
roles/calibre-web/tasks/main.yml
roles/calibre/defaults/main.yml
roles/calibre/tasks/enable-or-disable.yml
roles/calibre/tasks/main.yml
roles/captiveportal/README.md
roles/captiveportal/tasks/install.yml
roles/captiveportal/tasks/main.yml
roles/captiveportal/templates/iiab-divert-to-nginx.j2
roles/cups/README.md
roles/cups/tasks/install.yml
roles/cups/templates/cups.conf.j2
roles/firmware/tasks/download.yml
roles/firmware/tasks/main.yml
roles/firmware/templates/iiab-check-firmware
roles/firmware/templates/iiab-firmware-warn.sh
roles/gitea/tasks/enable-or-disable.yml
roles/gitea/tasks/install.yml
roles/gitea/tasks/main.yml
roles/iiab-admin/README.rst
roles/iiab-admin/tasks/main.yml
roles/iiab-admin/tasks/pwd-warnings.yml
roles/iiab-admin/templates/sshpwd-lxde-iiab.sh.j2
roles/internetarchive/README.md
roles/internetarchive/tasks/enable-or-disable.yml
roles/internetarchive/tasks/main.yml
roles/jupyterhub/README.md
roles/jupyterhub/tasks/install.yml
roles/jupyterhub/tasks/main.yml
roles/jupyterhub/templates/getsite.py.j2.unused
roles/jupyterhub/templates/patch_FUA.sh.j2.unused
roles/kalite/tasks/enable-or-disable.yml
roles/kalite/tasks/install.yml
roles/kalite/tasks/main.yml
roles/kiwix/defaults/main.yml
roles/kiwix/tasks/install.yml
roles/kiwix/tasks/kiwix-apk.yml
roles/kiwix/tasks/main.yml
roles/kiwix/templates/iiab-make-kiwix-lib
roles/kolibri/tasks/enable-or-disable.yml
roles/kolibri/tasks/main.yml
roles/kolibri/templates/kolibri.service.j2
roles/lokole/README.rst
roles/lokole/tasks/main.yml
roles/mediawiki/defaults/main.yml
roles/mediawiki/tasks/main.yml
roles/minetest/README.rst
roles/minetest/tasks/main.yml
roles/mongodb/defaults/main.yml
roles/mongodb/tasks/enable-or-disable.yml
roles/mongodb/tasks/install.yml
roles/mongodb/tasks/main.yml
roles/monit/tasks/main.yml
roles/monit/templates/monitrc.unused
roles/moodle/tasks/enable-or-disable.yml
roles/moodle/tasks/main.yml
roles/mosquitto/README.rst
roles/mosquitto/tasks/main.yml
roles/munin/tasks/enable-or-disable.yml
roles/munin/tasks/main.yml
roles/network/README.rst
roles/network/defaults/main.yml
roles/network/tasks/NM-debian.yml
roles/network/tasks/avahi.yml
roles/network/tasks/computed_network.yml
roles/network/tasks/computed_services.yml
roles/network/tasks/debian.yml
roles/network/tasks/detected_network.yml
roles/network/tasks/dhcpd.yml.unused
roles/network/tasks/down-debian.yml.unused
roles/network/tasks/enable_services.yml
roles/network/tasks/hostapd.yml
roles/network/tasks/install.yml
roles/network/tasks/main.yml
roles/network/tasks/named.yml.unused
roles/network/tasks/netplan.yml
roles/network/tasks/netwarn.yml
roles/network/tasks/restart.yml
roles/network/tasks/rpi_debian.yml
roles/network/tasks/sysd-netd-debian.yml
roles/network/templates/captive-portal.unused/captive-portal.py.j2
roles/network/templates/dhcp.unused/dhcpd-env.j2
roles/network/templates/dhcp.unused/dhcpd-iiab.conf.j2
roles/network/templates/dhcp.unused/dhcpd.service
roles/network/templates/dhcp/dhcpd-iiab.conf.j2
roles/network/templates/gateway/iiab-gen-iptables
roles/network/templates/named.unused/bind9.service
roles/network/templates/named.unused/dns-jail.conf
roles/network/templates/named.unused/dummy
roles/network/templates/named.unused/localdomain.zone
roles/network/templates/named.unused/localhost.zone
roles/network/templates/named.unused/named
roles/network/templates/named.unused/named-iiab.conf.j2
roles/network/templates/named.unused/named.blackhole
roles/network/templates/named.unused/named.broadcast
roles/network/templates/named.unused/named.ip6.local
roles/network/templates/named.unused/named.j2
roles/network/templates/named.unused/named.local
roles/network/templates/named.unused/named.rfc1912.zones
roles/network/templates/named.unused/named.root
roles/network/templates/named.unused/named.root.hints
roles/network/templates/named.unused/named.service
roles/network/templates/named.unused/named.zero
roles/network/templates/named.unused/school.external.zone.db
roles/network/templates/named.unused/school.internal.zone.16.in-addr.db.j2
roles/network/templates/named.unused/school.internal.zone.32.in-addr.db.j2
roles/network/templates/named.unused/school.internal.zone.48.in-addr.db.j2
roles/network/templates/named.unused/school.internal.zone.db.j2
roles/network/templates/named.unused/school.internal.zone.in-addr.db.j2
roles/network/templates/named.unused/school.local.zone.db.j2
roles/network/templates/named/school.internal.zone.db
roles/network/templates/netwarn/netwarn
roles/network/templates/netwarn/netwarn-iiab-network.desktop
roles/network/templates/network/bridge-br0
roles/network/templates/network/dhcpcd.conf.j2
roles/network/templates/network/dnsmasq.conf.j2
roles/network/templates/network/ifcfg-WAN.j2.unused
roles/network/templates/network/ifcfg-slave.j2.unused
roles/network/templates/network/ifcfg.j2.unused
roles/network/templates/network/sysconfig.network.j2.unused
roles/network/templates/network/systemd-br0-network.j2
roles/nextcloud/README.md
roles/nextcloud/defaults/main.yml
roles/nextcloud/tasks/main.yml
roles/nginx/README.md
roles/nodejs/README.md
roles/nodejs/tasks/main.yml
roles/nodered/README.rst
roles/nodered/defaults/main.yml
roles/nodered/tasks/apache.yml.unused
roles/nodered/tasks/enable-or-disable.yml
roles/nodered/tasks/group.yml
roles/nodered/tasks/install.yml
roles/nodered/tasks/main.yml
roles/nodered/tasks/os-integration.yml
roles/nodered/tasks/rpi_desk.yml
roles/nodered/tasks/settings.yml
roles/nodered/templates/nodered.service.j2.unused
roles/nodered/templates/settings.js.j2.unused
roles/osm-vector-maps/defaults/main.yml
roles/osm-vector-maps/tasks/install.yml
roles/osm-vector-maps/tasks/main.yml
roles/pbx/README.adoc
roles/pbx/defaults/main.yml
roles/pbx/tasks/chan_dongle.yml
roles/pbx/tasks/freepbx.yml
roles/pbx/tasks/main.yml
roles/phpmyadmin/tasks/install.yml
roles/phpmyadmin/tasks/main.yml
roles/postgresql/tasks/enable-or-disable.yml
roles/postgresql/tasks/main.yml
roles/pylibs/templates/iiab_lib.py
roles/remoteit/tasks/install.yml
roles/samba/README.rst
roles/samba/templates/smb.conf.j2
roles/sugarizer/tasks/install.yml
roles/sugarizer/tasks/main.yml
roles/sugarizer/tasks/main2.yml
roles/transmission/README.rst
roles/transmission/defaults/main.yml
roles/transmission/tasks/enable-or-disable.yml
roles/transmission/tasks/main.yml
roles/usb_lib/templates/mount.d/70-usb-library
roles/usb_lib/templates/umount.d/70-usb-library
roles/vnstat/tasks/install.yml
roles/vnstat/tasks/main.yml
roles/wordpress/tasks/main.yml
roles/www_base/files/html/html/credits.html
roles/www_base/tasks/php-stem.yml
roles/www_options/tasks/main.yml
roles/yarn/tasks/main.yml
runroles-base.yml

With the endless note editing that approach would have misleading results as above, the narrow focus would just involve the role's bump in the version used by the role. Perhaps when there is some relationship between git commits and 'iiab_revision' that will be possible.

@tim-moody
Copy link
Contributor

With the endless note editing that approach would have misleading results as above

of course I intended to filter so a role only appears once. could further filter to only pick up roles of interest and installed roles. I agree some changes could be cosmetic and so immaterial. In the end there are not many roles that can be upgraded.

When creating the list manually how will you handle the following cases:

  • I installed an image that I want to upgrade, but there have been several images since and upgrade_roles only knows about the changes since the most recent image.
  • I installed the most recent image and some time ago I upgraded it. Now I want to upgrade again with new changes. Do I have to run roles that are the latest versions in my install?

@jvonau
Copy link
Contributor Author

jvonau commented Jul 27, 2022

With the endless note editing that approach would have misleading results as above

of course I intended to filter so a role only appears once. could further filter to only pick up roles of interest and installed roles. I agree some changes could be cosmetic and so immaterial. In the end there are not many roles that can be upgraded.

In the end I don't care how you come up with your solution.

When creating the list manually how will you handle the following cases:

* I installed an image that I want to upgrade, but there have been several images since and upgrade_roles only knows about the changes since the most recent image.

I have had this code proposed in the past as #2500 if adopted then this would be moot point, we could of handled updates since that point in time till the latest code. For the record an older branch has working examples from that time frame. I'm not going to backfit the code to handle that given the past reception the code received and the treatment I received, just shortsightedness in play but now it a good idea. It was a great plan then and still is when you have a 1TB disk full of content and 2 lines changed in the code base for the fix you need.

* I installed the most recent image and some time ago I upgraded it. Now I want to upgrade again with new changes. Do I have to run roles that are the latest versions in my install?

The last revisions applied would be recorded in iiab.env and upgrade_roles carries the full listing, only the delta between the two would be applied. ie iiab.env has revision 5 applied while upgrade_roles lists 9 revisions 6-9 would be applied when run.

@tim-moody
Copy link
Contributor

The last revisions applied would be recorded in iiab.env and upgrade_roles carries the full listing, only the delta between the two would be applied. ie iiab.env has revision 5 applied while upgrade_roles lists 9 revisions 6-9 would be applied when run.

sounds reasonable.

in the end I don't care how you come up with your solution.

stops the conversation

@jvonau
Copy link
Contributor Author

jvonau commented Jul 28, 2022

Just trying to collaborate, in the end I'm just sharing how I intend to support my release of IIAB within the above images going forward is all. Keeping the basic images devoid of options keeps the delta small between image creation and installed time, that is why I chose 'base' and 'small' rather than the kitchen sink. Now with the presets working rather well just let the end user choose what to install and the content that is wanted once written to disk and booted. Having iiab-upgrade auto update itself gives me a small window into the user's environment that is used to update the basic iiab install and can offer new features going forward. Any support related about the images could be opened at mk-image and iiab-upgrade respectively.

@holta holta modified the milestones: 8.0, 8.1 Oct 23, 2022
@holta holta modified the milestones: 8.1, 8.2 Jan 1, 2023
@holta holta modified the milestones: 8.2, 8.3 Jan 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants