You are not logged in.

#1 2020-09-29 03:35:04

SDRausty
Member
Registered: 2020-09-29
Posts: 14
Website

File is corrupted

I am trying to install Arch Linux 32 on my aarch64 Android smartphone.  I have successfully installed different versions of Arch Linux in this smartphone, but cannot successfully install Arch Linux 32:

[12:00~]$ uname -m
aarch64
[12:00~]$ startarch+armeabi-v7a c uname -m
armv7l
[12:00~]$ startarch+x86_64 c uname -m
x86_64
[12:01~]$ startarch+x86 c uname -m
i686
[12:01~]$ startarch c uname -m
aarch64

Here are some of the errors:

error: could not open file /var/cache/pacman/pkg/archlinux32-keyring-transition-20200408-1-any.pkg.tar.zst: Unrecognized archive format
error: failed to commit transaction (cannot open package file)
Errors occurred, no packages were upgraded.
error: gzip: signature from "Andreas Baumann (sign) <mail@andreasbaumann.cc>" is unknown trust                                                          
:: File /var/cache/pacman/pkg/gzip-1.10-3.0-i686.pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n]                                             
error: failed to commit transaction (invalid or corrupted package (PGP signature))                                                                      
Errors occurred, no packages were upgraded.

I have researched this topic for some time and have found no answers that work.  Since my smartphone does not have a CD/DVD drive, a rootfs is used for the installation.  The rootfs system is from:

https://archive.archlinux.org/iso/2017.03.01/archlinux-bootstrap-2017.03.01-i686.tar.gz

It is over three years old.  Are there any newer root file systems available for download?

I have tried many methods to resolve this error.  If newer root file systems are unavailable for download, what can be done to resolve this error?

Offline

#2 2020-09-29 05:41:26

levi
Moderator
From: Yorkshire, UK
Registered: 2018-06-16
Posts: 690

Re: File is corrupted

Yes, those issues come from using an old pacman and keyring I strongly suspect.  The upstream arch changed archive format since then, and we followed suit, so the old pacman in your rootfs won't be able to install new packages in zst format.  And similarly it won't have the right pacman-keyring, so packages signed with newer keys won't even validate.

There seem to be newer isos available here: https://archive.archlinux32.org/iso/


Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.

Offline

#3 2020-09-29 12:58:10

SDRausty
Member
Registered: 2020-09-29
Posts: 14
Website

Re: File is corrupted

Alas an iso is not a rootfs and cannot be used to install Arch Linux without a CD/DVD drive in a smartphone. 

levi wrote:

won't have the right pacman-keyring, so packages signed with newer keys won't even validate.

Thank you for explaining why Arch Linux 32 will not install.  I've tried updating the keyring.  This gave the same errors that I mentioned in the first post.

levi wrote:

newer isos available here: https://archive.archlinux32.org/iso/

Since my smartphone does not have a CD/DVD drive, a rootfs is used for the installation.

I had a big dream. Run Wine for X86 on aarch64 platform and run my favourite audio games for visually impaired by using Linux on Android device by using PRoot.

The last quote is from this issue Implementing QEMU #25 at GitHub. Can a newer rootfs be published as the old one is out of date?

Last edited by SDRausty (2020-09-29 13:02:37)

Offline

#4 2020-09-29 14:18:02

levi
Moderator
From: Yorkshire, UK
Registered: 2018-06-16
Posts: 690

Re: File is corrupted

Yes, even installing just the keyring package will fail with the same problems I mentioned previously.

It shouldn't be beyond the wit of man to make a rootfs tar.gz file from an iso, but I've not looked into it yet.  I did download your 2017 rootfs and inspected it, and discovered that it's basically a root fs under a root.i686 folder.  I don't currently have an archlinux32 iso on this machine to compare, but if I were to get one to check out, I'd download it, then mount it to a convenient folder.  If the code isn't already under a root.i686 folder you might need to jump through a few hoops to make it look right for use in a rootfs, but through creative naming of your mount point and the use of soft links, it should be doable.

Edit: I'll note that archlinux32 has never supplied rootfs tar files.  That rootfs you're using is a historic one from the upstream arch64 project from before the split.

Last edited by levi (2020-09-29 14:20:13)


Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.

Offline

#5 2020-09-29 16:32:02

SDRausty
Member
Registered: 2020-09-29
Posts: 14
Website

Re: File is corrupted

Thank you for taking the time to examine this topic and explaining the cause of the difficulties.  The mount point does not have to be root.i686. This code proot --link2symlink -0 bsdtar -x -p -f "$IFILE" --strip-components 1 handles the unpacking process for x86 and x86_64.  The Arch Linux arm root file systems do not need to use the --strip-components option.

make a rootfs tar.gz file from an iso

Anyone with a computer should be able to make a root file system from the system that is installed in their computer.  Our smartphones are our computers in this project.  The smartphone is the computer and the rules of Linux are slightly changed when used in an Android environment as everything must conform to the policies of Android.

creative naming of your mount point and the use of soft links, it should be doable.

Hard links in the rootfs are okay as the --link2symlink proot option translates these links to soft links.  The --strip-components option allows moving the mount point. 

don't currently have an archlinux32 iso on this machine to compare

Just to be clear about this thread, we use our smartphones like computers, and there are certain limitations when compared to a traditional Linux box. One of the reasons I am pursuing this is the topic of mobility.  I do not need to sit in a room with a box, keyboard and screen to use my machine.

Can a rootfs be added to the link you provided at https://archive.archlinux32.org/iso/ please so that users can download and install Arch Linux 32 into their smartphones as opposed to having to create the rootfs?

Last edited by SDRausty (2020-09-30 08:05:07)

Offline

#6 2020-09-29 20:53:55

levi
Moderator
From: Yorkshire, UK
Registered: 2018-06-16
Posts: 690

Re: File is corrupted

Sorry, looks like I skimmed your OP a little too quickly.  Given archlinux32 only supports a handful of x86 processors, and x86 or even x64-based phones are a historical anomaly only, I guess you're running this under some kind of emulation.

Maybe I'm an old fuddy duddy, but I didn't see this being a big use case before now.  Now I see the proot project then maybe as our old laptops and desktops meet the rusty skip in the sky, this will finally become the only real use for this old project.  But certainly thus far we've not really considered this use case.


Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.

Offline

#7 2020-09-30 06:54:58

abaumann
Administrator
From: Zurich
Registered: 2019-11-14
Posts: 203
Website

Re: File is corrupted

"Arch Linux 32 on my aarch64"

Archlinux32 is for the Intel IA-32 architecture only. :-)

Offline

#8 2020-09-30 07:25:37

SDRausty
Member
Registered: 2020-09-29
Posts: 14
Website

Re: File is corrupted

levi wrote:

some kind of emulation

The computer program nesting structure is not complex at all.   It is quite straightforward:
1. Android
2. Termux https://github.com/termux
3. PRoot  https://github.com/proot
4. QEMU  https://wiki.qemu.org

Steps 3 & 4 are automated once you get past step 2 which is a one tap Android install anyway.   This means you can run almost any architecture on an Android arm smartphone fairly easily. 

Root file systems are desired to make this process work.  Out of the five available architectures in Arch Linux, only Arch Linux 32 fails because the available root file system is out of date.

levi wrote:

That rootfs you're using is a historic one from the upstream arch64 project from before the split.

Can the root file system that is published in the Internet be updated please so I can use Arch Linux 32 in my Android smartphone again?

Last edited by SDRausty (2020-09-30 13:34:12)

Offline

#9 2020-09-30 07:49:55

SDRausty
Member
Registered: 2020-09-29
Posts: 14
Website

Re: File is corrupted

abaumann wrote:

Archlinux32 is for the Intel IA-32 architecture only. :-)

SDRausty wrote:

I have successfully installed different versions of Arch Linux in this smartphone, but cannot successfully install Arch Linux 32.

The one tap install that also configures the Arch Linux system in Android is available at this link https://termuxarch.github.io/TermuxArch/ 

It is quite amazing what can be done in the palm of a hand with an Android smartphone. My most recent machine which I got for free from the smartphone shop has 8 processors and 128 GB of space built in, which is expandable to 4TB. 

Without a current root file system for Arch Linux 32, there is NO one tap install on Android! Labor intensive installs of Arch Linux 32 on arm architecture Android are possible, but who would want to do that? And why? 

One tap install and configuration is the way to go. Can an updated root file system for Arch Linux 32 be made available again so one tap install and configuration might be possible with Arch Linux 32 please?

Last edited by SDRausty (2020-09-30 16:32:59)

Offline

#10 2020-09-30 17:31:44

levi
Moderator
From: Yorkshire, UK
Registered: 2018-06-16
Posts: 690

Re: File is corrupted

Well, the question to my mind is why would anyone want to run arch32 when they could just run the mainline archlinux project by emulating x64 instead of x86.  And they do ship bootstrap tar files for all of sundry. In my experience of playing with QEMU on an x64 system I've inherited, performance even emulating x86 wasn't comfortable, and I thought my tolerance for crusty hardware was high, but what do I really know you'll be able to do.


Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.

Offline

#11 2020-09-30 20:17:40

SDRausty
Member
Registered: 2020-09-29
Posts: 14
Website

Re: File is corrupted

levi wrote:

why would anyone want to run arch32 when they could just run the mainline archlinux project by emulating x64

You asked a very good question levi.  The best answer that I can come up with is TermuxArch has supported all the architectures of Arch Linux since 2017.  Users enjoy the Arch Linux distribution primarily because of stability on Android. 

Recently, the QEMU option was added.  This enables two tap Arch Linux install and configuration with emulation on Android.  All the Arch Linux architectures were retested thoroughly last week.   A root file system is wanted to make this work.  This is how Arch Linux 32 was incorporated into this installation script back in 2017.

Users want it.  Here is a requote from my initial post from one of the Arch Linux on Android users:

I had a big dream. Run Wine for X86 on aarch64 platform and run my favourite audio games for visually impaired by using Linux on Android device by using PRoot.

levi wrote:

my experience of playing with QEMU

The command `setupTermuxArch q`  installs and configures Arch Linux with emulation on an Android smartphone in many architectures.   Have you played with this command and Arch Linux 32 on Android?

You also mentioned a good reason earlier too:

levi wrote:

will finally become the only real use for this old project.

To sum up the reason I am pursuing this topic is Arch Linux 32 has been supported for almost four years now on Android through TermuxArch.  It would be nice to see it fully incorporated again as users desire Arch Linux 32.

If creating and publishing an updated Arch Linux 32 root file system is impossible, which files should be changed in the old Arch Linux 32 root file system so that it can be updated?  Which files should be changed so it can install the Arch Linux 32 keyring?  Unzipping and overlaying these files in the rootfs might be the easiest solution.  What do you think?

Last edited by SDRausty (2020-09-30 21:14:27)

Offline

#12 2020-10-01 06:00:28

abaumann
Administrator
From: Zurich
Registered: 2019-11-14
Posts: 203
Website

Re: File is corrupted

Aha, I completely misunderstood the purpose here, sorry about that. :-)
And I also misjudged the power of modern ARM64 CPUs, it seems.

Offline

#13 2020-10-01 08:12:22

levi
Moderator
From: Yorkshire, UK
Registered: 2018-06-16
Posts: 690

Re: File is corrupted

SDRausty wrote:

The command `setupTermuxArch q`  installs and configures Arch Linux with emulation on an Android smartphone in many architectures.   Have you played with this command and Arch Linux 32 on Android?

No, I don't have any devices that run google's spyware.

SDRausty wrote:

If creating and publishing an updated Arch Linux 32 root file system is impossible, which files should be changed in the old Arch Linux 32 root file system so that it can be updated?  Which files should be changed so it can install the Arch Linux 32 keyring?  Unzipping and overlaying these files in the rootfs might be the easiest solution.  What do you think?

Seems much harder than just repacking a boot iso to me, but I haven't tried to do either yet, so I can't be sure.


Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.

Offline

#14 2020-10-01 21:46:42

SDRausty
Member
Registered: 2020-09-29
Posts: 14
Website

Re: File is corrupted

levi wrote:

much harder than just repacking a boot iso to me, but I haven't tried to do either yet, so I can't be sure.

Unpacking the root file system is not the problem at all.  The command `setupTermuxArch q' attempts to install and configure Arch Linux with emulation on an Android smartphone in many architectures, including Arch Linux 32.

SDRausty wrote:

Alas an iso is not a rootfs and cannot be used to install Arch Linux without a CD/DVD drive in a smartphone.

Alas an iso is not a rootfs and cannot be used to install Arch Linux without a mounted drive in an Android smartphone, USB OTG included.

Offline

#15 2020-10-01 21:51:32

SDRausty
Member
Registered: 2020-09-29
Posts: 14
Website

Re: File is corrupted

abaumann wrote:

the power of modern ARM64 CPUs

The armv7l architecture is included too.

The power of our minds when we work together.

Last edited by SDRausty (2020-10-01 21:51:54)

Offline

#16 2020-10-01 21:55:30

SDRausty
Member
Registered: 2020-09-29
Posts: 14
Website

Re: File is corrupted

armv7l architecture

armv7l 32 bit architecture

Offline

#17 2020-10-01 22:04:45

levi
Moderator
From: Yorkshire, UK
Registered: 2018-06-16
Posts: 690

Re: File is corrupted

SDRausty wrote:
SDRausty wrote:

Alas an iso is not a rootfs and cannot be used to install Arch Linux without a CD/DVD drive in a smartphone.

Alas an iso is not a rootfs and cannot be used to install Arch Linux without a mounted drive in an Android smartphone, USB OTG included.

Yes, which is why I talked about repacking it so that it resembled a rootfs rather than a live iso.

I think the comment about 64-bit ARMs was more about the host architeture than what it can emulate.


Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.

Offline

#18 2020-10-01 22:38:44

SDRausty
Member
Registered: 2020-09-29
Posts: 14
Website

Re: File is corrupted

levi wrote:

comment about 64-bit ARMs was more about the host architecture than what it can emulate.

Thank you for clarifying Levi.  Yes, this comment reply with abaumann has to do with host architecture.

levi wrote:

repacking it so that it resembled a rootfs rather than a live iso.

The method Arch Linux x86_64 uses seems to be working fine.  Is it possible to use this method with the Arch Linux 32 project?

Offline

#19 2020-10-01 22:50:17

levi
Moderator
From: Yorkshire, UK
Registered: 2018-06-16
Posts: 690

Re: File is corrupted

If you want to do the work to enable it then sure.  Otherwise we're really just a hobbyist project, and the filesystem is there, we leave it up to you to pack it up as you want to.


Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.

Offline

#20 2020-10-04 19:19:31

SDRausty
Member
Registered: 2020-09-29
Posts: 14
Website

Re: File is corrupted

levi wrote:

If you want to do the work to enable it then sure.

Well it's good like that we've gotten to base 1.  Thank you.  I've shared a little bit of information about what we're doing here Implementing QEMU #25 at GitHub.  This topic expands to other architectures of Arch Linux. 

Maybe someone with the bandwidth, expertise, hardware and time will step forward and resolve this matter of rootfs publication for Arch Linux 32.  One of the questions that I have is:  Can the root file system be incorporated into Arch Linux 32 https://archive.archlinux32.org/iso/ like it was in 2017 for Arch Linux https://archive.archlinux.org/iso/2017.03.01?  If so how?

levi wrote:

the filesystem is there

Where's the source code to Arch Linux 32 iso creation and publication?  This information should help this topic immensely.

Last edited by SDRausty (2020-10-04 19:25:48)

Offline

#21 2020-10-04 19:28:22

abaumann
Administrator
From: Zurich
Registered: 2019-11-14
Posts: 203
Website

Re: File is corrupted

Last time I checked there where Vargrant scripts in https://git.archlinux32.org/releng/
and https://git.archlinux32.org/archiso32/.

But I was not successful to build a i486 veresion of the ISO so far..

The easiest root file system is created just with pacstrap (eventually fiddling the
architecture in /etc/pacman.conf properly)... I do this on machines which either have
no network boot andr no CDROM drive (for instance directly pacstrap onto a CompactFlash
card).

Offline

#22 2020-10-04 19:51:57

SDRausty
Member
Registered: 2020-09-29
Posts: 14
Website

Re: File is corrupted

abaumann wrote:

build a i486 veresion of the ISO

I'm not sure if architecture i486 can be emulated in architecture x86.  Based on arm architecture results probably so including i386 as far as PC architectures go. 

The arm architecture Arch Linux test results were positive for armv5 emulated in modern aarch64 architecture.  And based on these results I suspect that all Arch Linux x86 architecture results should also be positive if we ever get around to testing them.

Last edited by SDRausty (2020-10-04 19:52:31)

Offline

#23 2020-10-04 20:38:56

levi
Moderator
From: Yorkshire, UK
Registered: 2018-06-16
Posts: 690

Re: File is corrupted

On a real x86 based system, then sure just don't use any MMX opcodes and it should run on a 486.  I guess the real question is can you persuade qemu to make  those opcodes invalid.  But I seem to remember that last time I played with Qemu I told it to emulate an 80386, so doing an i486 seems to me like the sort of thing it should be able to do.


Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.

Offline

#24 2020-10-05 06:19:44

abaumann
Administrator
From: Zurich
Registered: 2019-11-14
Posts: 203
Website

Re: File is corrupted

Ah, right, I forgot I'm bootstrapping from x86_64 usually. :-)

Offline

#25 2020-10-21 18:53:19

SDRausty
Member
Registered: 2020-09-29
Posts: 14
Website

Re: File is corrupted

I have updated the automation of the Arch Linux 32 qemu installation for Android today;  The mirror list and resolve config improvements install the system in two taps on modern smartphones. It appears that the root file system published back in 2017 is updatable:

Total Download Size:   116.71 MiB
Total Installed Size:  455.75 MiB
Net Upgrade Size:      124.48 MiB

The errors mentioned at the beginning of this issue still linger and prevent the Arch Linux 32 system from updating properly.  Output when trying to install the sudo package:

error: sudo: signature from "Erich Eckner (just to sign arch packages) <arch-packages@eckner.net>" is unknown trust
:: File /var/cache/pacman/pkg/sudo-1.9.3.p1-1.0-i686.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n]
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occurred, no packages were upgraded.

What is the simplest way to resolve this error without creating and publishing an updated root file system?

Offline

Board footer

Powered by FluxBB