• Recent
    • Unsolved
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login
    1. Home
    2. Tom Elliott
    • Profile
    • Following 27
    • Followers 83
    • Topics 117
    • Posts 19,142
    • Groups 0

    Tom Elliott

    @Tom Elliott

    5.1k
    Reputation
    39.0k
    Profile views
    19.1k
    Posts
    83
    Followers
    27
    Following
    Joined
    Last Online

    Tom Elliott Unfollow Follow

    Best posts made by Tom Elliott

    • Gratitudes

      I know I’ve been out of this for a little bit. I check in here or there, but just been extremely busy.

      I don’t want to stop contributing, I just am taking time for myself after my workly duties.

      I have to give a big gratitude and thanks for everyone here trying to help out whether by code, by helping the rest of the community, or documentation.

      @Sebastian-Roth I know you’re busy but you’ve kept the project rolling even with the minimal availability you have. Thank you.
      @george1421 I’m sure you’re busy, but I still see you posting and helping where possible and amenible. Thank you.
      @Wayne-Workman I know you’re helping where you can as well. (Of course I can’t exactly post everybody because I’ve been busy and honestly not keeping up with the forums as much as I probably should.)

      @everyone Thank you. Thank you for still believing in this project. We’re doing the best with what we have. Please understand in we’re lacking, it’s most likely unintentional. I know I’m just busy.

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • FOG 1.3.5 and Client 0.11.11 Officially Released

      https://news.fogproject.org/fog-1-3-5-and-client-0-11-11-officially-released/

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • FOG 1.5.0 RC 11

      https://news.fogproject.org/fog-1-5-0-rc-11/

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • Ubuntu is FOG's enemy

      TLDR; Rerun the fog installer if you have lost “Database Connectivity” to your fog server, or run the ALTER USER syntax shown below.

      So Ubuntu 16, among others I suppose, enable a “security updates” to be applied automatically as a “default” to things. Why, well it makes it simpler to ensure your Ubuntu systems are in compliance and patched for any potential exploits. This causes unknown and unexpected issues.

      I figured it’d be a safe thing to express that there could be problems (as many of you have already experienced) that when these updates go up (with or without your knowledge) it can break functionality in unexpected and inopportune ways.

      The quickest fix is to simply rerun the fog installer which should correct the problem.

      As a note, it seems this problem is specific only when the mysql account is the 'root' user AND the password is blank.

      The “fix” if you must do it manually is to open a terminal and obtain root:
      Super (Windows Key) + T then sudo -i (in most cases).

      From there, open mysql with mysql -u root

      NOTE: MySQL MUST be run with ROOT.

      Run:

      ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY ''; AND
      ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';

      It’s okay if one of them fails. This is going to fix Most people’s issues.

      I would highly recommend removing the unattended-upgrades as many of these “sudden” issues came as a security patch ubuntu pushed out. By default Ubuntu typically set’s this for you as enabled and it can cause havoc on you as you (the admin) may not have “done” anything.

      To prevent this problem from happening in the future you could run:

      apt-get -y remove unattended-upgrades (AS Root again).

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • FOG Activity - Status

      FOG is still actively being developed. It’s not necessarily readily apparent, but we can assure you things are still being worked on. These updates may not be communicated in a way that everybody just knows, but can easily be seen if one were to look at our repository site.

      Between our own schedules and lives, we can get very busy. We try to keep things updated and help out on the forums even during lull periods. This might mean we aren’t pushing an RC or release as frequently. It may mean we’re working on other things for the project, such as can be seen if looking at our github site.

      Our forums are heavily active, and this should point as an indicator to our “status” as well.

      If anybody would like to see an increase in developers donating their time to making this free software, consider donating either with monetary support or by spending personal time to help with development.

      FOG is an open source project - it’s even in the name. It is driven by people donating their time and resources. The releases of FOG revolve around when developers can spare a few hours throughout the week. Sometimes that will mean releases will be further, sometimes that will mean releases will be faster. That’s just the nature of our project, and many other open source projects.

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • I'm away, but back?

      Hey everybody,

      I know you see me here on occasion from time to time. Life decisions have made it more difficult for me to do things I would normally be doing. Rest assured, I am still around, and while I’m not quite as active as I was in the past, it’s not because I don’t want to be.

      I had to move, and as part of that I have none of my normal development stuff readily available. Part of the move made me not have a laptop, until today.

      I need to setup my dev environment again, so it may take a little bit, but I will be back up.

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • FOG 1.5.10.41 and forward

      https://news.fogproject.org/fog-1-5-10-41-officially-released/

      While this maybe spur of the moment, it should officially release 1.5.10 with all relevant bug/security fixes encapsulated (among a few other features.)

      This has brought a new methodology of releases in that bug/security releases should be done much more regularly.

      dev-branch, historically, was a place where new development occurred (hence its name) but over the last couple of years or so it’s mainly been a bug/security thing, not really a true development approach.

      This is OKAY, in my head. Why:

      Well we have the master branch which is the ‘baseline’ of a verions. We have the dev-branch, which allows us to work on bugs/security issues. We have the working branches for what will eventually become master. Working is our “dev branch” but keeps proper seperation of things in my opinion.

      Basically:
      master -> basis for dev-branch (which merges into stable on a regular cadence - still being worked out)
      working -> basis of forward development

      So we effectively have:
      production
      staging
      development well seperated.

      THis may mean on the regular automated releases, no announcement or news article will be created, and I think that’s okay.

      Hopefully exciting we have a release after 1.25 years 🙂

      Thank you!

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • RE: Release plan for FOG

      That’s correct. The main reason fog is constantly moving forward is because the codebase is improved upon. Major bugs tend to be addressed for the next release. We don’t do an LTS because there’s really two main people working on fog in a consistent manor. Those two are @Joe-Schmitt and myself. Debian and Libreoffice have the team too be able to perform such a feat. Their product is Opensource but they have an employment team which can afford them that luxury. FOG has a team but we make no money and as such are required to work full time jobs. We work on FOG in our free time. I’ve had the ability to even work on it from work because we used the software.

      Maintaining many different versions is difficult. And we don’t have a support team. WYSIWYG and I think we’ve done pretty well on support, even if we don’t have the ability to do dedicated support for our product. 1.5 was a major step toward modernizing the GUI. 1.6 will vastly improve on this. It was only recently we kind of came up with a road map on how best to proceed. Of note, 1.5 will be maintained until 1.6 is released. 1.6 is focused on making he GUI much more modern. 1.7 will be focused mostly toward fixing and refactoring the FOG client. 1.8 will focus on making the FOS system more modular and usable. I don’t know yet for 1.9. 2.0 will bridge the gap for our rewrite based on the work from 1.5 and up. While we do plan to try to do backports where possible, it’s much easier to ask people to update to the latest version than it is to try to maintain many different versions with backports in mind. At least for what FOG does.

      I doubt this will appease anybody, but it’s what I think needs to be said. We are working hard and provide support for our product as best we can. The community makes fogs support system, I think, one of the best around. Add to that and you can almost always have a developer working side by side to help and fix issues as they come up, I don’t think it’s unfair to ask users to update to a specific version. Even if there are bugs, we will always try to correct what we can, when we can. (And normally it’s a pretty quick turn around).

      I’m not perfect and I’ll give you that. We don’t even have a test suite to know if things are working as intended. We have to rely on the community and suggestions are great, just understand our answers won’t always be what people want to hear.

      posted in Feature Request
      Tom ElliottT
      Tom Elliott
    • FOG 1.4.0 Officially Released

      https://news.fogproject.org/fog-1-4-0-officially-released/

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • FOG 1.4.4 Officially Released

      https://news.fogproject.org/fog-1-4-4-officially-released/

      posted in Announcements
      Tom ElliottT
      Tom Elliott

    Latest posts made by Tom Elliott

    • RE: FOG Project Image Capture on Raspberry Pi 4 (ARM64) via U-Boot

      @Jeremy Last time I told you FOG’s server had no U-Boot support and your two
      options were to keep hand-rolling it or put UEFI firmware on the Pi. That’s no
      longer true - I built the server side. It’s merged into working-1.6 as of
      1.6.0-beta.4318, so update and you’ll have it.

      There’s a new endpoint:

      http://<fogserver>/fog/service/uboot/boot.php?mac=<the Pi's MAC>
      

      It answers with an extlinux.conf-style document, computed live from the
      database. If the host has a task queued you get kernel/initrd/append for FOS;
      if it doesn’t, you get localboot and U-Boot falls through to the disk. Fetch it
      with curl first - the whole thing is plain text and readable, which is the
      point.

      On the Pi:

      dhcp
      setenv pxefile_addr_r 0x02000000
      wget ${pxefile_addr_r} http://<fogserver>/fog/service/uboot/boot.php?mac=${ethaddr}
      pxe boot ${pxefile_addr_r}
      

      Use pxe boot, not sysboot. Every extlinux example you’ll find online shows
      sysboot, and it’s wrong here - sysboot reads a config off a filesystem on a
      block device, so it can’t see what wget just put in memory and does nothing
      visible. That’s the one I’d expect to catch people out.

      This should also fix your truncation. “Unknown request type :: Null” was $type
      arriving empty because your bootargs were being cut short, and I pointed at
      U-Boot’s command buffer rather than the kernel. pxe boot doesn’t go through
      that buffer - it parses the append line out of the loaded file straight into
      bootargs, so the ceiling you were hitting isn’t in the path any more. Worth
      confirming, since I’m reasoning about your build rather than looking at it.

      Two deliberate omissions, both because they’re properties of your board and not
      of FOG:

      FOG serves no device tree. No fdt or fdtdir directive, so you keep the tree at
      ${fdtcontroladdr} - the one VideoCore just built for the exact board revision
      it’s running on, which is better than anything I could serve you. Load
      addresses stay yours for the same reason.

      And FOG writes no pxelinux.cfg files. The endpoint is stateless: the board asks
      by MAC and gets an answer out of the database, so there’s nothing on disk to
      drift from what’s actually queued and nothing to clean up when a task finishes.

      One thing to check before you start: if your FOG install has netboot set to
      HTTPS, none of this will work. U-Boot’s wget is HTTP-only with no TLS at all,
      so it can’t even fail a certificate check - the redirect just ends the boot with
      nothing on screen. The installer now exempts service/uboot/ from the HTTP-to-
      HTTPS redirect the same way it does service/ipxe/, but only when netboot is
      configured for HTTP in the first place.

      Full write-up is in docs/UBOOT_ARM_BOOT.md in the repo.

      Being straight about what this is: the emitted config is pinned byte-for-byte
      by tests and the decisions behind it are the same code the iPXE path runs, so I
      know FOG emits what I intended. What I can’t tell you is that a real U-Boot
      consumes it, because nobody here has a Pi. You’re the only person who can prove
      that, and if it’s wrong I’d rather hear it than not.

      posted in FOG Problems
      Tom ElliottT
      Tom Elliott
    • RE: FOG Project Image Capture on Raspberry Pi 4 (ARM64) via U-Boot

      @Jeremy Stop the dd approach - it’s what’s breaking the disk, not the Pi.

      Those .img files are not raw dumps. They’re zstd-compressed partclone streams;
      check any of them and you’ll see the zstd magic 28 b5 2f fd in the first four
      bytes. So dd’ing d1p1.img onto /dev/sda1 writes compressed bytes straight onto
      the partition, which is exactly why the firmware then can’t read it as FAT.
      That’s also why partclone.restore told you it wasn’t a partclone image - it was
      looking at the zstd wrapper. FOS does this at funcs.sh:847:

      zstdmt -dc /images/Raspberry/d1p1.img | partclone.restore --ignore_crc -O /dev/sda1 -N -f 1
      

      One per partition. If the image was captured with a gzip format instead, swap
      zstdmt for pigz -dc.

      The MBR is wrong too. d1.mbr isn’t one sector - we capture everything up to the
      first partition, capped at 1MiB, so it’s usually 2048 sectors. Your count=1
      threw away everything between the boot sector and the first partition. Drop the
      count entirely and let it write the whole file:

      dd if=/images/Raspberry/d1.mbr of=/dev/sda bs=512
      

      Now the more useful finding. “Fatal Error: Unknown request type :: Null” is
      FOS telling you $type arrived empty, and that’s the same problem as your
      missing osid - your bootargs are being truncated before FOS ever reads them. It
      isn’t the kernel: arm64’s COMMAND_LINE_SIZE is 2048, the same as x86, and the
      bootargs line you posted is 233 characters. Look at U-Boot’s own command and
      console buffer instead, that’s where the ceiling is on your setup.

      Which gets to the real limitation, and I’d rather be straight about it: FOG’s
      server has no U-Boot support at all. boot.php emits iPXE, and nothing generates
      a boot.scr, delivers a DTB, or builds arguments for a non-iPXE client. Every
      variable you’re hand-assembling is one the server would normally hand the
      client, and doing it by hand is why the ordering and length problems are yours
      to fight.

      Two ways forward. Keep hand-rolling U-Boot, in which case use the two commands
      above and keep bootargs minimal. Or put UEFI firmware on the Pi (pftf/RPi4) so
      it PXE-boots into iPXE like any other machine and the server drives the whole
      thing - that’s the route that already works today, and it’s where native
      support would build from.

      Capture works, which is the half that was broken. Deploy needs the server side
      to exist.

      posted in FOG Problems
      Tom ElliottT
      Tom Elliott
    • RE: FOG Project Image Capture on Raspberry Pi 4 (ARM64) via U-Boot

      @Jeremy That’s the first time anyone has captured an image from a Raspberry Pi
      with FOG, so thank you for sticking with it through three rounds of this. The
      vc4 change is merged and will be in the next build.

      One correction to your boot.cmd before someone copies it: you didn’t actually
      need the uInitrd wrapper. The “Wrong Ramdisk Image Format” error came from
      dropping the size off the ramdisk argument - without it U-Boot reads the address
      as a legacy uImage and insists on a header. Either of these works:

      booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}
      

      or the wrapper you built, which is fine as-is because you used -C none. That
      part matters: -C gzip would have U-Boot decompress it and the kernel’s own gzip
      support - the first bug we fixed in this thread - would never have been
      exercised.

      For anyone finding this later, the display problem was ours. We build without
      DRM everywhere and rely on the firmware handing us a framebuffer, which is safe
      on a PC because UEFI always publishes one. On a Pi it isn’t: our device tree has
      no simple-framebuffer node, and the one the firmware would normally inject
      disappears as soon as config.txt enables vc4-kms-v3d, which current Pi OS ships
      turned on. So the kernel was booting fine the whole time and had no way to tell
      anyone.

      Worth saying plainly: your report exercised three separate fixes on real
      hardware for the first time - the initramfs decompression, the ARM platform
      support, and the NFS mount options. All of it had only ever run in QEMU before
      you.

      posted in FOG Problems
      Tom ElliottT
      Tom Elliott
    • RE: FOG Project Image Capture on Raspberry Pi 4 (ARM64) via U-Boot

      @Jeremy I found it, and it’s our bug. Our kernel is built without DRM, so it has
      no vc4 driver and it depends on the firmware handing it a framebuffer the way
      EFI does on a PC. On a Pi that doesn’t hold - our bcm2711-rpi-4-b.dtb has no
      simple-framebuffer node, and the one the firmware would normally inject is
      suppressed as soon as config.txt turns on the vc4-kms-v3d overlay, which current
      Pi OS ships enabled. So our kernel had no way to write to your screen at all,
      and a working boot and a dead one look exactly the same. That’s also why your
      earlier test had output - kernel8.img has vc4 built in.

      I’ve built the vc4 driver into our kernel. New build, same three files as
      before, all from the one build:

      wget https://github.com/FOGProject/fos/releases/download/EXP_20260827-114033/arm_Image
      wget https://github.com/FOGProject/fos/releases/download/EXP_20260827-114033/arm_init.cpio.gz
      wget https://github.com/FOGProject/fos/releases/download/EXP_20260827-114033/arm_dtbs.tar.gz

      Boot it exactly the way you did last time - same load addresses, same booti
      line, our DTB is fine now. One firmware note: the vc4 driver wants
      avoid_warnings=2 in config.txt, otherwise the firmware can scribble over the
      display setup.

      All I need to know is whether you get text on the screen this time. If you do,
      we’re past this and I’ll want the uname -a / cat /proc/cmdline / cat
      /proc/filesystems output I asked for before. If it’s still blank, then it isn’t
      the display and I’ll need serial to see what’s happening - but let’s find out
      which it is first.

      posted in FOG Problems
      Tom ElliottT
      Tom Elliott
    • RE: iPXE build failing

      @astrugatch Okay thanks and sorry there was that issue.

      Can you pull and try installing again?

      Thank you!

      posted in FOG Problems
      Tom ElliottT
      Tom Elliott
    • RE: iPXE build failing

      @astrugatch Yes please.

      I don’t know why stable is showing 2254, I see stable supposed to be 2253 but either way they were far enough away from each other.

      YEs dev-branch would be wonderful or even better working-1.6 but I can understand the apprehension.

      posted in FOG Problems
      Tom ElliottT
      Tom Elliott
    • RE: iPXE build failing

      @astrugatch I’d recommend updating git pull if you can? 2254 is a ways back as I understand things for dev-branch. We’re all the way up to 2421 already if you can see if the issue you’re seeing is still happening or already fixed?

      posted in FOG Problems
      Tom ElliottT
      Tom Elliott
    • RE: Failed to Update Database and Host

      @maxcarpone I would ask you, if you’re daring/willing (it’s considered beta but uses the same pipeline with a lot more modern ui, I need people testing, and Fog_newb can likely attest the new ui look and feel though I think they ran into an issue and needed to get functional right away so the snapshotted back)

      Upgrade to working-1.6.

      I have a goal (along with @JJ-Fullmer ) to try to get working-1.6 to be master/stable branch by October.

      1.6 has been “stagnant” since around 2017 and was in relatively stable grounds back then even.

      With AI (as you undoubtly can see I’m using to help drive some things) it’s allowed us to get a lot more coding/refactoring and will hopefully present a much better experience of things on the UI side. Without testing I cannot fix UI bugs though.

      AI can do some cool things, but it doesn’t know what “wrong/right” looks like, and JJ and I are only 2 people.

      There are others on working-1.6 but more feedback is always good.

      posted in FOG Problems
      Tom ElliottT
      Tom Elliott
    • RE: Failed to Update Database and Host

      @maxcarpone You found it, and you were right. The & was the whole thing. It’s now fixed in
      code, so you can put your original password back.

      First, a correction to my earlier reply. I said the boot-menu password was
      involved. It isn’t — the credentials you type during full registration are
      entered in the FOS init and posted to service/auto.register.php, which is a
      completely different path. Ignore that part of what I wrote.

      What was actually wrong. Registration-with-deploy was HTML-escaping your
      password before comparing it against the stored hash
      .

      The registration handler read the username and password out of the request
      after running it through a shared helper (stripAndDecode()) whose last step
      is htmlspecialchars(). That is the right thing to do to a value you’re about
      to print into a web page, and exactly the wrong thing to do to a value you’re
      about to check against a password hash. So a password containing any of

      &   <   >   "   '
      

      reached the password check as its HTML entity form — yours was compared as
      &amp;... — and could never match. A leading or trailing space was lost too.

      And your timing was exactly right. You said it worked up to 1734 and broke
      by 2390. The escaping was added in 1.5.10.1830 (commit 05403ee0,
      19 May 2026), which sits right inside that window. It was part of a
      security-hardening change, and applying that sanitiser to a credential was an
      unintended side effect of it.

      That also explains everything else you saw:

      • a brand new user worked, because you’d have given it a simple password
        with none of those characters in it
      • fog worked in the web UI, and at service/checkcredentials.php, because
        neither of those goes anywhere near that helper
      • only registration-with-deploy said “Invalid Login”

      For anyone else finding this thread: it is not a keyboard-layout problem,
      which is where I’d have looked next. Accented characters pass through untouched
      — they aren’t HTML specials. It’s specifically those five characters.

      Fixed on both branches, both merged:

      • dev-branch (1.5.10) — https://github.com/FOGProject/fogproject/pull/1398
      • working-1.6 — https://github.com/FOGProject/fogproject/pull/1397

      The decode now lives in one place that registration and checkcredentials.php
      share, so the two can’t disagree about the same password again, and it no longer
      escapes anything. Verified end to end rather than by reading the code: real
      POSTs to service/auto.register.php against a real database, on the unfixed
      tree and the fixed one. Passw0rd is accepted by both; a password with an &
      is rejected by the unfixed tree with your exact “Invalid Login” and accepted by
      the fixed one.

      Once you’re on a build carrying that, your original & password will work
      again. No need to keep the changed one.

      Still outstanding — the two MariaDB instances. That’s unrelated to this bug
      and I’d still like it sorted, because two database servers on one box is a real
      problem waiting to happen:

      systemctl list-units 'maria*' 'mysql*'
      ss -lntp | grep -E '3306|mysql'
      

      If both are listening, the one FOG is talking to is whichever
      /var/www/fog/lib/fog/config.class.php points at — and the other one is holding
      a stale copy of your data that will look convincingly real the first time
      something connects to it by accident.

      On the blank/null task rows from your earlier queries: on your box there
      were zero active ones. The blanks are completed and cancelled history for
      hosts and images deleted over the years (about 300 hosts and 459 images since
      2017), which is expected and harmless. The reaper added in this round only
      touches tasks that are still active and can no longer run, so it won’t go near
      that history.

      posted in FOG Problems
      Tom ElliottT
      Tom Elliott
    • RE: FOG Project Image Capture on Raspberry Pi 4 (ARM64) via U-Boot

      @Jeremy That mount error is our bug. FOS was passing NFS mount options without
      actually telling mount it was NFS, so when the storage path doesn’t come
      through, busybox falls back to trying every local filesystem in turn and each
      one rejects nolock — the ext2/ext4/vfat lines were never really involved.
      Fixed and merged, and there’s a new experimental build below with it in. Test it
      when you get a chance and let me know how it goes.

      Two things when you do. Add isdebug=yes to your bootargs — mode=debug isn’t
      our debug switch, so right now you’re getting rebooted back to U-Boot before you
      can read anything. And send me the output of these from the failing boot:

      uname -a
      cat /proc/cmdline
      cat /proc/filesystems
      

      Your error listed f2fs, and our arm64 kernel is built without f2fs and without
      module support, so it can’t have produced that. I think that boot was running
      your kernel8.img with our init rather than our kernel — which would mean we
      still haven’t actually tested the kernel fixes on real hardware.

      wget https://github.com/FOGProject/fos/releases/download/EXP_20260826-143004/arm_Image
      wget https://github.com/FOGProject/fos/releases/download/EXP_20260826-143004/arm_init.cpio.gz
      wget https://github.com/FOGProject/fos/releases/download/EXP_20260826-143004/arm_dtbs.tar.gz
      

      All three are from the same build, so there is no mixing them up with what you
      have now.

      posted in FOG Problems
      Tom ElliottT
      Tom Elliott