site  contact  subhomenews

Lenovo 510S 07ICB on steroids

September 29, 2021 — BarryK

After I posted about difficulties with compiling Chromium, received some feedback -- thanks for the help guys! Previous blog post:

https://bkhome.org/news/202109/chromium-almost-compiled-fails-last-link-step.html

Jon did some research, what hardware people are recommending, who have successfully compiled Chromium. This is Jon's email:

just a few notes from help messages on chromium.googlesource.com

>All seem to have these as common requirements

   System requirements

 * A 64-bit Intel machine with at least 8GB of RAM. More than 16GB is
   highly recommended.
 * At least 100GB of free disk space.
 * You must have Git and Python v3 installed already (and |python3|
   must point to a Python v3 binary).

>another message said to turn your swap partition off if it's not a ram or a ssd partition, something about chromium's builder will build better and can stuff-up your hard drive from disc-thrashing. Something about it will use a swap file/partition if it's available, it's built in the program code to do so.

>another said they had "I have successfully built Chromium using a 2GHz Core2 Duo (2 cores, then) machine with 2 GB RAM.The minimal required disk space is about 20 GB (SSD is not required), I guess. Googlers with a lot of cores, a lot of RAM and an SSD, build Chrome really really fast, thought, like, less than an hour (or even less than half an hour), I think. Awesome!"

>and someone was bragging thay have 64gig of ddr4 and it takes just over 1 hour.

>and finally from a professional builder, although he seems to mainly build on windows.
<https://twitter.com/sinclairinator> <https://www.linkedin.com/in/jeremy-sinclair-39b6256>

  Building Chromium from source

Posted on April 29, 2019 with

Google’s open-source Chromium browser has been gaining a lot of interest from me, as I’ve been trying to build it for ARM64 since January. This past month, I’ve FINALLY accomplished making an ARM64 native build – which is very exciting due to the slowness of x86 translation. If you’re reading this I’m sure you want to know how to build it yourself. Luckily Google has provided some awesome documentation <https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md> for compiling, but I’m going to skip past the parts that may confuse others. Let’s get to it!

   Prerequisites

The most important part of this build process is making sure the prerequisites are met. I’ve gone through this numerous times, only to fail at the end and have to start over (which is NOT fun).

Here’s the minimum requirements I recommend:

 * *Quad-core Core i7, Xeon, or AMD Ryzen Desktop equivalent processor
   from at least 2015.
   *Even though you CAN build with a mobile processor, I wouldn’t. This
   thing needs some serious power to run through the crazy amount of
   clang threads that get invoked to compile the files.
 * *16 GB RAM.
   *This is a very intensive build process, don’t do this to yourself
   by only rolling with 8GB of RAM or less.
 * *100 GB of free space.*
   You can get away with having 50GB free, but you’re not going to have
   much of anything left over.
 * *M.2 or SSD.*
   You DO NOT want to try this with a platter drive, because you will
   completely suffer.

It took 5 hours to build for me and that’s simply because I’m using an old i7.

Holden recommended that to get blazing-fast speed, I build a new PC with AMD Ryzen CPU. He posted links to suitable motherboard, etc.

Yes, maybe will go for a Ryzen-based system in the future. For now, decided to enhance my Lenovo PC. A very modest 8th generation Intel i3 CPU, but there are things that can be done for, hopefully, a successful and reasonably fast build of Chromium. I bought the Lenovo in March 2020, blog post:

https://bkhome.org/news/202003/mke2fs-created-wrong-block-size.html

Online docs:

https://bkhome.org/news/202003/documentation-for-lenovo-ideacentre-510s-07icb.html

In 2020, I added a 8TB HDD and a 512GB nvme SSD in a PCI-E slot (the PC already had a 256GB nvme SSD). Today I bought two Kingston 16GB DDR4 RAM modules, so now the PC has 32GB RAM.

EasyOS has 'memtester' utility, from the commandline without X11 running, ran "memtester 30G 1" and it tested OK.

At bootup, the 'init' script in the initrd mounts a tmpfs on /tmp, set to maximum of half the free RAM space. I see that as a potential conflict, so have changed the 'init' script to load a 44GB ext4 partition in the SSD on /tmp. This is how 'init' is modified:

 #mount -t tmpfs -o size=${HALFK}k tmpfs /easy_new/tmp
rm -rf /easy_new/tmp/*
sync
mount -t ext4 /easy_new/dev/nvme0n1p5 /easy_new/tmp
rm -rf /easy_new/tmp/*
sync

.../tmp is supposed to startup empty, hence the "rm" operation.

Previously, had a 24GB swap partition on the magnetic-platter HDD. Have deleted that partition and created a 64GB swap partition on the SSD.

So, have really pumped steroids into this Lenovo, it will be very interesting to see how well Chromium compiles!

EDIT 2021-09-30:
Yay, chromium compiled! Not sure exactly how long, as I went out shopping, got back and it was completed, think about 12 hours. Still used an external usb3 ssd with the source.

However, the chromium binary is huge, 644Mb after stripping. Need to look at how to get it to use more system libraries. Currently, building with many libraries, such as icu and ffmpeg, linked statically. Hmmm, but think the official x86_64 chromium binary has icu and ffmpeg linked statically, and the binary is only 174MB.    

Tags: easy