Software projects/OS/Slackware

From Pandora Wiki
Revision as of 07:52, 4 November 2012 by Linux-SWAT (talk | contribs) (Installing a program from source)
Jump to: navigation, search

Disclaimer

Hi, this is Linux-SWAT.

Welcome to the SL4P, Slackware for Pandora, Wiki pages.

SL4P is a Slackware ARM overlay. Slackware ARM is the official ARM Slackware port.
Slackware ARM was formerly known as ARMedslack.

The 13.37 release page is located here: http://boards.openpandora.org/index.php?/topic/7574-rebirth-competition-slackware-for-pandora-pre-release-thread/

The technical forum page is located here: http://boards.openpandora.org/index.php?/topic/1524-slackware-inside-pandora/

I'm the maintainer of this Slackware port, and you can find me here: http://boards.openpandora.org/index.php?/user/1035-linux-swat/

If you have questions, i suggest you to share it on the boards, not asking me privately.

Important notes: SL4P is not affiliated in any way with Slackware or Slackware ARM.
Please DO NOT contact any of them if you have problems with it. Contact ME.

SL4P is not affiliated in any way with Open Pandora GmbH or Open Pandora Ltd.
Please DO NOT contact any of them if you have problems with it. Contact ME.

This software is distributed as is. You are on your own responsibility when using it.

I distribute this documentation under the GPL 3 license. http://www.gnu.org/licenses/gpl.html

Older Wiki pages

  • To keep this front page clean for the most recent release - 14.0 -, i moved previous versions elsewhere.
  • The old page for the 13.37 release is located here.

Stable or -current ?

  • Stable is for production use, ie. for work, as a server etc..
  • -current is a work in progress. Although it's pretty usable, some things may be broken/unstable.
  • I won't rebuild the 14.0 if there's no big bad bug, i'll just add important features as packages. Of course, official Slackware updates are included.
  • -current rootfs may be smaller or bigger from build to build, as i can include or remove KDE, amongst other things.
  • If you want to help the development, i prefer that you use -current.
  • And finally, -current repository may be empty. It's because a new stable release is out.
  • Note that 14.0 is currently in release candidate stage, so considered as "unstable".

Installation

  • Format a 8G or more SD card with the Ext2 filesystem. To make explanations clear, name it SLACK.
  • If you don't know how to format a drive, use GParted under Linux, or run their Live-CD. Here's the manual.
  • It's highly recommended to have a second partition formated as a swap. 256M or more is a good choice. 512M is wiser is you plan to compile some stuff, or for server use.
  • If you don't plan to use this partition configuration (OS followed by swap), you'll have to edit the /media/SLACK/etc/fstab after having uncompressed the rootfs.
  • Grab the latest 14.0 release candidate (unstable) rootfs here.

Or

  • Or the latest -current (unstable) rootfs here. The -current repository may be empty. It's because a new stable release is out.
  • Uncompress the rootfs on your SD. Be root, using su -, or sudo:
sudo tar jxvfp SL4P-[version]-[build].tar.bz2 -C /media/SLACK/ --numeric-owner
  • If you are one of the last windows users, you can install SL4P using the method nicely provided by ingoreis. Check this thread.

First run

  • Be sure your Pandora's clock is set. Otherwise, your filesystem will be checked.
  • Power down your Pandora, insert the SD card in the left slot (also called slot 1), and power on your unit.
  • If you're prompted to enter the root password for maintenance or to type Ctrl-D, just wait, the unit will restart and check the filesystem automatically.
  • You will be prompted to choose a password for the root user.
  • You will be prompted to create an user. At some explicit point, push [up] to put this user in adequate groups.
Bug: very unlikely to happen, but when using startx (not the SL4P default setup), you can be blocked at a black screen. Use pandora button + power to reboot.

Autologin

  • The Slim login manager, which is SL4P's default, can automatically log in an user. You're asked about it at the first login. Else, see /etc/slim.conf .
  • KDM works, but is too heavy. You have to edit /etc/rc.d/rc.4 in order to use it.

Basic usage

  • In order to type commands as root, you have to type su -. You can use just su, but i don't recommend it because you won't have the full root environment.
  • (13.37) In order to unmount drives or SD cards under Xfce, you have an icon in the bar. You can also manually use pumount as user.
  • When using adduser, at some explicit point, push [up] to put this user in adequate groups.
  • To choose a window manager, type xwmconfig.
  • In some builds, i ship KDE. Avoid selecting it as full desktop on 256M Pandora.
  • To power off, or reboot your Pandora when not in Xfce and it's user-friendly menus, be root and type:
halt

or

reboot

Basic tools

  • To enable or disable services at boot, become root, then type pkgtool, then go in setup -> services, check the option with space then push enter.
  • Some services are not listed here. For example, to activate the NFS server permanently, tweak /etc/exports and /etc/hosts.allow, then:
 chmod +x /etc/rc.d/rc.nfsd
 /etc/rc.d/rc.nfsd start (not needed after a reboot)

Installing a program - Tools

  • Slackware archives are .tgz or .txz .
  • Slackware uses three powerful tools: installpkg, removepkg and upgradepkg.
  • A fourth tool named makepkg build packages from compiled sources.

Installing a program from source

sbopkg -r
  • The sync will take a long time. Once you've done that, run /root/sboflags.sh to optimize the builds for the Pandora.
  • You have to run this script after every sync. A fistful of programs (like ilbc, which needs -fPIC) will still need a bit of tweaking.
  • Then all is set up, you just have to use
sbopkg

and choose "Local SlackBuild" when prompted.

  • Note that Slackware does not check dependencies, so you have to get the right build orders looking here: http://slackbuilds.org/
  • Also note that gnome libraries must be compiled in a certain order. I already did the job, and shipped them in the rootfs.
  • If you don't use a SlackBuild script, then the procedure almost always ends like:
make install DESTDIR=/tmp/whatever/
cd /tmp/whatever/
makepkg /tmp/whatever-1.0.0-arm-1.tgz
installpkg /tmp/whatever-1.0.0-arm-1.tgz

Installing a program with a precompiled archive

  • I compiled a lot of packages from http://slackbuilds.org/. You can find 14.0 ones here, and -current ones here.
  • Download what you need, checking the dependencies for your version here: http://slackbuilds.org/
  • Put all needed .tgz or .txz in a folder, go root using su -, then type:
installpkg /path/to/your/folder/*.t?z

About SL4P precompiled archives

  • All extra archives are compiled with sbopkg without any modification.
  • The links to the sources are located here: http://slackbuilds.org/repository/
  • The building order is fixed in queue files, kind of build playlist.
  • The queues are located in /var/lib/sbopkg/queues/
  • About shipped archives, you don't need to download them as they're already in the rootfs, see this.

Updates

  • For stable releases, plug the net, become root using su -, then type:
slackpkg update
slackpkg upgrade-all
  • Do not do use slackpkg when using a -current. Instead, look at the changelog, download packages from here, become root using su -, then type:
upgradepkg /path/to/the/updates/*.t?z
  • 14.0 updates are notified here. If you need an up-to-date security, you should consider subscribing to the main Slackware mailing list. Slackware ARM updates are generally available a bit later.
  • You can also set up a cronjob. In this case, check /etc/slackpkg/blacklist to ensure some critical packages (ie., kernel) will not be updated.
  • Slackware usually provides updates during 10+ years, but it seems it's not the case with Slackware ARM. See the news for more details.

SL4P-specific updates

  • I provide Pandora fixes, available as Slackware archives.
  • 14.0 fixes are located here.
  • Grab them, become root using su -, then type:
upgradepkg --install-new /path/to/the/updates/*.t?z
  • You don't need to install those updates when using a rootfs build more recent than the update.

Installing KDE 4

  • Plug the net, become root using su -, then type:
slackpkg update
slackpkg install kde
  • Note that although i already slimmed down KDE configuration files, the 512M Pandora is recommended to run the full desktop.
  • Anyway, you can run any KDE application (konqueror, kwrite...) flawlessly with the 256M version.
  • Type xwmconfig to select KDE.

Fast boot tweak

  • I moved some of the boot stuff (ldconfig, font cache, mime database) in /etc/rc.d/rc.local_shutdown.
  • The reboot/power off process is slowered, but the OS integrity is safe.

PND compatibility list

  • SL4P supports .pnd files.
  • PNDs used to be recognized automatically. It's not the case anymore, and i don't know why.
  • So here's the workaround: after the insertion of your SD or USB drive, you have to push the green button near the Xfce menu.
  • Due to 3.2 kernel and dynamically linked libraries, not all .pnd are compatible.
  • View the PND compatibility list here.

Automounting a SD card or an USB drive

  • No system-wide automounter is enabled for now. It's still a work in progress and not perfect so i don't include this for now.
  • Only Xfce automounts.
  • As Xfce mounts devices at insertion, if you booted with a second SD card or an USB drive plugged in, you have to remove, then plug back the device.
  • If you plan to use Minimenu, you currently have to automount under Xfce, run xwmconfig, then log out to run Minimenu. This is the best method to save RAM.
  • You can also launch Minimenu under Xfce. Open a terminal and type:
mmwrapper -fmmenu

Booting another kernel

  • I provide kernel updates, and also a real time kernel.
  • Grab the latest kernel pack from here.
  • Install it with:
su -
upgradepkg --install-new kernels-[yyyymmdd]-arm-1.tgz
  • You don't need to install those updates when using a rootfs build more recent than the update.
  • To enable a new kernel, for example 3.2.16-szb4 or the 3.2.14-rt, boot the rootfs, then:
cd /boot
rm uImage
cp uImage-3.2.16-szb4 uImage

or:

cd /boot
rm uImage
cp uImage-3.2.14-rt uImage

And reboot.

  • If lsmod reports that no modules are loaded (that means, ie., no touchscreen), then run as root:
depmod -a

And reboot again.

Suspend and powersaving

  • I enabled the USB support by default, therefore, as said Notaz, it "Uses around 3x more power when idle, fails to suspend properly.".
  • If you want to disable USB support at boot, be root and edit /etc/rc.d/rc.local .

Near the top, change

modprobe ehci-hcd

into a comment:

#modprobe ehci-hcd
  • After that you will have type this command as root, or click on the Xfce USB icon whenever you need USB support.

Advanced usage

  • I wrote some tutorials to do interesting things.
  • All those guides are applicable to any version of Slackware, ie. x86, x86_64, IBM mainframe, etc.
  • Follow this link.

Xfce layout chooser

  • This is a beta work, and may, or may not be, included in a release.
  • The icon is located in "System".
  • I'm developing it, it's currently in beta stage.
  • You can save your own Xfce configuration, and load others.
  • If you want to use it, please use the save feature prior to anything else.
  • Only one custom layout is available right now.

Sources

Build system

  • I distribute it under the GPL 3 license.
  • It may look a bit messy for now (and indeed, some part have to be cleaned), but it's versatile, as i intended from the start.
  • It's mainly three bash scripts.
  • You need a Pandora to run the third one.
  • Depending on what you comment/uncomment, you can produce an alpha build, very minimal, or a full build.
  • Depending on what you edit, you can use it to port any *NIX to Open Pandora, and maintain your build very easily.
  • Get it here, along the more detailed instructions.

Ask a question/Report a bug

  • You're welcome, and please post here or here.