Difference between revisions of "Software projects/OS/Slackware"

From Pandora Wiki
Jump to: navigation, search
(Undo revision 27394 by Linux-SWAT (talk))
m (new boards links)
 
(79 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
[[File:Lead_Photo_For_Software_projects-OS-Slackware0-49411322670714386.jpg|thumbnail|Slackware logo]]
 +
 
= Disclaimer =
 
= Disclaimer =
 
Hi, this is Linux-SWAT.
 
Hi, this is Linux-SWAT.
Line 8: Line 10:
 
Slackware ARM was formerly known as ARMedslack.
 
Slackware ARM was formerly known as ARMedslack.
  
The 14.0 release forum page is located here:
+
The 14.2 release forum page is located here:
http://boards.openpandora.org/index.php?/topic/9797-slackware-for-pandora-140/
+
https://pyra-handheld.com/boards/threads/slackware-for-pandora-14-2.80934/
  
 
The technical and -current forum page is located here:
 
The technical and -current forum page is located here:
http://boards.openpandora.org/index.php?/topic/1524-slackware-inside-pandora/
+
https://pyra-handheld.com/boards/threads/slackware-inside-pandora.60258/
  
 
I'm the maintainer of this Slackware port, and you can find me here:
 
I'm the maintainer of this Slackware port, and you can find me here:
http://boards.openpandora.org/index.php?/user/1035-linux-swat/
+
https://pyra-handheld.com/boards/members/linux-swat.18403/
  
If you have questions, i suggest you to share it on the boards, not asking me privately.
+
If you have questions, I suggest you to share it on the boards, not asking me privately.
  
 
Important notes:
 
Important notes:
Line 31: Line 33:
 
I distribute this documentation under the GPL 3 license.
 
I distribute this documentation under the GPL 3 license.
 
http://www.gnu.org/licenses/gpl.html
 
http://www.gnu.org/licenses/gpl.html
 +
 +
= Features =
 +
 +
* Full hardware support
 +
* 12 window managers, including Xfce, Minimenu and Enlightenment DR17
 +
* KDE (512M RAM recommended), installed via internet in two commands
 +
* Pnd support
 +
* PNDmanager and PNDstore support
 +
* Armhf compatibility layer
 +
* Rebuilt optimized video player (MPlayer2)
 +
* Integrated YouTube player (SMTube, no Flash plugin needed)
 +
* Rebuilt optimized audio player (XMMS)
 +
* Integrated VOIP with Linphone
 +
* Integrated office suite, with AbiWord and Gnumeric
 +
* Integrated DisplayLink support
 +
* More than 400 Pandora-optimized pre-compiled packages (hosted @ openpandora.org)
 +
* Slapt-get and gslapt for easy installation of these pre-compiled packages
 +
* An automatized package building system (sbopkg)
 +
* Three optional standard firewall configs for eth0, usb0 and wlan0
 +
* Other optional firewall configs for routing/firewalling
 +
* Kernel recompilation made easy
 +
* Updates through official Slackware repository
 +
* The SL4P build system (hosted @ openpandora.org), which can be used to port any Linux/*NIX to Open Pandora
 +
* Official OP 3.X kernel + realtime kernel
 +
* Optimized Notaz's SDL
 +
* Bsp's c64-tools for the DSP
 +
* Glshim from Lunixbochs
 +
* Gl4es and SDL2 from ptitSeb
 +
* Gcc, make, perl, python2, python3, ruby, OpenJDK, SFML, etc.
  
 
= Helping this project =
 
= Helping this project =
 
* Please consider making a donation.
 
* Please consider making a donation.
 
* This will help the SL4P project, and also the whole Pandora community, as part of it funds pre-orders.
 
* This will help the SL4P project, and also the whole Pandora community, as part of it funds pre-orders.
* To do so, go to PayPal, log in and click on "Send Money". Donate to donation@openpandora.org and indicate in the PayPal comment field that you are donating for the Slackware project. Then PM me, so i will include you in my thx list ;^).
+
* To do so, go to PayPal, log in and click on "Send Money". Donate to donation@openpandora.org and indicate in the PayPal comment field that you are donating for the Slackware project. Then PM me, so I will include you in my thx list ;^).
  
 
= Older releases Wiki pages =
 
= Older releases Wiki pages =
* To keep this front page clean for the most recent release - 14.0 -, i moved previous versions elsewhere.
+
* To keep this front page clean for the most recent release - 14.2 -, I moved previous versions elsewhere.
 +
* The old page for the 14.1 release is located [http://pandorawiki.org/Software_projects/OS/Slackware-14.1 here.]
 +
* The old page for the 14.0 release is located [http://pandorawiki.org/Software_projects/OS/Slackware-14.0 here.]
 
* The old page for the 13.37 release is located [http://pandorawiki.org/Software_projects/OS/Slackware-13.37 here.]
 
* The old page for the 13.37 release is located [http://pandorawiki.org/Software_projects/OS/Slackware-13.37 here.]
 +
 +
= OS architecture =
 +
* 14.2 is the last and final ARMv5te, little endian, software float ("soft-float", "armel"), EABI.
 +
* 14.2 has the armhf compatibility layer, therefore can run some armhf programs.
 +
* -current is ARMv7-a, little endian, hardware float ("hard-float", "armhf"), EABI, therefore not compatible with most .pnd .
  
 
= Stable or -current ? =
 
= Stable or -current ? =
 
* Stable is for production use, ie. for work, as a server etc..
 
* 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.
 
* -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.
* -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.
* 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.
 
* And finally, -current repository may be empty. It's because a new stable release is out.
 +
 +
= A word about SOLEIL =
 +
* [http://pandorawiki.org/SOLEIL SOLEIL] is another project of mine, based on SL4P.
 +
* It's basically the same OS from the Pandora point of view, but has some neat extended features. Feel free to take a look at it.
 +
 +
= A word about security =
 +
* The shipped MPlayer is optimized, but outdated, if this is a concern, you can uninstall it and use the official Slackware up-to-date version instead.
 +
* Same applies for bluez, but note that there's no working up-to-date OP-compatible working package.
 +
* See also #Firefox, Thunderbird, SeaMonkey and Java-OpenJRE/JDK updates
 +
* SL4P's Bluetooth may be vulnerable to [https://mobile.slashdot.org/story/17/09/12/2030213/blueborne-vulnerabilities-impact-over-5-billion-bluetooth-enabled-devices this exploit].
  
 
= Media choice =
 
= Media choice =
 
* SL4P runs on a SD card. It fits well on 8G, but 16G or more are recommended if you plan to install all the pre-compiled packages.
 
* SL4P runs on a SD card. It fits well on 8G, but 16G or more are recommended if you plan to install all the pre-compiled packages.
 
* The SD card must support Linux filesystems, see [http://pandorawiki.org/SD_compatibility_list this SD compatibility chart].
 
* The SD card must support Linux filesystems, see [http://pandorawiki.org/SD_compatibility_list this SD compatibility chart].
* I myself recommend the [http://www.sandisk.com/products/memory-cards/sd/ SanDisk Extreme or Extreme Pro cards].
+
* I myself recommend the [http://www.sandisk.com/products/memory-cards/sd/ SanDisk Extreme, Extreme PLUS, or Extreme Pro cards].
  
 
= Installation =
 
= Installation =
 
Note: if you're a Linux noob, and you're scared by this Wiki page, check [http://boards.openpandora.org/index.php?/topic/11132-tutorial-format-your-sd-card-and-install-slackware-using-only-your-pandora/#entry206993 this simple tutorial] from F_Slim. Thanks to him.<br>
 
Note: if you're a Linux noob, and you're scared by this Wiki page, check [http://boards.openpandora.org/index.php?/topic/11132-tutorial-format-your-sd-card-and-install-slackware-using-only-your-pandora/#entry206993 this simple tutorial] from F_Slim. Thanks to him.<br>
 
Note: if you are one of the last windows users, you can install SL4P using the method nicely provided by ingoreis. Check [http://boards.openpandora.org/index.php?/topic/10548-slackware14rc3-for-pandora-pretty-easy-install-for-windows-users/ this thread.]
 
Note: if you are one of the last windows users, you can install SL4P using the method nicely provided by ingoreis. Check [http://boards.openpandora.org/index.php?/topic/10548-slackware14rc3-for-pandora-pretty-easy-install-for-windows-users/ this thread.]
* Format a 8G or more SD card with the Ext2 filesystem. To make explanations clear, name it SLACK.
+
* Format a 8G or more SD card with the Ext4 filesystem. To make explanations clear, name it SLACK.
 +
* You can disable the Ext4 journal to get a better performance, with the sdc1 partition for example:
 +
tune2fs -O ^has_journal /dev/sdc1
 +
* Note that Ext4 support is enabled since [http://openpandora.org/firmware/fullflash/ SuperZaxxon v1.75 firmware], so be sure to update. If you don't/can't, you can safely use Ext2 instead.
 
* If you don't know how to format a drive, use GParted under Linux, or run their [http://sourceforge.net/projects/gparted/files/latest/download?source=files Live-CD]. Here's the [http://gparted.sourceforge.net/display-doc.php?name=help-manual manual].
 
* If you don't know how to format a drive, use GParted under Linux, or run their [http://sourceforge.net/projects/gparted/files/latest/download?source=files Live-CD]. Here's the [http://gparted.sourceforge.net/display-doc.php?name=help-manual 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.
 
* 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 [http://www.tuxfiles.org/linuxhelp/fstab.html /media/SLACK/etc/fstab] after having uncompressed the rootfs.
+
* If you don't plan to use this partition configuration (OS followed by swap), you'll have to edit the [http://www.tuxfiles.org/linuxhelp/fstab.html /etc/fstab] after having uncompressed the rootfs.
 
* If you're cleaning up a previous SL4P installation for a fresh new one, proceed like this:
 
* If you're cleaning up a previous SL4P installation for a fresh new one, proceed like this:
 
  rm -rf /media/SLACK/*
 
  rm -rf /media/SLACK/*
Line 79: Line 129:
 
and sync:
 
and sync:
 
  sync
 
  sync
* Grab the latest 14.0 rootfs [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-14.0%2Frootfs here.]
+
* Grab the latest 14.2 rootfs [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-14.2%2Frootfs here.]
 
Or
 
Or
 
* Grab the latest -current (unstable) rootfs [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-current%2Frootfs here.] The -current repository may be empty. It's because a new stable release is out.
 
* Grab the latest -current (unstable) rootfs [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-current%2Frootfs here.] The -current repository may be empty. It's because a new stable release is out.
Line 97: Line 147:
  
 
= Autologin =
 
= 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 .
+
* 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, edit /etc/slim.conf to change the configuration.
 
* KDM works, but is too heavy. You have to edit /etc/rc.d/rc.4 in order to use it.
 
* KDM works, but is too heavy. You have to edit /etc/rc.d/rc.4 in order to use it.
  
 
= Basic usage =
 
= 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.
+
* 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.
* When using adduser, at some explicit point, push [up] to put this user in adequate groups.
 
 
* To choose a window manager, type xwmconfig.
 
* To choose a window manager, type xwmconfig.
* I ship those ones:
+
* I ship those:
 
  Xfce
 
  Xfce
 
  fluxbox
 
  fluxbox
Line 117: Line 166:
 
  wmii
 
  wmii
 
* In some -current or -RC builds, i ship KDE. Avoid selecting it as full desktop on 256M Pandora.
 
* In some -current or -RC 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, become root with:
+
* To power off, or reboot your Pandora when not in Xfce and its user-friendly menus, become root with:
 
  su -
 
  su -
 
and type:
 
and type:
Line 123: Line 172:
 
or  
 
or  
 
  reboot
 
  reboot
 +
 +
= Setting up your timezone =
 +
* Become root and use
 +
timeconfig
  
 
= Setting up your language =
 
= Setting up your language =
 
* You can set your locale pretty easily. First, you have to know which languages are available, type:
 
* You can set your locale pretty easily. First, you have to know which languages are available, type:
 
  locale -a
 
  locale -a
* Choose the one that suits best your need. I highly recommend to use the versions with .utf8 .
+
* Choose the one that best suits your need. I highly recommend to use the versions with .utf8 .
 
* Then be root and edit /etc/profile.d/lang.sh .
 
* Then be root and edit /etc/profile.d/lang.sh .
 
  su -
 
  su -
 
  emacs /etc/profile.d/lang.sh
 
  emacs /etc/profile.d/lang.sh
 
* You'll have to change this variable with the one you need:
 
* You'll have to change this variable with the one you need:
export LANG=<span style="color:#FF0000">en_US.UTF-8</span>
+
export LANG=<span style="color:#FF0000">en_US.UTF-8</span>
 +
* Save the file, make sure it's executable:
 
  chmod +x /etc/profile.d/lang.sh
 
  chmod +x /etc/profile.d/lang.sh
* Save the file and reboot.
+
* Reboot.
  
 
= Services started at boot =
 
= Services started at boot =
Line 149: Line 203:
 
= Installing a program from source =
 
= Installing a program from source =
 
* The cleanest way to do it is to use a SlackBuild script: http://slackbuilds.org/guidelines/
 
* The cleanest way to do it is to use a SlackBuild script: http://slackbuilds.org/guidelines/
* Many SlackBuilds for Slackware 14.0 are already available here: http://slackbuilds.org/repository/14.0/
+
* Many SlackBuilds for Slackware 14.2 are already available here: http://slackbuilds.org/repository/14.2/
 
* I shipped a tool named sbopkg, which does the job for you. Become root using su - , then sync it with the internet repository with:
 
* I shipped a tool named sbopkg, which does the job for you. Become root using su - , then sync it with the internet repository with:
 
  sbopkg -r
 
  sbopkg -r
* The sync will take a long time. Once you've done that, run
+
* The sync may take some time. Once you've done that, run
 
  sh /root/sboflags.sh
 
  sh /root/sboflags.sh
to optimize the builds for the Pandora.
+
to optimize the builds for the Pandora. You have to run this script after every sync.
* You have to run this script after every sync. A fistful of programs (like ilbc or lua, which need -fPIC) will still need a bit of tweaking.
 
 
* Then all is set up, you just have to use
 
* Then all is set up, you just have to use
 
  sbopkg
 
  sbopkg
Line 166: Line 219:
 
  ls /var/log/packages/libgnomecanvas*
 
  ls /var/log/packages/libgnomecanvas*
 
* Also note that gnome libraries must be compiled in a certain order. I already did the job, and shipped them in the rootfs.
 
* 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:
+
* If you don't use a SlackBuild script, then the Slackware procedure almost always ends like:
 
  make install DESTDIR=/tmp/whatever/
 
  make install DESTDIR=/tmp/whatever/
 
  cd /tmp/whatever/
 
  cd /tmp/whatever/
 
  makepkg /tmp/whatever-1.0.0-arm-1.tgz
 
  makepkg /tmp/whatever-1.0.0-arm-1.tgz
 
  installpkg /tmp/whatever-1.0.0-arm-1.tgz
 
  installpkg /tmp/whatever-1.0.0-arm-1.tgz
 +
* If checking and fixing all of those pesky dependencies manually is too much of a burden for you to bear: fear not! [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Sqg Sqg] (slackbuilds queue generator) saves your day!
  
 
= Installing a program with a precompiled archive =
 
= Installing a program with a precompiled archive =
* I compiled a lot (300+) of packages from http://slackbuilds.org/.
+
* I compiled a lot (450+) of packages from http://slackbuilds.org/.
 
* I shipped a graphical install tool named GSlapt. Launch it with its icon, update the package list, then install what you need, checking the dependencies of your programs here:  http://slackbuilds.org/
 
* I shipped a graphical install tool named GSlapt. Launch it with its icon, update the package list, then install what you need, checking the dependencies of your programs here:  http://slackbuilds.org/
* You can also proceed manually. Find 14.0 packages [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-14.0%2Fpackages%2Fextra here], and -current ones [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-current%2Fpackages%2Fextra here.]
+
* You can also proceed manually. Find 14.2 packages [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-14.2%2Fpackages%2Fextra here], and -current ones [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-current%2Fpackages%2Fextra here.]
 
* Download what you need, checking the dependencies of your programs here:  http://slackbuilds.org/
 
* Download what you need, checking the dependencies of your programs here:  http://slackbuilds.org/
 
* Put all needed .tgz or .txz in a folder, go root using su -, then type:
 
* Put all needed .tgz or .txz in a folder, go root using su -, then type:
Line 183: Line 237:
 
= About SL4P precompiled archives =
 
= About SL4P precompiled archives =
 
* All shipped and extra archives are compiled with sbopkg with Pandora-optimized flags.
 
* All shipped and extra archives are compiled with sbopkg with Pandora-optimized flags.
  -DPANDORA -O2 -pipe -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp
+
  -DPANDORA -O2 -pipe -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fPIC
 
* The links to the sources are located here: http://slackbuilds.org/repository/
 
* 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 building order is fixed in queue files, kind of build playlist.
 
* The queues are located in /var/lib/sbopkg/queues/
 
* The queues are located in /var/lib/sbopkg/queues/
* About [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-14.0%2Fpackages%2Fshipped shipped] archives, you don't need to download them as they're already in the rootfs, see [http://pandorawiki.org/Software_projects/OS/Slackware/Build-system this.]
+
* About [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-14.2%2Fpackages shipped] archives (base and base-more), you don't need to download them as they're already in the rootfs, see [http://pandorawiki.org/Software_projects/OS/Slackware/Build-system this.]
* Some archives won't work, like Kompozer, because it's a repackaging of x86 binaries. As i'm not yet in the process of fine-tuning, i left them for now.
+
* Some archives won't work, like Kompozer, because it's a repackaging of x86 binaries. As I'm not yet in the process of fine-tuning, I left them for now.
  
 
= Installing KDE 4 =
 
= Installing KDE 4 =
Line 194: Line 248:
 
  slackpkg update
 
  slackpkg update
 
  slackpkg install kde
 
  slackpkg install kde
* Note that although i already slimmed down KDE configuration files for less eye-candy, the 512M Pandora is recommended to run the full desktop.
+
* Note that although i already slimmed down KDE configuration files for less eye-candy, a 512M Pandora is recommended to run the full desktop.
* Anyway, you can run any KDE application (konqueror, kwrite...) flawlessly with the 256M version.
+
* Anyway, you can run any KDE application (konqueror, kwrite...) flawlessly with the 256M version running Xfce.
* Type xwmconfig to select KDE.
+
* Type xwmconfig to select KDE, or any other window manager.
  
 
= Updates =
 
= Updates =
* You may eventually read [ftp://ftp.armedslack.org/slackwarearm/slackwarearm-14.0/ChangeLog.txt the Slackware ARM 14.0 changelog here]
+
* You may eventually read [ftp://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.2/ChangeLog.txt the Slackware ARM 14.2 changelog here]
 
* If you need an up-to-date security, you should consider subscribing to the main [http://slackware.com/lists/ Slackware mailing list]. Slackware ARM updates are generally available a bit later.
 
* If you need an up-to-date security, you should consider subscribing to the main [http://slackware.com/lists/ Slackware mailing list]. Slackware ARM updates are generally available a bit later.
 
* For stable releases, plug the net, become root using su -, then type:
 
* For stable releases, plug the net, become root using su -, then type:
 
  slackpkg update
 
  slackpkg update
 
  slackpkg upgrade-all
 
  slackpkg upgrade-all
* Do not use slackpkg when using a -current. Instead, look at the [ftp://ftp.armedslack.org/slackwarearm/slackwarearm-current/ChangeLog.txt changelog], download packages from [ftp://ftp.armedslack.org/slackwarearm/slackwarearm-current/slackware/ here], become root using su -, then type:  
+
* Do not use slackpkg when using a -current. Instead, look at the [ftp://ftp.arm.slackware.com/slackwarearm/slackwarearm-current/ChangeLog.txt changelog], download packages from [ftp://ftp.arm.slackware.com/slackwarearm/slackwarearm-current/slackware/ here], become root using su -, then type:  
 
  upgradepkg /path/to/the/updates/*.t?z
 
  upgradepkg /path/to/the/updates/*.t?z
 
Note that some packages like a/aaa_elflibs are not supposed to be upgraded in -current. A new rootfs is needed.
 
Note that some packages like a/aaa_elflibs are not supposed to be upgraded in -current. A new rootfs is needed.
  
* 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.
+
* You can eventually set up a cronjob. In this case, check /etc/slackpkg/blacklist to ensure some critical packages (e.g. kernel) will not be updated.
 
* Slackware usually provides updates during 10+ years, but it seems to be less with Slackware ARM. See [http://www.armedslack.org/ the news for more details].
 
* Slackware usually provides updates during 10+ years, but it seems to be less with Slackware ARM. See [http://www.armedslack.org/ the news for more details].
  
 
= SL4P-specific updates =
 
= SL4P-specific updates =
 
* I provide Pandora fixes, available as Slackware archives.
 
* I provide Pandora fixes, available as Slackware archives.
* 14.0 fixes are located [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-14.0%2Fpackages%2Fupdates here.]
+
* Simply use GSlapt, and update.
* 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.
 
  
 
= Firefox, Thunderbird, SeaMonkey and Java-OpenJRE/JDK updates =
 
= Firefox, Thunderbird, SeaMonkey and Java-OpenJRE/JDK updates =
* Slackware ARM 14.0 doesn't provide anymore updates for Firefox, Thunderbird and SeaMonkey because of a build problem.
+
* Slackware ARM 14.2 doesn't provide anymore updates for Firefox, Thunderbird and SeaMonkey because of a build problem.
 
* You have to download the unsupported -current archives and update them manually, using the method mentioned above.
 
* You have to download the unsupported -current archives and update them manually, using the method mentioned above.
* Get them [ftp://ftp.armedslack.org/slackwarearm/unsupported/slackwarearm-current/packages/ here].
+
* Get them [ftp://ftp.arm.slackware.com/slackwarearm/unsupported/slackwarearm-current/packages/ here].
 
* About Java-OpenJRE/JDK, it's not possible to update them through slackpkg because it was added on-the-fly to Slackware ARM.
 
* About Java-OpenJRE/JDK, it's not possible to update them through slackpkg because it was added on-the-fly to Slackware ARM.
* Check and get the updates [ftp://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.0/patches/packages/ here].
+
* Check and get the updates [ftp://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.2/patches/packages/ here].
 
* Be sure to download and update both as the jre is not included in the jdk.
 
* Be sure to download and update both as the jre is not included in the jdk.
  
 
= Kernel updates =
 
= Kernel updates =
* I provide kernel updates, and also a real time kernel.
+
* I provide kernel updates through GSlapt.
* You don't need to install those updates when using a rootfs build more recent than the update.
+
* Many kernels are already available in the rootfs, like real time, or non-debug.
* To know which kernel currently runs, type:
+
* To know which kernel is currently running, type:
 
  uname -r
 
  uname -r
* Grab the latest kernel pack from [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-14.0%2Fpackages%2Fkernels here.]
 
* Install it with:
 
su -
 
upgradepkg --install-new kernels-[yyyymmdd]-arm-1.tgz
 
 
* To enable a new kernel, for example 3.2.30-szfinal or the 3.2.26-rt, do:
 
* To enable a new kernel, for example 3.2.30-szfinal or the 3.2.26-rt, do:
 
  cd /boot
 
  cd /boot
Line 243: Line 290:
 
  rm uImage
 
  rm uImage
 
  cp uImage-3.2.26-rt uImage
 
  cp uImage-3.2.26-rt uImage
* Then link the right modules for the right kernel.
 
cd /lib/modules
 
* Get the current kernel name:
 
uname -r
 
* Remove the current kernel modules link, for example 3.2.30:
 
rm -rf 3.2.30
 
* Now link to the new modules. If the target kernel name contains "dirty", i.e. 3.2.30-dirty-displaylink, keep it in the modules folder name:
 
ln -s 3.2.30-dirty-displaylink 3.2.30-dirty
 
 
And reboot.
 
And reboot.
 
* If lsmod reports that no modules are loaded (that means, eg., no touchscreen), then run as root:
 
* If lsmod reports that no modules are loaded (that means, eg., no touchscreen), then run as root:
 
  depmod -a
 
  depmod -a
 
 
And reboot again.
 
And reboot again.
  
 
= Automounting a SD card or an USB drive =
 
= 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.
+
* No system-wide automounter is enabled for now.
* Only Xfce automounts.
+
* Only Xfce and some other window managers do automount.
 
* As Xfce mounts devices at insertion, if you booted with a second SD card or an USB drive plugged in, you have to click on the device icon.
 
* As Xfce mounts devices at insertion, if you booted with a second SD card or an USB drive plugged in, you have to click on the device icon.
 
* 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.
 
* 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.
Line 271: Line 309:
 
Near the top, change
 
Near the top, change
 
  #modprobe ehci-hcd
 
  #modprobe ehci-hcd
#modprobe g_cdc
 
 
into:
 
into:
 
  modprobe ehci-hcd
 
  modprobe ehci-hcd
modprobe g_cdc
 
  
 
= Fixing the endless reboot =
 
= Fixing the endless reboot =
Line 280: Line 316:
 
* Boot SL4P, when prompted to enter the root password for maintenance, do it, then type:
 
* Boot SL4P, when prompted to enter the root password for maintenance, do it, then type:
 
  fsck -y /dev/mmcblk0p1
 
  fsck -y /dev/mmcblk0p1
 +
* You can do the same under Zaxxon. Note that it will be /dev/mmcblk1p1 if SL4P is on a second card.
 +
* You will be warned if the card is still mounted, so unmount it, and proceed.
  
 
= Changing the Hostname =
 
= Changing the Hostname =
 
* See [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Hostname this.]  
 
* See [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Hostname this.]  
 +
 +
= Switching from 1GHz to 600MHz Pandora =
 +
* I slightly modified the clock script to split the parameters into two categories: 1Ghz and 600MHz.
 +
* You can safely put SL4P in any OP, and have a max OPP + max MHz settings for each as the model is recognized at boot, then clocked.
 +
* It's totally transparent, just set your parameters as usual.
  
 
= Fast boot tweak =
 
= Fast boot tweak =
 
* I moved some of the boot stuff (ldconfig, font cache, mime database) in /etc/rc.d/rc.local_shutdown.
 
* 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.
 
* The reboot/power off process is slowered, but the OS integrity is safe.
 +
 +
= Bluetooth audio =
 +
* SL4P already has everything you need. '''Don't''' even start with pulseaudio (unless you really need to)!
 +
 +
==== Proper Bluetooth configuration ====
 +
* We need to enable access to the BT protocols we want to use:
 +
* Fix '''/etc/bluetooth/audio.conf''' with:
 +
<syntaxhighlight lang="bash">
 +
[General]
 +
Enable=Source,Sink,Headset,Socket,Control
 +
</syntaxhighlight>
 +
 +
==== Find your BT device's MAC address ====
 +
* Enable Bluetooth on your pandora.
 +
* If the BT device manager doesn't pop up automatically, start it with:
 +
<syntaxhighlight lang="bash">
 +
blueman-manager
 +
</syntaxhighlight>
 +
* Make sure your device can be found (i.e. is not paired with another computer or mobile phone etc.)!
 +
* Search for your device and find it's MAC address.
 +
* '''Don't''' connect to/pair with your device yet!
 +
 +
==== Proper ALSA configuration ====
 +
* We will define a new bluetooth device and route '''all''' ALSA traffic through it.
 +
* This means your BT device will be the default ALSA output device!
 +
* Fix '''~/.asoundrc''' with your MAC address:
 +
<syntaxhighlight lang="bash">
 +
pcm.btheadset {
 +
type plug
 +
slave {
 +
pcm {
 +
type bluetooth
 +
device "[ADD MAC HERE]"
 +
profile "auto"
 +
}
 +
}
 +
 +
hint {
 +
show on
 +
description "BT Headset"
 +
}
 +
}
 +
 +
ctl.btheadset {
 +
type bluetooth
 +
}
 +
</syntaxhighlight>
 +
* Fix '''/etc/asound.conf''' with your MAC address:
 +
<syntaxhighlight lang="bash">
 +
pcm.!default {
 +
type bluetooth
 +
device "[ADD MAC HERE]"
 +
}
 +
</syntaxhighlight>
 +
* Reboot and pair with your device using the '''A2DP''' protocol.
 +
* Enjoy BT audio with your Slackware and your Pandora :)
 +
 +
= SGX drivers installer =
 +
* With notaz's blessing, i tweaked his SGX drivers installer to make it work both under SL4P and Zaxxon.
 +
* Get it [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Ftools%2Fsgx_drivers_installer here.]
 +
* You can safely remove your old version.
  
 
= PND compatibility list =
 
= PND compatibility list =
 
* SL4P supports .pnd files.
 
* SL4P supports .pnd files.
* PNDs used to be recognized automatically. It's not the case anymore, and i don't know why.
+
* 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 [http://boards.openpandora.org/index.php?app=core&module=attach&section=attach&attach_rel_module=post&attach_id=4449 green button] near the Xfce menu.
+
* 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.
 
* Due to 3.2 kernel and dynamically linked libraries, not all .pnd are compatible.
 +
* If a pnd doesn't work, first thing to check is its log file in /tmp .
 
* [[Software_projects/OS/Slackware/PND-compatibility-list|View the PND compatibility list here.]]
 
* [[Software_projects/OS/Slackware/PND-compatibility-list|View the PND compatibility list here.]]
  
Line 299: Line 404:
 
* All those guides are applicable to any version of Slackware, ie. x86, x86_64, IBM mainframe, etc.  
 
* All those guides are applicable to any version of Slackware, ie. x86, x86_64, IBM mainframe, etc.  
 
* Follow this [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage link.]
 
* Follow this [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage 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 =
 
= Sources =
Line 314: Line 411:
 
= Build system =
 
= Build system =
 
* I distribute it under the GPL 3 license.
 
* 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 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.
 
* It's mainly three bash scripts.
 
* You need a Pandora to run the third one.
 
* You need a Pandora to run the third one.
Line 325: Line 422:
  
 
= Ask a question/Report a bug =
 
= Ask a question/Report a bug =
* You're welcome, and please post [http://boards.openpandora.org/index.php?/topic/1524-slackware-inside-pandora/ here] or [http://boards.openpandora.org/index.php?/topic/9797-slackware-for-pandora-140/ here.]
+
* You're welcome to do so, and please post [http://boards.openpandora.org/index.php?/topic/1524-slackware-inside-pandora/ here] or [http://boards.openpandora.org/index.php?/topic/9797-slackware-for-pandora-140/ here.]
 
 
Software projects/OS/Slackware/Advanced usage
 
 
 
= Development =
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Distributed_compilation Distributed compilation between two or more Pandoras.]
 
 
 
= Multimedia =
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/CUPS Common Unix Printing System.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Image_scanning Image scanning.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Non-Free_codecs Installing non-Free codecs.]
 
 
 
= Network - Readme =
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Network_get_started Get Started.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Hostname Changing the hostname/domain name.]
 
 
 
= Network =
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Apache Apache web server.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/DHCP_server DHCP server.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Firewall Firewall/Gateway/NAT router/QoS.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/ProFTPD FTP server ProFTPD.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/vsftpd FTP server vsftpd.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Inetd Inetd super-server.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Bonding Network interfaces link aggregation.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/NFS NFS server.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/PXE_boot_server PXE boot server.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Samba Samba server.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/SSH SSH.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/VNC VNC.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/VPN VPN.]
 
 
 
= Security =
 
* Antivirus for non-*NIX machines.
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/System_encryption System encryption.]
 
* Slackware hardening.
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Rootkit_scanners Rootkit scanners.]
 
 
 
= System =
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Kernel Kernel compiling.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Partitioning_and_formatting Partitioning/formatting.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/RAID RAID setup.]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/USB_graphic USB external graphic cards (DisplayLink, SiS USB2VGA).]
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Virtual_machines Virtual machines.]
 
 
 
= Links =
 
* [http://docs.slackware.com/ The Slackware Documentation Project.]
 
* [http://www.linuxquestions.org/linux/answers LinuxQuestions.org's tutorials.]
 
* [http://www.linuxquestions.org/questions LinuxQuestions.org's forums.]
 
* [http://www.armedslack.org/mailinglist/ Slackware ARM mailing list.]
 
 
 
Software projects/OS/Slackware/Build-system
 
 
 
= Principles =
 
* It's not a one run and go. You need time and patience if you want a full and complete release. Anyway, you can get a minimal alpha build relatively fast.
 
* The target directory is likely to be a SD card. 8G is recommended as a minimum.
 
* Phase 1 populates the target directory with the main ARMedslack Linux distribution and some crucial stuff like the Pandora kernel.
 
* Phase 2 populates the target directory with parts from official Open Pandora OS and tweaked stuff.
 
* A specific part of rc.local is executed during the first boot on a Pandora.
 
* The files folder contains tweaked stuff.
 
* The pkg folder contains pre-built packages from previous alpha builds.
 
* The sources folder contains sources for essential programs.
 
* Some proprietary stuff is missing, like 3D drivers. They are useful only if you want to compile your own kernel. Check the Open Pandora git repository for them.
 
 
 
= Get the build system =
 
* Get the archive [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-14.0%2Fbuild-system here.]
 
* If you don't run a Slackware or a derivative, get the Slackware's installpkg script [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-13.37%2Fbuild-system here.] Put it in /sbin and make it executable.
 
 
 
= Dependencies =
 
* You need to download the official Open Pandora rootfs: http://openpandora.org/firmware/pandora-rootfs.tar.bz2
 
* Uncompress it as root anywhere and link it to the build directory as "pandora-rootfs".
 
* 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 [http://sourceforge.net/projects/gparted/files/latest/download?source=files Live-CD]. Here's the [http://gparted.sourceforge.net/display-doc.php?name=help-manual manual.]
 
* It's highly recommended to have a second partition formated as a swap. 256M or more is a good choice.
 
 
 
= Bash knowledge =
 
* You need minimal bash knowledge in order to understand and succeed. [http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29 This] is a good start.
 
* Each script contains comments. Read them.
 
 
 
= rc.local =
 
* rc.local will be copied and executed automatically on the Pandora. You have to tweak it before Phase 1 or Phase 2.
 
* Remove simple-comments in order to produce the needed packages during the first boot.
 
* Put the SD card in the Pandora, and power it on.
 
* The Pandora will build many needed packages, but not all listed, because of some dependencies installed later through sbopkg.
 
* You have to edit the OPP="" and MHZ="" variables at the top of the script for your Pandora unit(s). These will only be used during the build phases.
 
 
 
= Phase 1 =
 
* Run as su -.
 
* You'll see packages errors because it's a first run.
 
 
 
= Phase 2 =
 
* Run as su -.
 
* Now, you can unmount the card and boot normally this alpha build on the Pandora.
 
 
 
= After that first boot =
 
* The Pandora will power off after having done the job. May last for one hour or two.
 
* Remove the card.
 
* Save all /media/SLACK/tmp/*.t?z in the local repository listed in the PHASE-2.sh
 
MYPKGS="$CWD/pkg"
 
folder of the build system.
 
 
 
= In-between steps =
 
* Plug the net.
 
* Launch sbopkg as su -, load the vrac1 queue file, process it saying yes (Q) to options and wait. This is gonna be very long. I really mean very.
 
* Do the same with vrac2 and vrac3.
 
* Save all /tmp/*.t?z in the
 
MYPKGSMORE="$CWD/pkg-more"
 
folder of the build system.
 
* Be careful with disk space, you may fill the card. If so, save and erase all /tmp/*.t?z, and sources inside /var/cache/sbopkg/ between queues processing.
 
* Note that i include other packages listed in other queue files in my own release. If you plan to do so, move them in MYPKGSMORE="$CWD/pkg-more".
 
 
 
= Final step =
 
* Populate a new SD card, with PHASE-1.sh and PHASE-2.sh
 
* Edit /media/SLACK/etc/rc.d/rc.local to build the remaining packages to put in MYPKGS="$CWD/pkg"
 
* Put the SD card in the Pandora, and power it on.
 
* The Pandora will generate final needed packages.
 
* The Pandora will power off after having done the job. May last for one hour or two.
 
* Remove the card.
 
* Save all /media/SLACK/tmp/*.t?z in YPKGS="$CWD/pkg" folder of the build system.
 
* Now, you can create a complete SL4P system.
 
 
 
= Creating a compressed rootfs =
 
* Populate a SD card. Now you should know how to do it ;^).
 
* Boot it on a Pandora.
 
* Once the Pandora shuts down, remove the card, and follow [http://pandorawiki.org/How_to_back_up_a_Root_File_System_%28on_an_SD_Card%29_to_an_SD_Card this] procedure.
 
 
 
= Special packages =
 
* In the sources folder, you'll find some programs that aren't automatically generated by the build system.
 
I don't list those dependencies for now, because i do more useful things ^^.
 
* XMMS may just needs libmikmod.
 
* Qt3 is a bit long to build. It should be built before the big playlist.
 
 
 
= Sources =
 
* Apart what i already mentioned here, some SL4P part are taken directly from the official Open Pandora OS.
 
* Sources are directly related to the build date, ie. if i upload a release the 1st april 2012, so the sources are related to the corresponding Open Pandora OS, rootfs, pandora-firmware, pandora-libraries, etc.
 
* Same thing for binaries coming from the official OP rootfs.
 
* About pre-compiled packages, shipped or not, grab the sources + SlackBuild accordingly to the version [http://slackbuilds.org/ here].
 
* If some package version changed, you have access to the old data using [http://slackbuilds.org/cgit/slackbuilds/ sbopkg git repo].
 
 
 
= Notes =
 
* 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.
 
* 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
 
* The -current build system is under work and is not released yet.
 
 
 
= Ask a question/Report a bug =
 
* You're welcome, and please post here: http://boards.openpandora.org/index.php?/topic/1524-slackware-inside-pandora/
 
 
 
projects/OS/Slackware/Advanced usage/Network get started
 
 
 
= Network interfaces =
 
* eth0 is the interface that shows up when you plug an USB to ethernet adapter. A list of compatible ones is located [http://pandorawiki.org/USB_compatibility_list#USB_to_Ethernet_adapters here].
 
* wlan0 is the embedded Wi-fi interface.
 
* wlan1 (or wlan2, wlan3 etc.) is the name of a Wi-fi dongle.
 
* usb0 should be the small USB port (not sure, may be the first plugged).
 
* usb1 should be the big USB port (not sure).
 
Anyway, you can check the physical link connectivity, as root:
 
ethtool usb0
 
ethtool usb1
 
ethtool eth0
 
* If you connect an OP with another using an USB cable, the OP at the little end of the cable will dramatically drain the current from the other OP's big USB port.
 
* To avoid this, at the little end, type as root:
 
echo 0 > /sys/class/power_supply/twl4030_usb/enable
 
* With this usb-usb connection, you have to:
 
rmmod g-cdc
 
* To permanently remove this module, edit /etc/rc.d/c.local and change
 
modprobe g_cdc
 
into
 
#modprobe g_cdc
 
* There's also a bluetooth interface, but until now i just connected a mouse, so can't tell much about it.
 
* These interface numbers (eth0, eth1 etc.) may vary, depending which one you plug first.
 
* The numbers can be fixed using the /etc/udev/rules.d/70-persistent-net.rules file.
 
* This file is deleted at each shutdown. To make use of it, edit /etc/rc.d/rc.local_shutdown , and comment this line:
 
rm /etc/udev/rules.d/70-persistent-net.rules
 
into
 
#rm /etc/udev/rules.d/70-persistent-net.rules
 
 
 
= SL4P default setup =
 
* The Network Manager, well, manages the connections, and asks for an IP address through a DHCP request. This is how it acts when you boot SL4P for the first time.
 
* You can set it up through a right-click on the NM-applet Xfce desktop icon (two little screens at bottom-right).
 
* Although it's shipped in the Slackware ARM release, i grabbed and compiled a more recent version.
 
 
 
= Slackware alternative setup =
 
* Wicd is included in the stock Slackware ARM extra packages.
 
* I don't include it anymore inside 14.0 but you still can install it, using slackpkg or any other method.
 
* I tried it only a bit so i can't recommend it, or not.
 
* If you want to give it a try, be root, then install it, and disable the network manager:
 
chmod -x /etc/rc.d/rc.networkmanager
 
* Activate Wicd at boot:
 
chmod +x /etc/rc.d/rc.wicd
 
* Activate Wicd frontend under Xfce. Go in the menu -> Settings -> Session and Startup -> Application Autostart tab, then check "Wicd Network Manager Tray".
 
* Reboot.
 
 
 
= Slackware default setup =
 
* Historically speaking, stock Slackware doesn't use the Network Manager, nor Wicd. The network is established at boot, once for all.
 
* If you want a non-graphical server-oriented setup, you have to disable the network manager (or Wicd).
 
chmod -x /etc/rc.d/rc.networkmanager
 
or
 
chmod -x /etc/rc.d/rc.wicd
 
* Run as root:
 
netconfig
 
* The hostname MUST BE:
 
darkstar
 
otherwise you'll break some Pandora scripts compatibility. Sudo won't launch anything with the wrong hostname.
 
* Set you parameters.
 
* Eventually edit /etc/rc.d/rc.inet1.conf to finalize your setup.
 
* Be sure to have all used interfaces plugged in when booting. With the deactivation of the network manager, it's no more plug and play.
 
* Reboot.
 
 
 
= Older Wiki page =
 
* 13.37 page is located [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Network_get_started-13.37 here].
 
 
 
Software projects/OS/Slackware/Advanced usage/Kernel
 
 
 
= Kernel: to recompile or not to recompile ? =
 
* You don't have to if you don't need to add a new feature.
 
* You don't have to if there's no urgent security kernel update.
 
* If you want to acquire a lot of global Linux knowledge, or if you are just curious, then yes, just go for it.
 
 
 
= Is it simple or complicated to recompile ? =
 
* Both.
 
* But as there's a default kernel configuration file for Open Pandora, it's pretty easy.
 
 
 
= Downloading and pre-configuring the latest kernel sources =
 
== Directly on the Pandora ==
 
* I wrote a script to automatize the OP kernel sources download and preparation.
 
* Plug the net, be root, then:
 
sh /root/kernel-sync.sh
 
* It's very long because of the 16MB/s SD slots throughput.
 
 
 
== From a PC ==
 
If you prefer to speed up the process and download them from your computer, then proceed like this (assuming your SD card is mounted under /media/SLACK/):
 
mkdir -p /media/SLACK/usr/src/
 
cd /media/SLACK/usr/src/
 
 
git clone git://openpandora.org/pandora-kernel.git
 
 
ln -s pandora-kernel linux
 
 
cd pandora-kernel
 
 
git checkout --track -b pandora-3.2 origin/pandora-3.2
 
* Then boot the pandora, and do this as root:
 
cd /usr/src/linux
 
make omap3_pandora_defconfig
 
 
 
= The fun part: tweaking =
 
* The configuration is stored in a hidden file named /usr/src/linux/.config
 
* You can use many tools to edit the configuration.
 
* The kamikaze way: edit manually the .config . Don't do that.
 
* The lazy way: install KDE and use as a user:
 
gksu make xconfig
 
* The common way, which i recommend:
 
make menuconfig
 
== Menuconfig ==
 
* Kernel options are stored in a tree.
 
* Options can be marked as [*] built-in, or <M> module.
 
* The vast majority of those options refers to a driver or a functionality.
 
* Built-in means inside the kernel, so once the kernel boots, you can't remove or change parameters.
 
* Module means you can either add or remove them after the boot. Ever typed "modprobe ehci-hcd" ?
 
* The example below is copied from my PC, will copy a real OP one later.
 
Arrow keys navigate the menu.  <Enter> selects submenus --->.  Highlighted letters are hotkeys.  Pressing <Y> includes, <N>
 
excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> for Search.  Legend: [*] built-in  [ ]
 
excluded  <M> module  < > module capable
 
[*] DMA memory allocation support
 
General setup  --->
 
[*] Enable loadable module support  --->
 
[*] Enable the block layer  --->
 
Processor type and features  --->
 
Power management and ACPI options  --->
 
Bus options (PCI etc.)  --->
 
Executable file formats / Emulations  --->
 
[*] Networking support  --->
 
Device Drivers  --->
 
Firmware Drivers  --->
 
File systems  --->
 
hacking  --->
 
options  --->
 
Cryptographic API  --->
 
Virtualization  --->
 
Library routines  --->
 
<Select>    < Exit >    < Help >
 
 
 
== A simple tweak ==
 
* Highlight  Cryptographic API  --->
 
* Push [enter]. You're now in the Cryptographic API section.
 
* With [space], select all cryptographic algorithms you can. Ensure they are marked as <M>, not <*>.
 
* With [right], select < Exit >, then push [enter].
 
* Again, with [right], select < Exit >, then push [enter].
 
* Now push [enter], saying <Yes> to "Do you wish to save your new configuration ?".
 
* You're now ready to compile a kernel which will drive James Bond angrily jealous.
 
 
 
= Kernel compilation =
 
* Be sure you've overclocked your OP to the maximum MHz.
 
* At 800MHz, it's a 3+ hours job.
 
* Now you can compile it with another custom script:
 
sh /root/kernel.sh
 
* Reboot.
 
 
 
= Speed up the compilation time using two or more Pandoras =
 
* Read [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Distributed_compilation this], and set up your Pandoras.
 
* Make the adequate changes in /root/kernel-dist.sh with your editor of choice.
 
* Then compile with:
 
sh /root/kernel-dist.sh
 
* Reboot.
 
 
 
= 3D driver =
 
* So you booted your OP with your brand new kernel, but you can't run 3D apps. Again, two custom scripts for lazy people.
 
* Download the sources:
 
sh /root/3d-get-sources.sh
 
* Compile and install them:
 
sh /root/3d-compile.sh
 
* Reboot.
 
 
 
= Older Wiki page =
 
* 13.37 page is located [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Kernel-13.37 here].
 
 
 
Editing Software projects/OS/Slackware/Advanced usage/RAID
 
 
 
= WIP WIP WIP HURRAID =
 
* Need to properly rebuild one array while completing this Wiki section.
 
* For now, don't try this incomplete tutorial unless you have some RAID knowledge
 
* Once finished and this warning removed, go for it.
 
 
 
= RAID =
 
* http://en.wikipedia.org/wiki/RAID
 
* We will use the robust native Linux software RAID.
 
* It's a feature that can be used on the Pandora, so let's have fun with it
 
* I will cover here only a RAID 1 (mirror) on two SD cards, as it should be the more interesting for a server usage because under read load, you should reach about 27MB/s against 16MB/s on one card.
 
* A SD + USB drive can also work although untested. Same with a two SD + USB drive configuration.
 
* This array will be mounted as /srv , the standard server folder.
 
 
 
= Partitioning =
 
* So you have to partition your system SD card a bit differently than the default SL4P setup.
 
* In this example, we will use the recommended minimal 8G card for the slot 1.
 
* You can use a different sized card for the right slot. To keep thing interesting, the minimum size is 4G for this second card, and we will use 4G in this example.
 
* The RAID 1 partitions must have the same exact size.
 
 
 
= Card 1 =
 
* Partition that way:
 
6G ext2 for the system.
 
256M for the swap.
 
That's all for now, the third partition will be created under Slackware, and will be:
 
1.5G RAID.
 
* We will left 256M free. NEVER fill an entire drive with a RAID array. Drives, ie. all 8G, doesn't necessary offer the same exact capacity, so you can get in trouble if you add a drive 32MB short.
 
 
 
= Card 2 =
 
256M for the swap. Having swap on two different cards is a good thing.
 
That's all for now, the other partitions will be created under Slackware, and will be:
 
1.5G unformated RAID.
 
2G unused. Do what you want with it.
 
 
 
= Install SL4P =
 
* Uncompress the rootfs on the first SD card, first partition, put the card in your OP, and boot it.
 
* Log in.
 
 
 
= Backup /srv =
 
* As root:
 
mkdir /srv-save
 
mv /srv/* /srv-save/
 
 
 
= Finalizing card 1 setup =
 
* If you don't know how to use cfdisk, please read [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Partitioning_and_formatting this] first.
 
* As root:
 
cfdisk
 
 
 
= Finalizing card 2 setup =
 
* As root:
 
cfdisk
 
 
 
= Create the RAID 1 array =
 
* Load module ?
 
* The RAID devices names are md0, md1, md2 etc..
 
mdadm --create /dev/md0 --level 1 --raid-devices 2 /dev/mmcblk0p3 /dev/mmcblk1p2
 
 
 
= Format the RAID array =
 
* As usual, we choose the Linux extended 2 filesystem.
 
mkfs.ext2 /dev/md0
 
 
 
= Make the RAID configuration permanent =
 
mdadm --scan > /etc/mdadm.conf
 
Edit /etc/fstab and add these lines:
 
/dev/mmcblk1p1  swap  swap  defaults          0  0
 
/dev/md0        /srv  auto  defaults,noatime  1  1
 
 
 
= Final step =
 
* As root:
 
mount/dev/md0
 
mv /srv-save/* /srv/
 
rm -rf /srv-save/
 
* That's it, you have now a RAID 1 array on your Pandora :^).
 
 
 
= Some Practice =
 
* If you want to know how to repair a RAID array, let's simulate a failure.
 
 
 
= Remove a drive from the array =
 
* It's likely to be the one in the right SD slot.
 
* Unmount the swap:
 
swapoff /dev/mmcblk1p1
 
 
 
= Repair the array =
 
* Depending the size of your RAID partition and he data on it, it can take a while.
 
* Mount the swap:
 
swapon /dev/mmcblk1p1
 
 
 
Software projects/OS/Slackware/Advanced usage/Partitioning and formatting
 
 
 
= Partitioning and formatting - clarification =
 
* Partitioning means divide and create zones on a drive.
 
* Formatting means creating filesystems in these zones.
 
 
 
= Drive names =
 
* First inserted SD card: /dev/mmcblk0
 
* Second inserted SD card: /dev/mmcblk1
 
* USB: /dev/sda, dev/sdb, /dev/sdc etc..
 
 
 
= Partition names =
 
* For example, the first partition of each SD card:
 
* First SD card: /dev/mmcblk0p1
 
* Second SD card: /dev/mmcblk1p1
 
* USB: /dev/sda1, /dev/sdb1, /dev/sdc1 etc..
 
 
 
= fdisk =
 
* I don't use fdisk, but it's a widely-installed tool, so consider learning it, and fill this Wiki section.
 
 
 
= cfdisk =
 
* cfdisk is a partitioner.
 
* It's a semi-graphical tool. You can visualize the geometry of the drive, although in the console mode.
 
* Use the [right] and [left] arrows (D-pad) to move in the menu.
 
* Use the [up] and [down] arrows (D-pad) to move in the partitions.
 
* Activate with [enter].
 
 
 
= Console formating =
 
* Pretty easy. If you want to format the second partition of your right slot SD card as ext2, just do:
 
mkfs.ext2 /dev/mmcblk1p2
 
* You can format using:
 
mkfs.cramfs    mkfs.ext4      mkfs.minix    mkfs.reiserfs
 
mkfs.bfs      mkfs.ext2      mkfs.ext4dev  mkfs.msdos    mkfs.vfat
 
mkfs.btrfs    mkfs.ext3      mkfs.jfs      mkfs.ntfs      mkfs.xfs
 
 
 
Software projects/OS/Slackware/Advanced usage/PXE boot server
 
 
 
= WIP =
 
* Since august 2011, i'm working on an automatized PXE boot server installation.
 
* The goal is to setup a boot server in a few steps, in the same spirit than my SL4P build system.
 
* Then you can boot over a network one or more PC with your Pandora.
 
* The most known PXE boot server is [http://www.ltsp.org/ LTSP].
 
* My system works well on PC, the hardest part of the work is done.
 
* I need to rework it for the Pandora, it's just a matter of time.
 
 
 
= So it's a beta here =
 
* http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-current%2Frootfs%2Fexperimental%2Fpxe-boot-server
 
* You need:
 
-a Pandora
 
-a 8G SD card
 
-an USB to ethernet adapter
 
-a x86 PC PXE-capable
 
* You can use a ethernet hub or switch, or connect the OP directly to your PC with a cross cable.
 
* What you need to do after having installed SL4P:
 
-disable or unplug any DHCP server on your network
 
-plug your USB to ethernet adapter into your OP
 
-just boot the OP, all is already configured
 
-boot your PC using PXE
 
-on the PC, the login is root, and there is no password
 
-startx will launch Xfce on your PC
 
 
 
* In the client kernel, i compiled in the most used network cards, like 3com, intel, broadcom, nvidia etc... so it _should_ work on yours.
 
* The shutdown of the PC is not handled properly.
 
* Be careful if you mount your local hard drive, unmount it before stopping the PC.
 
 
 
Software projects/OS/Slackware/Advanced usage/CUPS
 
 
 
= Activate CUPS =
 
chmod +x /etc/rc.d/rc.cups
 
/etc/rc.d/rc.cups start
 
* CUPS will now run at each boot.
 
 
 
= Add a printer =
 
* The simplest way to manage printers with CUPS is to do it through a web browser:
 
http://127.0.0.1:631
 
Can be done from the network:
 
http://ip_of_your_OP:631
 
* The login/password are root/your_own_root_password .
 
 
 
= Hewlett Packard devices =
 
* To easily configure a HP device, type as root:
 
hp-setup
 
* Activate HP frontend under Xfce. Go in the menu -> Settings -> Settings Manager -> Session and Startup -> Application Autostart tab, then check "HP System Tray Service".
 
 
 
Software projects/OS/Slackware/Advanced usage/Firewall
 
 
 
= Firewall =
 
* I shipped some default firewall configurations for eth0, wlan0 and usb0. I generated them using the [http://connie.slackware.com/~alien/efg/ easy firewall generator].
 
* I didn't test them, so it's up to you to check it, running services, using nmap from another computer etc..
 
* If you want to use a firewall, ie. for eth0, then do:
 
cp /etc/rc.d/rc.firewall.eth0 /etc/rc.d/rc.firewall
 
chmod 700 /etc/rc.d/rc.firewall
 
chmod +x /etc/rc.d/rc.firewall
 
/etc/rc.d/rc.firewall start
 
 
 
= Gateway =
 
* To use the OP as a simple gateway
 
chmod +x /etc/rc.d/rc.ip_forward
 
/etc/rc.d/rc.ip_forward start
 
 
 
= NAT Router =
 
* It also uses a /etc/rc.d/rc.firewall script.
 
* I don't provide any because everyone have a different setup.
 
* Create it yourself with the [http://connie.slackware.com/~alien/efg/ easy firewall generator].
 
* Then save it as /etc/rc.d/rc.firewall and do this:
 
 
chmod 700 /etc/rc.d/rc.firewall
 
chmod +x /etc/rc.d/rc.firewall
 
/etc/rc.d/rc.firewall start
 
 
 
= QoS =
 
* For now, a recompiled kernel is necessary.
 
* A basic setting consists of packet mangling who changes the ToS field in the packets, through rc.firewall rules. A simple example:
 
iptables -A PREROUTING -t mangle -p tcp --sport ftp -j TOS --set-tos Minimize-Delay
 
iptables -A PREROUTING -t mangle -p tcp --dport ftp -j TOS --set-tos Minimize-Delay
 
iptables -A PREROUTING -t mangle -p tcp --sport ftp-data -j TOS --set-tos Maximize-Throughput
 
iptables -A PREROUTING -t mangle -p tcp --dport ftp-data -j TOS --set-tos Maximize-Throughput
 
* A more advanced setup makes use of dedicated kernel modules. The most known script is the outdated [http://lartc.org/wondershaper/ wondershaper].
 
 
 
Software projects/OS/Slackware/Advanced usage/Hardening
 
Jump to: navigation, search
 
 
 
= About this document =
 
* It's a WIP. Security is a huge subject. May take monthes to have something consistent here.
 
* I'm not a security expert.
 
 
 
= GNU/Linux and free software =
 
* Slackware, as almost every Linux distribution, is not secured by default. In fact, almost no Linux distribution is shipped with an acceptable security level.
 
* It's up to the administrator to work it out to reach the needed security level.
 
* When nicely secured, the main danger will come from the administrator's lack of attention.
 
* Avoid weakening your network with proprietary OS, even UNIX-based:
 
There's people who know things about the proprietary OS that you don't know.
 
* It means big proprietary vendors can put one hundred backdoors in their OS. When someone finds one, they will release a patch saying "Look at how we are trusty, we patched in less than one day". Still, there's ninety-nine backdoors left for them to sell.
 
* Use free software.
 
 
 
= The physical access =
 
* This is the most critical and dangerous vulnerability. When someone can get a physical access to your devices, you're potentially screwed.
 
* If you intend to hire or work with someone who calls himself a security expert, ask him what is the most dangerous vulnerability. If he doesn't answer this, throw him away, and far.
 
 
 
= The Pandora bootloader =
 
 
 
= The installed programs =
 
* The more programs installed, the more potential weaknesses.
 
* To install a minimal Slackware system, a good start is to take a look at [http://www.slackbook.org/html/package-management-making-tags-and-tagfiles.html tagfiles].
 
* They are located in the installation packages series. Tagfile example: the "a" (base system) serie tagfile: http://ftp.slackware.pl/pub/armedslack/armedslack-13.37/slackware/a/tagfile
 
 
 
= The updates =
 
* Of course, updates are critical.
 
* See [http://pandorawiki.org/Software_projects/OS/Slackware#Updates this.]
 
 
 
= The logs =
 
 
 
= The kernel =
 
* For a top-level security, you have to recompile your kernel as non-modular, only including the needed options.
 
* There's pros and cons about using a long-term stable or a latest kernel. I'm not able to give enlightened advices on this subject.
 
 
 
= The users =
 
 
 
= The groups =
 
 
 
= The password policy =
 
 
 
= The network =
 
 
 
= The devices =
 
* Following my advice about the physical access, don't let anybody plug any device into your machines, especially USB ones.
 
*
 
 
 
= The emails =
 
 
 
= The security tools =
 
* chkrootkit
 
* rkhunter
 
* snort
 
* Nessus
 
 
 
Software projects/OS/Slackware/Advanced usage/USB graphic
 
 
 
* Check [http://boards.openpandora.org/index.php?/topic/10903-displaylink-external-dvivga-display-works-now-on-to-fine-tuning-it/#entry202334 this thread].
 
 
 
=DisplayLink in SL4P 14.0=
 
 
 
Release 14.0 of SL4P is prepared for DisplayLink usage. Only a few steps are necessary to enable DisplayLink compatibility:
 
 
 
==Step 1: Activate DisplayLink-enabled kernel and modules==
 
 
 
Open a terminal and activate the DisplayLink-enabled kernel and modules:
 
 
 
<pre>
 
su -
 
 
 
cd /boot
 
cp uImage-3.2.30-dirty-displaylink uImage
 
 
 
cd /lib/modules
 
cp -r 3.2.30-dirty-displaylink/* 3.2.30-dirty
 
 
 
reboot
 
</pre>
 
 
 
==Step 2: First Test==
 
 
 
Plug in the DisplayLink adapter, connect the display. Make sure that USB Host is enabled on the Pandora.
 
Then reboot the Pandora.
 
After the reboot, the external display should turn green, as the sign that the DisplayLink driver is active and talking to the DisplayLink adapter.
 
If it does, the first test was successful.
 
 
 
 
 
==Step 3: Adjust /etc/X11/xorg.conf==
 
 
 
Add this block to /etc/X11/xorg.conf
 
 
 
(you should make sure that /dev/fb3 is the correct framebuffer device to use, by reading the dmesg output directly after plugging in the DisplayLink adapter)
 
 
 
<pre>
 
################ DisplayLink Stuff ###################
 
Section "Device"
 
Identifier "DisplayLinkDevice"
 
Driver "fbdev"
 
BusID "USB" # needed to use multiple DisplayLink devices
 
Option "fbdev" "/dev/fb3" # change to whatever device you want to use
 
# Option "rotate" "CCW" # uncomment for rotation
 
EndSection
 
 
 
Section "Monitor"
 
Identifier "DisplayLinkMonitor"
 
EndSection
 
 
 
Section "Screen"
 
Identifier "DisplayLinkScreen"
 
Device "DisplayLinkDevice"
 
Monitor "DisplayLinkMonitor"
 
DefaultDepth 16
 
EndSection
 
</pre>
 
 
 
Then find the Section "ServerLayout" and add a reference to the new screen, e.g. like this:
 
 
 
<pre>
 
Screen 0 "DisplayLinkScreen"
 
Screen 1 "Screen0" LeftOf "DisplayLinkScreen"
 
Option "Xinerama" "on"
 
</pre>
 
 
 
 
 
Hints:
 
* "Screen0" is the reference to the Pandora screen. I think that's the default identified in SL4P and SuperZaxxon. You may check to make sure it's correct.
 
* You may replace "LeftOf" by "RightOf", "Above" or "Below".
 
* For cloning, you may experiment with <pre>Option "Clone" "on"</pre>. However, this will need adjustment of the DisplayLink display's resolution and probably more, in order to produce a satisfying result. Please document it here, if you find a good solution for cloning.
 
 
 
 
 
==Optional: Further tweaking of the setup==
 
 
 
If you want to change xorg.conf and test the changes without waiting for X with XFCE to start up each time, you may do
 
as a user:
 
<pre>
 
xwmconfig
 
</pre>
 
choose fvwm2
 
 
 
Then as root, edit /etc/inittab, and change:
 
<pre>
 
id:4:initdefault:
 
</pre>
 
into
 
<pre>
 
id:3:initdefault:
 
</pre>
 
 
 
Then SL4P boots into text mode, and you can log in and type startx to start X with the much quicker loading fwwm2 window manager.
 
Once you have found a setup you want to use, you may revert the last steps to boot directly into XFCE again.
 
 
 
==To Do: Hotplug==
 
 
 
We still need to find a satisfactory hotplug solution. Currently, the X server needs to be restarted or a second instance of the X server needs to be launched, in order to make a newly plugged in DisplayLink adapter work.
 
 
 
It seems that real hotplug is not possible with the versions of X and udlfb (kernel): [http://superuser.com/questions/502359/is-it-possible-to-have-displaylink-usb-display-hotplugging-with-xorg-1-13-on-ker]
 
 
 
What would in theory be possible using the hotplug mechanism of Linux, as I understand it, would be, to kill and restart X automatically on every plug / unplug of a DisplayLink device.
 
Of course, this is a really bad hack. Open applications would lose any unsaved data.
 
But I could think of a semi-automatic solution:
 
Whenever hot(un)plug of a DisplayLink adapter is detected, prompt the user to save any unsaved data, and to then hit the "Restart X" button of the prompting dialog.
 
 
 
Work in progress...
 
 
 
 
 
==Usage hint: Use two instances of the X server==
 
 
 
If you modified your xorg.conf as mentioned here in Step 6, it is possible to either start the X server with or without the DisplayLink adapter connected. Either method will work and give a good displaying result.
 
 
 
If you want to plug or unplug the DisplayLink adapter and then adapt the display (e.g.: You worked at home with DisplayLink, then unplug DisplayLink and want to continue our work on the way using just the Pandora screen), there is currently no way around closing the application(s) you worked with, saving your files, restarting the X server and reopening your applications and files.
 
 
 
However, there is at least a method, that makes it a bit easier by avoiding the need to leave X entirely:
 
 
 
'''Use two instances of the X server:'''
 
 
 
* Let the Pandora boot, without DisplayLink connected, into the X environment (i.e. the /etc/inittab modification is not necessary for that method)
 
* (work on the Pandora as usual)
 
* (then close all applications, that you plan to use with DisplayLink later)
 
* Plug in the DisplayLink adapter with the connected display. The display will be green
 
* Open a console and type "startx"
 
--> Another instance of the X server will be started, that uses the DisplayLink-enabled setup and is shown on the external screen. The first X instance won't be visible and usable during the second instance runs.
 
* (open your applications again and continue your work on the large screen)
 
* (close your applications on the large screen)
 
* Click the "exit" icon in the lower right corner and choose "Log out"
 
--> The 2nd instance of the X server will quit and you are back on the Pandora screen in the first instance of the X server
 
* Now you can disconnect the DisplayLink adapter
 
 
 
However, please take care to really quit and restart your applications. Otherwise you may start a second instance of your application on the other screen, maybe load the same file and end up in a big mess with your data files.
 
 
 
=SiS USB2VGA adapters=
 
 
 
They should work in general, using the sisusbvga / sisusb kernel module and X driver.
 
However, I have not succeeded to make one work in SL4P.
 
 
 
See the proof that it works in theory:
 
http://forum.gp2x.de/viewtopic.php?p=177636#p177636
 
 
 
Software projects/OS/Slackware/Advanced usage/DHCP server
 
 
 
= Dnsmask and dhcpd =
 
* I never used Dnsmask. Seems it's great.
 
* dhcpd is the most common dhcp server.
 
 
 
= dhcpd =
 
* Check google for "dhcpd.conf examples".
 
* Here's a simple and understandable configuration:
 
# dhcpd.conf
 
 
 
option domain-name "nom_choisi";
 
 
option subnet-mask 255.255.255.0;
 
 
option domain-name-servers 217.115.138.24 , 192.168.1.3;
 
ddns-update-style ad-hoc;
 
 
option routers 192.168.1.1;
 
 
default-lease-time 86400;
 
 
max-lease-time 604800;
 
 
subnet 192.168.1.0 netmask 255.255.255.0 {
 
range 192.168.1.100 192.168.1.200;
 
option broadcast-address 192.168.1.255;
 
}
 
 
#host PC-1 {
 
#hardware ethernet 00:00:4C:72:86:68;
 
#fixed-address 192.168.1.50;
 
#}
 
 
 
* Edit /etc/dhcpd.conf as you need.
 
* Note that the network interface has to be configured before running dhcpd on it. So you'll have to comment or remove
 
/etc/rc.d/rc.networkmanager start
 
from /etc/rc.d/rc.local , and put something like
 
ifconfig eth0 11.22.33.44/24
 
instead, depending on which interface/network address you plan to use.
 
* Run dhcpd eth0, dhcpd usb0 or dhcpd usb1 depending which interface you intend to use to deliver dhcp service.
 
* Once you got a satisfying configuration, put the command in /etc/rc.d/rc.local , after the fixed adress.
 
 
 
Software projects/OS/Slackware/Advanced usage/ProFTPD
 
 
 
= Configuration =
 
* Edit /etc/proftpd.conf .
 
* This default configuration file is well-commented.
 
* For more options: http://www.proftpd.org/docs/example-conf.html
 
 
 
= Start from inetd =
 
* Take a look at [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Inetd this].
 
* Edit /etc/inetd.conf
 
* Uncomment
 
#ftp    stream  tcp    nowait  root    /usr/sbin/tcpd  proftpd
 
to
 
ftp    stream  tcp    nowait  root    /usr/sbin/tcpd  proftpd
 
* If the vsftpd line is active, comment it.
 
* Be sure that in /etc/proftpd.conf you have:
 
#ServerType                    standalone                                                                           
 
ServerType                      inetd
 
 
 
= Start as standalone =
 
* Edit /etc/proftpd.conf
 
* Be sure that in /etc/proftpd.conf you have:
 
ServerType                    standalone                                                                           
 
#ServerType                      inetd
 
 
 
* Run proftpd
 
proftpd
 
 
 
Software projects/OS/Slackware/Advanced usage/VNC
 
 
 
= VNC is not a secure protocol =
 
* So don't use it over an unsecured network, like internet.
 
* There are methods to secure VNC, one of the neatest is to drive VNC through a SSH tunnel. Will explain this later.
 
 
 
= Pandora as a shared graphical environment client, ie. Xfce =
 
* Type:
 
x11vnc --forever --display :0
 
* You can now connect from outside, using the port 5900, and manage what is displayed on the real OP screen.
 
* To make this permanent under Xfce, go in the menu -> Settings -> Settings Manager -> Session and Startup -> Application Autostart tab, then check "x11vnc".
 
 
 
= Pandora as a standalone VNC server =
 
* As user, launch:
 
vncserver
 
* You're prompted to create a password, then prompted again for a view-only password, ie. for an observer-only.
 
* For security reasons, avoid typing the same as those you created for your Linux accounts.
 
* Then the vncserver starts and gives you this info:
 
Log file is /home/user/.vnc/darkstar:1.log
 
* The :1 means the server run on graphical server :1 . The normal display you use when you're under, ie. Xfce, is :0 .
 
* You can now connect from outside, using the port 5901. If you run a second server :2, you will connect to it using the port 5902, etc..
 
 
 
= Pandora as VNC client =
 
* I just realized i shipped no basic client. Will look at it.
 
* Anyway, on 13.37, i compiled remmina, which is a pretty advanced VNC client.
 
* Install remmina + dependencies.
 
* Investigate for dependencies [http://slackbuilds.org/repository/13.37/network/remmina/ here].
 
* Download packages [http://slackware.openpandora.org/pandora/index.php?dir=sl4p%2Fsl4p-
 
13.37%2Fpackages%2Fextra here].
 
 
 
Software projects/OS/Slackware/Advanced usage/Samba
 
 
 
= Samba =
 
* Samba is a file and print server compatible with many OS.
 
* The configuration can be basic, and also very fine-tuned.
 
 
 
= Configuration =
 
* The main configuration file is /etc/samba/smb.conf .
 
* Man page:
 
man smb.conf
 
* A basic sample:
 
# Global parameters
 
[global]
 
workgroup = WG
 
server string = Samba Server
 
security = SHARE
 
log file = /var/log/samba.%m
 
max log size = 50
 
dns proxy = No
 
wins support = Yes
 
load printers = Yes
 
printing = cups
 
printcap name = cups
 
 
[homes]
 
comment = Home Directories
 
read only = No
 
browseable = No
 
 
[printers]
 
comment = All Printers
 
path = /var/spool/samba
 
printer = HP3005
 
public = Yes
 
guest ok = Yes
 
printable = Yes
 
browseable = Yes
 
create mask = 0777
 
 
[print$]
 
comment = Printer Drivers Share
 
path = /var/lib/samba/drivers
 
write list = prof
 
printer admin = prof
 
 
[tmp]
 
comment = Share the /tmp folder
 
path = /tmp
 
read only = No
 
guest ok = Yes
 
 
 
* The shipped sample is /etc/samba/smb.conf-sample .
 
 
 
= SWAT, Samba Web Administration Tool =
 
* SWAT is a browser-based configuration tool.
 
* It's usually started by inetd. Take a look at [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Inetd this].
 
* Edit /etc/inetd.conf and uncomment
 
#swat          stream  tcp    nowait.400 root /usr/sbin/swat  swat
 
to
 
swat          stream  tcp    nowait.400 root /usr/sbin/swat  swat
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Inetd Start inetd]. Now you can access SWAT with a web browser.
 
* From the OP:
 
http://127.0.0.1:901
 
* Or from outside:
 
http://ip_of_your_OP:901
 
* The login/password are root/your_own_root_password .
 
 
 
Software projects/OS/Slackware/Advanced usage/Virtual machines
 
 
 
= Pandora as a QEMU client =
 
The package i compiled does not work. I will provide an older 0.15.1, the same as mcobit QEMU.
 
You can also recompile it yourself ;): http://wiki.qemu.org/Download
 
* I compiled natively QEMU and an optional frontend named [http://sourceforge.net/projects/aqemu/ AQEMU]. You can grab them in the SL4P extra packages [http://slackware.openpandora.org/pandora/index.php?dir=sl4p repository].
 
* AQEMU needs KDE 4 libraries. I will report the needed ones. If you have space on your card, then [http://pandorawiki.org/Software_projects/OS/Slackware#Installing_KDE_4 go for it].
 
* As QEMU needs a lot of CPU and RAM, it's a good idea to run it under the fvwm window manager, as it's very light. Of course, you are free to run it under Xfce if you are satisfied with the performance.
 
* And to get the optimal experience, launch QEMU with a command-line. See below for some examples.
 
* Also, consider disabling all useless services to free the most CPU and RAM you can.
 
 
 
= Pandora as a QEMU server =
 
* You can run one or more headless QEMU instances, and access them through the network, using VNC, or simply ssh. See below for some examples.
 
* I recommend that you don't run a window manager, staying in console mode only.
 
* Also, consider disabling all useless services to free the most CPU and RAM you can.
 
 
 
= Pandora as remote manager =
 
* With a single Pandora, you can manage a wide range of virtualization technologies, like QEMU-KVM, VirtualBox, VMware, Xen and many other.
 
* I compiled [http://libvirt.org/ libvirt], a virtualization API. You can grab it, along it's dependencies, in the SL4P extra packages [http://slackware.openpandora.org/pandora/index.php?dir=sl4p repository].
 
 
 
= QEMU command-line options =
 
* I will soon provide here some useful examples.
 
* Meanwhile, here's the full documentation: http://qemu.weilnetz.de/qemu-doc.html
 
 
 
= QEMU pnd =
 
* The mcobit and IngoReis [http://repo.openpandora.org/?page=detail&app=qemu QEMU pnd version] works perfectly under Slackware.
 
* They provide focused tips for running particular OS, and also a wide choice of pre-installed images. These tips and images are compatible with any QEMU version/host.
 
* Check it out [http://pandorawiki.org/Qemu_for_Pandora there].
 
 
 
Software projects/OS/Slackware/Advanced usage/Inetd
 
 
 
= Description =
 
* Inetd is precious when you want to save as much resources as possible on a server.
 
* http://en.wikipedia.org/wiki/Inetd
 
* Note that you also have to configure some servers, like vsftpd, if you want them to be run through inetd.
 
 
 
= Configuration =
 
* Edit /etc/inetd.conf .
 
* Comment all unnecessary services.
 
* Uncomment what you need, or put your own stuff.
 
 
 
= Activation =
 
* To enable it permanently:
 
chmod +x /etc/rc.d/rc.inetd
 
Then launch it:
 
/etc/rc.d/rc.inetd start
 
 
 
Software projects/OS/Slackware/Advanced usage/Distributed compilation
 
 
 
= Get started =
 
* So you need at least two [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Network_get_started networked] Open Pandoras.
 
* In this exemple, we'll use two OP, OP-1 and OP-2.
 
* The compilation will be launched on OP-1.
 
* OP-2 IP adress is 10.0.0.2
 
* If you connect two OP with an USB cable, be sure to read [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Network_get_started#Network_interfaces this].
 
 
 
= Distccd server activation =
 
* On both OP, launch as root:
 
distccd
 
 
 
= Setting up the hosts =
 
* On OP-1, open a terminal:
 
export DISTCC_HOSTS="localhost 10.0.0.2"
 
 
 
= Compile =
 
* In the same OP-1 terminal:
 
make -j4 CC=distcc
 
make -j4 CC=distcc
 
* In the -j(n), n represents the (number of CPU used X 2), so if you compile with 10 OP, it will be -j20 .
 
 
 
= Monitoring =
 
* You can see how the compilation is distributed.
 
* As root on OP-1, type:
 
distccmon-gnome
 
 
 
Software projects/OS/Slackware/Advanced usage/SSH
 
 
 
= Warning =
 
* If you use a SSH server over internet, or any other unsecured network, you have to use STRONG passwords.
 
* Just to be in peace with myself: If you use a SSH server over internet, or any other unsecured network, you have to use STRONG passwords.
 
* For your password, be careful of symbols, because if you plan to connect from another country, you may not have them on the keyboard.
 
* Also take a look at /etc/ssh/sshd_config , and be sure that the newer protocol is used, and also straight root login is disabled.
 
 
 
= Activate the SSH server =
 
chmod +x /etc/rc.d/rc.sshd
 
/etc/rc.d/rc.sshd start
 
Keys will be generated.
 
SSH server is now activated at each boot.
 
 
 
= SCP =
 
* You can easily copy files in a very secure way, but i won't cover it here (for now).
 
 
 
= SSHFS =
 
* You can easily mount remote folders in a very secure way, but i won't cover it here (for now).
 
 
 
= SSH tunnel =
 
* You can easily forward remote applications (like VNC) in a very secure way, but i won't cover it here (for now).
 
 
 
Software projects/OS/Slackware/Advanced usage/vsftpd
 
 
 
= Configuration =
 
* Edit /etc/vsftpd.conf .
 
* This default configuration file is well-commented.
 
* For more options:
 
man vsftpd.conf
 
 
 
= Start from inetd =
 
* Take a look at [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Inetd this].
 
* Edit /etc/inetd.conf
 
* Uncomment
 
#ftp    stream  tcp    nowait  root    /usr/sbin/tcpd  vsftpd                                                       
 
to
 
ftp    stream  tcp    nowait  root    /usr/sbin/tcpd  vsftpd   
 
* If the proftpd line is active, comment it.                                 
 
* Start inetd
 
* Be sure that in /etc/vsftpd.conf you have:
 
  listen=NO
 
 
 
= Start as standalone =
 
* Edit /etc/vsftpd.conf
 
* Change
 
listen=NO
 
to
 
listen=YES
 
* Run vsftpd
 
vsftpd
 
 
 
Software projects/OS/Slackware/Advanced usage/Bonding
 
 
 
= This is a WIP =
 
 
 
= About bonding =
 
* From Wikipedia:
 
"Link aggregation describe various methods of combining (aggregating) multiple network connections in parallel to increase throughput beyond what a single connection could sustain, and to provide redundancy in case one of the links fails."
 
* It's not an addition of the bandwidth, it's a combination.
 
 
 
= Is it useful on the Pandora ? =
 
* Short answer: not really.
 
* Long answer: can be useful on very particular cases, like many access to RAM-cached data.
 
* As always, it's fun and instructive.
 
 
 
= ifenslave =
 
* This program has to be compiled. It's in the kernel sources. Will provide it sooner or later.
 
 
 
= Kernel =
 
* For now, the kernel have to be recompiled to enable this feature. I will provide one sooner or later.
 
 
 
= Module loading =
 
* The kernel module has to be loaded on each bonded Linux device. As root:
 
modprobe bonding mode=balance-rr miimon=100
 
 
 
= Linking two Pandoras =
 
* You need two USB cables and two Pandoras.
 
* [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Network_get_started#Slackware_default_setup Get the OPs back to the Slackware default network setup].
 
* Link them together.
 
* Disable the USB charge on both, as root:
 
echo 0 > /sys/class/power_supply/twl4030_usb/enable
 
* Create the bonded interface:
 
ifconfig bond0 up
 
* Add the two USB ports to the bond:
 
ifenslave bond0 usb0
 
ifenslave bond0 usb1
 
* Give a fixed IP address to the bond0 of each Pandora, ie:
 
ifconfig bond0 10.0.0.1
 
and on the other OP:
 
ifconfig bond0 10.0.0.2
 
 
 
= wip =
 
 
 
 
 
Software projects/OS/Slackware/Advanced usage/NFS
 
 
 
= NFS =
 
* NFS is the most impressive *NIX networked file server. Accessing a file over the network is as fast as you've had it on your local drive.
 
* The standard configuration is pretty simple.
 
* If you plan to use it on a bloated network, use tcp connections instead of udp.
 
* By default, NFS protocol IS NOT ENCRYPTED. It was designed for LAN. There are methods to use it over internet but i won't describe them here. SSHFS may also be considered instead.
 
 
 
= Server side =
 
* Let's say the IP adress of the server is 10.0.0.250, and the IP of the client is 10.0.0.5 .
 
* I already secured the default SL4P connections. To know how, just look /etc/hosts.deny .
 
* So you have to allow hosts or networks. Do do this, edit /etc/hosts.allow .
 
* Now you have to set up your exports. Edit /etc/exports . Be really careful here, because:
 
/home/lswat/videos 10.0.0.5(sync,ro)
 
will work, but
 
/home/lswat/videos 10.0.0.5 (sync,ro)
 
will not work. See the space ?
 
 
 
* And finally activate and run the port mapper:
 
chmod +x /etc/rc.d/rc.rpc
 
/etc/rc.d/rc.rpc start
 
 
 
then the NFS server
 
chmod +x /etc/rc.d/rc.nfsd
 
/etc/rc.d/rc.nfsd start
 
 
 
* Those changes are now permanent, so the NFS server will work at next restart.
 
 
 
= Client side =
 
* Create a mount point, ie.:
 
mkdir -p /mnt/nfs/video-killed-the-radio-star
 
* And mount:
 
mount 10.0.0.250:/home/lswat/videos /mnt/nfs/video-killed-the-radio-star
 
You may have to specify the file system type:
 
mount -t nfs 10.0.0.250:/home/lswat/videos /mnt/nfs/video-killed-the-radio-star
 
 
 
Software projects/OS/Slackware/Advanced usage/Image scanning
 
 
 
= Permissions =
 
* In order to use a scanner, you have to give your user(s) the good rights.
 
* As root, edit /etc/group , and add your username in the scanner group.
 
* Log out from Xfce, log out from the console, log in and type startx.
 
 
 
= Usage =
 
* In the Xfce menu -> Graphics -> XSane
 
* You can also open a terminal and type:
 
xsane
 
 
 
= Hewlett Packard devices =
 
* To easily configure a HP device, type as root:
 
hp-setup
 
* Activate HP frontend under Xfce. Go in the menu -> Settings -> Settings Manager -> Session and Startup -> Application Autostart tab, then check "HP System Tray Service".
 
 
 
Software projects/OS/Slackware/Slackware FAQ
 
 
 
= I have no sound =
 
* [http://pandorawiki.org/Software_projects/OS/Slackware#First_run You probably missed the addition of your user to various groups].
 
 
 
= GParted doesn't run =
 
* As root, edit /usr/share/applications/gparted.desktop, and change:
 
Exec=gksudo /usr/sbin/gparted %f
 
into
 
Exec=gksu /usr/sbin/gparted %f
 
 
 
= I messed up the user creation =
 
* So you can log in as root. Open a terminal and type:
 
adduser
 
 
 
= Can't see any .pnd =
 
* Click on the green icon near the Xfce menu.
 
 
 
= Still can't see any .pnd =
 
* You forgot to add your user in the right groups. Edit /etc/group and add yourself to:
 
audio cdrom floppy plugdev video power netdev lp scanner
 
 
 
= I want USB enabled at boot =
 
* Edit /etc/rc.d/rc.local , and uncomment:
 
#modprobe ehci-hcd
 
into
 
modprobe ehci-hcd
 
 
 
= Can't set the battery monitor to display time left =
 
* Left-click anywhere on the center of the Xfce menu bar.
 
Panel-->Panel Preferences-->Items-->Battery Monitor
 
 
 
= Emulators and Games icons are the same =
 
* It's because freedesktop menus are crap. I lost days trying to set them up.
 
 
 
= Wi-Fi works only once =
 
* Apply [http://boards.openpandora.org/index.php/topic/9797-slackware-for-pandora-140/?p=211311 this tweak]. It will be corrected in next release (14.0-2), and it's faster to correct manually than using a patch.
 
 
 
= Sometimes, i can't unmount a drive"
 
* Launch Thunar (the file manager), and click on the "eject" icon.
 
 
 
= SSL doesn't work =
 
* Set your time/date correctly.
 
 
 
= Cursor moves strangely when i use the touchscreen =
 
* It's a bug, probably from GTK. I don't know how to fix it yet.
 
 
 
Software projects/OS/Slackware/Advanced usage/Kernel-13.37
 
 
 
= Kernel: to recompile or not to recompile ? =
 
* You don't have to if you don't need to add a new feature.
 
* You don't have to if there's no urgent security kernel update.
 
* If you want to acquire a lot of global Linux knowledge, or if you are just curious, then yes, just go for it.
 
 
 
= Is it simple or complicated to recompile ? =
 
* Both.
 
* But as there's a default kernel configuration file for Open Pandora, it's pretty easy.
 
 
 
= Downloading and pre-configuring the latest kernel sources =
 
* Plug the net, be root, then:
 
mkdir -p /usr/src/
 
cd /usr/src/
 
git clone git://openpandora.org/pandora-kernel.git
 
ln -s pandora-kernel linux
 
cd pandora-kernel
 
git checkout --track -b pandora-3.2 origin/pandora-3.2
 
make omap3_pandora_defconfig
 
 
 
= The fun part: tweaking =
 
* The configuration is stored in a hidden file named /usr/src/linux/.config
 
* You can use many tools to edit the configuration.
 
* The kamikaze way: edit manually the .config . Don't do that.
 
* The lazy way: install KDE and use:
 
make xconfig
 
* The common way, which i recommend:
 
make menuconfig
 
 
 
= Menuconfig =
 
* Kernel options are stored in a tree.
 
* Options can be marked as [*] built-in, or <M> module.
 
* The vast majority of those options refers to a driver or a functionality.
 
* Built-in means inside the kernel, so once the kernel boots, you can't remove or change parameters.
 
* Module means you can either add or remove them after the boot. Ever typed "modprobe ehci-hcd" ?
 
* The exemple below is copied from my PC, will copy the real OP one later.
 
Arrow keys navigate the menu.  <Enter> selects submenus --->.  Highlighted letters are hotkeys.  Pressing <Y> includes, <N>
 
excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> for Search.  Legend: [*] built-in  [ ]
 
excluded  <M> module  < > module capable
 
[*] DMA memory allocation support
 
General setup  --->
 
[*] Enable loadable module support  --->
 
[*] Enable the block layer  --->
 
Processor type and features  --->
 
Power management and ACPI options  --->
 
Bus options (PCI etc.)  --->
 
Executable file formats / Emulations  --->
 
[*] Networking support  --->
 
Device Drivers  --->
 
Firmware Drivers  --->
 
File systems  --->
 
hacking  --->
 
options  --->
 
Cryptographic API  --->
 
Virtualization  --->
 
Library routines  --->
 
<Select>    < Exit >    < Help >
 
 
 
= A simple tweak =
 
* Highlight  Cryptographic API  --->
 
* Push [enter]. You're now in the Cryptographic API section.
 
* With [space], select all cryptographic algorithms you can. Ensure they are marked as <M>, not <*>.
 
* With [right], select < Exit >, then push [enter].
 
* Again, with [right], select < Exit >, then push [enter].
 
* Now push [enter], saying <Yes> to "Do you wish to save your new configuration ?".
 
* You're now ready to compile a kernel which will drive James Bond angrily jealous.
 
 
 
= Kernel compilation =
 
* Be sure you've overclocked your OP to the maximum MHz.
 
* At 800MHz, it's a 3+ hours job.
 
* Now you can compile it with:
 
cd /usr/src/linux/
 
make clean
 
make uImage
 
make modules
 
make modules_install
 
rm /boot/uImage
 
cp arch/arm/boot/uImage /boot/uImage
 
* Reboot.
 
 
 
= Speed up the compilation time using two or more Pandoras =
 
* Read [http://pandorawiki.org/Software_projects/OS/Slackware/Advanced_usage/Distributed_compilation this], and set up your Pandoras.
 
* Then compile, replacing previous related commands with:
 
make -j4 CC=distcc uImage
 
make -j4 CC=distcc modules
 
In the -j(n), n represents the (number of CPU used X 2), so if you compile with 10 OP, it will be -j20 .
 
 
 
= 3D driver =
 
* As it's not open source, you have to grab it on the Texas Instruments website.
 
* More on this later.
 
 
 
Software projects/OS/Slackware/Advanced usage/Non-Free codecs
 
 
 
= Warning =
 
* I hate to write things like this following tutorial, but sometimes it's necessary to use non-Free stuff, e.g. for work.
 
 
 
= Setting up sbopkg =
 
* Use [http://pandorawiki.org/Software_projects/OS/Slackware#Installing_a_program_from_source this procedure].
 
 
 
= Creating the build list =
 
* As root, create /var/lib/sbopkg/queues/nonfree.sqf
 
* Fill it with this:
 
amrnb
 
amrwb
 
faac
 
lame
 
libdvdcss
 
ffmpeg
 
 
 
* Edit /var/lib/sbopkg/SBo/14.0/multimedia/ffmpeg/ffmpeg.SlackBuild.sbopkg, and add the -fPIC flag after the two -mfloat-abi=softfp
 
* Launch sbopkg, load the queue and proceed with local SlackBuilds.
 
* Please note that ffmpeg is free software, but it has to be recompiled in order to use this crappy non-Free stuff.
 
 
 
= Recompiling MPlayer2 =
 
* Install python3 .
 
export CFLAGS="-DPANDORA -O2 -pipe -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
 
export CXXFLAGS="-DPANDORA -O2 -pipe -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
 
 
git clone git://github.com/pder/mplayer2-build.git
 
cd mplayer2-build
 
git submodule init
 
git submodule update
 
 
cd mplayer2-build/mplayer
 
rm -rf /tmp/build/*
 
./configure --disable-libdvdcss-internal \
 
            --prefix=/usr \
 
            --mandir=/usr/man \
 
            --confdir=/etc/mplayer \
 
            --codecsdir=/usr/lib/codecs \
 
            --language=all
 
make
 
make install DESTDIR=/tmp/build
 
 
cd /tmp/build
 
removepkg /var/log/packages/MPlayer*
 
makepkg -c y /tmp/MPlayer2-201212-arm-1.tgz
 
installpkg /tmp/MPlayer2-201212-arm-1.tgz
 
* Please note that MPlayer2 is free software, but it has to be recompiled in order to use this crappy non-Free stuff.
 
 
 
Software projects/OS/Slackware/Advanced usage/VPN
 
 
 
= VPN =
 
* From Wikipedia: "A virtual private network (VPN) is a secure network that uses primarily public telecommunication infrastructures, such as the Internet, to provide remote offices or traveling users an access to a central organizational network."
 
* It means you can establish a secured LAN over the internet.
 
 
 
= OpenVPN =
 
* It's shipped in the stock Slackware, so you just have to configure and run it.
 
* Check the one and only tutorial [http://openvpn.net/index.php/open-source/documentation/howto.html here].
 
 
 
Software projects/OS/Slackware/Advanced usage/Hostname
 
 
 
= Changing the hostname =
 
* As root, type:
 
netconfig
 
* Now you have to edit /etc/sudoers . You have to use visudo or nano, otherwise some editors may change the permissions of this file, therefore disable sudo commands.
 
nano /etc/sudoers
 
* Change all "darkstar" into the hostname you've choosen.
 
* Sudoers permissions _must_ be:
 
ls -lsa /etc/sudoers
 
-r--r----- 1 root root
 
* In case you changed the permissions, do this:
 
chmod 0440 /etc/sudoers
 
chown 0.0 /etc/sudoers
 
 
 
Software projects/OS/Slackware/Advanced usage/Network get started-13.37
 
 
 
= Network interfaces =
 
* eth0 is the interface that shows up when you plug an USB to ethernet adapter. A list of compatible ones is located [http://pandorawiki.org/USB_compatibility_list#USB_to_Ethernet_adapters here].
 
* wlan0 is the embedded Wi-fi interface.
 
* wlan1 is the name of a Wi-fi dongle.
 
* usb0 is the small USB port (not sure, may be the first plugged).
 
* usb1 is the big USB port (not sure).
 
Anyway, you can check the physical link connectivity, as root:
 
ethtool usb0
 
ethtool usb1
 
ethtool eth0
 
* If you connect an OP with another using an USB cable, the OP at the little end of the cable will dramatically drain the current from the other OP's big USB port.
 
* To avoid this, at the little end, type as root:
 
echo 0 > /sys/class/power_supply/twl4030_usb/enable
 
* With this usb-usb connection, you have to:
 
rmmod g-cdc
 
* There's also a bluetooth interface, but until now i just connected a mouse, so can't tell much about it.
 
* These interface numbers (eth0, eth1 etc.) may vary, depending which one you plug first.
 
* The numbers can be fixed using the /etc/udev/rules.d/70-persistent-net.rules file.
 
* This file is deleted at each shutdown. To make use of it, edit /etc/rc.d/rc.local_shutdown , and comment this line:
 
rm /etc/udev/rules.d/70-persistent-net.rules
 
into
 
#rm /etc/udev/rules.d/70-persistent-net.rules
 
 
 
= SL4P default setup =
 
* The Network Manager, well, manages the connections, and asks for an IP address through a DHCP request. This is how it acts when you boot SL4P for the first time.
 
* You can set it up through a right-click on the Xfce desktop icon.
 
* It's not included in the stock Slackware-13.37, so i compiled and shipped it.
 
* It's now part of the 14.0 and onwards.
 
 
 
= Slackware friendly setup =
 
* Wicd is included in the stock Slackware extra packages, and i shipped it in SL4P 13.37.
 
* I don't include it anymore inside 14.0 but you still can install it, using slackpkg or any other method.
 
* I tried it only a bit so i can't recommend it, or not.
 
* If you want to give it a try, be root, then install it, and disable the network manager. Edit /etc/rc.d/rc.local and comment at the end:
 
/etc/rc.d/rc.networkmanager start
 
into
 
#/etc/rc.d/rc.networkmanager start
 
* Activate Wicd at boot:
 
chmod +x /etc/rc.d/rc.wicd
 
* Activate Wicd frontend under Xfce. Go in the menu -> Settings -> Session and Startup -> Application Autostart tab, then check "Wicd Network Manager Tray".
 
* Reboot.
 
 
 
= Slackware default setup =
 
* Stock Slackware doesn't use the Network Manager, nor Wicd. The network is established at boot, once for all.
 
* If you want a non-graphical server-oriented setup, you have to disable the network manager (and Wicd). Edit /etc/rc.d/rc.local and comment at the end:
 
/etc/rc.d/rc.networkmanager start
 
into
 
#/etc/rc.d/rc.networkmanager start
 
* Run as root:
 
netconfig
 
* The hostname MUST BE:
 
darkstar
 
otherwise you'll break some Pandora scripts compatibility. Sudo won't launch anything with the wrong hostname.
 
* Set you parameters.
 
* Edit /etc/rc.d/rc.inet1.conf to finalize your setup.
 
* Be sure to have all used interfaces plugged in when booting. With the deactivation of the network manager, it's no more plug and play.
 
* Reboot.
 
 
 
Software projects/OS/Slackware/Advanced usage/Rootkit scanners
 
 
 
= What is a rootkit ? =
 
* Check the Wikipedia definition [http://en.wikipedia.org/wiki/Rootkit here].
 
 
 
= How to scan them ? =
 
* I ship two tools for this purpose: chkrootkit and rkhunter.
 
* Their utilization is pretty simple, and i'll let you read their man pages.
 
 
 
= Something to know =
 
* It's a pretty bad idea to run a self-test on a machine, because if it's already compromised, embedded security tools may also have been hacked.
 
* The best option is to check the target drive (the suspicious one) on a clean machine. This target drive SHOULD be mounted as read-only.
 
 
 
= The Pandora way =
 
* So to check a SD card, or a USB drive, don't use Xfce, as it will automount as read-write the target drive.
 
 
 
= Note =
 
* During a scan, you will likely encounter false positives (false warnings). This can be harmless. Don't blindly stress, keep cool, and analyze the results.
 
 
 
Software projects/OS/Slackware/Advanced usage/System encryption
 
  
= System encryption =
 
* Check this thread from Alemarius Nexus: http://boards.openpandora.org/index.php/topic/11367-beta-pandora-full-system-encryption/#entry211865
 
* I suggest you to build your own crypto-enabled kernel directly on the Pandora.
 
  
  
 
[[Category:Development]]
 
[[Category:Development]]
[[Category:Kernel]]
 
[[Category:Network]]
 
[[Category:Security]]
 
 
[[Category:Software]]
 
[[Category:Software]]
 
[[Category:Slackware]]
 
[[Category:Slackware]]
 
[[Category:System]]
 
[[Category:System]]

Latest revision as of 17:48, 16 April 2021

Slackware logo

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 14.2 release forum page is located here: https://pyra-handheld.com/boards/threads/slackware-for-pandora-14-2.80934/

The technical and -current forum page is located here: https://pyra-handheld.com/boards/threads/slackware-inside-pandora.60258/

I'm the maintainer of this Slackware port, and you can find me here: https://pyra-handheld.com/boards/members/linux-swat.18403/

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

Features

  • Full hardware support
  • 12 window managers, including Xfce, Minimenu and Enlightenment DR17
  • KDE (512M RAM recommended), installed via internet in two commands
  • Pnd support
  • PNDmanager and PNDstore support
  • Armhf compatibility layer
  • Rebuilt optimized video player (MPlayer2)
  • Integrated YouTube player (SMTube, no Flash plugin needed)
  • Rebuilt optimized audio player (XMMS)
  • Integrated VOIP with Linphone
  • Integrated office suite, with AbiWord and Gnumeric
  • Integrated DisplayLink support
  • More than 400 Pandora-optimized pre-compiled packages (hosted @ openpandora.org)
  • Slapt-get and gslapt for easy installation of these pre-compiled packages
  • An automatized package building system (sbopkg)
  • Three optional standard firewall configs for eth0, usb0 and wlan0
  • Other optional firewall configs for routing/firewalling
  • Kernel recompilation made easy
  • Updates through official Slackware repository
  • The SL4P build system (hosted @ openpandora.org), which can be used to port any Linux/*NIX to Open Pandora
  • Official OP 3.X kernel + realtime kernel
  • Optimized Notaz's SDL
  • Bsp's c64-tools for the DSP
  • Glshim from Lunixbochs
  • Gl4es and SDL2 from ptitSeb
  • Gcc, make, perl, python2, python3, ruby, OpenJDK, SFML, etc.

Helping this project

  • Please consider making a donation.
  • This will help the SL4P project, and also the whole Pandora community, as part of it funds pre-orders.
  • To do so, go to PayPal, log in and click on "Send Money". Donate to donation@openpandora.org and indicate in the PayPal comment field that you are donating for the Slackware project. Then PM me, so I will include you in my thx list ;^).

Older releases Wiki pages

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

OS architecture

  • 14.2 is the last and final ARMv5te, little endian, software float ("soft-float", "armel"), EABI.
  • 14.2 has the armhf compatibility layer, therefore can run some armhf programs.
  • -current is ARMv7-a, little endian, hardware float ("hard-float", "armhf"), EABI, therefore not compatible with most .pnd .

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.
  • -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.

A word about SOLEIL

  • SOLEIL is another project of mine, based on SL4P.
  • It's basically the same OS from the Pandora point of view, but has some neat extended features. Feel free to take a look at it.

A word about security

  • The shipped MPlayer is optimized, but outdated, if this is a concern, you can uninstall it and use the official Slackware up-to-date version instead.
  • Same applies for bluez, but note that there's no working up-to-date OP-compatible working package.
  • See also #Firefox, Thunderbird, SeaMonkey and Java-OpenJRE/JDK updates
  • SL4P's Bluetooth may be vulnerable to this exploit.

Media choice

Installation

Note: if you're a Linux noob, and you're scared by this Wiki page, check this simple tutorial from F_Slim. Thanks to him.
Note: if you are one of the last windows users, you can install SL4P using the method nicely provided by ingoreis. Check this thread.

  • Format a 8G or more SD card with the Ext4 filesystem. To make explanations clear, name it SLACK.
  • You can disable the Ext4 journal to get a better performance, with the sdc1 partition for example:
tune2fs -O ^has_journal /dev/sdc1
  • Note that Ext4 support is enabled since SuperZaxxon v1.75 firmware, so be sure to update. If you don't/can't, you can safely use Ext2 instead.
  • 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 /etc/fstab after having uncompressed the rootfs.
  • If you're cleaning up a previous SL4P installation for a fresh new one, proceed like this:
rm -rf /media/SLACK/*
rm -rf /media/SLACK/.cache/
rm -rf /media/SLACK/.keepdir/
rm -rf /media/SLACK/.splash/
rm -rf /media/SLACK/.subversion/
rm -rf /media/SLACK/.Trash-0/

then unmount, fsck and sync before plugging back the card.

  • To do this, get the SD device name:
cat /proc/mounts

You will see something like:

/dev/sdc1 /media/SLACK ext2
  • Unmount the partition:
umount /media/SLACK/

then check the partition with fsck

fsck -y /dev/sdc1

and sync:

sync
  • Grab the latest 14.2 rootfs here.

Or

  • Grab the latest -current (unstable) rootfs here. The -current repository may be empty. It's because a new stable release is out.
  • Plug back the SD card to remount it.
  • 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

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.
  • Then you'll be driven to the log in screen. Do not log in as the root user
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, edit /etc/slim.conf to change the configuration.
  • 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.
  • To choose a window manager, type xwmconfig.
  • I ship those:
Xfce
fluxbox
blackbox
WindowMaker
twm
9wm
enlightenment17
jwm
minimenu
openbox
wmii
  • In some -current or -RC 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 its user-friendly menus, become root with:
su -

and type:

halt

or

reboot

Setting up your timezone

  • Become root and use
timeconfig

Setting up your language

  • You can set your locale pretty easily. First, you have to know which languages are available, type:
locale -a
  • Choose the one that best suits your need. I highly recommend to use the versions with .utf8 .
  • Then be root and edit /etc/profile.d/lang.sh .
su -
emacs /etc/profile.d/lang.sh
  • You'll have to change this variable with the one you need:
export LANG=en_US.UTF-8
  • Save the file, make sure it's executable:
chmod +x /etc/profile.d/lang.sh
  • Reboot.

Services started at boot

  • 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 may take some time. Once you've done that, run
sh /root/sboflags.sh

to optimize the builds for the Pandora. You have to run this script after every sync.

  • Then all is set up, you just have to use
sbopkg

and choose "Local SlackBuild" when prompted.

  • When the job is done, remove useless files to save disk space:
rm -rf /tmp/SBo/*
rm -rf /var/cache/sbopkg/*
  • Note that Slackware does not check dependencies, so you have to get the right build orders looking here: http://slackbuilds.org/
  • To check if some of the dependencies are already installed in your system, look in /var/log/packages/ . For example, libgnomecanvas:
ls /var/log/packages/libgnomecanvas*
  • 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 Slackware 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
  • If checking and fixing all of those pesky dependencies manually is too much of a burden for you to bear: fear not! Sqg (slackbuilds queue generator) saves your day!

Installing a program with a precompiled archive

  • I compiled a lot (450+) of packages from http://slackbuilds.org/.
  • I shipped a graphical install tool named GSlapt. Launch it with its icon, update the package list, then install what you need, checking the dependencies of your programs here: http://slackbuilds.org/
  • You can also proceed manually. Find 14.2 packages here, and -current ones here.
  • Download what you need, checking the dependencies of your programs 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
  • Please report any non-working package.

About SL4P precompiled archives

  • All shipped and extra archives are compiled with sbopkg with Pandora-optimized flags.
-DPANDORA -O2 -pipe -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fPIC
  • 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 (base and base-more), you don't need to download them as they're already in the rootfs, see this.
  • Some archives won't work, like Kompozer, because it's a repackaging of x86 binaries. As I'm not yet in the process of fine-tuning, I left them for now.

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 for less eye-candy, a 512M Pandora is recommended to run the full desktop.
  • Anyway, you can run any KDE application (konqueror, kwrite...) flawlessly with the 256M version running Xfce.
  • Type xwmconfig to select KDE, or any other window manager.

Updates

slackpkg update
slackpkg upgrade-all
  • Do not 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

Note that some packages like a/aaa_elflibs are not supposed to be upgraded in -current. A new rootfs is needed.

  • You can eventually set up a cronjob. In this case, check /etc/slackpkg/blacklist to ensure some critical packages (e.g. kernel) will not be updated.
  • Slackware usually provides updates during 10+ years, but it seems to be less with Slackware ARM. See the news for more details.

SL4P-specific updates

  • I provide Pandora fixes, available as Slackware archives.
  • Simply use GSlapt, and update.

Firefox, Thunderbird, SeaMonkey and Java-OpenJRE/JDK updates

  • Slackware ARM 14.2 doesn't provide anymore updates for Firefox, Thunderbird and SeaMonkey because of a build problem.
  • You have to download the unsupported -current archives and update them manually, using the method mentioned above.
  • Get them here.
  • About Java-OpenJRE/JDK, it's not possible to update them through slackpkg because it was added on-the-fly to Slackware ARM.
  • Check and get the updates here.
  • Be sure to download and update both as the jre is not included in the jdk.

Kernel updates

  • I provide kernel updates through GSlapt.
  • Many kernels are already available in the rootfs, like real time, or non-debug.
  • To know which kernel is currently running, type:
uname -r
  • To enable a new kernel, for example 3.2.30-szfinal or the 3.2.26-rt, do:
cd /boot
rm uImage
cp uImage-3.2.30-szfinal uImage

or:

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

And reboot.

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

And reboot again.

Automounting a SD card or an USB drive

  • No system-wide automounter is enabled for now.
  • Only Xfce and some other window managers do automount.
  • As Xfce mounts devices at insertion, if you booted with a second SD card or an USB drive plugged in, you have to click on the device icon.
  • 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

USB at boot, suspend and powersaving

  • Usually, you have to click on the Xfce "Toggle USB Host" icon whenever you need USB support.
  • I disabled the USB support by default. As said Notaz, it "Uses around 3x more power when idle, fails to suspend properly.".
  • If you want to enable USB host and USB networking support at boot, be root and edit /etc/rc.d/rc.local .

Near the top, change

#modprobe ehci-hcd

into:

modprobe ehci-hcd

Fixing the endless reboot

  • Be sure your Pandora's clock is set. Boot Official Pandora OS on the NAND, and check/set time.
  • Boot SL4P, when prompted to enter the root password for maintenance, do it, then type:
fsck -y /dev/mmcblk0p1
  • You can do the same under Zaxxon. Note that it will be /dev/mmcblk1p1 if SL4P is on a second card.
  • You will be warned if the card is still mounted, so unmount it, and proceed.

Changing the Hostname

Switching from 1GHz to 600MHz Pandora

  • I slightly modified the clock script to split the parameters into two categories: 1Ghz and 600MHz.
  • You can safely put SL4P in any OP, and have a max OPP + max MHz settings for each as the model is recognized at boot, then clocked.
  • It's totally transparent, just set your parameters as usual.

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.

Bluetooth audio

  • SL4P already has everything you need. Don't even start with pulseaudio (unless you really need to)!

Proper Bluetooth configuration

  • We need to enable access to the BT protocols we want to use:
  • Fix /etc/bluetooth/audio.conf with:
[General]
Enable=Source,Sink,Headset,Socket,Control

Find your BT device's MAC address

  • Enable Bluetooth on your pandora.
  • If the BT device manager doesn't pop up automatically, start it with:
blueman-manager
  • Make sure your device can be found (i.e. is not paired with another computer or mobile phone etc.)!
  • Search for your device and find it's MAC address.
  • Don't connect to/pair with your device yet!

Proper ALSA configuration

  • We will define a new bluetooth device and route all ALSA traffic through it.
  • This means your BT device will be the default ALSA output device!
  • Fix ~/.asoundrc with your MAC address:
pcm.btheadset {
type plug
slave {
pcm {
type bluetooth
device "[ADD MAC HERE]"
profile "auto"
}
}

hint {
show on
description "BT Headset"
}
}

ctl.btheadset {
type bluetooth
}
  • Fix /etc/asound.conf with your MAC address:
pcm.!default {
type bluetooth
device "[ADD MAC HERE]"
}
  • Reboot and pair with your device using the A2DP protocol.
  • Enjoy BT audio with your Slackware and your Pandora :)

SGX drivers installer

  • With notaz's blessing, i tweaked his SGX drivers installer to make it work both under SL4P and Zaxxon.
  • Get it here.
  • You can safely remove your old version.

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.
  • If a pnd doesn't work, first thing to check is its log file in /tmp .
  • View the PND compatibility list here.

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.

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.

FAQ

Ask a question/Report a bug

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