cc -march for Intel Celeron N5105 (for optimised Nextcloud on FeeBSD)

Hello!
recently I bought a
  • ACEMAGICIAN AK1PRO Mini PC N5105 2.9GHz 16GB RAM 512GB SSD M.2 Micro Desktop Computer, 4K UHD, WLAN, Gigabit Ethernet, HDMI X 2
and want to install FreeBSD on it to build my own Nextcloud server.
I am thinking about recompiling kernel and user land specifically for the Intel Celeron N5105 cpu to get most out of it.
  1. Would you recommend it? Does it give some benefits?
  2. If yes, which parameters should I use for cc -march etc.?
Your help is very much appreciated.
Thank you!
 
Think about it.
Your system usually spends only a fraction of it's runtime in kernel mode or the user land binaries. Let's say that is 10%, to be generous. Using "-march" will give you maybe 5%, for the sake of an argument. That is 0.5% in total. How long will you have that running before these 0.5% add up to the time spent recompiling everything?
 
Think about it.
Your system usually spends only a fraction of it's runtime in kernel mode or the user land binaries. Let's say that is 10%, to be generous. Using "-march" will give you maybe 5%, for the sake of an argument. That is 0.5% in total. How long will you have that running before these 0.5% add up to the time spent recompiling everything?
You are right. Thank you for your additional information.
 
If you were to run some simulation or such 24/7 full burn, that would make sense to optimize. But optimizing things like strlen() or "cp" will most likely cost more time than it will ever save you.
 
Recompiling kernel and userland won't make much of a difference unless you run a workload that uses the kernel heavily.

Realistically you'd have to compile all ports, too. On a decaf CPU that won't be fun.
 
I bought a Nipogi AK2PLUS N100 16GB RAM and use it as a home server. Installed FreeBSD 14.1-RELEASE from USB stick (GENERIC kernel) and it runs like a swiss clock from july 2024, 24/7. There are some ACPI errors, no matter I ignore them. WiFi works, Bluetooth not installed but recognized. I scratched off Windows 11 Home without even registering it.
The CPUs are very similar, Acemagician and Nipogi fish from the same pot.

EDIT: Ah, I forgot this: Compare Intel N5105 and Intel N100
 
I bought a Nipogi AK2PLUS N100 16GB RAM and use it as a home server. Installed FreeBSD 14.1-RELEASE from USB stick (GENERIC kernel) and it runs like a swiss clock from july 2024, 24/7. There are some ACPI errors, no matter I ignore them. WiFi works, Bluetooth not installed but recognized. I scratched off Windows 11 Home without even registering it.
The CPUs are very similar, Acemagician and Nipogi fish from the same pot.

EDIT: Ah, I forgot this: Compare Intel N5105 and Intel N100
Now I bought the same minipc. I tried FreeBSD 14.2. I get also the ACPI errors, but couldn’t get rid of them. They are appearing all over the screen, one after another…

Did you get somehow rid of them? If yes, how?

BTW: I tried Fedora Linux too. When installing from the live system it hangs after 20 % with timeout errors writing on the internal SSD.
 
This is one thing I have not fully solved and stop digging into it more. First of all I try to mute them in console, I do not remember if I succeeded in this, It's a headless server so I rarely login in vt console, however what I have done is simply prevent write them in console (ttyv0) modifying the file /etc/syslog.conf commenting the line
Code:
*.err;kern.warning;auth.notice;mail.crit        /dev/console
However, if I run dmesg I can only see those ACPI error messages and not the system boot messages. I give it up and left the system in this way.

Another thing it does not work is UFS filesystem on the SSD, only ZFS works. At the time I installed the system, there was bug reports about UFS on some SSD devices and AlderLake systems, but I do not know if is actually resolved.

To avoid ACPI messages during installation, at the first message of the installer choose 'Live System'

install_01.jpg


goto ttyv1 (Alt+F2) or any other ttyv other than 0, access with 'root' user (no password) and run bsdinstall from there.
 
I give it up and left the system in this way.
Indeed not much I can do about these errors. Many many lines.

Code:
acpi0: <DELL CBX3   >
Firmware Error (ACPI): Failure creating named object [\134_SB.PCI0.XHC.RHUB.HS01._UPC], AE_ALREADY_EXISTS (20221020/dswload2-480)
ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20221020/psobject-372)
Firmware Error (ACPI): Failure creating named object [\134_SB.PCI0.XHC.RHUB.HS01._PLD], AE_ALREADY_EXISTS (20221020/dswload2-480)
ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20221020/psobject-372)
Firmware Error (ACPI): Failure creating named object [\134_SB.PCI0.XHC.RHUB.HS02._UPC], AE_ALREADY_EXISTS (20221020/dswload2-480)
ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20221020/psobject-372)
Firmware Error (ACPI): Failure creating named object [\134_SB.PCI0.XHC.RHUB.HS02._PLD], AE_ALREADY_EXISTS (20221020/dswload2-480)
ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20221020/psobject-372)
Firmware Error (ACPI): Failure creating named object [\134_SB.PCI0.XHC.RHUB.HS03._UPC], AE_ALREADY_EXISTS (20221020/dswload2-480)
ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20221020/psobject-372)
Firmware Error (ACPI): Failure creating named object [\134_SB.PCI0.XHC.RHUB.HS03._PLD], AE_ALREADY_EXISTS (20221020/dswload2-480)
ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20221020/psobject-372)
Firmware Error (ACPI): Failure creating named object [\134_SB.PCI0.XHC.RHUB.HS04._UPC], AE_ALREADY_EXISTS (20221020/dswload2-480)
ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20221020/psobject-372)
Firmware Error (ACPI): Failure creating named object [\134_SB.PCI0.XHC.RHUB.HS04._PLD], AE_ALREADY_EXISTS (20221020/dswload2-480)
ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20221020/psobject-372)
Firmware Error (ACPI): Failure creating named object [\134_SB.PCI0.XHC.RHUB.HS05._UPC], AE_ALREADY_EXISTS (20221020/dswload2-480)
ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20221020/psobject-372)
Firmware Error (ACPI): Failure creating named object [\134_SB.PCI0.XHC.RHUB.HS05._PLD], AE_ALREADY_EXISTS (20221020/dswload2-480)
ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20221020/psobject-372)
Firmware Error (ACPI): Failure creating named object [\134_SB.PCI0.XHC.RHUB.HS06._UPC], AE_ALREADY_EXISTS (20221020/dswload2-480)
ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20221020/psobject-372)
Firmware Error (ACPI): Failure creating named object [\134_SB.PCI0.XHC.RHUB.HS06._PLD], AE_ALREADY_EXISTS (20221020/dswload2-480)
--More--(byte 4705))
Over 1500 Lines of errors. Newest BIOS. Dell Optiplex3K Thin Client w/ N5105
 
Well I also uncommented this line in /etc/syslog.conf
Code:
# uncomment this to log all writes to /dev/console to /var/log/console.log
# touch /var/log/console.log and chmod it to mode 600 before it will work
#console.info                /var/log/console.log

Perhaps there were other things I modified but unfortunately I do not remember. I will write here if I find others. Anyway these two changes to the /etc/syslog.conf file should silence the console.
 
My error is
Code:
Firmware Error (ACPI): Could not resolve symbol [\134_SB.PC00.LPCB.ITE8.GETT], AE_NOT_FOUND (20221020/psargs-503)
ACPI Error: Aborting method \134_TZ.TZ00._TMP due to previous error (AE_NOT_FOUND) (20221020/psparse-689)
 
I make images with Poudriere so the worst effect for me is a two second lagg max at boot time. No random messages on console.
So nothing to worry about for me. I can't fix it. Upped the BIOS.
System works fine.
 
LPCB.ITE8
Mine is PCI0 error (in a thin client with no PCI slots) This error looks like it could be a LPC controller from ITE (Low Pin Count controller frequently used for IO like serial and watchdogs)
Watchdog! Maybe? Hmmmm..
See if BIOS has watchdog and disable.

Error is symbols related but it can't hurt to try things.
 
The BIOS of my machine is too complicated, I stop following CPUs and motherboards for too many years. Perhaps there are options that resolve them but I touch nothing, I'm afraid I will make mistakes.
 
Now this smells a bit of troll, don't you think? Maybe a little tounge in cheek?

No. It generally works and I did that a couple of times to binaries.

There is no guarantee that it works because the string might not be processes with a C string aware function. It could be a raw write(2) on the buffer. But for error messages it is very likely that some printf-like function is used and then this would work to suppress the error message.

Emacs is pretty good for this.
 
Emacs is pretty good for this.
I have yet to find something emacs was not claimed to be good for. The plugins are so numerous. It's a nice OS, but lacks a usable editor ;)

Usually patching a binary needs a skill set I don't seem to see in the OP, so byte shuffeling might be a bit over their head - which would most likely make things worse if attempted. Also, killing the messenger does not make the message less bad. That issue should be resolved in some other way.
 
I have yet to find something emacs was not claimed to be good for. The plugins are so numerous. It's a nice OS, but lacks a usable editor ;)

You don't need additional code. Emacs just opening a binary will look like line noise, but the search function (Control-S) will work to locate the offending ASCII string. From there you just delete the first character and replace it with a binary zero.

If you want more of a look around you can use hexl-mode (at the same time as normal mode), which ships with the standard Emacs distribution, no additional install required.

Of course it helps if you are not a total beginner in Emacs. Changing the offset of things would have unfortunate consequences.
 
Back
Top