Slackware - ARMThis forum is for the discussion of Slackware ARM.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I gave up on sdcard on pbp long ago, nvme since been working fine, fallback is emmc with manjaro, yes I keep it up to date too.
SCerovec, any chance you keeping notes on different directions you've been going, like this worked, that didn't?
That's easy - i've yet to get to a single place of "this worked" aside of:
1. Download a arm package repo locally
2. partition and mount a sdcard (2GB for boot way more recommended than the proposed 500MB the docs say)
(there's a bit more to this, please consult the slarm and rock5 install documentation for u-boot setup)
3. mount the root partition to /mnt/hd, mount the boot to /mnt/hd/boot
4. cd to the slackware package series in the repo and (as root):
Code:
# installpkg --root=/mnt/hd a/*
Code:
# installpkg --root=/mnt/hd n/*
Code:
# installpkg --root=/mnt/hd l/*
5. get the recent known working kernels from mara (a.k.a. sndwvs (from slarm servers)) many, many kudos i use the 5.10.110 still
6. cd to the downloaded kernels directory
7. remove the installed kernels first:
Code:
ROOT=/mnt/hd slackpkg search kernel
with the mouse select the correct package name and:
Code:
removepkg -root/mnt/hd <paste mouse selection>
(by this (lazy) way you avoid mistyping and further irritation)
8.
Code:
installpkg --root /mnt/hd kernel*
for the mara kernel packages
9. get a sane /boot/uEnv.txt:
I just realized i never posted the build script wrapper's wrapper
/usr/local/bin/mkp.sh:
Code:
export VERSION=6.3.4
export NUMJOBS='-j8'
echo "1. Bring up networking and set up time"
/etc/rc.d/rc.inet1 eth0_up && ntpdate -ubv pool.ntp.org
echo "2. make kernel packages"
cd ~/slackwareaarch64-current/source/k
time ./arm/build --src /home/src --pkgstoreoverride /home/tmp/testpkgs --noconfig --nopatches
echo "3. Make kernel firmware"
cd ../a/kernel-firmware/
time ./arm/build --src /home/src --pkgstoreoverride /home/tmp/testpkgs --noconfig --nopatches
echo "4. Make uInitrd frim the provided initrd"
cd /home/tmp/build-kernel_armv8/initrd-tree
mkimage -A arm -O linux -T ramdisk -C gzip -d ../initrd-armv8.gz /home/tmp/uInitrd--${VERSION}
echo "5. Make uInitrd from the leftover initrd-tree"
find . | cpio -H newc -ov > /home/tmp/initrd-${VERSION}.gz
mkimage -A arm -O linux -T ramdisk -C gzip -d /home/tmp/initrd-${VERSION}.gz /home/tmp/uInitrd-$
{VERSION}
Fdt Ramdisk skip relocation
Bad Linux ARM64 Image magic!
SCRIPT FAILED: continuing...
You can see it first loads the device tree, then the kernel which fails, then the scripts continues and the script blows up. The kernel fails due to "bad magic". The magic in question is the magic number, which as far as I can make out a checksum for verification of the Image. So you have loaded a faulty Image file. It is not uboot, because it loaded the Image, although it could have loaded the wrong file. It is not the kernel drivers because that would boot and then fail. It could be a 32 bit kernel not 64 bit. It could be a corrupt file.
You will need to do more digging to find out why though.
echo "4. Make uInitrd frim the provided initrd"
cd /home/tmp/build-kernel_armv8/initrd-tree
mkimage -A arm -O linux -T ramdisk -C gzip -d ../initrd-armv8.gz /home/tmp/uInitrd--${VERSION}
echo "5. Make uInitrd from the leftover initrd-tree"
find . | cpio -H newc -ov > /home/tmp/initrd-${VERSION}.gz
mkimage -A arm -O linux -T ramdisk -C gzip -d /home/tmp/initrd-${VERSION}.gz /home/tmp/uInitrd-$
{VERSION}[/CODE]
U-Boot hasn't required its own uImage format for years, which is why Slackware doesn't use it. The Kernel produced from kernel.SlackBuild (and what's in your kernel package) is all that's required, as long as you are using extlinux within U-Boot.
I wouldn't spend time on the configuration of U-Boot's environment settings: look at the extlinux.conf Slackware provides. The extlinux support within U-Boot handles all the details and "just works", plus it's what we're already using so your work can be merged in. You don't need to manually configure U-Boot at all, and the entire boot config is set through extlinux.conf.
a/kernel-firmware SlackBuild does not support commandline parameters btw so it'll replace the package in $PKGSTORE. I'm not sure why it'd need them - at least from my point of view because adding some firmware to the package doesn't (or shouldn't) interfere with any of the other Hardware Models, so the changes can be baked directly into the master package. I can always add the support for those command lines later on if need be, but usually I just edit arm/build to drop the packages elsewhere.
Also if you're not changing anything within that package there's no need to rebuild it.
I will quote this thread whenever anyone suggests putting the OS on an SD card! ;-)
When I was porting to armv5 I burnt out a few USB flash drives before I could get a hard drive in a USB caddy stable on the Sheevaplug.
I mean it can be done, but the setup would have to be much more like linux live and if you "changes" can't fit into ther RAM for the session you would be screwed soon anyways...
It is what it is...
U-Boot hasn't required its own uImage format for years, which is why Slackware doesn't use it. The Kernel produced from kernel.SlackBuild (and what's in your kernel package) is all that's required, as long as you are using extlinux within U-Boot.
I wouldn't spend time on the configuration of U-Boot's environment settings: look at the extlinux.conf Slackware provides. The extlinux support within U-Boot handles all the details and "just works", plus it's what we're already using so your work can be merged in. You don't need to manually configure U-Boot at all, and the entire boot config is set through extlinux.conf.
a/kernel-firmware SlackBuild does not support commandline parameters btw so it'll replace the package in $PKGSTORE. I'm not sure why it'd need them - at least from my point of view because adding some firmware to the package doesn't (or shouldn't) interfere with any of the other Hardware Models, so the changes can be baked directly into the master package. I can always add the support for those command lines later on if need be, but usually I just edit arm/build to drop the packages elsewhere.
Also if you're not changing anything within that package there's no need to rebuild it.
RE: extlinux
Do i merely add the extlinux.conf file or is there a binary lurking somewhere (the loader) I'd need to add too?
Consider this as a rethoric question
Last edited by SCerovec; 06-01-2023 at 12:24 AM.
Reason: Just read it up...
Do i merely add the extlinux.conf file or is there a binary lurking somewhere (the loader) I'd need to add too?
U-Boot always supports SD cards but not the variety of storage hardware you may want to use within the OS.
Therefore I have designed the Slackware implementation with /boot on an SD card because it's a portable configuration, and it means you can put your root partition on anything Linux can find.
U-Boot by default considers a small number of storage devices to search for 'extlinux.conf' files.
As Slackware's /boot partition is on an SD card, it finds it and loads it.
Slackware does not change U-Boot's device search order - we use the default. You can change it within U-Boot but it might require patching (Manjaro patch the U-Boot source rather than through a config option), but I thought the defaults are good for Slackware.
Code:
root@dastardly:~# df -h /boot
Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk1p1 3.6G 333M 3.1G 10% /boot
root@dastardly:~# ls /boot/extlinux/
extlinux.conf
root@dastardly:~# ls /boot -la
total 303724
drwxr-xr-x 8 root root 4096 May 31 22:13 ./
drwxr-xr-x 22 root root 4096 Jun 1 09:08 ../
-rw-r--r-- 1 root root 705 May 31 22:13 .boot_details
-rw-r--r-- 1 root root 1817 May 31 22:13 .os-initrd-fw-inventory
lrwxrwxrwx 1 root root 18 May 31 22:13 Image-armv8 -> Image-armv8-6.1.31
-rw-r--r-- 1 root root 28723712 May 31 17:52 Image-armv8-6.1.31
-rw-r--r-- 1 root root 1747 May 25 2021 README-kernels.txt
lrwxrwxrwx 1 root root 40 May 31 12:17 README.initrd -> ../usr/doc/mkinitrd-1.4.11/README.initrd
lrwxrwxrwx 1 root root 23 May 31 22:13 System.map-armv8 -> System.map-armv8-6.1.31
-rw-r--r-- 1 root root 4986146 May 31 17:52 System.map-armv8-6.1.31
-rw-r--r-- 1 root root 274935 May 31 17:37 config-armv8-6.1.31
lrwxrwxrwx 1 root root 10 May 31 22:13 dtb -> dtb-6.1.31/
drwxr-xr-x 27 root root 4096 May 31 19:28 dtb-6.1.31/
drwxr-xr-x 2 root root 4096 May 31 12:53 extlinux/
drwxr-xr-x 2 root root 4096 Apr 1 06:18 grub/
lrwxrwxrwx 1 root root 19 May 31 22:13 initrd-armv8 -> initrd-armv8-6.1.31
-rw-r--r-- 1 root root 276961718 May 31 22:14 initrd-armv8-6.1.31
drwxr-xr-x 2 root root 4096 May 31 19:24 local/
drwx------ 2 root root 16384 May 30 18:48 lost+found/
drwxr-xr-x 3 root root 4096 May 31 19:24 platform/
root@dastardly:~#
And the root file system lives on an SSD connected to a PCIe SATA card.
root@dastardly:~# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 221G 26G 184G 13% /
* extlinux.conf : the standard header. The 2 files below are appended/removed from this file during the installation process.
* slkinstaller.generic : the Slackware Installer menu config for extlinux
* slkos.generic : The Slackware OS menu config for extlinux
The slkinstaller,slkos configs are wrapped in header and footer tokens e.g. '##SLKOS' so that they can be identified and removed from within the Installer. There's a proper way to do this within extlinux but it was buggy so I implemented my own.
The files you can see in the repo are unprocessed though, so the place holders - e.g. '%ROOTDEV%' - are substituted from within the Slackware Installer, or the 'sdcards.build' build system. In other words you'd need to modify them before use.
On my RockPro64, with the comments stripped:
Code:
root@dastardly:~# egrep -v '^.*#|^$' /boot/extlinux/extlinux.conf
DEFAULT OS
MENU TITLE Slackware Linux
PROMPT 0
TIMEOUT 90
LABEL OS
MENU LABEL Boot OS: Slackware Linux
LINUX /Image-armv8
INITRD /initrd-armv8
FDTDIR /dtb/
APPEND awaitrootdev earlyprintk rootfstype=ext4 root=LABEL=SLKroot
root@dastardly:~#
Note: U-Boot finds the Kernel, initrd and DTBs within '/' because it's U-Boot reading this config, and it's found the partition on the SD card and has mounted it. It's only '/boot' within the OS. This is why in the U-Boot extlinux.conf we don't reference the objects by '/boot' but '/'.
The Slackware Installer labels the root file system 'SLKroot' so it can be found automatically by the Kernel, and handles situations where (particularly on USB) the devices switch order.
The /boot partition on the SD card images (the Slackware Installer) are pre-labeled 'SLKboot' by 'sdcards.build' build system.
You'd probably not need to change any of these files unless there's some amendments required as there is for the Raspberry Pi (but this is done through the 'sdcards.build' system).
extlinux is part of U-Boot and is included in the default config (I don't know if you can disable it).
There's some useful info here.
Quote:
Consider this as a rethoric question
Pretend I didn't reply ;-)
Last edited by drmozes; 06-01-2023 at 06:06 AM.
Reason: added more info for layout of /boot
Originally Posted by SCerovec;6434135
syslinux, extlinux, every year a new "mainstream" language gets the lime-light while solving exactly no real issue of any existing one.
can't people either merge projects or make clear distinctions any more?
whats wrong with [B
uboot.conf[/B] or ubootlinux.conf or even bootlinux.conf ?
SYSLINUX has been around forever, and the config syntax for extlinux.conf is the same as SYSLINUX.
U-Boot includes it as a feature because it makes it easy to boot the OS using a single config file with a well-known syntax.
You can also configure U-Boot in any way other you choose.
When I first introduced U-Boot into Slackware 32bit, it didn't have syslinux support and the installation method was incredibly complicated (funnily enough it was *easier* on the progenitor ARM port since we used GRUB!)- pasting in lines into the boot loader console; having to be in the boot loader console to edit the existing settings, or using some other tool to modify the U-Boot environment (which could be on a fat partition or in flash depending on the Hardware Model).
It was bad.
Quote:
RE: boot time images and config files not belonging to any package:
SBo can't do everything, why not make a slackware-dev or slackware-bootstrap package with the files residing somewhere in /root/ path?
</rant>
Slackware Installer images don't make sense to belong to a package. You have to use a different host to dump them onto an SD card.
The only config file not belonging to packages is the boot loader's. It doesn't make sense to have it belong to a package either because you first encounter them (there are 2 on the RPi) within the Slackware Installer, where no packages are installed.
The U-Boot extlinux.conf boot loader config is automatically updated from within the Slackware Installer.
If /boot/extlinux/extlinux.conf belonged to a package, you'd always have a .new file to consider with every Kernel update (as I suspect I'd package it with the Kernel, since it's related). I don't anticipate changing the U-Boot config, and if there are changes required I will announce them: because on an existing system it'll always result in hands-on work, and you may require some additional context to understand the change. New installs would have the updated config.
On the RockPro64/Pinebook Pro, U-boot lives in the SPI flash and rarely will be updated. When it is, you follow a process.
On the RPi the boot loaders are contained within the a/hwm-bw-raspberrypi. Upgrading this package updates both boot loaders. The EEPROM firmware is included within this package, as is the management tool.
The specific components you need to update in Slackware to support a particular Hardware Model are listed in the initial thread.
Once you have them working, I can merge the changes so that the official Slackware Kernel package can handle that hardware.
A development package can't exist as a one-size-fits-all because each Hardware Model is different, so you cannot know in advance how it'll be supported. However, the Slackware Installer image builder (sdcards.build), and the U-Boot build system (u-boot.build), Kernel and boot system are generally broad enough in scope and flexibility to accommodate most Hardware Models -- particularly once you get the Boot Loader stuff done.
Where appropriate, a package may exist to hold data files and tools for a particular Hardware Model - e.g. a/hwm-bw-raspberrypi. This enables its absence on non RPi's.
The target is integration into the OS - at least that's how I've designed it, and we support 3 HWMs already with a 4th in the works -- so the design certainly works :-)
Well,
more info:
the extlinux.conf file can't seem to access u-boot's namespace: i was effectively locked out from booting rock5 with orange pi 5's u-boot despite everything works.
I merely couldn't supply the fdtfile u-boot var.
As soon as i copied/renamed the rock5's fdt file into it i booted by this obstacle.
Now im stuck at a further "trunk blocking the road"
Will report as i go about (bringing the rock 5's nvme to bear...) ...
Well,
more info:
the extlinux.conf file can't seem to access u-boot's namespace:
I'm not sure what that means: U-Boot finds this file if it's in the root of a file system on a storage device it can find.
As I said, there are no settings configured in U-Boot's local config apart from the defaults created when compiling U-Boot for a particular Hardware Model. This is also why for the RockPro64/PbPro you have a bootable SD card to install the Slackware U-Boot into the SPI flash, to avoid using any other U-Boot from another distribution that's configured differently.
If you can build your own U-Boot with default settings and support for that Hardware Model, and get that into SPI flash (assuming your HWM has that), that will help as you'll have a clean environment.
You'll be laughing when you realise how easy it is to get U-Boot configured using extlinux.conf with the Slackware layout.
The extlinux.conf configuration for the PbPro, RockPro64 and (with a Kernel cmdline exception) for the Raspberry Pi is identical.
/boot is identical.
This will be a lot easier once I have the various parts documented for each package (although this thread does capture the core set), *but* the boot process for new Hardware Models and the Kernel (now to a lesser degree) is the hardest part.
From what I can see, you're trying to use another distribution that's configured entirely differently to Slackware, then trying to boot Slackware on it and booting back into the other. The plan (which is in my head but not yet documented.. here it comes! ;-) ) is to onboard new HWMs into Slackware starts with using Slackware AArch64 on a supported Hardware Model, so you have a base to build from.
That's what I do.
You've achieved a great deal already in a short time though. Once you've got Slackware booting and have populated the Kernel module loader scripts and have the OS booted, it's *much* easier.
I'm not sure what that means: U-Boot finds this file if it's in the root of a file system on a storage device it can find.
It means the variables passed over by u-boot can't be changed before they are being processed - so my only working u-boot (an obsolete patched version) stubbornly tries to boot the dtb of orange pi 5 (rk3588s) instead of radxa rock 5 (rk3588) and to avoid that i have to copy the right file to the wrong (yet wrongly sought after) filename...
Quote:
As I said, there are no settings configured in U-Boot's local config apart from the defaults created when compiling U-Boot for a particular Hardware Model. This is also why for the RockPro64/PbPro you have a bootable SD card to install the Slackware U-Boot into the SPI flash, to avoid using any other U-Boot from another distribution that's configured differently.
If you can build your own U-Boot with default settings and support for that Hardware Model, and get that into SPI flash (assuming your HWM has that), that will help as you'll have a clean environment.
You'll be laughing when you realise how easy it is to get U-Boot configured using extlinux.conf with the Slackware layout.
The extlinux.conf configuration for the PbPro, RockPro64 and (with a Kernel cmdline exception) for the Raspberry Pi is identical.
/boot is identical.
This will be a lot easier once I have the various parts documented for each package (although this thread does capture the core set), *but* the boot process for new Hardware Models and the Kernel (now to a lesser degree) is the hardest part.
From what I can see, you're trying to use another distribution that's configured entirely differently to Slackware, then trying to boot Slackware on it and booting back into the other. The plan (which is in my head but not yet documented.. here it comes! ;-) ) is to onboard new HWMs into Slackware starts with using Slackware AArch64 on a supported Hardware Model, so you have a base to build from.
That's what I do.
You've achieved a great deal already in a short time though. Once you've got Slackware booting and have populated the Kernel module loader scripts and have the OS booted, it's *much* easier.
So far i apparently can make a kernel able to run off this CPU but i have to jump loops to get it even to run level 1 as the only working method i'm locked in is the u-boot procedure and the extlinux one does not allow me to pass.
@drmozes: Respectfully, sir, are You certain You are not mistaking convenience for simplicity? My mileage and gut feeling tells me it would be better in the long run to stick with u-boot's uEnv.txt and uboot.scr - making it more elaborate yet simpler to navigate/tweak instead of embracing the obvious low hanging fruit the extlinux emulation apperars to be (to me). This reminds me on embracing Lilo instead of Grub back in the day and sticking to it all the while.
Again, this is not a rant, or venting, with all due respect and appreciation to the work put forth i politely ask we re-evaluate the drawbacks and benefits of each system.
I like simplicity, but above simplicity i like flexibility and I have to come to respect Slacwkare for both. I just feel it could be more robust and flexible with a proper u-boot safety net/system in place.
If you would require any assistance/help/support/manpower/footwork I am more than willing to put some forth, moreover I suspect there might be other volunteers in that regard around here too.
I am yet to try put Slackware on a rk3399 (my other) SBC and would, of course, volunteer with my R-Pi3 in the same sense, but i'd like we "swat this flea dead" first if we can (boot the rk3588 to runlevel 1).
the News:
Compiled a fresh 6.3.5 package set, installed and booted with serial line:
Code:
Enter choice: 1: Boot OS: Slackware Linux
Retrieving file: /initrd-armv8
289085497 bytes read in 23358 ms (11.8 MiB/s)
Retrieving file: /Image-armv8
29747712 bytes read in 2436 ms (11.6 MiB/s)
append: earlyprintk rootfstype=ext4 root=LABEL=linuxroot verbose slkbps
Retrieving file: /dtb/rockchip/rk3588s-orangepi-5.dtb
38606 bytes read in 77 ms (489.3 KiB/s)
Fdt Ramdisk skip relocation
## Flattened Device Tree blob at 0x0a100000
Booting using the fdt blob at 0x0a100000
Using Device Tree in place at 000000000a100000, end 000000000a10c6cd
can't found rockchip,drm-logo, use rockchip,fb-logo
WARNING: could not set reg FDT_ERR_BADOFFSET.
failed to reserve fb-loader-logo memory
Adding bank: 0x00200000 - 0xf0000000 (size: 0xefe00000)
Adding bank: 0x100000000 - 0x3fc000000 (size: 0x2fc000000)
Adding bank: 0x3fc500000 - 0x3fff00000 (size: 0x03a00000)
Total: 35112.380 ms
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x412fd050]
[ 0.000000] Linux version 6.3.5-armv8 (root@rockv.eth.lan) (gcc (GCC) 12.2.0, GNU ld version 2.40-slack151) #3 SMP PREEMPT Sat Jun 3 21:22:19 CEST 2023
[ 0.000000] Machine model: Radxa ROCK 5 Model B
[ 0.000000] efi: UEFI not found.
[ 0.000000] NUMA: No NUMA configuration found
[ 0.000000] NUMA: Faking a node at [mem 0x0000000000200000-0x00000003ffefffff]
[ 0.000000] NUMA: NODE_DATA [mem 0x3fdf2e9c0-0x3fdf30fff]
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000000200000-0x00000000ffffffff]
[ 0.000000] DMA32 empty
[ 0.000000] Normal [mem 0x0000000100000000-0x00000003ffefffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000200000-0x00000000efffffff]
[ 0.000000] node 0: [mem 0x0000000100000000-0x00000003fbffffff]
[ 0.000000] node 0: [mem 0x00000003fc500000-0x00000003ffefffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x00000003ffefffff]
[ 0.000000] On node 0, zone DMA: 512 pages in unavailable ranges
[ 0.000000] On node 0, zone Normal: 1280 pages in unavailable ranges
[ 0.000000] On node 0, zone Normal: 256 pages in unavailable ranges
[ 0.000000] cma: Reserved 32 MiB at 0x00000000ee000000
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.1 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: MIGRATE_INFO_TYPE not supported.
[ 0.000000] psci: SMC Calling Convention v1.2
[ 0.000000] percpu: Embedded 20 pages/cpu s44648 r8192 d29080 u81920
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: detected: GIC system register CPU interface
[ 0.000000] CPU features: detected: Virtualization Host Extensions
[ 0.000000] CPU features: detected: Qualcomm erratum 1009, or ARM erratum 1286807, 2441009
[ 0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[ 0.000000] alternatives: applying boot alternatives
[ 0.000000] Fallback order for Node 0: 0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 4062220
[ 0.000000] Policy zone: Normal
[ 0.000000] Kernel command line: earlyprintk rootfstype=ext4 root=LABEL=linuxroot verbose slkbps
[ 0.000000] Unknown kernel command line parameters "earlyprintk verbose slkbps", will be passed to user space.
[ 0.000000] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[ 0.000000] software IO TLB: area num 8.
[ 0.000000] software IO TLB: mapped [mem 0x00000000ea000000-0x00000000ee000000] (64MB)
[ 0.000000] Memory: 16044572K/16506880K available (11904K kernel code, 3002K rwdata, 7512K rodata, 6464K init, 585K bss, 429540K reserved, 32768K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] rcu: RCU event tracing is enabled.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=8.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[ 0.000000] GICv3: 480 SPIs implemented
[ 0.000000] GICv3: 0 Extended SPIs implemented
[ 0.000000] GICv3: MBI range [424:479]
[ 0.000000] GICv3: Using MBI frame 0x00000000fe610000
[ 0.000000] Root IRQ handler: gic_handle_irq
[ 0.000000] GICv3: GICv3 features: 16 PPIs
[ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x00000000fe680000
[ 0.000000] ITS: No ITS available, not enabling LPIs
[ 0.000000] GICv3: GIC: PPI partition interrupt-partition-0[0] { /cpus/cpu@0[0] /cpus/cpu@100[1] /cpus/cpu@200[2] /cpus/cpu@300[3] }
[ 0.000000] GICv3: GIC: PPI partition interrupt-partition-1[1] { /cpus/cpu@400[4] /cpus/cpu@500[5] /cpus/cpu@600[6] /cpus/cpu@700[7] }
[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[ 0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[snip]
[ 0.031462] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.031520] pnp: PnP ACPI: disabled
[ 0.034809] NET: Registered PF_INET protocol family
[ 0.034978] IP idents hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[ 0.040221] tcp_listen_portaddr_hash hash table entries: 8192 (order: 5, 131072 bytes, linear)
[ 0.040324] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.040334] TCP established hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[ 0.040955] TCP bind hash table entries: 65536 (order: 9, 2097152 bytes, linear)
[ 0.042161] TCP: Hash tables configured (established 131072 bind 65536)
[ 0.042265] MPTCP token hash table entries: 16384 (order: 6, 393216 bytes, linear)
[ 0.042355] UDP hash table entries: 8192 (order: 6, 262144 bytes, linear)
[ 0.042583] UDP-Lite hash table entries: 8192 (order: 6, 262144 bytes, linear)
[ 0.042853] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.042871] PCI: CLS 0 bytes, default 64
[ 0.042997] Unpacking initramfs...
[ 0.051861] hw perfevents: enabled with armv8_cortex_a55 PMU driver, 7 counters available
[ 0.052022] hw perfevents: enabled with armv8_cortex_a76 PMU driver, 7 counters available
[ 0.052186] kvm [1]: IPA Size Limit: 40 bits
[ 0.052198] kvm [1]: GICv3: no GICV resource entry
[ 0.052203] kvm [1]: disabling GICv2 emulation
[ 0.052214] kvm [1]: GIC system register CPU interface enabled
[ 0.052221] kvm [1]: vgic interrupt IRQ18
[ 0.052237] kvm [1]: VHE mode initialized successfully
[ 0.052812] Initialise system trusted keyrings
[ 0.052897] workingset: timestamp_bits=42 max_order=22 bucket_order=0
[ 0.053015] 9p: Installing v9fs 9p2000 file system support
[ 0.072672] Key type asymmetric registered
[ 0.072678] Asymmetric key parser 'x509' registered
[ 0.072698] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[ 0.072704] io scheduler mq-deadline registered
[ 0.072708] io scheduler kyber registered
[ 0.075919] EINJ: ACPI disabled.
[ 0.079759] dma-pl330 fea10000.dma-controller: Loaded driver for PL330 DMAC-241330
[ 0.079766] dma-pl330 fea10000.dma-controller: DBUFF-128x8bytes Num_Chans-8 Num_Peri-32 Num_Events-16
[ 0.080300] dma-pl330 fea30000.dma-controller: Loaded driver for PL330 DMAC-241330
[ 0.080306] dma-pl330 fea30000.dma-controller: DBUFF-128x8bytes Num_Chans-8 Num_Peri-32 Num_Events-16
[ 0.080828] dma-pl330 fed10000.dma-controller: Loaded driver for PL330 DMAC-241330
[ 0.080835] dma-pl330 fed10000.dma-controller: DBUFF-128x8bytes Num_Chans-8 Num_Peri-32 Num_Events-16
[ 0.085031] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.085785] feb50000.serial: ttyS2 at MMIO 0xfeb50000 (irq = 33, base_baud = 1500000) is a 16550A
[ 0.085879] printk: console [ttyS2] enabled
[ 0.140807] Initramfs unpacking failed: read error
[ 0.145532] Freeing initrd memory: 17644K
[ 0.187552] SuperH (H)SCI(F) driver initialized
[ 0.188152] msm_serial: driver initialized
[ 0.192159] loop: module loaded
[ 0.194205] thunder_xcv, ver 1.0
[ 0.194498] thunder_bgx, ver 1.0
[ 0.194947] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[ 0.195588] hns3: Copyright (c) 2017 Huawei Corporation.
[ 0.196065] hclge is initializing
[ 0.196465] sky2: driver version 1.30
[ 0.197267] VFIO - User Level meta-driver version: 0.3
[ 0.197983] i2c_dev: i2c /dev entries driver
[ 0.200026] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.200832] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[ 0.202575] optee: probing for conduit method.
[ 0.202967] optee: api uid mismatch
[ 0.203273] optee: probe of firmware:optee failed with error -22
[ 0.204058] NET: Registered PF_PACKET protocol family
[ 0.204592] 9pnet: Installing 9P2000 support
[ 0.204990] Key type dns_resolver registered
[ 0.206980] registered taskstats version 1
[ 0.207342] Loading compiled-in X.509 certificates
[ 0.223131] dw-apb-uart feb50000.serial: forbid DMA for kernel console
[ 0.224320] VFS: Cannot open root device "LABEL=linuxroot" or unknown-block(0,0): error -19
[ 0.225049] Please append a correct "root=" boot option; here are the available partitions:
[ 0.225784] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 0.226505] CPU: 7 PID: 1 Comm: swapper/0 Not tainted 6.3.5-armv8 #3
[ 0.227062] Hardware name: Radxa ROCK 5 Model B (DT)
[ 0.227497] Call trace:
[ 0.227712] dump_backtrace+0x98/0xf0
[ 0.228039] show_stack+0x14/0x1c
[ 0.228332] dump_stack_lvl+0x44/0x58
[ 0.228658] dump_stack+0x14/0x1c
[ 0.228952] panic+0x32c/0x338
[ 0.229224] mount_block_root+0x244/0x280
[ 0.229580] mount_root+0x88/0xa8
[ 0.229873] prepare_namespace+0xf4/0x180
[ 0.230226] kernel_init_freeable+0x148/0x17c
[ 0.230608] kernel_init+0x20/0x1d4
[ 0.230917] ret_from_fork+0x10/0x20
[ 0.231234] SMP: stopping secondary CPUs
[ 0.231669] Kernel Offset: disabled
[ 0.231975] CPU features: 0x600000,00700506,3200720b
[ 0.232411] Memory Limit: none
[ 0.232681] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---
Apparently by editing the target directories for the build process i effortlessly managed to lose track of where my init-rd trees reside so i repackaged the wrong ones for the u-boot portion of the boot process.
meanwhile the extlinux portion remained to elude me.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.