[gentoo-user] Migrate install from Intel 6th gen to AMD Zen 4
Hello, I will soon be upgrading from a mobile Skylake platform to a desktop Ryzen 7000 series and a full re-install is not an option unless all else fails. I'm thinking of simply moving the drive and recompile as necessary. I don't see why this wouldn't work, but wanted to double check with the community just in case. My existing make.conf has: COMMON_FLAGS="-march=skylake -O2 -pipe" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" My current strategy is: 00) Recompile kernel to support AMD CPU (already done) 01) Upgrade @world to avoid later dependency problems (already done) 1) Replace "-march=skylake" with "x86_64[-v1|v2|v3|v4]" or just "generic" 2) Run "emerge -1aqv @system" 3) Move drive to new system and boot 4) Update to "-march=znver4" 5) Update CPU_FLAGS_X86 with output of "$ cpuid2cpuflags" 6) Run "emerge -1aqv @system" 7) Reboot (optional, just in case) 8) Run "emerge -1aqv --emptytree --keep-going @world" 9) Fingers crossed it all goes well Am I missing anything critical that could break step (8) or any packages I should include in step (2) in addition to @system to avoid likelihood of segfaults? Best Regards, - V
Re: [gentoo-user] Migrate install from Intel 6th gen to AMD Zen 4
On Tue, Aug 29, 2023 at 6:22 AM Victor Ivanov wrote: > > My existing make.conf has: > > COMMON_FLAGS="-march=skylake -O2 -pipe" > CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse > sse2 sse3 sse4_1 sse4_2 ssse3" > > 1) Replace "-march=skylake" with "x86_64[-v1|v2|v3|v4]" or just "generic" > 4) Update to "-march=znver4" > 5) Update CPU_FLAGS_X86 with output of "$ cpuid2cpuflags" > > Am I missing anything critical that could break step (8) or any > packages I should include in step (2) in addition to @system to avoid > likelihood of segfaults? Well, you won't get segfaults so much as SIGILL, but I'd probably simplify a bit. I'm running on zen1 and these are my current flags: CFLAGS="-O2 -mtune=znver1 --param l1-cache-line-size=64 --param l1-cache-size=32 -pipe -funit-at-a-time -fstack-protector" I do have CPU_FLAGS_X86 set, but it seems like most of these are used by less critical packages, and I'm not sure how much trouble getting these wrong would be. As you can see I'm not even setting march. Maybe I could set it a little more aggressively and not risk any problems, but I'm concerned about the situation where I might have an unplanned CPU upgrade. My motherboard could die, and if it does I'd rather be able to just replace the motherboard+CPU and not have to fuss around with rebuilding my entire system from a rescue disk. I'm sure march performs better than mtune but I'd be surprised if the difference is more than a percent or two for most general purpose loads. If I had some high performance application that needed every clock cycle then I'd probably just build that one application with more optimizations. In general though your plan seems reasonable. Only thing I would probably consider is at least rebuilding all of @world with the unrestrictive -march setting. I might let it upgrade over time to the newer CPU optimizations, but having random stuff breaking until I rebuild @world seems like unnecessary pain. You say you're "thinking about upgrading" so it sounds like you aren't in a hurry and odds are you don't have the new hardware looking at you and begging you to boot it up. Doing a full @world rebuild is just a few cents worth of electricity and a day or two. That's how I'd look at it personally... -- Rich
[gentoo-user] Re: Migrate install from Intel 6th gen to AMD Zen 4
On 29/08/2023 13:22, Victor Ivanov wrote: Hello, I will soon be upgrading from a mobile Skylake platform to a desktop Ryzen 7000 series and a full re-install is not an option unless all else fails. I'm thinking of simply moving the drive and recompile as necessary. I don't see why this wouldn't work, but wanted to double check with the community just in case. The only thing I did after upgrading to a different platform (Intel to AMD) is *first* switching to sys-kernel/gentoo-kernel-bin on the old system, move my storage devices to the new system, and then switch back to sys-kernel/gentoo-sources on the new system. gentoo-kernel-bin is a pre-compiled kernel that serves as a fallback in case gentoo-sources won't boot. My CFLAGS are: -O2 -pipe -mtune=native -march=native -ftree-vectorize and didn't need changing. CPU_FLAGS_X86 did of course did need changing (with cpuid2cpuflags.) Usually, critical packages that serve to get you a command-line login don't end up using amy "weird" CPU instructions (like AVX512 or whatever), but other packages might. So it's best to rebuild @world once your new system can boot.
[gentoo-user] Jekyll on Gentoo using containers
Hello list, I'm trying to set a container up to run jekyll to build a blog, following a suggestion at the bottom of https://github.com/gentoo-ev/www.gentoo.de. This is my first foray into containers. So far I've installed lxc and followed https://wiki.gentoo.org/wiki/LXC as far as I can, but I'm now a bit stuck. Well, just stuck, actually. Jekyll is installed, and I want to create a blog in ~/common/myblog. First, do I need to mount a FUSE file system? Where? Next, I run $ sudo /etc/init.d/docker start ...and get this: $ cat /var/log/docker.log | cut -d \ -f 2- [to omit date & time] level=info msg="Starting up" level=error msg="failed to mount overlay: no such device" storage-driver=overlay2 level=error msg="exec: \"fuse-overlayfs\": executable file not found in $PATH" storage-driver=fuse-overlayfs level=error msg="Failed to built-in GetDriver graph btrfs /var/lib/docker" level=info msg="Loading containers: start." level=warning msg="Could not load necessary modules for IPSEC rules: protocol not supported" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address" level=info msg="Loading containers: done." level=warning msg="WARNING: No blkio throttle.read_bps_device support" level=warning msg="WARNING: No blkio throttle.write_bps_device support" level=warning msg="WARNING: No blkio throttle.read_iops_device support" level=warning msg="WARNING: No blkio throttle.write_iops_device support" level=info msg="Docker daemon" commit=4ffc61430bbe6d3d405bdf357b766bf303ff3cc5 graphdriver=vfs version=24.0.5 level=info msg="Daemon has completed initialization" level=info msg="API listen on /var/run/docker.sock" I assume lines 2 & 3 refer to a FUSE file system. What is line 4 telling me to do? I assme line 6 refers to IPv6, which is not used here. What else do I need to do? As with much else Gentoo, it's hard to reach a point where pertinent questions suggest themselves. -- Regards, Peter.
Re: [gentoo-user] Jekyll on Gentoo using containers
On Tue, 2023-08-29 at 15:31 +0100, Peter Humphrey wrote: > > $ cat /var/log/docker.log | cut -d \ -f 2- [to omit date & time] > level=info msg="Starting up" > level=error msg="failed to mount overlay: no such device" > storage-driver=overlay2 > level=error msg="exec: \"fuse-overlayfs\": executable file not found in > $PATH" storage-driver=fuse-overlayfs > level=error msg="Failed to built-in GetDriver graph btrfs /var/lib/docker" > level=info msg="Loading containers: start." > level=warning msg="Could not load necessary modules for IPSEC rules: protocol > not supported" > level=info msg="Default bridge (docker0) is assigned with an IP address > 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address" > level=info msg="Loading containers: done." > level=warning msg="WARNING: No blkio throttle.read_bps_device support" > level=warning msg="WARNING: No blkio throttle.write_bps_device support" > level=warning msg="WARNING: No blkio throttle.read_iops_device support" > level=warning msg="WARNING: No blkio throttle.write_iops_device support" > level=info msg="Docker daemon" > commit=4ffc61430bbe6d3d405bdf357b766bf303ff3cc5 graphdriver=vfs version=24.0.5 > level=info msg="Daemon has completed initialization" > level=info msg="API listen on /var/run/docker.sock" > Let's start at the top. When you built docker, did you get any feedback from Portage about missing or incorrectly set kernel configuration options? Docker has a strict list of things that it expects to be set (and not set) in your kernel configuration, and portage should let you know what it isn't happy about (at least it did in the past for me before correcting my configs) when you emerge it. Additionally, what USE flags do you have set for app-containers/docker?
Re: [gentoo-user] Jekyll on Gentoo using containers
On Tuesday, 29 August 2023 15:57:42 BST Matt Connell wrote: > Let's start at the top. > > When you built docker, did you get any feedback from Portage about > missing or incorrectly set kernel configuration options? Not that I remember, no. > Docker has a strict list of things that it expects to be set (and not set) > in your kernel configuration, and portage should let you know what it isn't > happy about (at least it did in the past for me before correcting my > configs) when you emerge it. > Additionally, what USE flags do you have set for app-containers/docker? app-containers/docker-24.0.5::gentoo USE="container-init seccomp -apparmor - btrfs -device-mapper -overlay (-selinux)" -- Regards, Peter.
Re: [gentoo-user] Jekyll on Gentoo using containers
On Tuesday, 29 August 2023 16:56:42 BST I wrote: > On Tuesday, 29 August 2023 15:57:42 BST Matt Connell wrote: > > Let's start at the top. > > > > When you built docker, did you get any feedback from Portage about > > missing or incorrectly set kernel configuration options? > > Not that I remember, no. > > > Docker has a strict list of things that it expects to be set (and not set) > > in your kernel configuration, and portage should let you know what it > > isn't > > happy about (at least it did in the past for me before correcting my > > configs) when you emerge it. > > > > Additionally, what USE flags do you have set for app-containers/docker? > > app-containers/docker-24.0.5::gentoo USE="container-init seccomp -apparmor > - btrfs -device-mapper -overlay (-selinux)" Hah! I spotted the -btrfs as soon as I hit Send (of course). Here's my /etc/portage/package.use/lxc: app-containers/containerd btrfs app-containers/docker btrfs overlay app-containers/lxc examples man sys-libs/libcap static-libs -- Regards, Peter.
Re: [gentoo-user] Jekyll on Gentoo using containers
On Tue, 2023-08-29 at 15:31 +0100, Peter Humphrey wrote: > Hello list, > > I'm trying to set a container up to run jekyll to build a blog, following a > suggestion at the bottom of https://github.com/gentoo-ev/www.gentoo.de. > This is my first foray into containers. The containers don't add anything of value here (or in most places people use them). You can look at the Dockerfile in the github repo to see what commands it uses to build the site. All you should have to do is mimic that: emerge jekyll, and run "jekyll build" in the repo. It builds a static site so you can open the resulting HTML right in your browser without setting up a whole ass web server.