Thursday, November 26, 2015

Arduino development in Solaris Studio

The unbeatable advantage of the Arduino IDE is that it just works, together with the large library of examples. However it really sucks as a source code editor.
Fortunately there's an Arduino plugin for Netbeans (and therefore for Solaris Studio, which is just thinly veiled Netbeans bundled with the Oracle compilers).

The trouble is the Netbeans plugin URL download button gets you the Windows version, but do not despair. The author apparently plays with Linux too, and there's a tmp/linux folder in the repository, containing a functional Linux version of the plugin.

I only had to alter the default Makefile slightly to adjust for Debian's packaging of the Arduino software and my version of the chip:

8,9c8,9

8,9c8,9
< COM_PORT = /dev/ttyACM0
< BAUD_RATE = 115200
---
> COM_PORT = /dev/ttyUSB0
> BAUD_RATE = 19200
11,12c11,12
< ARDUINO_BASE_DIR = /home/jaques/opt/arduino-1.6.5-r5
< ARDUINO_CORE_DIR = ${ARDUINO_BASE_DIR}/hardware/arduino/avr/cores/arduino
---
> ARDUINO_BASE_DIR = /usr/share/arduino
> ARDUINO_CORE_DIR = ${ARDUINO_BASE_DIR}/hardware/arduino/cores/arduino
20c20
< ARDUINO_MODEL = atmega328p
---
> ARDUINO_MODEL = atmega168
22c22
< ARDUINO_PINS_DIR = ${ARDUINO_BASE_DIR}/hardware/arduino/avr/variants/standard
---
> ARDUINO_PINS_DIR = ${ARDUINO_BASE_DIR}/hardware/arduino/variants/standard
38c38
< AVR_DUDE = ${ARDUINO_BASE_DIR}/hardware/tools/avr/bin/avrdude -C ${ARDUINO_BASE_DIR}/hardware/tools/avr/etc/avrdude.conf
---
> AVR_DUDE = ${ARDUINO_BASE_DIR}/hardware/tools/avrdude -C ${ARDUINO_BASE_DIR}/hardware/tools/avrdude.conf

Monday, November 16, 2015

What can go wrong with Debian upgrade

When I moved from testing to stable I thought it'd be enough to just stop updating testing a while before the release, modify the apt sources and dist-upgrade.
And indeed all seemed to be working well.

Until now.

I wanted to install wine32, but there were all sorts of errors popping up.
I narrowed it down to libxml2 - it wasn't possible to install the 32-bit part:

# apt-get install libxml2:i386
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 apache2-bin : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libabw-0.1-1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libaugeas0 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libe-book-0.1-1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libepub0 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libetonyek-0.1-1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libfontforge1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libgdraw4 : Depends: libxml2 (>= 2.6.27) but it is not going to be installed
 libgeoclue0 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libgtk2.0-0 : Depends: shared-mime-info
               Recommends: libgtk2.0-bin
 libgupnp-dlna-2.0-3 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libmate-window-settings1 : Depends: libxml2 (>= 2.6.27) but it is not going to be installed
 libopenconnect3 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libplist1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libstoken1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libxml-libxml-perl : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 marco : Depends: libmarco-private0 (= 1.8.2+dfsg1-6) but it is not going to be installed
         Depends: zenity
 mate-media : Depends: mate-media-pulse (>= 1.8.0+dfsg1-3) but it is not going to be installed or
                       mate-media-gstreamer (>= 1.8.0+dfsg1-3) but it is not going to be installed
 mate-settings-daemon : Depends: mate-settings-daemon-pulse (>= 1.8.2-4) but it is not going to be installed or
                                 mate-settings-daemon-gstreamer (>= 1.8.2-4) but it is not going to be installed
 python-libxml2 : Depends: libxml2 (>= 2.9.1) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

It took me a while to realize that my libxml2 was actually of higher version than the one in Jessie! As soon as I downgraded it, the installation of wine32 went well...

# dpkg -l |grep libxml2
ii  libxml2:amd64                         2.9.2+dfsg1-1+b1
# apt-get install libxml2=2.9.1+dfsg1-5
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be DOWNGRADED:
  libxml2
0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.
Need to get 800 kB of archives.
After this operation, 413 kB disk space will be freed.
Do you want to continue? [Y/n]
Get:1 http://ftp.cz.debian.org/debian/ jessie/main libxml2 amd64 2.9.1+dfsg1-5 [800 kB]
Fetched 800 kB in 0s (2,198 kB/s)
dpkg: warning: downgrading libxml2:amd64 from 2.9.2+dfsg1-1+b1 to 2.9.1+dfsg1-5
(Reading database ... 285067 files and directories currently installed.)
Preparing to unpack .../libxml2_2.9.1+dfsg1-5_amd64.deb ...
Unpacking libxml2:amd64 (2.9.1+dfsg1-5) over (2.9.2+dfsg1-1+b1) ...
Setting up libxml2:amd64 (2.9.1+dfsg1-5) ...
Processing triggers for libc-bin (2.19-18+deb8u1) ...


# apt-get install libxml2:i386
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Recommended packages:
  xml-core:i386
The following NEW packages will be installed:
  libxml2:i386
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 833 kB of archives.
After this operation, 1,910 kB of additional disk space will be used.
Get:1 http://ftp.cz.debian.org/debian/ jessie/main libxml2 i386 2.9.1+dfsg1-5 [833 kB]
Fetched 833 kB in 4s (168 kB/s)      
Selecting previously unselected package libxml2:i386.
(Reading database ... 285066 files and directories currently installed.)
Preparing to unpack .../libxml2_2.9.1+dfsg1-5_i386.deb ...
Unpacking libxml2:i386 (2.9.1+dfsg1-5) ...
Setting up libxml2:i386 (2.9.1+dfsg1-5) ...
Processing triggers for libc-bin (2.19-18+deb8u1) ...
#

http://blog.hajma.cz/2015/04/fixating-testing-to-jessie.html