My journey getting Arch working on N2+

Post Reply
david_sankel
Posts: 10
Joined: Sat Jan 14, 2023 11:30 am
languages_spoken: english
ODROIDs: N2+
Has thanked: 3 times
Been thanked: 3 times
Contact:

My journey getting Arch working on N2+

Post by david_sankel »

Hi all, I'm super excited with my new N2+ computer running Arch Linux. I wanted to share with others what I needed to do to get it working and updated outside of the instructions I found online.

The first thing I did was load to my eMMC with the Gnome image from ArchDroid.

I booted it when connected to a mouse, keyboard, and HDMI monitor and it worked like a charm. Hurrah!

The next thing I did was try to update Arch Linux as every longtime Arch user is prone to do (pacman -Syu).

The update failed. For some reason the pre-installed yay package was tied to an older version of pacman and prevented the whole update. Since I know yay is optional I did pacman -R yay and then did pacman -Syu again. That was able to get me past that issue. (to be sure, before I figured out that solution, I made some big missteps and had to start from scratch again)

When I rebooted things kinda worked, but both the boot messages and the graphical interface had a strange blue tint on it. I found this thread and took the advice there to install the linux-amlogic-515 kernel to replace the pre-installed linux-amlogic-panfrost-510 which I noticed was no longer even present on the archlinuxdroid package list. pacman -S linux-amlogic-515 linux-amlogic-515-headers

When I rebooted, the color issue was fixed. The next problem I ran into was that the screen was using a lower resolution than what my screen can handle (1920x1080@60 instead of 2560x1440@60). I tried various changes to /boot/boot.ini but none of them worked. I did notice that my /boot/boot.ini wasn't the pretty one that I saw elsewhere with lots of comments. I figured that might be the problem.

It turns out there's an odroid-bootini script that is part of archdroid's uboot-odroid-n2plus package. It is supposed to update your /boot/boot.ini with a nice version. It wasn't working for me because my boot.ini had a line in it that prevented the script from updating the file. To fix this I made a backup copy of the file cp /boot/boot.ini /boot/boot.ini.old and reran the script. Great, now I had a nice looking boot.ini file!

However, it still didn't solve the display issue. I noticed though that there was a different Linux kernel in the ArchDroid package list called linux-odroid-518. I didn't like that it wasn't as new as 519, but I figured I'd give it a try. pacman -S linux-odroid-515 linux-odroid-515-headers Turns out that fixed the display problems! I looked a bit deeper into this package and saw it was coming from a branch from a user called tobetter who seems to work for hardkernel. That made me feel better.

So, now I have (as far as I know) a fully functional and up-to-date Arch Linux box! I hope this helps someone else out, but I think even better would be to put out some more up-to-date images so folks won't have to go through this same process :). If someone knows how I can help contribute to that, please let me know.

I'm an Arch Linux veteran, but I'm quite new to odroid machines. I'd appreciate it if anyone could help answer a few questions:

Questions
- Why is there this ArchDroid thing that is different from Arch Linux ARM? The ArchDroid page says "The ideal situation would be for the changes provided by this project to get merged upstream". Why is this being held up? What can be done here?
- I noticed that tobetter's kernel fork includes an "odroid-5.19.y" branch. Can we safely update to this? How about "odroid-6.2.y"? Are the panfrost branches still relevant?
These users thanked the author david_sankel for the post:
mctom (Sat Jan 14, 2023 8:50 pm)

User avatar
tobetter
Posts: 11630
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: Many
Location: Paju, South Korea
Has thanked: 804 times
Been thanked: 1965 times
Contact:

Re: My journey getting Arch working on N2+

Post by tobetter »

Firstly, welcome to ODROID forum.

Secondly, boot.ini is a boot script for ODROID and it helps to load boot elements - kernel/initramfs/device via a boot loader (U-Boot). Most common/generic boot script name for U-Boot is boot.scr which is binary format and little bit difficult to change the contents since it's not pure text file. This problem leads to use a text file boot.ini for ODROID.

Thirdly, ArchDroid is leaded by @jgmdev who branded ArchLinux for ODROID a couple of years ago. There were a couple of major problems for display and GPU, specifically Panfrost, when we had Linux kernel version 5.8~5.10 or around then later Panfrost driver is merged into upstream kernel. (Thank you again to Panfrost team). As it is stated, ideal goal is to upstream the changes to official Arch Linux and why this does not happen is no one is requesting the changes to Arch Linux team who manages official version. I have zero experience Arch Linux so I have no idea about their version management.

I am tobetter - it's very obvious LoL - and the kernel version what you found are running by me as personal project. Since I am working for Hardkernel, personal project here would be non-sense but started as a private and becomes a bit larger now. My kernel branches in Github under my account are keep updating the kernel version from time to time, my intention is to help and support ODROID specific features which is not yet in upstream kernel or non-standard features. Currently the highest version is 6.1 but I would suggest 6.0 and 6.2 is not good yet. I prefer stable one than higher or recent one. As of now, upstream vanilla kernel itself contains the patches for ODROID-C4/HC4/N2/N2Plus/N2L and plus so it would be fine to use the upstream kernel version instead of my branch.

If you are interesting and happy to make your journey longer, please do not hesitate to share your experience and doubts to here. So I and we can help you to expand your needs and share with others.
These users thanked the author tobetter for the post:
david_sankel (Sun Jan 15, 2023 10:27 am)

User avatar
mctom
Posts: 2735
Joined: Wed Nov 11, 2020 4:44 am
languages_spoken: english, polish
ODROIDs: OGA, XU4, C2, M1, H3+, SP3, Vu8M
Location: Gdansk, Poland
Has thanked: 366 times
Been thanked: 479 times
Contact:

Re: My journey getting Arch working on N2+

Post by mctom »

I'd be super excited to see a Arch or Manjaro release for N2L. When I think about it, wow.
(N2L is basically the same as N2+ but lacks a few features and has a different RAM type. Not sure how it affects the OS, but we've been told the same image won't work)

Thanks for sharing your findings.
These users thanked the author mctom for the post:
david_sankel (Sun Jan 15, 2023 10:27 am)
Punk ain't no religious cult, punk means thinking for yourself!

Maintainer of PiStackMon

User avatar
rooted
Posts: 10037
Joined: Fri Dec 19, 2014 9:12 am
languages_spoken: english
Location: Gulf of Mexico, US
Has thanked: 788 times
Been thanked: 587 times
Contact:

Re: My journey getting Arch working on N2+

Post by rooted »

The necessary kernel changes for the N2L are minimal I believe but @tobetter would certainly know.

To the OP, thanks for sharing and welcome.
These users thanked the author rooted for the post:
david_sankel (Mon Jan 16, 2023 12:41 pm)

mrbglswrth
Posts: 1
Joined: Thu Jul 22, 2021 7:51 am
languages_spoken: english
ODROIDs: n2+
Has thanked: 0
Been thanked: 0
Contact:

Re: My journey getting Arch working on N2+

Post by mrbglswrth »

Hello, I need help.
I tried to follow the journey of david_sankel and downloaded the xz image from archdroid site and put it on an emmc card, then booted it. Booted into Xorg and did sudo pacman -Syu, accepting all the default options until i got to ":: mesa-devel-git and libva-mesa-driver are in conflict. Remove libva-mesa-driver? [y/N]", at which point i chose 'y' and uninstalled libva.
Then i ran into the problem with yay-bin dependency, just as david_sankel did, so I removed yay-bin.
After that it downloaded a bunch of files and seemingly updated my system. However, after I went to reboot, the colors were off, and there was a green tint to what should have been the black background of the screen, as described by david_sankel.
Just as david_sankels had done, I installed linux-amlogic-515 linux-amlogic-515-headers. Then I rebooted. But, it wouldnt start Xorg, instead showing a picture of a frowning computer monitor with the caption, 'oh NO! Something has gone wrong. A problem has occured and the system can't recover. Please contact a system administrator.' But, I could still login using the ctl-alt-F2 tty2 terminal.

my pacman -Syu update caused the removal hwids atk at-spi2-atk mesa-arm-git libva-mesa-driver libcanberra-pulse kvantum-qt5 sdl

I tried reinstalling qemu and libcanberra but it didnt help

cat /var/log/Xorg.0.log | grep EE yielded the following:
11.620] Current Operating System: Linux alarm 5.15.0-2-ARCH #1 SMP PREEMPT Wed Nov 17 00:15:41 AST 2021 aarch64
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 11.654] (EE) Failed to load module "fbdev" (module does not exist, 0)
[ 11.928] (EE) AIGLX error: dlopen of /usr/lib/dri/swrast_dri.so failed (libLLVM-14.so: cannot open shared object file: No such file or directory)
[ 11.928] (EE) AIGLX error: unable to load driver swrast
[ 11.928] (EE) GLX: could not load software renderer

I tried pacman -S linux-odroid-515 linux-odroid-515-headers but it did not work because the packages could not be found.

I tried to install xf86-video-fbdev and llvm-libs thinking that might help but it did not.

i makepkg'd the uboot-odroid-n2plus package and ran the odroid-bootini script after executing the command mv /boot/boot.ini /boot/boot.ini.bk, but it didnt seem to help.

I think my hardware isnt damaged because I am able to run an older version of alarm that I had modified and moth balled a little over a year ago with no problem. I just cant seem to update it now. When I do, it gives all kinds of errors when I try to run stuff, such as "GLIBC_3.4.30 required by libicuuc.so.72" when I try to run emacs, or /usr/lib/libc.so.6: version 'GLIBC_2.33' not found (required by git) /usr/lib/libc.so.6: version 'GLIBC_2.34' not found (required by git)

Its a shame because archlinux alarm was the only distro I could find for odroid n2+ that didnt pixelate chinese fonts. It was a decent desktop pc for a fraction of the price. Any helpful tips are appreciated.

Post Reply

Return to “Arch Linux ARM (ALARM)”

Who is online

Users browsing this forum: No registered users and 1 guest