Porteus 3.2 for Raspberry Pi 2 and 3 (armhf)

Ahau's work on porting Porteus to ARM devices
Post Reply
jssouza
DEV Team
DEV Team
Posts: 227
Joined: 09 Jul 2015, 14:17
Distribution: Porteus x86 arm
Location: Liechtenstein

Porteus 3.2 for Raspberry Pi 2 and 3 (armhf)

Post#1 by jssouza » 19 Dec 2016, 22:01

First of all, thanks brokenman for sharing v3.2 build scripts.
Thanks also to Stuart Winter for starting the arm hard float port of Slackware a few months back.

Image

Download the zip from here:
http://www.mediafire.com/file/1dg73yc6c ... 100217.zip

Installation procedure:
Extract the zip file onto a microsd card and boot the pi with it.

Boot menu entries can be updated in the boot/extlinux/extlinux.conf file whose syntax is similar to porteus.cfg of x86.
One quick way to add a cheatcode without having to change the extlinux.conf file:
Hit any key during boot up to get to the u-boot prompt. Then run these commands (example adding delay and fsck)

Code: Select all

setenv cheatcodes "delay=5 fsck"
boot
USM has not been included, because of an ever changing slackware-current repo. Also AFAIK, there aren't any other slackware arm repos, except for ponce's lxde, which I've already used to create a 003-lxde. The only way to add more programs is to build them from source.
The 05_devel.xzm and crippled_sources.xzm are present in the porteus/optional directory.

003-lxde.xzm is also in the porteus/optional. Replace xfce in the base directory with the lxde module, or use the noload=xfce load=lxde cheatcodes to run LXDE.

The Pi does not have an RTC, hence once wired/wireless internet setup is done, use the timezone=cheatcode to get the correct time via ntp.

Most package versions are kept same as that of x86 porteus. However, since slackware hard float port is based on slackware current, some packages (eg: Xorg 1.19) are newer. Some applications like cryptsetup, busybox, uclibc, packages linked to uclibc in the initrd etc are much newer.

Web browsers:
1. Firefox can be downloaded directly from slackwarearm-current and converted using txz2xzm.
2. Chromium on the raspbian uses the pi's hardware acceleration. The .deb can be downloaded from the raspbian repo and converted using deb2xzm.
3. Palemoon can be downloaded from here, and then converted to an xzm module.

PXE Boot
- Select "Porteus as PXE Server" from the boot menu on the pi that should be the PXE server.
- Assuming the PXE server pi booted up with IP address 192.168.1.102,
- On the PXE client pi, hit any key during boot up to get to the u-boot prompt.
- Run these u-boot commands on the client pi to boot from the PXE server

Code: Select all

fdt addr 0x17fed200 && fdt get value bootargs /chosen bootargs
dhcp ${kernel_addr_r} 192.168.1.102:kernel.img
dhcp ${ramdisk_addr_r} 192.168.1.102:initramfs.img
setenv bootargs "${bootargs} ip=dummy:192.168.1.102"
bootz ${kernel_addr_r} ${ramdisk_addr_r} 0x17fed200
- The above u-boot commands can be converted into a u-boot script (uboot-tools package is included in 001-core).

Md5sums:
5c499742382bff9b689fcdbaed09d0bc porteus-armhf-rpi-100217.zip
7c228a2b594774d848c3dadc7157a005 porteus-armhf-rpi-100217.zip.sig
Last edited by jssouza on 05 Jul 2017, 13:43, edited 5 times in total.

jssouza
DEV Team
DEV Team
Posts: 227
Joined: 09 Jul 2015, 14:17
Distribution: Porteus x86 arm
Location: Liechtenstein

Re: Porteus 3.2 for Raspberry Pi 2 and 3 (armhf)

Post#2 by jssouza » 19 Dec 2016, 22:50

Technical Information:
Linux kernel is from https://github.com/raspberrypi/linux. I have added the aufs patch and needed porteus configs on it. Kernel and u-boot are built for the raspberry pi.

initrd is same as that of x86 porteus, except for necessary changes in linuxrc.
initrd and 001-core are pi independent. Hence porting to other arm devices should be easier once the kernel is booted, with this same initrd and 001-core.

002-xorg only has vesa, fbdev and fbturbo video drivers. Even though, slackwarearm provides other video drivers, they have been excluded so that the big fat LLVM could also be excluded. This makes xorg much leaner and hence better for copy2ram/rammod.
ffmpeg is built specifically for the pi hardware.

Code: Select all

guest@porteus:~$ ffmpeg
ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --docdir=/usr/doc/ffmpeg-3.2.2/html --mandir=/usr/man --enable-gpl --enable-version3 --disable-static --enable-shared --disable-debug --enable-opengl --arch=armv7l --enable-pthreads --enable-postproc --enable-swscale --enable-x11grab --enable-avfilter --enable-gnutls --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libbluray --enable-libgsm --enable-libspeex --enable-libvo-amrwbenc --enable-libxvid --enable-libwebp --enable-libtwolame --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libcdio --enable-libfribidi --enable-libpulse --enable-mmal --enable-omx --enable-omx-rpi
Mplayer is not included. Instead omxplayer, that utilizes the pi's hardware for video acceleration is built.

003-xfce4 and 003-lxde are pi independent, hence porting to other arm devices should be easier. (Should work as-is).

busybox, uclibc and the binaries linked to it in the initrd are the only applications that have been cross compiled. All other non-slackware stuff are natively built on a Pi 3.

Since the Pi does not have an RTC, write to non-existence hardwareclock is commented in /etc/rcS. If using an RTC like the DS1307 over the i2c, please enable this back (i2c is already enabled). Similarly acpid is disabled (as an optimization) since the pi does not have an ACPI circuitry.
Last edited by jssouza on 12 Jan 2017, 07:55, edited 1 time in total.

User avatar
francois
Contributor
Contributor
Posts: 4987
Joined: 28 Dec 2010, 14:25
Distribution: kde xfce porteus manjaro kubun
Location: Enfin l'été, le changement climatique attendu: le soleil.

Re: Porteus 3.2 for Raspberry Pi 2 and 3 (armhf)

Post#3 by francois » 20 Dec 2016, 01:28

@jssouza:
Thanks for this additional substantial contribution. :)
Voltaire: Le mieux est l'ennemi du bien.

jssouza
DEV Team
DEV Team
Posts: 227
Joined: 09 Jul 2015, 14:17
Distribution: Porteus x86 arm
Location: Liechtenstein

Re: Porteus 3.2 for Raspberry Pi 2 and 3 (armhf)

Post#4 by jssouza » 20 Dec 2016, 12:40

Thank you for the encouragement Francois.

rajamohan
Ronin
Ronin
Posts: 1
Joined: 30 Dec 2016, 18:54
Distribution: Linux Mint
Location: Chennai

Re: Porteus 3.2 for Raspberry Pi 2 and 3 (armhf)

Post#5 by rajamohan » 30 Dec 2016, 19:02

Thanks much jssouza,

I am a big fan of Porteus, had setup few system around my circle, I was looking for this arm port long back

the main distribution is live now, will there be any chance we get a new build, also I need to setup printing, is the printing module is available or please guide me how to setup printing module

Thanks
Raj

ppoo
Ronin
Ronin
Posts: 1
Joined: 12 Jan 2017, 20:46
Distribution: 3.1
Location: canada

Re: Porteus 3.2 for Raspberry Pi 2 and 3 (armhf)

Post#6 by ppoo » 12 Jan 2017, 20:48

Hi to all! The link for dropbox is down. I would love to give this a try

jssouza
DEV Team
DEV Team
Posts: 227
Joined: 09 Jul 2015, 14:17
Distribution: Porteus x86 arm
Location: Liechtenstein

Re: Porteus 3.2 for Raspberry Pi 2 and 3 (armhf)

Post#7 by jssouza » 13 Jan 2017, 11:57

Fixed the links. Thanks.

jssouza
DEV Team
DEV Team
Posts: 227
Joined: 09 Jul 2015, 14:17
Distribution: Porteus x86 arm
Location: Liechtenstein

Re: Porteus 3.2 for Raspberry Pi 2 and 3 (armhf)

Post#8 by jssouza » 10 Feb 2017, 16:26

Uploaded new version. Please refer first post (also updated).

Changes:
1. Upgraded to kernel 4.9.y
2. Upgraded to more recent slackwarearm-current packages.
3. Pulled-in changes from 3.2.2 main version.
4. Included the LXDE desktop, along with XFCE.

Unlike before, I have uploaded only one zip file. The 05_devel.xzm and crippled_sources.xzm are present in the porteus/optional directory. 003-lxde.xzm is also in the porteus/optional. Please use the noload=xfce load=lxde cheatcodes to run LXDE. Please refer the first two posts for installation and other info.

LXDE screenshot:
Image

owwe
Ronin
Ronin
Posts: 1
Joined: 07 Apr 2017, 11:33
Distribution: none
Location: sweden

Re: Porteus 3.2 for Raspberry Pi 2 and 3 (armhf)

Post#9 by owwe » 07 Apr 2017, 11:38

Want to give it a try but dl link to dropbox dont work :unknown:

jssouza
DEV Team
DEV Team
Posts: 227
Joined: 09 Jul 2015, 14:17
Distribution: Porteus x86 arm
Location: Liechtenstein

Re: Porteus 3.2 for Raspberry Pi 2 and 3 (armhf)

Post#10 by jssouza » 05 Jul 2017, 13:45

owwe wrote:Want to give it a try but dl link to dropbox dont work :unknown:
I uploaded it to mediafire now. (Link changed in first post).

Post Reply