I write to discuss a problem with Intel's bootable SSD Firmware update, and to share my workaround.
issdfut - This is the name of Intel's Linux binary which updates firmware on SSD devices.
Poky - Poky, for the sake of this post only, is the Linux image used by Intel to enable firmware updates using issdfut. (Poky is actually a neat offering from Yocto for a roll-your-own embedded Linux. Intel chose well to apply it for booting a firmware update engine.)
The Poky utility, as of Intel's version 2.2.3, fails to graphically render the issdfut user interface when NVidia 1080GTX GPU is present, causing Poky to boot to a blank and mostly unresponsive screen, unable to perform SSD firmware updates. If you have a NVidia GPU like mine, Intel's bootable SSD firmware update may not work for you without some tinkering.
Modify the boot command to include vga=ask for the graphical install option offered at boot. Choose native resolution (I chose mode 34D, but you'll see a list to choose from.)
When Poky boots this time, it sets the framebuffer resolution per vga=ask response, and successfully creates /dev/fb0 device. This changes the behavior of the Xorg detection, causing issdfut to load and flash successfully. Yay!
(Without vga=ask, the kernel never creates the framebuffer, and only creates the virtual device fbcon. When Xorg detects its settings to use and fbcon is the only option, you may lose your screen completely when Xorg starts. I did.)
My workaround is incomplete. Though the task is solved, a full understanding of the problem evades me. Here are some ideas for doing your own digging:
- The boot loader permits interruption with Tab. Press tab at the boot menu, then append linux 3 to the end of the boot command. This boots to non-graphical runlevel, letting you login to look around.
- Root has no password and is granted auto-login, but only on tty1.
- Poky's /etc/inittab is only setup for one getty, but you can add more, enabling them without reboot via init -t1 q
- Most of the OS tools (network) are gutted, but you can mount other filesystems while booted to Intel's Poky RAM disk.
- Even when the tty screen goes dark, it is still responsive.
- It responds to ctrl-alt-bksp, but the display never comes back to you. (Loading Poky's Xorg kills the display, killing Xorg leaves you with a dead display.)
- Backup plans in case I had to give up on Poky due to framebuffer/fbcon issues:
- Build my own i686 and Xorg environment native on my system with the SSD, and dig issdfut out of the Poky ISO provided by Intel to run manually.
- Build a 2.2 Poky reference, exactly like Intel's, and compile a few more Xorg drivers in. (I think Nouveau works with fbcon, but don't quote me on that.. it's voodoo. )
- Instead of Xorg, I could also build a friendlier kernel and try booting that in Intel's Poky image.
- Thankfully, I didn't have to do any of this. Wrote it here, though, in case it helps someone else struggling with this.
I feel so fortunate to have accidentally accomplished my firmware update. I hope this helps someone else do the same, and I also hope to one day fully understand the interoperability of framebuffer, framebuffer console, and Xorg. Doubly so when Nvidia is present; using NVidia devices on Linux can be a real chore given the state of framebuffer console behavior.
Thanks for sharing the workaround and the details with the community. This will be really helpful for other customers may that have this kind of issues.