Well, I do not know how it affects me..
Ofc, if you don't let it it will not affect you (your project) one bit

I created/presented a solution in order to (hopefully) show you that whenever you face such an issue/problem you can make a more generic (Linux related) search and in this particular case be able to find an answer that uses the shell (ls in particular in combination with grep) in order to 'solve' the problem and, how that can be "translated" to Pascal.
Ofc. You could also use TProcess for that and catch the output of the executed shell commands in order to obtain the same results e.g. it would be another implementation but using the same approach.
The solution that Graham1 presents is (beside being another way that is able to lead to Rome) a more programmatic/technical approach (depending on the systems (OS) known characteristics of such devices).
It (should also) result in the very same list with (serial) device names.
However now I have used your code to create a unit for handling the listing of serial ports on Linux.
And I had problems with the (for me) unfamiliar data type TStringArray, so I created an overloaded version of the function GetSerialDevices() where a TStringList is used to transfer the list to my main application.
If you are more comfortable using a stringlist then that is perfectly fine.
With stringlists it seems that /I/ never can't decide if it should be a function and/or procedure and if the subroutine should create the stringlist automatically or not. So technically I chickened out

(my unit is attached)
Thank you for your changes.
I have attached an updated version of the cereal example as well by adding (also adopted a little) Graham1's implementation and also adding another function based on Graham's code that retrieves the characteristics of the found serial device (which are also displayed).
I do not know if that is or can be helpful for your project but I thought it was a nice addition showing the usefulness of Graham's implementation.
Oh, almost forgot. I added your stringlist version as well so that you can see/test/verify that the 3 implementations return the same results (at least in theory they should).