Asus KFSN 4-DRE at the end of november 2016
According to this article, I shouldn't be intimidated:
Can I choose any of these necessary pieces?
I guess not. Specially not regarding a graphic card (with DVI support).
Hopefully this will do: https://www.thinkpenguin.com/gnu-linux/geforce-8400gs-1gb-pci-express-20-video-card-gnulinux-full-low-profile-brackets
It seems to be supporting DVI-I dual link. It should in theory support DVI-D (dual link), but I'll have to ask to be sure.
I know about the case, roughly about the CPUs, and the RAM.
Which leaves the power supply. Is there anything I shouldn't buy?
Is there anything that's a must-have?
Don't I need a fan? I'd like something as silent as I can afford (my budget is clearly limited, but feel free to go insane, at least I'll learn about the features).
Also, what's your setup like?
I also found this: http://thierrylaurion.me/asus-kfsn4-dre-serverworkstation-board/
He's talking about a heatsink. Is it as a replacement?
Is it really worth it (besides his aquarium project)?
Last but not least, your experiences with Libreboot on this board:
- does it still have a long delay on boot?
- does it still have issues with usb peripherals?
- anything else you experienced I should know?
Personally, I found out that a USB external audio card being plugged in on boot prevented Libreboot from starting up on an X200 (docked, at least).
I need to unplug it, and plug it back before unlocking the drive the second time (you know, having to put the same passphrase twice).
Note that I got rid of pulseaudio and strictly use alsa and jack (via qjackctl and alsamixer).
I'll tell the Libreboot team when I'll figure out how to get back on their IRC node (last time I was banned (automatically) because I pasted some logs massively (I thought it would make one post instead of one per line... ).
Don't be too cheap with the power supply. Bad power makes for strange effects and could fry your other parts. As for what brand to select or avoid my knowledge is ancient.
You'll need a heatsink and probably also a fan. Unless you're building something that creates very little heat. A CPU without a heatsink+fan might fry very fast or at least shutdown automatically as the heat gets too high.
Note that different parts use different sockets so plan accordingly. :)
Thanks for the info lembas, much appreciated!
Besides what I already found on the forum, any more experience with this board anyone?
As for fans, it seems CPU's might come with one heatsink for each.
Yet the manual talks about locations to plug 4 fans in.
This sounds like a lot. Do I need all 4??
And does the Smart fan technology from ASUS works with free software (meaning, should I get ASUS fans that support the feature)?
It seems picking a well isolated case can help reduce noise, btw. Silent fans seems to be a possibility.
I'm still thinking of starting off rather cheap, so if I don't HAVE TO get 4 fans, I won't.
It looks like it's the cheapest compatible case I can find (http://www.newegg.com/Product/Product.aspx?Item=N82E16811854018&nm_mc=AFC-C8Junction&cm_mmc=AFC-C8Junction-PCPartPicker,%20LLC-_-na-_-na-_-na&cm_sp=&AID=10446076&PID=393856...), which costs just as much as the mother board :(
2 fans included, but no power supply. Most likely would cost just as much... And still no RAM nor CPU spent on.
It would be hard to get something with strong performance for less than 500.
My goal is to have something as silent as possible (hopefully less than the X200).
Water cooling (in kit) seems like an option, but that's some more budget, and it would be only for one CPU, not the whole system. So I'd probably use the stock fans at first if I get this case.
Any input welcomed, as usual.
It seems there is free software fan control (for GPU), but it seems it depends on the owned hardware.
See here https://askubuntu.com/questions/22108/how-to-control-fan-speed
It should be mostly about the motherboard, and the GPU fan.
but what to look for? Is knowing that nouveau supports the GPU enough (what about the mobo)?
This (https://nouveau.freedesktop.org/wiki/PowerManagement/) seems to indicate that Power Management is still a work in progress for some GPU.
I know about a case having PWN. Can this be controlled by free software? This PWM thing seems to be directly related to the software.
Else there's something like this, which supposedly only rely on hardware (and me checking the temp).
Lembas, thanks to your advice, I'm picking the power supply last. It seems in needs to be powered not only to the mobo, but to the GPU as well. Thanks to h-node, and the nouveau website, I found (way) better and cheaper.
There should be two case fans, the GPU fan(s), the power supply's fan (not sure I should mess with this one, and the CPU's ones.
What I get is that GPU fan control might not be mature yet, but in theory I should be able to handle PWM with free software.
Can anyone confirm (or not)?
Is there a specific kind of CMOS to pick (EDIT: answer is CR2032 lithium 3V, it seems to be standard)?
If the BIOS chip is new, would I be able to boot, or do I need to install from a floppy disk the proprietary BIOS first? (EDIT: no, I most likely won't be).
I got my mobo without any of these. EDIT: I might have the BIOS chip though. Hopefully it's configured.
I will probably have to install the bios on a floppy disk from windows (how am I gonna connect a floppy reader on a laptop, no idea), and then install it. Then boot from a liveUSB, and flash Libreboot. Maybe there's a simpler way. I'll have to get back on the #librebot if I can.
EDIT: On #libreboot, I got some help, suggesting that I can hot-swap the chip. Yeah it was in the wiki, but when you don't know what it is exactly, it's very easy to skip.
Ok, on #libreboot, no one is able to answer me, besides the the info that this board has not been fully tested yet.
Lilos posted a thread (closed now, very practical) about several issues, like not being able to boot with 2 CPUs, USB keyboard not working, the PC not booting from the GPU ("fully" supported by Nouveau, I checked), and the HDD not recognized.
So I have no idea if updates since may solve these issues or not.
So it's safe to say: don't purchase for now.
I have one, but now I really hesitate in purchasing the rest of the hardware until I have more info.
Now, since it's supported by Coreboot, normally most of it should work with libreboot, right?
So worst case, I can still use the proprietary BIOS (or better, Coreboot, so less blobs), until hopefully Libreboot catches up. Worst case, well, that purchase could become a bad decision :_(
Hi board work perfect i use it evryday with gtx 650.
I use coreboot with sea bios libreboot have boot lag of 30 sec.
Old problem are fixed.
P.S coreboot do not have blobs for this board!Just build with no microcode.
Hi, thank you lilos!
When you say "Old problems are fixed", you mean Libreboot fixed the problems you had initially, and that all that remains is the 30s boot lag?
So I take the source from here (https://www.coreboot.org/downloads.html), and not the blobs, right?
Any tips on the configuration you used? (https://www.coreboot.org/Build_HOWTO)
I guess I should compile for x64.
But other than that, there are sections about AMD boards (NIC firmware, AMD IMC, AMD XHCI) and VGA support (https://www.coreboot.org/VGA_support).
Are all these microcode/blobs? Can I safely ignore them?
Thanks again, now I have some hope!
Yes old problems are fixed only this 30 sec lag is there.
Yes build coreboot with no microcode, x64 is ok.
AMD boards (NIC firmware, AMD IMC, AMD XHCI)
NIC firmware i think this is in other rom .
XHCI this is only for usb 3.0 so no wory.
Libreboot old fork of coreboot for this board.
- Yes old problems are fixed only this 30 sec lag is there.
- > Have you tried to disable serial when building the rom ? With serial enabled, my KGPE-D16 was taking a while to start (nearly 1min), without serial it boots fast (less than 10s until seabios menu)
According to the libreboot page, this config doesn't have the issue (no idea where to configure this): https://review.coreboot.org/cgit/board-status.git/tree/asus/kfsn4-dre/4.0-10101-g039edeb/2015-06-27T03:59:16Z/config.txt?id=055f5df4e000a97453dfad6c91c2d06ea22b8545
To build a coreboot rom from git.
Dependencies : apt-get install git build-essential flex bison libncurses5-dev wget zlib1g-dev
git clone http://review.coreboot.org/p/coreboot && cd coreboot && git submodule update --init --checkout
make crossgcc && make iasl (add CPUS=*number of cores* after crossgcc to speedup the compilation)
Then from the menu, choose your options, here is what I use for KGPE-D16 builds, I leave everything untouched and tick some additional options :
General setup ->
Use CMOS for configuration values
Create a table of timestamps collected during boot
Mainboard vendor -> ASUS
Mainboard model -> KGPE-D16 (replace with your mobo)
Rom chip size -> 8MB (Instead of 2 as I have a bigger chip) | To find out the size of your chip : sudo dmidecode | grep 'ROM Size'
Include CPU microcode in CBFS -> Do not include microcode updates
Generic Drivers :
Serial Port on SuperIO -> Disabled (Optional, it boots faster if disabled in my case, YMMV)
If you don't use seabios (default), then go to Payload and choose your payload.
Then to build the rom with the config file generated :
The rom (coreboot.rom) will be in /coreboot/build/ folder, copy it to an other folder and flash it to the chip with your programmer. (Backup the original rom first ! sudo flashrom -p internal -r original_bios.rom -VV) Once you put back the chip on the mobo, clear CMOS (remove it) then boot. Make sure the RAM is correctly inserted and populated in the right slots (Dumb issue I had..)
If you want to start fresh, then enter :
from coreboot folder.
Thanks a lot uboot, very interesting!
uboot, I have a couple of questions:
- what do you mean by a programmer for flashing the chip?
Can't I flash it internally, like with Libreboot?
- It seems this mobo can't boot with usb mass storage devices. Does that mean that the only way to flash the chip is to boot with a liveCD?
Even with Libreboot you can't just flash it from Linux (internal) with flashrom IF you're still running the factory BIOS.
You'll need to extract the chip from the motherboard (I think it is DIP8 like on KGPE) and use a chip programmer to flash libreboot/coreboot on it. Once done, put back the chip, clear CMOS and apply power. You should be good.
Next, you'll be able to update your coreboot / libreboot rom from your Linux distro using flashrom.
There are various programmers available. I personally use a BeagleBone, which was recommended on Libreboot website. Well to be honest, it's a bit overkill if you intend to just flash this chip. You could find some very cheap chip programmers on aliexpress for example (5$ shipping included) but most of them will use a Window$ tool.. except ch341a eventually, I'm not sure it is compatible with flashrom. I think it is but you will need to verify.
Otherwise, you can use a RaspberryPi, which use the linux_spi interface like the BeagleBone. It works very well. You could even find some use for it, like a small mediacenter or whatever (although it is full of blob xD)
Well, for your second issue, from what I read, there are indeed issues with USB boot on this mobo.
Anyway, you will still need to flash the chip using a programmer.
Are you sure??
Internal flashing should work just fine, even if you are currently booting the proprietary firmware.
Libreboot currently lacks documentation for externally re-flashing an LPC flash chip. However, these boards have the flash chip inside of a PLCC socket, and it is possible to hot-swap the chips. If you want to back up your known-working image, simply hot-swap the chip for one that is the same capacity, after having dumped a copy of the current firmware (flashrom -p internal -r yourchosenname.rom), and then flash that chip with the known-working image. Check whether the system still boots, and if it does, then it should be safe to flash the new image (because you now have a backup of the old image).
Keeping at least one spare LPC PLCC chip with working firmware on it is highly recommended, in case of bricks.
DO NOT hot-swap the chip with your bare hands. Use a PLCC chip extractor. These can be found online. See http://www.coreboot.org/Developer_Manual/Tools#Chip_removal_tools
Do check the HCL entry: ../hcl/kfsn4-dre.html
It's probably not up-to-date since it seems external flashing is possible now, yet what I read says that even if I'm booting the proprietary firmware,
internal flashing should work.
I went into all this hoping I wouldn't have to do any external flashing :(
My mistake. Indeed, it is possible to flash internally on this board.
No problem :)
That's good news.
It's unfortunate that this mobo isn't more developed for.
It's way cheaper than that other Asus mobo.
Coreboot seems better than Libreboot for this one.
Hopefully flashing internally works the same way.
why I have this message when I do "make crossgcc && make iasl && CPUS=4": "Target architecture is now i386-elf"? Can I choose to compile for x64?
Is choosing no microcodeupdates enough? Are the blobs downloaded in the first place?
I also have this message in red:
"warning: Building GCC 6.3 with a different major version (4.8).
Bootstrapping (-b) is recommended."
Ah, finally found the official doc (not much new though): https://www.coreboot.org/Lesson1
It's doing the following over and over:
Welcome to the coreboot cross toolchain builder v1.44 (March 3rd, 2017)
Building toolchain using 1 thread(s).
Target architecture is now mipsel-elf
warning: Building GCC 6.3 with a different major version (4.8).
Bootstrapping (-b) is recommended.
Downloading tarballs ...
* gmp-6.1.2.tar.xz (cached)
* mpfr-3.1.5.tar.xz (cached)
* mpc-1.0.3.tar.gz (cached)
* libelf-0.8.13.tar.gz (cached)
* binutils-2.28.tar.bz2 (cached)
* gcc-6.3.0.tar.bz2 (cached)
Downloaded tarballs ... ok
Unpacking and patching ...
Unpacked and patched ... ok
Building packages ...
Skipping GMP v6.1.2 for host as it is already built
Skipping MPFR v3.1.5 for host as it is already built
Skipping MPC v1.0.3 for host as it is already built
Skipping LIBELF v0.8.13 for host as it is already built
Building BINUTILS v2.28 for target ... ok
Building GCC v6.3.0 for target ... ok
Packages built ... ok
Cleaning up temporary files... ok
You can now run your mipsel-elf cross GCC toolchain from /home/user/coreboot/util/crossgcc/xgcc.
I stopped it, and I don't feel like going with "make menuconfig" at this point, since I'm not sure I did it right.
This is not correct : make crossgcc && make iasl && CPUS=4
This is correct : make crossgcc CPUS=4 && make iasl
This will build the entire toolchain, but you don't need the whole thing. (take a lot of time to compile as well)
If you want to build only x86 & x64 you use (from the coreboot folder) :
make crossgcc-i386 CPUS=4 && make crossgcc-x64 CPUS=4 && make iasl
To configure the build options for the rom.
EDIT : CPUS=4 will build the toolchain with 4 threads. For example, on my KGPE there is two CPUs (12cores per CPU) so I would use : CPUS=24
Replace with the appropriate numbers
EDIT2 : On KFSN 4-DRE, you can flash internally but if for some reason, the coreboot rom you compiled fails to boot, you're in trouble ^^ unless you have a way to flash the DIP8 chip externally... Consider this first. Maybe you could use a stable Libreboot rom first ?
Ah, got it, thanks again uboot :)
I'm trying this only: "make crossgcc-x64 CPUS=4 && make iasl"
since I most likely won't need a 32bit install.
I checked again, 4 is fine because I have 4 cours, so 4 threads, and only one CPU.
I've seen a video of lilos on GobelinRefuge where he has 2 CPUs, one big enough GPU, and the heatsinks are installed in diagonal (didn't knew it was possible).
But compared to mine, the fans were very noisy, so I'll probably stick to one CPU.
It should be enough for my needs (since it's also coupled with the GPU), but until I try, I won't know.
Regarding flashing, I should be OK (I think), because I'll start the PC with the BIOS, then I'll hot swap with another chip. So if it fails to boot, I can still use the BIOS chip to boot, and try again (in theory).
Worst comes to worst, I still have an extra chip.
I suppose I could even compare Libreboot and Coreboot, though Libreboot is indeed late on the updates in comparison. But I might miss GRUB, since it's supposedly easier to load ISOs to GRUB than to Seabios (not sure I ever loaded any ISO though, but I like GRUB since I'm used to it).
Problem is, it looks like GRUB isn't really useable for this board yet (very slow keyboard input, most likely even typing the decryption phrase would be a nightmare): https://www.coreboot.org/Board:asus/kfsn4-dre).
Well, I'll try Seabios and see how it goes.
I remember that I had to make GRUB configurations just to boot Trisquel (for full disk encryption access: https://libreboot.org/docs/gnulinux/encrypted_debian.html), so I wonder how it goes next. I'm trying Seabios, but just in case, if I can't install the way I want to, I'll re-compile with GRUB and use a PS2 keyboard for the config.
But if I need it just to turn the PC on, that won't cut it.
So worst case, I'll use Libreboot, and hopefully I'll figure out how to fix the 30s boot delay.
I compiled it with Seabios, but I have an error with GRUB2 as a payload (no coreboot.rom found this time:
./autogen.sh: line 86: autoreconf: command not found
make: *** [config] Error 127
make: *** [grub2] Erreur 2
Did it work with seabios at least ?
For the error, it seems that you're missing dh-autoreconf so :
sudo apt-get install dh-autoreconf
It is also possible to "chainload" the GRUB payload.
So when you boot, it loads "seabios" then instead of searching for HDD or DVD drive, it loads GRUB payload instead. It is safer this way. (To avoid a "brick") (You can still boot normally through seabios if you hit Esc key)
Roughly, you need to include grub payload into the rom freshly built and also add a "bootorder" file with this line :
You can practice with QEMU (Build a rom for i440fx target with seabios only) to see if it works. Then once you're satisfied, you can build again (for your mobo this time) with seabios and include bootorder file & GRUB payload.
I wish I could recommend Libreboot but the project seems dead. The build system is broken as well. That's why I recommend using coreboot instead.
Yes, it compiled successfully with Seabios.
Ah, I didn't recognized that as a missing program... Thanks I'll try that then.
Chainloading huh... Definitely will try again with Qemu.
But if I can get full disk encryption to work with Seabios only, I'm more than fine with that.
Besides a tiny bit of familiarity, I don't see why GRUB would be better.
Well, it's a shame that Libreboot is a bit outdated.
I'm used to it, plus there's less to do since it's already compiled (never compiled it/built it, if that's what you meant).
And I really like their tutorials.
Not a fan of bringing more and more functionalities either.
Much appreciated, thanks again lilos.
Bad planning led to this: I can fit 2 fans+heatsinks (over the 2 CPUs), but those who fit are super noisy (https://www.youtube.com/watch?v=yKWhB15Pm4E).
Some quiter fans+heatsinks exist, but one barely fits, and if I want to fit 2 of these, I can only put a fan on each side (one blowing air for both side by side heatsinks, one sucking the air out of the two side by side heatsinks).
Not sure it would work (twice the heat for nearly half the airflow), since the recommended setup for one heatsink is one fan (minimum) blowing air, not sucking air.
What would you do in this situation?
1. use two 6 cores CPU with very noisy server fans+heatsinks
2. use one 6 cores CPU with a silent fan+heatsink
3. try the 2 silent fans setup described above (most likely won't work well)?
4. Try the 2 silent fans but with both fans on the external sides, blowing air inside (against each other). But that would mean that the hot air would go in between the heatsinks, where there's like 1 cm of space between the two. Bad airflow, I might have to add fans to the side of the case or something.
I feel more like going for n°2 because:
- (much?) less noise
- 2x6 cores? Who needs this much? I see it's worth it for Handbrake for example (though one 6 cores should suffice), what can it be useful for as well?
N°4 is now also an option, and a nice compromise between silence and power.
But I'll have to check. Not sure it's a good idea.
I'm hesitating because:
- I already have two CPUs, and it feels weird using only one when I have 2 spots available.
For now, 1 CPU is most likely enough. So I can go with the more quiet fan.
But wanting to use 2 CPUs just because I can, and definitely no wanting server-like noises, having 2 quiet CPUs blowing air towards each other is an option, but definitely no optimal since they kinda cancel each other.
One last option would be to put only a heatsink on the second CPU (it should fit), thus using air from the quiet CPU fan. But that would work only with solid additional case fans from the side or something.
Specially since the air from the CPU fan would hit the single heatsink sideways (the air not going inside).
So basically, is one 6 cores CPU enough even for high-end tasks?
And is there a solid solution for using two CPUs silently?
Multi-threaded (aka parallel) applications take advantage of several cores... but, currently, almost no desktop application is multi-threaded. Mozilla, with its dozens of developers, is only starting to split Firefox into *two* processes: https://wiki.mozilla.org/Electrolysis
Going sequential to multi-thread means rewriting code. And the new code is much harder to write. And not all tasks benefit from parallelizing in the first place.
Notice however that several cores allow to perform several heavy tasks (such as transcoding) and still have a reactive system: launching one more application will be fast as long as at least one core still is mostly idle. But that is not common on a desktop system. That is why I would say four cores already is many (again: for a *desktop* system).
I see, so with 6 cores, I'd have plenty.
It's definitely going to be a desktop system, nothing with many VMs or simultaneous connections.
Besides having an empty CPU spot feeling itchy,
I'll probably go with the "1 CPU, 1 quiet fan/heatsink" (gotta check the measurements again).
If I really need another CPU later, I can probably add a simple watercooling solution (quiet enough, and easier to fit). But that would cost a bit more, and I hope it's relatively maintenance free.
I'll definitely start "small" for now. Thanks for the Magic help of yours http://www.sherv.net/cm/emo/funny/2/banana.gif
I'll just add this option here if someone has the same issue:
I decided to try a silent heatsink+fan, and for the second CPU a noisy one (much much cheaper).
That's a Noctua http://noctua.at/en/nh-u12do-a3/specification
and a Dynatron F661.
Because I found out I can disable a CPU at will:
either in the GRUB config (so every time I restart, I keep the noisy CPU+fan turned off),
or with a command that can fire it up or shut it down.
That way, I can get more brainzpowa (with the added noise) only when needed. Hell, maybe even running both might be silent enough.
I have yet to try, so hopefully I didn't made a mistake on my calculations for the space needed on the mobo for both.
Worst case, it doesn't fit and I'd have lost 20 bucks, but I doubt it. It should work.
Btw, since in i3wm all shortcuts are a combination of keystrokes, is there a software I can use to add single keystroke shortcuts/commands?
Like using F1 for toggling CPU number 2 on/off?
Yes, 50dBA must be very loud. It seems anything more than 20 is considered loud.
You better be sure about using passive cooling. It was about smaller heatsinks, but reviews said it wasn't cooling at all.
But it might work at this size maybe.
Just in case, I'd make sure that the case airflow would go through it. If the front fans can reach them, it might be just fine. I'm not sure two of these would fit side by side though.
I might have made (another) small mistake : my CPU has a TDP of 137, which the Noctua cooler supports.
But I can't find any data about the Dynatron.
One thing I will try is to use the second Noctua fan (which I didn't plan to use since I'm out of space) in front of the Dynatron, as a support fan.
But I need to figure out how to immobilize it without glue (or anything definitive).
With some luck, I can set it up directly on the case.
Well, worst case I'd just use one CPU, can't be that bad.
Back for more stupidity on my part...
here's yet another example of bad planning:
I didn't expect my graphic card to be long enough to COVER one of the CPU slots...
How hard can it be to measure the whole thing before buying extra stuff I'll never need, like another CPU and another fan/cooler?
*sigh* At least the info might help others.