[{"data":1,"prerenderedAt":25},["ShallowReactive",2],{"$f1j60tqkfebsp5":3,"$f1zgouax1rzxt2":23},[4,10,17],{"id":5,"meta":6,"type":9},"math-ia-notes",{"title":7,"embed":8},"Math IA Notes",true,"typst",{"id":11,"meta":12,"type":16},"archive\u002Farch-on-arm",{"title":13,"date":14,"description":15},"Arch on (generic) ARM","3\u002F9\u002F2023","How to install generic Arch Linux ARM.","markdown",{"id":18,"meta":19,"type":16},"archive\u002Fgentoo-on-arm",{"title":20,"date":21,"description":22},"Gentoo on ARM","3\u002F2\u002F2023","The various hurdles of installing gentoo on an ARM computer.",{"content":24},"---\ntitle: \"Gentoo on ARM\"\ndate: \"3\u002F2\u002F2023\"\ndescription: \"The various hurdles of installing gentoo on an ARM computer.\"\n---\n\n## The context\n\nOne day, I was using my M1 mac to look at the gentoo docs for fun. I wanted to try and install gentoo on an ARM VM using UTM, but when I looked at the handbook, it was empty. I then just abandoned the idea and installed it instead on an x86_64 VM. But I wanted to come back to it, because it was a cool project, and see if I could do it.\n\n## Setting up\n\nFirst off, you should use the [AMD64 handbook](https:\u002F\u002Fwiki.gentoo.org\u002Fwiki\u002FHandbook:AMD64\u002FFull\u002FInstallation) for most of the proccess. This post will mainly cover the differences and what tweaks you have to do rather than a full handbook.\n\n## Warning\n\nYou probably shouldn't do this on real hardware, and good luck if you're trying to use real hardware or you want graphics.\n\n## The ISO\n\nJust use the arm64 iso. Gentoo **does** support arm64, it's just the install guide is missing. This means that (at least some) packages **will** compile on arm64.\n\n## The stage tarball\n\nUse the arm64 stage tarball, obviously. I made the mistake of using an amd64 stage tarball, and not suprisingly, it didn't work.\n\n## The system logger\n\nThe gentoo install guide recommends [sysklogd](https:\u002F\u002Fpackages.gentoo.org\u002Fpackages\u002Fapp-admin\u002Fsysklogd), but you might get an error when you try and compile it, because it isn't stable on ARM yet.\n\nYou can use the two other options listed, [syslog-ng](https:\u002F\u002Fpackages.gentoo.org\u002Fpackages\u002Fapp-admin\u002Fsyslog-ng), or [metalog](https:\u002F\u002Fpackages.gentoo.org\u002Fpackages\u002Fapp-admin\u002Fmetalog). For syslog-ng, you can just install it using `emerge` and then enable the service with openrc, like so:\n\n```sh\nrc-update add syslog-ng default\n```\n\nThis is all assuming you **want** a system logger, because you don't actually need one. If you go the systemd route, you don't need to do any of this, because systemd ~~forces upon you~~ uses it's own logger.\n\n## The bootloader\n\n**Note**: I will not cover MBR booting, because I don't feel like it. This is surprisingly simple, just specify to GRUB you're using arm64:\n\n```sh\necho 'GRUB_PLATFORMS=\"efi-64\"' >> \u002Fetc\u002Fportage\u002Fmake.conf\nemerge --ask sys-boot\u002Fgrub\ngrub-install --target=arm64-efi --efi-directory=\u002Fboot\ngrub-mkconfig -o \u002Fboot\u002Fgrub\u002Fgrub.cfg\n```\n\nand you're done!\n\n## Conclusion\n\nThe primary reason you might run into issues with this guide is the same reason there isn't an official one: ARM devices vary wildly, and you are bound to run into issues with a single one-size-fits-all guide. But, this guide does work on UTM when I tested it, so take that as you will. Gentoo is an awesome distro, and is very unique in it's customizability, and I would recommend to every computer nerd to give it a go.\n",1792738465188]