mercoledì 7 marzo 2012

riparare installazione info su ubuntu

Le ultime versioni di Ubuntu hanno un difetto nell'installazione di info, dice che non trova il nodo top.
Su questo blog (grazie all'autore!) ho trovato la soluzione:

1) modificare /usr/sbin/update-info-dir aggiungendo
unset LANG # https://bugs.launchpad.net/ubuntu/+source/texinfo/+bug/707931
dopo unset LANGUAGE
2) sudo update-info-dir

venerdì 2 marzo 2012

agcc: android compiler

Ho trovato qui uno script molto utile per cross-compilare per android.
L'ho adattato per android-ndk-r7b
===========================================

#!/usr/bin/perl -w
use strict;

# XXX: Change this to point to your ndk install
my $NDK = '/opt/android-ndk-r7b';

# Copyright 2008, Andrew Ross andy@plausible.org
# Distributable under the terms of the GNU GPL, see COPYING for details

# UPDATE: 6 Jul 2011.  Changed paths around to work with
# android-ndk-r5c-linux-x86.tar.bz2.

# The Android toolchain is ... rough.  Rather than try to manage the
# complexity directly, this script wraps the tools into an "agcc" that
# works a lot like a gcc command line does for a native platform or a
# properly integrated cross-compiler.  It accepts arbitrary arguments,
# but interprets the following specially:
#
# -E/-S/-c/-shared - Enable needed arguments (linker flags, include
#                    directories, runtime startup objects...) for the
#                    specified compilation mode when building under
#                    android.
#
# -O<any> - Turn on the optimizer flags used by the Dalvik build.  No
#           control is provided over low-level optimizer flags.
#
# -W<any> - Turn on the warning flags used by the Dalvik build.  No
#           control is provided over specific gcc warning flags.
#
# Notes:
# + The prebuilt arm-linux-androideabi-gcc from a built (!) android source
#   directory must be on your PATH.
# + All files are compiled with -fPIC to an ARMv5TE target.  No
#   support is provided for thumb.
# + No need to pass a "-Wl,-soname" argument when linking with
#   -shared, it uses the file name always (so don't pass a directory in
#   the output path for a shared library!)

my $ALIB = "$NDK/platforms/android-8/arch-arm";
my $TOOLCHAIN = "$NDK/toolchains/arm-linux-androideabi-4.4.3";
my $PREBUILT  = "$TOOLCHAIN/prebuilt/linux-x86";
my $INTERWORK = $PREBUILT;

my $LDSCRIPTS = "$PREBUILT/arm-linux-androideabi/lib/ldscripts/";

my @include_paths = (
    "-I$NDK/platforms/android-8/arch-arm/usr/include",
    "-I$PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/include/",
  );

my @preprocess_args = (
    "-D__ARM_ARCH_5__",
    "-D__ARM_ARCH_5T__",
    "-D__ARM_ARCH_5E__",
    "-D__ARM_ARCH_5TE__", # Already defined by toolchain
    "-DANDROID",
    "-DSK_RELEASE",
    "-DNDEBUG",
    # "-include", "$DROID/system/core/include/arch/linux-arm/AndroidConfig.h",
    "-UDEBUG");

my @warn_args = (
    "-Wall",
    "-Wno-unused", # why?
    "-Wno-multichar", # why?
    "-Wstrict-aliasing=2"); # Implicit in -Wall per texinfo

my @compile_args = (
    "-march=armv5te",
    "-mtune=xscale",
    "-msoft-float",
    "-mthumb-interwork",
    "-fpic",
    "-fno-exceptions",
    "-ffunction-sections",
    "-funwind-tables", # static exception-like tables
    "-fstack-protector", # check guard variable before return
    "-fmessage-length=0"); # No line length limit to error messages

my @optimize_args = (
    "-O2",
    "-finline-functions",
    "-finline-limit=300",
    "-fno-inline-functions-called-once",
    "-fgcse-after-reload",
    "-frerun-cse-after-loop", # Implicit in -O2 per texinfo
    "-frename-registers",
    "-fomit-frame-pointer",
    "-fstrict-aliasing", # Implicit in -O2 per texinfo
    "-funswitch-loops");

my @link_args = (
    "-Bdynamic",
    "-Wl,-T,$PREBUILT/arm-linux-androideabi/lib/ldscripts/armelf_linux_eabi.x",
    "-Wl,-dynamic-linker,/system/bin/linker",
    "-Wl,--gc-sections",
    "-Wl,-z,nocopyreloc",
    "-Wl,--no-undefined",
    "-Wl,-rpath-link=$ALIB",
    "-L$ALIB/usr/lib",
    "-nostdlib",
    "$ALIB/usr/lib/crtend_android.o",
    "$ALIB/usr/lib/crtbegin_dynamic.o",
    "-lc",
    "-ldl",
    "$PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a",
    "-lm"
);

# Also need: -Wl,-soname,libXXXX.so
my @shared_args = (
    "-nostdlib",
    "-Wl,-T,$PREBUILT/arm-linux-androideabi/lib/ldscripts/armelf.xsc",
    "-Wl,--gc-sections",
    "-Wl,-shared,-Bsymbolic",
    "-L$ALIB",
    "-Wl,--no-whole-archive",
    "-lc",
    "-lm",
    "-Wl,--no-undefined",
    "$PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a",
    "-Wl,--whole-archive"); # .a, .o input files go *after* here

# Now implement a quick parser for a gcc-like command line

my %MODES = ("-E"=>1, "-c"=>1, "-S"=>1, "-shared"=>1);

my $mode = "DEFAULT";
my $out;
my $warn = 0;
my $opt = 0;
my @args = ();
my $have_src = 0;
while(@ARGV) {
    my $a = shift;
    if(defined $MODES{$a}) {
die "Can't specify $a and $mode" if $mode ne "DEFAULT";
$mode = $a;
    } elsif($a eq "-o") {
die "Missing -o argument" if !@ARGV;
die "Duplicate -o argument" if defined $out;
$out = shift;
    } elsif($a =~ /^-W.*/) {
$warn = 1;
    } elsif($a =~ /^-O.*/) {
$opt = 1;
    } else {
if($a =~ /\.(c|cpp|cxx)$/i) { $have_src = 1; }
push @args, $a;
    }
}

my $need_cpp = 0;
my $need_compile = 0;
my $need_link = 0;
my $need_shlink = 0;
if($mode eq "DEFAULT") { $need_cpp = $need_compile = $need_link = 1; }
if($mode eq "-E") { $need_cpp = 1; }
if($mode eq "-c") { $need_cpp = $need_compile = 1; }
if($mode eq "-S") { $need_cpp = $need_compile = 1; }
if($mode eq "-shared") { $need_shlink = 1; }

if($have_src and $mode ne "-E") { $need_cpp = $need_compile = 1; }

# Assemble the command:
my @cmd = ("arm-linux-androideabi-gcc");
if($mode ne "DEFAULT") { @cmd = (@cmd, $mode); }
if(defined $out) { @cmd = (@cmd, "-o", $out); }
if($need_cpp) { @cmd = (@cmd, @include_paths, @preprocess_args); }
if($need_compile){
    @cmd = (@cmd, @compile_args);
    if($warn) { @cmd = (@cmd, @warn_args); }
    if($opt) { @cmd = (@cmd, @optimize_args); }
}
if($need_shlink) { @cmd = (@cmd, @shared_args); }
@cmd = (@cmd, @args);
if($need_link) { @cmd = (@cmd, @link_args); }

print join(" ", @cmd), "\n"; # Spit it out if you're curious
exec(@cmd);

giovedì 23 febbraio 2012

Problemi con le console testuali in ubuntu 11.xx

Nelle ultime versioni di Ubuntu le console testuali (CTRL-ALT-F1..F6) non funzionano.
Ho risolto così:

In /etc/default/grub:
  ...
  GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
  ...
  GRUB_GFXMODE=text
  ...

update-grub

domenica 19 giugno 2011

Personalizzare sessione GNOME

GNOME è un po' pesante, ma bypassarlo del tutto crea problemi, ad esempio con l'anteprima di Xsane.
Con questi comandi ho escluso il filemanager e il pannello e ho settato come window manager FVWM.

gconf-editor  / desktop / gnome / session / required_components:
filemanager "nautilus" -> ""
panel "gnome-panel" ->""
windowmanager "metacity" -> fvwm

lunedì 13 giugno 2011

Router alice - vecchi problemi

Qualche kernel fa, per far funzionare il router di Alice dovevo aggiungere queste righe a /etc/sysctl.conf:



# PER IL ROUTER ALICE

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_window_scaling = 0

net.ipv4.tcp_ecn = 0



giovedì 2 giugno 2011

Debian 6 Squeeze -- wireless e avidemux

Per la scheda wireless Intel 2200BG:

installato il pacchetto non-free firmware-ipw2x00.



Per avidemux 

aggiunto i repositori debian-multimedia in /etc/apt/sources.list:

deb http://www.debian-multimedia.org squeeze main



deb-src http://www.debian-multimedia.org squeeze main

Poi apt-get update
Poi apt-get install debian-multimedia-keyring
Poi ancora apt-get update
Poi apt-get install avidemux
:-)