LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - ARM
User Name
Password
Slackware - ARM This forum is for the discussion of Slackware ARM.

Notices


Reply
  Search this Thread
Old 05-29-2023, 06:28 PM   #46
glorsplitz
Senior Member
 
Registered: Dec 2002
Distribution: slackware!
Posts: 1,314

Rep: Reputation: 368Reputation: 368Reputation: 368Reputation: 368

Quote:
Originally Posted by SCerovec View Post
Going forward with /root/ mounted on NVME...
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?

Last edited by glorsplitz; 05-29-2023 at 06:30 PM.
 
Old 05-30-2023, 01:45 PM   #47
SCerovec
Senior Member
 
Registered: Oct 2006
Location: Cp6uja
Distribution: Slackware on x86 and arm
Posts: 2,478
Blog Entries: 2

Rep: Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982
Post

Quote:
Originally Posted by glorsplitz View Post
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:
Code:
verbosity=4
console=both
fdtfile=rockchip/rk3588-rock-5b.dtb
rootdev=UUID=32539e08-a5c0-4084-9f32-0932043d95e3
overlays=rockchip-rk3588-opp-oc-24ghz
overlay_prefix=rockchip
rootfstype=ext4
earlycon=on
10. unmount, plug into the rock5 and try boot if with a serial converter (capable of 1500000 (that's 1.5 Mbps (!) mind you)) connected:
Code:
screen -T screen-256color -aU /dev/ttyUSB0 1500000,-crtscts
 
1 members found this post helpful.
Old 05-30-2023, 02:58 PM   #48
SCerovec
Senior Member
 
Registered: Oct 2006
Location: Cp6uja
Distribution: Slackware on x86 and arm
Posts: 2,478
Blog Entries: 2

Rep: Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982
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}
 
Old 05-31-2023, 07:09 AM   #49
Dunc.
Member
 
Registered: Jul 2012
Location: Cumbria UK
Distribution: Slackware
Posts: 62

Rep: Reputation: 30
In your post showing the boot Failure:
Quote:
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.

Dunc.
 
2 members found this post helpful.
Old 05-31-2023, 11:06 AM   #50
drmozes
Slackware Contributor
 
Registered: Apr 2008
Distribution: Slackware
Posts: 1,551

Original Poster
Rep: Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314
Quote:
Originally Posted by SCerovec View Post
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.

Last edited by drmozes; 05-31-2023 at 11:27 AM.
 
1 members found this post helpful.
Old 05-31-2023, 11:12 AM   #51
drmozes
Slackware Contributor
 
Registered: Apr 2008
Distribution: Slackware
Posts: 1,551

Original Poster
Rep: Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314
Quote:
Originally Posted by SCerovec View Post
Due to popular demand:

My SD card just lost the gist may it rest in peace.
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.
 
2 members found this post helpful.
Old 05-31-2023, 10:36 PM   #52
SCerovec
Senior Member
 
Registered: Oct 2006
Location: Cp6uja
Distribution: Slackware on x86 and arm
Posts: 2,478
Blog Entries: 2

Rep: Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982
Arrow

Quote:
Originally Posted by drmozes View Post
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...
 
Old 06-01-2023, 12:18 AM   #53
SCerovec
Senior Member
 
Registered: Oct 2006
Location: Cp6uja
Distribution: Slackware on x86 and arm
Posts: 2,478
Blog Entries: 2

Rep: Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982
Question

Quote:
Originally Posted by drmozes View Post
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...
 
Old 06-01-2023, 02:18 AM   #54
drmozes
Slackware Contributor
 
Registered: Apr 2008
Distribution: Slackware
Posts: 1,551

Original Poster
Rep: Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314
Quote:
Originally Posted by SCerovec View Post
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?
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% /
The default extinux config for the OS is here. There are three:

* 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
 
1 members found this post helpful.
Old 06-01-2023, 09:07 AM   #55
SCerovec
Senior Member
 
Registered: Oct 2006
Location: Cp6uja
Distribution: Slackware on x86 and arm
Posts: 2,478
Blog Entries: 2

Rep: Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982
Quote:
Originally Posted by drmozes View Post
[snip]
Pretend I didn't reply ;-)
welp, since no one seems to bother replying i might as well rant here for the while:

<--!rant-->
RE: inter project name-space creep

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 uboot.conf or ubootlinux.conf or even bootlinux.conf ?



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>
 
Old 06-01-2023, 09:37 AM   #56
drmozes
Slackware Contributor
 
Registered: Apr 2008
Distribution: Slackware
Posts: 1,551

Original Poster
Rep: Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314
Quote:
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 :-)

Last edited by drmozes; 06-01-2023 at 10:00 AM.
 
1 members found this post helpful.
Old 06-01-2023, 11:31 PM   #57
SCerovec
Senior Member
 
Registered: Oct 2006
Location: Cp6uja
Distribution: Slackware on x86 and arm
Posts: 2,478
Blog Entries: 2

Rep: Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982
Post

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...) ...
 
Old 06-02-2023, 02:58 AM   #58
drmozes
Slackware Contributor
 
Registered: Apr 2008
Distribution: Slackware
Posts: 1,551

Original Poster
Rep: Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314Reputation: 1314
Quote:
Originally Posted by SCerovec View Post
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.
 
1 members found this post helpful.
Old 06-04-2023, 10:10 AM   #59
SCerovec
Senior Member
 
Registered: Oct 2006
Location: Cp6uja
Distribution: Slackware on x86 and arm
Posts: 2,478
Blog Entries: 2

Rep: Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982
Arrow

Quote:
Originally Posted by drmozes View Post
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) ]---
Investigating...
 
Old 06-04-2023, 11:00 AM   #60
SCerovec
Senior Member
 
Registered: Oct 2006
Location: Cp6uja
Distribution: Slackware on x86 and arm
Posts: 2,478
Blog Entries: 2

Rep: Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982Reputation: 982
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.

Rebuilding once more time...
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
direct rendering: Yes :: (but applications say direct rendering is not possible?) AbsoluteMonkey Fedora 0 12-16-2008 09:44 PM
Radius server Integration rockage2001 Linux - Security 4 09-16-2003 11:16 AM
Sendmail to Openldap integration kaushik2510 Linux - Software 1 08-06-2003 09:16 AM
Best way to ALOT of files in a direct to other direct? packman Linux - General 2 10-21-2002 07:31 PM
Linux Squid and Windows NT domain integration deatho01 Linux - Networking 2 07-24-2002 12:11 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - ARM

All times are GMT -5. The time now is 08:34 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration