Tag Archives: fedora

Now building Fedora/RISC-V “stage4” disk images

I’m happy to announce that Fedora/RISC-V, the project to bootstrap Fedora on the new RISC-V architecture, has reached a key milestone: We are now releasing clean “stage4” disk images which are built entirely from RPMs (ie. every file except two[1] are managed by RPM).

You can get the latest image from http://oirase.annexia.org/riscv/

To use it, you must enable my RISC-V tools copr:

# dnf copr enable rjones/riscv
# dnf install riscv-qemu riscv-pk

and you can then boot the stage4 directly using this qemu command[2]:

$ qemu-system-riscv -m 4G -kernel /usr/bin/bbl \
    -append vmlinux \
    -drive file=stage4-disk.img,format=raw -nographic

This is an early release and there are a few problems. The main one is that we lack a util-linux package, and thus there is no mount command so the disk image stays read-only after boot. You’ll see lots of errors like this at boot:

/init: line 16: mount: command not found
/init: line 19: mount: command not found
/init: line 20: mount: command not found

I hope to get that fixed soon.

There’s also no actual rpm command in the stage4, again because of a required dependency, and again that’s something that will be fixed real soon.

Many thanks go to David Abdurachmanov and Stefan O’Rear for their huge efforts building packages.

Notes:

[1] Because there is no systemd package yet, currently two extra files are added to the disk image which are not under the control of RPM: /init and /usr/bin/poweroff

[2] For real hardware, read this page

2 Comments

Filed under Uncategorized

Great list of Fedora riscv64 RPMs

Most of these were done by davidlt. The latest list is here. We’re getting close to having a referentially-complete RPM-built disk image.

acl-2.2.52-11.fc24.riscv64.rpm
attr-2.4.47-16.fc24.riscv64.rpm
bash-4.3.43-1.fc24.riscv64.rpm
bash-doc-4.3.43-1.fc24.riscv64.rpm
bc-1.06.95-16.fc24.riscv64.rpm
bison-3.0.4-4.fc25.riscv64.rpm
bison-devel-3.0.4-4.fc25.riscv64.rpm
bison-runtime-3.0.4-4.fc25.riscv64.rpm
bzip2-1.0.6-20.fc25.riscv64.rpm
bzip2-devel-1.0.6-20.fc25.riscv64.rpm
bzip2-libs-1.0.6-20.fc25.riscv64.rpm
bzip2-static-1.0.6-20.fc25.riscv64.rpm
chrpath-0.16-3.fc24.riscv64.rpm
coreutils-8.25-14.fc25.riscv64.rpm
coreutils-common-8.25-14.fc25.riscv64.rpm
coreutils-single-8.25-14.fc25.riscv64.rpm
cpio-2.12-3.fc24.riscv64.rpm
cracklib-2.9.6-3.fc24.riscv64.rpm
cracklib-devel-2.9.6-3.fc24.riscv64.rpm
cracklib-dicts-2.9.6-3.fc24.riscv64.rpm
dos2unix-7.3.4-1.fc24.riscv64.rpm
elfutils-0.166-2.fc24.riscv64.rpm
elfutils-devel-0.166-2.fc24.riscv64.rpm
elfutils-devel-static-0.166-2.fc24.riscv64.rpm
elfutils-libelf-0.166-2.fc24.riscv64.rpm
elfutils-libelf-devel-0.166-2.fc24.riscv64.rpm
elfutils-libelf-devel-static-0.166-2.fc24.riscv64.rpm
elfutils-libs-0.166-2.fc24.riscv64.rpm
expat-2.2.0-1.fc25.riscv64.rpm
expat-devel-2.2.0-1.fc25.riscv64.rpm
expat-static-2.2.0-1.fc25.riscv64.rpm
expect-5.45-22.fc24.riscv64.rpm
expect-devel-5.45-22.fc24.riscv64.rpm
expectk-5.45-22.fc24.riscv64.rpm
file-5.28-3.fc24.riscv64.rpm
file-devel-5.28-3.fc24.riscv64.rpm
file-libs-5.28-3.fc24.riscv64.rpm
filesystem-3.2-37.fc24.riscv64.rpm
findutils-4.6.0-7.fc24.riscv64.rpm
flex-2.6.0-2.fc25.riscv64.rpm
flex-devel-2.6.0-2.fc25.riscv64.rpm
flex-doc-2.6.0-2.fc25.riscv64.rpm
gawk-4.1.3-3.fc24.riscv64.rpm
gdbm-1.12-1.fc24.riscv64.rpm
gdbm-devel-1.12-1.fc24.riscv64.rpm
gmp-6.1.1-1.fc24.riscv64.rpm
gmp-c++-6.1.1-1.fc24.riscv64.rpm
gmp-devel-6.1.1-1.fc24.riscv64.rpm
gmp-static-6.1.1-1.fc24.riscv64.rpm
gperf-3.0.4-12.fc25.riscv64.rpm
grep-2.25-1.fc24.riscv64.rpm
gzip-1.8-1.fc24.riscv64.rpm
hostname-3.15-7.fc24.riscv64.rpm
info-6.1-3.fc24.riscv64.rpm
less-481-5.fc24.riscv64.rpm
libacl-2.2.52-11.fc24.riscv64.rpm
libacl-devel-2.2.52-11.fc24.riscv64.rpm
libattr-2.4.47-16.fc24.riscv64.rpm
libattr-devel-2.4.47-16.fc24.riscv64.rpm
libdb-5.3.28-14.fc24.riscv64.rpm
libdb-cxx-5.3.28-14.fc24.riscv64.rpm
libdb-cxx-devel-5.3.28-14.fc24.riscv64.rpm
libdb-devel-5.3.28-14.fc24.riscv64.rpm
libdb-devel-static-5.3.28-14.fc24.riscv64.rpm
libdb-sql-5.3.28-14.fc24.riscv64.rpm
libdb-sql-devel-5.3.28-14.fc24.riscv64.rpm
libdb-utils-5.3.28-14.fc24.riscv64.rpm
libedit-3.1-16.20160618cvs.fc24.riscv64.rpm
libedit-devel-3.1-16.20160618cvs.fc24.riscv64.rpm
libffi-3.1-9.fc24.riscv64.rpm
libffi-devel-3.1-9.fc24.riscv64.rpm
libsepol-2.5-9.fc25.riscv64.rpm
libsepol-devel-2.5-9.fc25.riscv64.rpm
libsepol-static-2.5-9.fc25.riscv64.rpm
libtool-2.4.6-11.fc24.riscv64.rpm
libtool-ltdl-2.4.6-11.fc24.riscv64.rpm
libtool-ltdl-devel-2.4.6-11.fc24.riscv64.rpm
libunistring-0.9.4-3.fc24.riscv64.rpm
libunistring-devel-0.9.4-3.fc24.riscv64.rpm
libutempter-1.1.6-8.fc24.riscv64.rpm
libutempter-devel-1.1.6-8.fc24.riscv64.rpm
libxml2-2.9.3-4.fc24.riscv64.rpm
libxml2-devel-2.9.3-4.fc24.riscv64.rpm
libxml2-static-2.9.3-4.fc24.riscv64.rpm
libxslt-1.1.28-13.fc24.riscv64.rpm
libxslt-devel-1.1.28-13.fc24.riscv64.rpm
lksctp-tools-1.0.16-5.fc24.riscv64.rpm
lksctp-tools-devel-1.0.16-5.fc24.riscv64.rpm
lksctp-tools-doc-1.0.16-5.fc24.riscv64.rpm
m4-1.4.17-9.fc25.riscv64.rpm
make-4.1-5.fc24.riscv64.rpm
make-devel-4.1-5.fc24.riscv64.rpm
nano-2.6.1-1.fc24.riscv64.rpm
ncurses-6.0-6.20160709.fc24.riscv64.rpm
ncurses-c++-libs-6.0-6.20160709.fc24.riscv64.rpm
ncurses-compat-libs-6.0-6.20160709.fc24.riscv64.rpm
ncurses-devel-6.0-6.20160709.fc24.riscv64.rpm
ncurses-libs-6.0-6.20160709.fc24.riscv64.rpm
ncurses-static-6.0-6.20160709.fc24.riscv64.rpm
nspr-4.12.0-1.fc24.riscv64.rpm
nspr-devel-4.12.0-1.fc24.riscv64.rpm
nss-3.25.0-6.fc24.riscv64.rpm
nss-devel-3.25.0-6.fc24.riscv64.rpm
nss-pkcs11-devel-3.25.0-6.fc24.riscv64.rpm
nss-softokn-3.25.0-3.fc24.riscv64.rpm
nss-softokn-devel-3.25.0-3.fc24.riscv64.rpm
nss-softokn-freebl-3.25.0-3.fc24.riscv64.rpm
nss-softokn-freebl-devel-3.25.0-3.fc24.riscv64.rpm
nss-sysinit-3.25.0-6.fc24.riscv64.rpm
nss-tools-3.25.0-6.fc24.riscv64.rpm
nss-util-3.25.0-2.fc24.riscv64.rpm
nss-util-devel-3.25.0-2.fc24.riscv64.rpm
openssl-1.0.2h-2.fc24.riscv64.rpm
openssl-devel-1.0.2h-2.fc24.riscv64.rpm
openssl-libs-1.0.2h-2.fc24.riscv64.rpm
openssl-perl-1.0.2h-2.fc24.riscv64.rpm
openssl-static-1.0.2h-2.fc24.riscv64.rpm
pcre-8.39-2.fc24.riscv64.rpm
pcre-cpp-8.39-2.fc24.riscv64.rpm
pcre-devel-8.39-2.fc24.riscv64.rpm
pcre-static-8.39-2.fc24.riscv64.rpm
pcre-tools-8.39-2.fc24.riscv64.rpm
pcre-utf16-8.39-2.fc24.riscv64.rpm
pcre-utf32-8.39-2.fc24.riscv64.rpm
perl-5.24.0-377.fc24.riscv64.rpm
perl-Compress-Raw-Bzip2-2.069-377.fc24.riscv64.rpm
perl-Compress-Raw-Zlib-2.069-377.fc24.riscv64.rpm
perl-core-5.24.0-377.fc24.riscv64.rpm
perl-Data-Dumper-2.160-377.fc24.riscv64.rpm
perl-DB_File-1.835-377.fc24.riscv64.rpm
perl-devel-5.24.0-377.fc24.riscv64.rpm
perl-Devel-Peek-1.23-377.fc24.riscv64.rpm
perl-Devel-PPPort-3.32-377.fc24.riscv64.rpm
perl-Digest-MD5-2.54-377.fc24.riscv64.rpm
perl-Digest-SHA-5.95-377.fc24.riscv64.rpm
perl-Encode-2.80-377.fc24.riscv64.rpm
perl-encoding-2.17-377.fc24.riscv64.rpm
perl-Errno-1.25-377.fc24.riscv64.rpm
perl-Filter-1.55-377.fc24.riscv64.rpm
perl-IO-1.36-377.fc24.riscv64.rpm
perl-IPC-SysV-2.06-377.fc24.riscv64.rpm
perl-libintl-1.24-3.fc24.riscv64.rpm
perl-libs-5.24.0-377.fc24.riscv64.rpm
perl-macros-5.24.0-377.fc24.riscv64.rpm
perl-Math-BigInt-FastCalc-0.40-377.fc24.riscv64.rpm
perl-MIME-Base64-3.15-377.fc24.riscv64.rpm
perl-PathTools-3.63-377.fc24.riscv64.rpm
perl-Scalar-List-Utils-1.42-377.fc24.riscv64.rpm
perl-Scalar-List-Utils-1.45-2.fc25.riscv64.rpm
perl-Socket-2.020-377.fc24.riscv64.rpm
perl-Storable-2.56-377.fc24.riscv64.rpm
perl-Sys-Syslog-0.33-377.fc24.riscv64.rpm
perl-tests-5.24.0-377.fc24.riscv64.rpm
perl-threads-2.07-377.fc24.riscv64.rpm
perl-threads-2.09-1.fc25.riscv64.rpm
perl-threads-shared-1.51-377.fc24.riscv64.rpm
perl-Time-HiRes-1.9733-377.fc24.riscv64.rpm
perl-Time-Piece-1.31-377.fc24.riscv64.rpm
perl-Unicode-Collate-1.14-377.fc24.riscv64.rpm
perl-Unicode-Normalize-1.25-377.fc24.riscv64.rpm
perl-XML-Parser-2.44-5.fc25.riscv64.rpm
pkgconfig-0.29.1-1.fc24.riscv64.rpm
popt-1.16-7.fc24.riscv64.rpm
popt-devel-1.16-7.fc24.riscv64.rpm
popt-static-1.16-7.fc24.riscv64.rpm
procps-ng-3.3.10-11.fc24.riscv64.rpm
procps-ng-devel-3.3.10-11.fc24.riscv64.rpm
psmisc-22.21-8.fc24.riscv64.rpm
python-2.7.12-3.fc24.riscv64.rpm
python-debug-2.7.12-3.fc24.riscv64.rpm
python-devel-2.7.12-3.fc24.riscv64.rpm
python-libs-2.7.12-3.fc24.riscv64.rpm
python-test-2.7.12-3.fc24.riscv64.rpm
python-tools-2.7.12-3.fc24.riscv64.rpm
readline-6.3-8.fc24.riscv64.rpm
readline-devel-6.3-8.fc24.riscv64.rpm
readline-static-6.3-8.fc24.riscv64.rpm
sed-4.2.2-15.fc24.riscv64.rpm
sharutils-4.15.2-4.fc24.riscv64.rpm
sqlite-3.13.0-1.fc24.riscv64.rpm
sqlite-devel-3.13.0-1.fc24.riscv64.rpm
sqlite-libs-3.13.0-1.fc24.riscv64.rpm
strace-4.13-1.fc24.riscv64.rpm
tar-1.29-1.fc24.riscv64.rpm
tcl-8.6.6-1.fc24.riscv64.rpm
tcl-devel-8.6.6-1.fc24.riscv64.rpm
texinfo-6.1-3.fc24.riscv64.rpm
texinfo-tex-6.1-3.fc24.riscv64.rpm
tkinter-2.7.12-3.fc24.riscv64.rpm
unzip-6.0-30.fc24.riscv64.rpm
ustr-1.0.4-21.fc24.riscv64.rpm
ustr-debug-1.0.4-21.fc24.riscv64.rpm
ustr-debug-static-1.0.4-21.fc24.riscv64.rpm
ustr-devel-1.0.4-21.fc24.riscv64.rpm
ustr-static-1.0.4-21.fc24.riscv64.rpm
xz-5.2.2-2.fc25.riscv64.rpm
xz-devel-5.2.2-2.fc25.riscv64.rpm
xz-libs-5.2.2-2.fc25.riscv64.rpm
xz-lzma-compat-5.2.2-2.fc25.riscv64.rpm
xz-static-5.2.2-2.fc25.riscv64.rpm
zip-3.0-16.fc24.riscv64.rpm
zlib-1.2.8-10.fc25.1.riscv64.rpm
zlib-devel-1.2.8-10.fc25.1.riscv64.rpm
zlib-static-1.2.8-10.fc25.1.riscv64.rpm

Leave a comment

Filed under Uncategorized

Fedora/RISC-V, steady progress

davidlt has done an amazing job building RISC-V RPMs: https://github.com/rwmjones/fedora-riscv/tree/master/stage3-built-rpms

I also managed to boot our “stage 3” filesystem on the real FPGA hardware. Unfortunately it’s extremely crashy:

# ldconfig /usr/lib64 /usr/lib /lib64 /lib
disk cannot read 4096 bytes @1544056832!

This is in the HTIF / SD-card access layer which we have full source for so at least it can be fixed.

Leave a comment

Filed under Uncategorized

First successful rpmbuild on RISC-V

I’m very slowly bootstrapping Fedora to run on RISC-V, and today I managed to get rpmbuild to work, so that’s a sort of milestone:

...
Provides: config(setup) = 2.10.4-1.fc24 setup = 2.10.4-1.fc24
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Conflicts: bash <= 2.0.4-21 filesystem < 3 initscripts < 4.26
Checking for unpackaged file(s): /usr/lib/rpm/check-files /rpmbuild/BUILDROOT/setup-2.10.4-1.fc24.%{_arch}
warning: Could not canonicalize hostname: ucbvax
Wrote: /rpmbuild/RPMS/noarch/setup-2.10.4-1.fc24.noarch.rpm
Executing(%clean): /bin/sh -e /usr/var/tmp/rpm-tmp.0iJnms
+ umask 022
+ cd //rpmbuild/BUILD
+ cd setup-2.10.4
+ rm -rf '/rpmbuild/BUILDROOT/setup-2.10.4-1.fc24.%{_arch}'
+ exit 0
Executing(--clean): /bin/sh -e /usr/var/tmp/rpm-tmp.Vdj45n
+ umask 022
+ cd //rpmbuild/BUILD
+ rm -rf setup-2.10.4
+ exit 0

Unfortunately because I haven’t got GCC working in the bootstrap environment, I’m a bit limited in the packages that I can build, so I’m starting off with some low-dependency noarch packages. In reality we won’t need to recompile noarch packages at all, they can be copied off other arch builders, but it’s a good test of rpmbuild.

1 Comment

Filed under Uncategorized

Virt-builder Fedora 23 image

Fedora 23 was released today. Get it through virt-builder in just two simple commands:

$ virt-builder fedora-23 \
    --root-password password:123456 \
    --size 20G
$ qemu-system-x86_64 -drive file=fedora-23,if=virtio \
    -m 2048

f23

2 Comments

Filed under Uncategorized

Fedora 22 chrooted on an LG G4 phone

Rooting this phone was ton of hassle. You have to ask LG to send you the unlock code! (My phone, not under contract). As most of the unrooting guides miss out this vital step, here is a guide to doing that.

Anyway, now I have Fedora 22 installed using the instructions from previously. I’ve included the files you need here. NB only for 64 bit ARM phones

The phone is nice and fast. It has a 6 core 64 bit ARM process in big.LITTLE configuration, 2 x fast Cortex-A57 and 4 x slower Cortex-A53. It also has 3GB of RAM.

I wasn’t able to determine if the processor boots in HYP mode, but KVM is disabled in the Android stock kernel unfortunately.

Processor	: AArch64 Processor rev 3 (aarch64)
processor	: 0
processor	: 1
processor	: 2
processor	: 3
processor	: 4
processor	: 5
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 3

Hardware	: Qualcomm Technologies, Inc MSM8992
Revision	: 000b

Using the on-screen keyboard sucks a lot. I might need to invest in a cheap Bluetooth keyboard.

After the break, dmesg output.

Continue reading

3 Comments

Filed under Uncategorized

Fedora 22 aarch64 virt-builder image

Fedora 22 was released today for x86, and almost simultaneously for aarch64. I have already built a virt-builder image, so you can install it immediately (either on real hardware or under virtualization on x86):

$ virt-builder --arch aarch64 fedora-22

To boot this on x86, use a slightly modified version of the instructions from here:

$ wget http://libguestfs.org/download/builder/fedora-22-aarch64-nvram.xz
$ unxz fedora-22-aarch64-nvram.xz
$ qemu-system-aarch64 -nodefconfig -nodefaults -display none \
    -M virt -cpu cortex-a57 -machine accel=tcg \
    -m 2048 \
    -drive if=pflash,format=raw,file=/usr/share/edk2.git/aarch64/QEMU_EFI-pflash.raw,readonly \
    -drive if=pflash,format=raw,file=fedora-22-aarch64-nvram \
    -device virtio-scsi-device,id=scsi \
    -drive file=fedora-22.img,format=raw,if=none,id=hd0 \
    -device scsi-hd,drive=hd0 \
    -netdev user,id=usernet \
    -device virtio-net-device,netdev=usernet \
    -serial stdio

Leave a comment

Filed under Uncategorized