site  contact  subhomenews

armv6-compiler-person wanted

April 29, 2012 — BarryK
I have compiled all of this lot manually:

These are "common" packages that are likely to be in all puppies and aren't available in the host-distro's packages (or the packages in the host-distro are unsuitable, such as too many dependencies).

Iguleder is doing some great development to get this all automated, something that we should look at in the future. Getting started with ARM, I have been feeling my way, and discovering a few issues with compiling, so perhaps doing it manually this time was good -- except for the amount of time it took.

I have compiled some armv6 PETs, at least I think they are, that should work in the Raspberry Pi. Due to backwards compatibility, they will work in the armv7-based Mele, which is why I haven't compiled those PETs for armv7.

I can't say that I'm keen on the thought of doing all that again, recompiling all those armv7 PETs as armv6. That's where I am seeking help. If anyone has a armv6-based box of any kind, or emulator, if you want to compile any of those packages, please do. Probably best if we went for a base armv6 with software floating point.

All of the source packages are here:
Us#er#na#me: pu#pp#y Pa#ss#wo#rd: li#nu#x

After compiling a package, all that you have to do is open up the corresponding armv7 PET and bung in the replacement binaries, then change all occurrences of "armv7" to "armv6" in pet.specs file, and rename the package. Like this:

# tar -zxf
...put in armv6 binaries, edit pet.specs, change dir name.
then put it together again...
# dir2tgz dbus-123-armv6/
# tgz2pet dbus-123-armv6.tar.gz

Most packages are pretty straightforward to configure and compile. If running on armv6 hardware then is probably not even necessary to specify the '--build' parameter.
I have made some notes for some packages, that I will post as comments to this blog thread.

There are a couple of BaCon apps in Puppy, that you will find in the devx: /usr/sbin/pngoverlay.bac and /usr/sbin/welcome1stboot.bac. I compiled those for armv7, so they need to be redone for armv6.


cups, ghostscript, foomatic-filters
Username: BarryK
My "old favourites" are cups 1.3.11 and ghostscript 8.15.4. You could use the host-distro's packages, but these older ones will work. Also, the older ghostscript is considerably smaller. [b]cups 1.3.11[/b] I went to town disabling all sorts of things: [code]# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-dbus --disable-pam --enable-libpaper --disable-ldap --disable-dnssd --disable-launchd --disable-slp --disable-gssapi --disable-ssl --disable-use-network-default --disable-pap # make # make install[/code] ghostscript 8.15.4 the package is actually 'espgs-8.15.4-patchedbk' needs another patch: [code]# patch -p1 < ../espgs-gcc-40.patch did this else compile fail: # export CFLAGS='-fPIC' # export LDFLAGS='-fPIC' # ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-drivers=ALL --without-x --enable-cups --disable-gtk --with-ijs --disable-compile-inits # make so # make soinstall[/code] Good idea to unset CFLAGS and LDFLAGS afterward. foomatic-filters 4.0.7 [code]# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var # make # new2dir make install-cups[/code]

Gutenprint, installwatch, netpbm
Username: BarryK
"[b]Gutenprint[/b] compile failed, gave it a miss. [b]installwatch 0.7[/b] part of 'checkinstall' source pkg. # make ...error, conflicting types for 'scandir' and 'scandir64'. ...i commented out in /usr/include/dirent.h. and of course restored afterward. [b]netpbm 10.34[/b] you might prefer to use the host-distro's netpbm. a bit vague: [code]I edited, inserted "-fPIC" in a few places. # ./configure ...asks questions. ...then edit Makefile.config, change CFLAGS line, -O3 to -O2, and append -fPIC ...make sure all -O3 changed to -O2. # make ...error, have to comment out 'getline' declaration in /usr/include/stdio.h # mkdir out-package # make package pkgdir=out-package ...oh, got installed to /out-package ...this creates a package. now to install it: # new2dir ./installnetpbm asks questions.[/code]

jimtcl, gwhere, superscan, libtubo, xfdiff_cut
Username: BarryK
"[b]jimtcl[/b] needed by usb-modeswitch. # ./configure --prefix=/usr --full [b]gwhere 0.2.3[/b] [code]must have: # export CFLAGS='-fPIC' # export LDFLAGS='-fPIC' it must have the --enable-gtk20: # ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-gtk2.0 # make ...error, with locale support. add this --disable-nls # make ...success.[/code] [b]superscan 0.8-patched2[/b] i hacked 'configure' to work with gtk2 only. previously it was aborting as 'gtk-config' missing. [b]unionfs_utils 0.2.1[/b] to avoid the "-fPIC" problem, used --disable-shared: # ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-shared # make [b]libtubo 4.5.0[/b] this is needed by xfdiff. compile static lib only. # ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-shared # make [b]xfdiff_cut 4.5.0[/b] # ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var # make

bacon, dbus, dbus-glib, dhcpcd
Username: BarryK
"bacon 1.0.25 [code]# ./bacon.bash -d /tmp bacon.bac ...install 'bacon' into /usr/bin to create the shared hug library: # bacon -d /tmp -f hug.bac -o '-fPIC' ...install '' to /usr/lib[/code] [b]dbus[/b] [code]# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-inotify # make ...success # new2dir make install[/code] rebooted. not sure, but maybe dbus-glib needs to see correct running daemon? [b]dbus-glib 0.82[/b] [code]think need these: # export CFLAGS='-fPIC' # export LDFLAGS='-fPIC' # ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-bash-completion[/code] [b]dhcpcd 5.2.12[/b] # ./configure --libexecdir=/lib/dhcpcd --dbdir=/var/lib/dhcpcd --sysconfdir=/etc

dialog, inkscapelite, xdialog
Username: BarryK
"[b]dialog 1.1-20110302[/b] # export CPPFLAGS='-I/usr/include/ncursesw' # ./configure --prefix=/usr --bindir=/bin --sbindir=/sbin --libdir=/lib --sysconfdir=/etc --localstatedir=/var --build=i486-pc-linux-gnu --enable-nls --with-ncursesw --enable-widec # make # new2dir make install [b]inkscapelite 0.36.3[/b] # ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-xft --without-gnome-print [b]xdialog 2.3.1-patched_amigo[/b] [code]# ./ --prefix=/usr --sysconfdir=/etc --localstatedir=/var # make distclean # ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-print-command=lpr --with-gtk2 # make # new2dir make install[/code] [b]NOTE[/b] One of the most difficult things was getting Ubuntu Lucid Lynx properly setup for compiling. The problem is to install enough -dev packages (and none of the unwanted ones). Many source packages will compile without any complaint if some DEBs that would enhance their performance are missing. In particular, sift through /usr/lib and check that all the required .so files are present.

Set Top Box WM8710
Username: Raffy
"Quote Barry: "If anyone has a armv6-based box of any kind..." Just found this: Google Android 2.3 Internet TV Box WIFI Media Player 1080P Full HD HDTV HDMI VIA WM8710 quoted for as low as USD52 in aliexpress. WM8710 is based on 800Mhz ARM1176JZF processor.

re more pkgs to compile
Username: BarryK
"technosaurus, For now, I am aiming for a building from Debian and Ubuntu arm debs, and they, or at least Lucid, have tslib. But, as I have been getting closer to doing an actual build of Puppy, I have identified more packages that will have to be compiled and provided as PETs. Several of them. Which I will get stuck into right now. Note, I am doing a Lucid Lynx build because that's what I am currently using. That was the SD image that Tom uploaded. As it is a working system, I have something to compare against and grab files off if necessary. Raffy, Yeah, but actually being able to get Linux to run on it, that is the problem. There is no base hardware standard, unlike our "PC compatibles". In the case of the Mele, there are a dozen or so guys working on it and solving problems. Many of these are hardware guys who understand all the intricacies of circuitry and manufacturing and testing. Much of this work will be applicable to other A10 and A13 based systems. I acknowledge some of those guys as the real brains here. I am just at the "user-end", putting together a customised Linux build.

Re BaCon
Username: BarryK
"Ted Dog, No, it is easy to compile and install (in Lucid on the Mele anyway). Just follow my instructions above, and use the bacon PET as a template for installation.

Re RasPi compiling
Username: BarryK
"mark, Thanks for that. Lobster, Regarding compiling on the RasPi, it has only 256MB RAM, yes? I don't think that is going to be enough, you will need a swap partition. The Mele has 512MB, and I have been using a swap partition on my USB hard drive. If you have a USB hard drive, you could do the same thing. However, I have now purchased a SATA HD, and will create a swap partition on that. This is for the Mele, you can't attach a SATA or IDE HD to the RasPi, everything has to be done via USB, and you will need a powered USB hub if the drive is to be powered off the USB cable.

Username: Mark Tranter
"Hi Barry, Here are the srchives with the things I've compiled: [url=]rxvtARMv6[/url] [url=]rubixARMv6[/url] I had problems when trying to build some other things. I'll have another go this weekend.

Username: mark tranter
"Hi Barry, I have set up an ftp site for the packages I have managed to compile on qemu RPi. [url=]ftp PupPi files[/url] account name: a3804781 password: puppi1

mark tranter
Username: ftp list
"Here's the packages I've compiled: bcrypt binutils gfrename gzip inotifytools patchutils picpux rubix rxvt sysfutils tar vala xorg-sever

Bit of a slower week
Username: mark tranter
"Hi Barry, I haven't done as much in terms of compiling this week (although I have managed to build Leafpad and Vim). I didn't manage to find the "dev" packages for GTK+ in Arch. I need to ask for some help on the Arch forum, I think. I have been able to order my RPi this week, so hopefully soon I will be able to test out these programs myself. By the way, I have been wanting to have a go at some assembly code on the Pi (just for fun - something very simple). I am quite confused by the online materials I have read. Do you know of anywhere that has some good simple instructions for a newbie? mark

Re assembly
Username: BarryK
"mark, No, I haven't got a clue about ARM assembly code.

Tags: puppy