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 too recently got my hands on a Pinebook Pro, and would like to install Slackware on it.
Given that there is no official aarch64 Slackware port, I am faced with a dilemma.
Should I use slarm64 or try using Sarpi64 somehow?
In the meantime I also found the thread https://forum.pine64.org/showthread....8207&pid=52624 where the Pine64 people linked an up-to-date kernel source tree with all the necessary patches for the Pinebook pro. I believe that compiling that kernel with the manjaro kernel config could get me a kernel that could work reasonably well with the Pinebook Pro.
I just need to do a bit more reseaerch on how to create an installer image with this kernel to set Slackware up, whichever of the two userlands I choose.
I may be wrong though, it may turn out that the Sarpi64 userland won't work on the PbP.
Thanks for the link. May I ask a few questions?
Unfortunately the README files are pretty vague for both slarm64 and the slackware_arm_build_kit.
Do I understand correctly that the build kit is there to create the installer image for a wide range of devices.
Once git cloned, what scripts are necessary to build the image, and in which order are they supposed to be run?
I further have the impression that the installers built this way can use the package repositories of slarm64. Am I correct with this assumption?
Thanks for the link. May I ask a few questions?
Unfortunately the README files are pretty vague for both slarm64 and the slackware_arm_build_kit.
Do I understand correctly that the build kit is there to create the installer image for a wide range of devices.
Once git cloned, what scripts are necessary to build the image, and in which order are they supposed to be run?
I further have the impression that the installers built this way can use the package repositories of slarm64. Am I correct with this assumption?
Hi,
I can speak as a user.
slackware_arm_build_kit is used to create images as well as build the kernel and some tools.
Once cloned, try
Code:
./build.sh
This launches a dialog based installer script.
Yes, the created images use the package repository for slarm64.
Thanks for the link. May I ask a few questions?
Unfortunately the README files are pretty vague for both slarm64 and the slackware_arm_build_kit.
Do I understand correctly that the build kit is there to create the installer image for a wide range of devices.
Once git cloned, what scripts are necessary to build the image, and in which order are they supposed to be run?
I further have the impression that the installers built this way can use the package repositories of slarm64. Am I correct with this assumption?
yes that's right, slackware_arm_build_kit is an assembly kit for creating the final image for different boards.
slackwarearm or slarm64 is selected depending on the SoC architecture.
main startup script ./build.sh, in it all scripts are executed sequentially.
i’ll create a basic image for testing, please check for operability
Okay, I will test the installer, and will report back to you. (It may take a few days.)
In the meantime I tried building the installer myself, but unfortunately it failed.
I installed a machine with slackware64-current to build the images on. Do I need any other preparations, like downloading/installing/compiling the cross compilation toolchain?
I'm just asking because I got an error message like this, and this leads me to believe that I need to get the toolchain too:
Code:
...
#
# configuration written to .config
#
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/config.h
UPD include/config.h
CFG u-boot.cfg
GEN include/autoconf.mk.dep
CFG spl/u-boot.cfg
cc1: error: unknown register name: x18 [-Werror]
cc1: error: unknown register name: x18 [-Werror]
cc1: error: unknown register name: x18 [-Werror]
cc1: all warnings being treated as errors
cc1: all warnings being treated as errors
make[1]: *** [scripts/Makefile.autoconf:50: include/autoconf.mk.dep] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [scripts/Makefile.autoconf:83: spl/u-boot.cfg] Error 1
cc1: all warnings being treated as errors
make[1]: *** [scripts/Makefile.autoconf:79: u-boot.cfg] Error 1
make: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/uboot.release'. Stop.
if we talk about slackware_arm_build_kit then everything automatically downloads there.
i will make a reservation that I have not tested x86 on a PC for a long time.
if at all you need a cross compiler gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xzmore
make ARCH=$ARCH CROSS_COMPILE=$CROSS
Okay, I downloaded the compiler you recommended, however I don't completely understand the last part of your reply
Quote:
Originally Posted by sndwvs
make ARCH=$ARCH CROSS_COMPILE=$CROSS
Where am I supposed to put this? Should I modify one of your scripts to "make" (build) the packages differently (that is cross-compile them)?
Also, I found this article about building one's own toolchain for cross compilation: https://docs.slackware.com/howtos:ha...cross-compiler
Maybe I can use this as a plan B, instead of the "official" compiler, if I encounter any problems that I can't overcome with that.
Okay, I downloaded the compiler you recommended, however I don't completely understand the last part of your reply
Where am I supposed to put this? Should I modify one of your scripts to "make" (build) the packages differently (that is cross-compile them)?
Also, I found this article about building one's own toolchain for cross compilation: https://docs.slackware.com/howtos:ha...cross-compiler
Maybe I can use this as a plan B, instead of the "official" compiler, if I encounter any problems that I can't overcome with that.
Cross compiler reference for plan B
slackware_arm_build_kit he downloads everything
#
# configuration written to .config
#
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/config.h
UPD include/config.h
CFG u-boot.cfg
GEN include/autoconf.mk.dep
CFG spl/u-boot.cfg
cc1: error: unknown register name: x18 [-Werror]
cc1: error: unknown register name: x18 [-Werror]
cc1: error: unknown register name: x18 [-Werror]
cc1: all warnings being treated as errors
make[1]: *** [scripts/Makefile.autoconf:83: spl/u-boot.cfg] Error 1
make[1]: *** Waiting for unfinished jobs....
cc1: all warnings being treated as errors
cc1: all warnings being treated as errors
make[1]: *** [scripts/Makefile.autoconf:79: u-boot.cfg] Error 1
make[1]: *** [scripts/Makefile.autoconf:50: include/autoconf.mk.dep] Error 1
make: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/uboot.release'. Stop.
I also tried compiling the installer image on the Debian 9.12 that comes pre-installed on the Pinebook Pro.
This OS has an aarch64 kernel, while the userland seems to consist of regular 32 bit ARM hard-float binaries.
For this reason the build script also fails when I attempt to run it without CROSS and ARCH set.
The error messages in the build log were pretty similar to the ones on the x86_64 machine, they were complaining about the unknown register name x18. The build also failed when compiling u-boot.
After that I tried setting
Code:
export ARCH=aarch64
export CROSS=aarch64-linux
on the Pinebook Pro, but then the build script failed when downloading the cross compilation toolchain, due to a HTTP 404 error:
Code:
https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabihf/gcc-linaro-7.2.1-2017.11-aarch64_arm-linux-gnueabihf.tar.xz.asc: 404 Not Found.
#
# configuration written to .config
#
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/config.h
UPD include/config.h
CFG u-boot.cfg
GEN include/autoconf.mk.dep
CFG spl/u-boot.cfg
cc1: error: unknown register name: x18 [-Werror]
cc1: error: unknown register name: x18 [-Werror]
cc1: error: unknown register name: x18 [-Werror]
cc1: all warnings being treated as errors
make[1]: *** [scripts/Makefile.autoconf:83: spl/u-boot.cfg] Error 1
make[1]: *** Waiting for unfinished jobs....
cc1: all warnings being treated as errors
cc1: all warnings being treated as errors
make[1]: *** [scripts/Makefile.autoconf:79: u-boot.cfg] Error 1
make[1]: *** [scripts/Makefile.autoconf:50: include/autoconf.mk.dep] Error 1
make: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/uboot.release'. Stop.
I also tried compiling the installer image on the Debian 9.12 that comes pre-installed on the Pinebook Pro.
This OS has an aarch64 kernel, while the userland seems to consist of regular 32 bit ARM hard-float binaries.
For this reason the build script also fails when I attempt to run it without CROSS and ARCH set.
The error messages in the build log were pretty similar to the ones on the x86_64 machine, they were complaining about the unknown register name x18. The build also failed when compiling u-boot.
After that I tried setting
Code:
export ARCH=aarch64
export CROSS=aarch64-linux
on the Pinebook Pro, but then the build script failed when downloading the cross compilation toolchain, due to a HTTP 404 error:
Code:
https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabihf/gcc-linaro-7.2.1-2017.11-aarch64_arm-linux-gnueabihf.tar.xz.asc: 404 Not Found.
So, now I'm kind of stuck again.
all variables ARCH,CROSS,CROSS64 defined in scripts
all variables ARCH,CROSS,CROSS64 defined in scripts
Okay, understood. So what should I do? Should I go ahead and modify them in those scripts?
Or if not, then what am I supposed to do? If I don't set them anywhere, and go with the script's defaults, the compilation will simply fail at uboot.
(If I simply don't set any of these environment variables, and go with the defaults in the script, it won't even bother downloading the cross compilation toolchains.)
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.