-
Notifications
You must be signed in to change notification settings - Fork 616
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
iPXE on Synology NAS ds1515+ - serial consol is not able to receive keyboard keystrokes. #1189
Comments
CONSOLE_LINUX is afaik only available on builds running on Linux, don't enable this for any other builds. Did you have any serial output before building with serial enabled? Consider using discussions, not issues, until it is known that it is a bug in iPXE, and not just a missconfigurayion or other issue. |
I check my build with CONSOLE_LINUX enabled and disabled as well. As I wrote in the ticket the output from NAS works, but the input is only possible via usb keyboard and not via serial console. I assume by having Without B.R |
Ok I wanted to verify that the serial in iPXE was actually used, and not some other firmware redirection. Could you try forcing a shell and test character input? I guess you have use up/down arrows so far? Maybe go as long as enabling serial debug? |
@NiKiZe In addition I add in
And from below picture you can see that Also when I compile ipxe with @NiKiZe Edit: In the file In my case from some reason When I change parity to When I lower baudrate to 57600 and set odd to none then each of my keystroke produce such characters: It seams that from some reason uart in this hardware is not configured properly when I use iPXE, what is extremely odd as grub works fine with 115200 8n1 settings. |
Hi. As I notice for 115200 baudrate my uart return most of the time 0xFF. For original ipxe implementation I get only proper output in 115200 other baudrates produce garbage or nothing. I double check the hardware, replace uart->ttl converter and test it with PL2303 and cp210x chip. I really wonder where is the difference, as the uart issue only happen with ipxe bootloader :/ Maybe some registers are not set, or set wrong... Let me know if I can test anything else. B.R. |
Many unbearable hours later... After intensive tests and writing even own uefi bootloader where I checked successfully just the uart functionality I discovered that adding below I added timeout to give rest of the part of ipxe ability to execute other tasks, otherwise it seams to restart itself after some period of time. Unfortunate, it's more an ugly workaround then a real fix, as I assume the intention of serial_iskey is to return as fast as possible and do blocking call in
Regards. |
Yes, this is correct. The console
My guess is that the UEFI firmware is already driving the serial port, and so when you have Usually when UEFI drives the serial port, it acts as an extra console port. It's possible that your firmware is not doing this, and that Synology has built their firmware to treat the serial port as e.g. a debugger port. Once Linux starts up, the UEFI firmware will stop driving the serial port, which explains why everything is fine once you start up Linux. It's not sensible to have two bits of code competing over the serial port. You could try vetoing the UEFI firmware's serial port driver (via the mechanism in |
@mcb30 Hmm...
And unload part after exit:
Can I veto somehow all drivers and keep just serial console to check your theory? Moreover, just remind you in the orginal grub loader the console works fine for output and input, so before even loading linux kernel, where it's fine too. B.R. |
Build with
As a sanity check: is this using a BIOS version of GRUB? You mentioned grub4dos, which suggests that you were booting the NAS in "legacy" BIOS mode. |
@mcb30 BINGO! Below I had such driver list where I vetoed I wonder also about
I mention about grub4dos as a source for uart implementation, but in fact the Synology NAS use bootloader from path BTW as I end up with such long debug arguments list: Is there any shortcut method to enable all in given verbosity? I think also that the documentation in https://ipxe.org/docs should be updated regarding all that efi vetoed functionality and settings about deep debugging aspect as I burned a lot of time before I get this knowledge. Thank you very much for helping me out. |
Great! Will continue discussion on the PR.
No, and there are some objects for which you'll typically get so much output at level 3 that it makes everything unusable (e.g. one log message per packet, for some parts of the network stack, which is unusable if you have to first download a large file in order to reach the issue of interest).
Those are quite obscure details that will be irrelevant to the vast majority of people, so it's difficult to justify spending the time to write up the documentation (and it's definitely not the sort of thing that should appear on the front page). |
@mcb30 |
Feel free to register an account and contribute a page such as https://ipxe.org/appnote/efiveto - other people have contributed detailed internal documents such as https://ipxe.org/appnote/interfaces 🙂 |
Hi.
As I test ipxe on Synology NAS ds1515+ I notice serial console issue.
I compile my ipxe by:
make bin-x86_64-efi/ipxe.efi DEBUG=intel,intelx,netdevice EMBED=SynoBootLoader.ipxe
Changes in the ipxe files:
My menu looks like:
I'm able to see ipxe output over serial console as this device has no vga output, but somehow it ingore my keyboard keystrokes.
The only way of navigating over my menu is by connecting second keyboard over USB hub and use it instead console channel.
Orginal grub or linux bootstrap with
console=ttyS0,115200
works fine in both way, so it's not hardware issue.B.R.
The text was updated successfully, but these errors were encountered: