Liam Healy
Sep. 30th, 2008
04:48 pm - Clozure CL on Debian
A while back, I mentioned trying OpenMCL for Debian. OpenMCL is now Clozure CL (CCL), and version 1.2 for MacOSX and Linux (PPC and amd64) was recently announced. I gave it another try and the experience is much better, though it needs Debianization.
The Debian Common Lisp Team has produced a Common Lisp in Debian manual, so I followed that to Debianize CCL. As root,
> lx86cl64 Welcome to Clozure Common Lisp Version 1.2-r10552 (LinuxX8664)! ? (load "/usr/share/common-lisp/source/common-lisp-controller/common-lisp-controller.lisp") ? (common-lisp-controller:compile-common-lisp-controller-v5 "ccl") (#P"/var/cache/common-lisp-controller/0/ccl/common-lisp-controller/common-lisp-controller.lx64fsl" #P"/var/cache/common-lisp-controller/0/ccl/cl-asdf/asdf.lx64fsl" #P"/var/cache/common-lisp-controller/0/ccl/cl-asdf/wild-modules.lx64fsl" #P"/var/cache/common-lisp-controller/0/ccl/common-lisp-controller/post-sysdef-install.lx64fsl")
Now as an ordinary user,
? (load "/var/cache/common-lisp-controller/0/ccl/common-lisp-controller/common-lisp-controller.lx64fsl") ? (load "/var/cache/common-lisp-controller/0/ccl/cl-asdf/asdf.lx64fsl") ? (load "/var/cache/common-lisp-controller/0/ccl/cl-asdf/wild-modules.lx64fsl") ? (load "/var/cache/common-lisp-controller/0/ccl/common-lisp-controller/post-sysdef-install.lx64fsl") ? (common-lisp-controller:init-common-lisp-controller-v5 "ccl") ? (ccl:save-application "ccl-deb")
When restarted with
lx86cl64 ccl-deb
all the Debian definitions are there. (I recommend using rlwrap from a shell for easier input editing.)
I tried to compile and load various debian packages and other systems, with reasonably good success;
(clc:clc-require :asdf-system-connections) (clc:clc-require :cl-base64) (clc:clc-require :cl-ppcre) (clc:clc-require :md5) (clc:clc-require :port) (clc:clc-require :iterate) (clc:clc-require :cl-utilities) (clc:clc-require :uffi) (clc:clc-require :clsql-uffi) (clc:clc-require :clsql-sqlite3) (clc:clc-require :cffi) (clc:clc-require :drakma) (clc:clc-require :cl-html-parse)
all worked fine; I did get errors from a few things
(clc:clc-require :memoization) Error: The function CCL:ARGLIST is predefined in OpenMCL. (use-package :iterate :cl-user) > Error: Using #<Package "ITERATE"> in #<Package "COMMON-LISP-USER"> > would cause name conflicts with symbols inherited by that package: > ITERATE:TERMINATE TERMINATE (clc:clc-require :trivial-http) > Error: Module TRIVIAL-HTTP was not provided by any function on *MODULE-PROVIDER-FUNCTIONS*.
I'm sure many of my applications (tested mainly on SBCL and a little CLISP) will need fixing up.
May. 15th, 2008
09:35 pm - SBCL in Debian testing (lenny): good news
Thanks to lots of work and attention from various people:
http://release.debian.org/migration/tes
Checking sbcl
* trying to update sbcl from 1:0.9.16.0-1 to 1:1.0.16.0-2 (candidate is 12 days old)
* sbcl is going in today
May. 3rd, 2008
07:33 pm - SBCL in Debian testing (lenny)
Recently I noticed that SBCL in Debian testing is quite old; it is currently at 0.9.16 and evidently blocked there:
=== sbcl: = Missing build(s) on alpha,sparc This might need manual action from your side. See http://buildd.debian.org/pkg.cgi?pkg=sbcl = No migration to testing for 585 days. See <http://release.debian.org/migration/testing.pl?package=sbcl>
I have tried to stir the pot, and there has been some progress. This version of testing will release as lenny in the fall, and it would be a shame if it released with such an old version of SBCL.
Mar. 5th, 2008
08:54 am - SBCL, libc6, and GCC
For those that don't follow the mailing list, SBCL on Debian is unusable in unstable. SBCL did not change, but Debian upgraded libc6 to 2.7-9. This causes SBCL to spin at 100% usage, or simply to hang, while starting up. The only relevant change to libc6 is that it is now compiled with GCC 4.3 instead of 4.2; the libc6 maintainer has confirmed that backing out this change and recompiling libc6 with GCC 4.2 allows SBCL to work. It is still unclear where the problem(s) is/are; but the experts have narrowed it down further. Follow the developments on the Debian bug report; even if you don't use Debian, presumably this combination of software is a problem. In the meantime, if you are a sid user, don't upgrade! Though apparently some people have experienced the problem as a random failure, my experience is that it's 100% reproduceible.
Software is complicated.
Oct. 25th, 2007
12:44 pm - DoD authentication in Iceweasel/Icedove
Common DoD authentication with certificates and the Common Access Card (CAC) is possible in Debian for Iceweasel (Firefox) and Icedove (Thunderbird). It can be reduced to the following:
- Install the DoD Configuration add-on in Iceweasel by clicking on "Install Now" button.
- Save that xpi file from Iceweasel by clicking right on the button. Install the file in Icedove: Tools -> Add-ons -> Install.
- Test from web by visiting http://www.navy.mil; the URL should be green. You do not need your CAC.
- Load packages in Debian:
sudo aptitude install libpcsclite1 pcsc-tools libccid coolkey
This will enable the CAC reader in Debian unstable; I don't know if the versions of previous Debian releases will work. Note that not all CAC readers are supported; see the list. In particular, the ActivCard 2.0 USB, which is very common, is not supported. - With your CAC inserted, visit http://infosec.navy.mil. You will be prompted for your PIN, and you should be able to select your certificate. To see the certificate information that the server has, visit the PKI Cert test page.
- You can sign/encrypt email by using the S/MIME button, and set up defaults for every email with Edit -> Account Settings -> Security. Note that OpenPGP security is completely separate from CAC security, and the icons that display in messages and the composition area shouldn't be confused.
That should do it. References: Van Alstyne, CoolKey package.
Sep. 7th, 2007
11:57 am - cl-mcclim out of date in Debian unstable
People are talking about the hot new mcclim (0.9.5). But unstable has 0.9.2; experimental only has 0.9.4 and it has not migrated to unstable in the six months it's been there because, supposedly, the etch freeze http://packages.qa.debian.org/c/cl-mccl
Sep. 2nd, 2007
12:57 pm - GMAT on Debian amd64
NASA has recently made available its General Mission Analysis Tool (GMAT), a space trajectory and mission analysis system, under an open source license. The precompiled version relies on WxWidgets 2.8, which aren't yet available in Debian (though there are debs available) and is for i386. So I have tried to compile under etch/amd64 using WxWidgets 2.6. The src/README file explains very well how to set options, but not how to compile, so here's what I've figured out.
sudo aptitude install libwxgtk2.6-dev libwxbase2.6-dev wx2.6-headers
sudo aptitude install libdevil-dev libdevil1c2
In src/topLevelBuildFiles/linux/BuildEnv.mk,
WXCPPFLAGS = `/usr/bin/wx-config --cppflags`
WXLINKFLAGS = `/usr/bin/wx-config --libs --gl-libs --static=no`
Make source code changes in src/base/forcemodel/ForceModel.cpp, line 1129 add "long"
std::sprintf(sataddr, "%x", (unsigned long)sat);
Change to the src directory, and make links
ln -sf topLevelBuildFiles/linux/MakeGmat.eclips
Then make
make -f MakeGmat.eclipse
Unfortunately, the compilation ends in error.
Apr. 11th, 2007
03:16 pm - Rebuilding the sqlite3 library with extensions in Debian
The new version of the library libsqlite3.so in Debian needs to be rebuilt in order that extension functions can be used, because apparently it's hard to get autoconf to learn where dlopen is located. This will fix the problem:
sudo aptitude install fakeroot dpkg-dev build-essential cd /tmp apt-get source libsqlite3-0 sudo apt-get build-dep libsqlite3-0
Comment out in
/tmp/sqlite3-3.3.14/Makefile.in:#TCC += -DSQLITE_OMIT_LOAD_EXTENSION=1
Build and install:
cd /tmp/sqlite3-3.3.14 dpkg-buildpackage -rfakeroot -uc -us dpkg -i /tmp/libsqlite3-0_3.3.14-1_amd64.deb
Jan. 16th, 2007
09:59 pm - Debian on the ThinkPad T60
Two weeks ago I purchased a ThinkPad T60 (87445BU) with Intel Core2 Duo (2GHz), Mobility Radeon X1400 (128MB), 1.5 GB RAM, 120 GB, DVD burner. I wanted to add Linux but also keep Windows XP. The first thing was to make plastic disks (1DVD + 1CD) out of the "Rescue & Recovery" partition supplied on the hard disk. Interestingly, no one says which disk to put in first -- even the ThinkPad prompt is simply "insert the disk" (it turns out, it's CD first, then DVD). The first question on linux installation to answer was: Debian or Ubuntu? I had pondered that for a while without coming to a conclusion, but that question was answered for me. I tried to install both Ubuntu 6.10 and Debian Etch (testing), and both failed to install. Debian stopped with a message "ACPI: Found ECDT" and no further information. Trying "installgui acpi=off" allowed it to go further, but then Debian wouldn't recognize either the wired or wireless Atheros network hardware. The lack of recognition of the wired network controller was simply because I didn't have a cable plugged in at the time; once plugged in, it recognized it fine. However, further in the installation procedure, the "Select and Install Software" step ended with "Installation step failed" with no further explanation. This happened repeatably. Worse, Windows would not boot, I would just get "error loading operating system". Fortunately, the recovery partition worked to restore the factory-installed state.
Meanwhile, Ubuntu would install (with acpi=off) but would simply end with an X screen and nothing on it. Both the Debian and ubuntu that I used were amd64; people who reported success online seemed to be doing i386 installs exclusively. I want back to Debian and installed using "expert acpi=off floppy=thinkpad" which installed fine. I asked to not install GRUB to the MBR because I wanted to be able to use the recovery partition which supposedly you can't do if you install GRUB on the MBR. Instead, I installed it on (hd0,1) which is the Linux partition. I expected I would need to configure the windows bootloader to see that partition; instead, the computer boots right into GRUB and everything is available from the menu, including the recovery partition. Even the blue "ThinkVantage" key works. I went on to install applications from Debian.
A quick summary of how well various hardware is supported:
- Wireless: The madwifi looks like a good package; unfortunately, I have a new wireless chip which is not supported yet. The only choice remaining was the usual ndiswrapper and Windows driver; this however is not an option because they are 32 bit only. So for now I'm using a cable.
- ATI Graphics: aptitude install fglrx-control fglrx-driver fglrx-kernel-src
and a little work (see /usr/share/doc/fglrx-kernel-src/README.Debian.gz) and it is working fine at the full 1680x1050 resolution. - ACPI: does work really, perhaps not during installation; I set acpi=on in the grub/menu.lst, and it works.
I even added the IBM specific functions, and they worked just fine, including telling me the temperature of the GPU runs about 51C, whicle the battery is at a cool 29C.
And some things I would like to have working but haven't figured out yet:
- suspend, hibernate, etc.
- 32-bit chroot mostly to use movie codecs available only for 32 bits. It seems that schroot is an important hassle-saver, but the only documentation available appears to be the man pages, which are not too useful as a HOWTO.
- Airbag to protect the hard disk if the computer falls. Looks like it needs a kernel patch.
I like ThinkWiki, it has much useful information for puttin Linux on ThinkPads.
Dec. 1st, 2006
01:50 pm - OpenMCL for Debian/amd64
I have heard a lot of good things about OpenMCL over the years, so I was pleased to see the announcement that it is available for Debian/amd64 and gave it a try. This was an easy (Debian-integrated) install and OpenMCL started and did basic things from the shell. However, I got snagged on running SLIME:
Welcome to OpenMCL Version 1.1-pre-061110 (LinuxX8664)!
? ;Loading #P"/usr2/people/healy/emacs/external/sli
;Compiling "/usr2/people/healy/emacs/external/slime/s
;Loading #P"/usr2/people/healy/.slime/fasl/2006-1
;Compiling "/usr2/people/healy/emacs/external/slime/n
;Loading #P"/usr2/people/healy/.slime/fasl/2006-1
;Compiling "/usr2/people/healy/emacs/external/slime/m
;Loading #P"/usr2/people/healy/.slime/fasl/2006-1
;Compiling "/usr2/people/healy/emacs/external/slime/s
; Warning: Interface file #P"ccl:x86-headers64;libc;functions.cdb"
; While executing: CCL::CDB-OPEN, in process listener(2).
Read error between positions 10394 and 10509 in /usr2/people/healy/emacs/external/slime/s
;; Error while loading: /usr2/people/healy/.slime/fasl/2006-11-1
;; Condition: Foreign function not found: X86-LINUX64::|tmpnam|
;; Aborting.
Oct. 23rd, 2006
03:58 pm - Broken ion3
I have abandonded ion3 because of severe breakage in Debian unstable. For a while I would get various warnings when ion started up, presumably because of my customizations. Then a couple weeks ago the tab fonts becoming invisible, so I upgraded and removed all my customizations. Now I can't even split the screen. What is going on? I hope this is temporary, I like ion.
Apr. 3rd, 2006
09:09 am - Wireless router
I just got a wireless router for home, a Linksys WRT54G (sadly, it's the post-Linux, non-hackable model). The trouble is, it's a router. As I already have a firewall, DHCP server, etc., and all I wanted was a wireless access point (WAP) to connect in to my wired network. So, how to shut all that other stuff off? After much hair-pulling, it turns out to be really simple:
- Shut off DHCP service
- Remove all firewall options in Security->Firewall
- and the most important, thanks to people on #wireless: plug the cat5 cable from the wired network into a regular router port, not the "Internet" or "Uplink" port.
Mar. 22nd, 2006
02:53 pm - Making the Linux desktop emacs-friendly
I would really like my window manager, desktop, etc., to say nothing of applications, to be emacs-friendly. This would consist of two things:
- setting the window manager etc. to not grab emacs key combinations
- Simple emacs line-editing key combinations (C-a, M-d, etc.) should work in non-emacs text editing areas.
One reason I dislike Gnome is that for example when using gnome-terminal, I habitually type M-b and a menu rolls down instead of the cursor moving backward a word. I know that there are things that can be done like
gtk-key-theme-name = "Emacs"
see here or here, but in the past these haven't worked for me (I should try again).
I was just about to write that Conkeror appears dead, not having been updated for Firefox 1.5. But on revisiting this page, I notice that it received two updates last Friday after several months of inactivity, and now works with ff 1.5. I will definitely have to give it a try. Still, a comprehensive list of making Debian/Ubuntu emacs friendly would be helpful.
Feb. 18th, 2006
02:49 pm - Wireless BCM4306 support in Ubuntu on Dell Latitude X300
I decided to reinstall Linux on my Dell Latitude X300 laptop, this time with Ubuntu 5.10. The wireless device is Dell TrueMobile 1300 (BCM4306 - 802.11b+g); this can be handled using the Windows driver and ndiswrapper. There are a lot of instructions on the net, but none that seem to be the full Debian way. So here's what I did.
sudo aptitude install kernel-headers-2.6.12-10-386 ndiswrapper-source ndiswrapper-utils gcc-3.4 sudo module-assistant auto-install ndiswrapper sudo mkdir /root/bcm4306 sudo curl http://ftp.us.dell.com/network/R74092us.EXE -o /root/bcm4306/bcm4306.exe cd /root/bcm4306 sudo unzip bcm4306.exe sudo ndiswrapper -i /root/bcm4306/AR/bcmwl5a.inf
Links for different drivers can be found here. Notice that the ndiswrapper has an unstated dependence on gcc-3.4; other versions of gcc won't work. At this point, it is possible to check that everything is installed properly and that the driver is correct for the hardware:
> ndiswrapper -l Installed ndis drivers: bcmwl5a driver present, hardware present
Next, make sure that the module is loaded
modprobe ndiswrapper
and to insure it's available on every boot, add "ndiswrapper" to /etc/modules.
Now set up the network by selecting menu items
System -> Administration -> Networking shows "Wireless Connection" under connections.
Click on it, select Properties -> Enable, then Connection settings, Configuration -> DHCP
(or whatever is appropriate), then OK. Then click "Activate".
